Mise à jour du plugin lgWebOSTV

Possible que le script python ne soit plus fonctionnel.

J’ai vu ce projet qui semble tenu à jour GitHub - klattimer/LGWebOSRemote: Command line webOS remote for LGTVs

Est-ce que quelqu’un peut tester ?

Bonjour,

J’ai essayé de l’installer mais voilà ce que j’obtiens :

Ceci dit, ce n’est peut-être pas la bonne méthode.

Bonjour goulouche,

Ce message est tout à fait normal puisqu’il ne s’agit pas d’un dépôt contenant un plugin Jeedom, mais d’un module python. Pour l’installer, il faut se rendre sur le dépôt, lire le readme et faire ce qui est indiqué dans le chapitre Install. L’utilisation est en ligne de commande

A+
Michel

Merci pour ta réponse. C’est bien ce que je craignais et du coup je ne suis pas sûr de savoir le faire.

J’ai essayé pas mal de truc sur une Jeedom 4.4.5 en VM sur mon PC mais rien n’a fonctionné. Voici une capture des commandes que j’ai essayé de passer :

La commande pipx n’est disponible que sous debian12. Avec pip, ça devrait fonctionner, sinon avec python3 -m pip.
A priori, il faut remplacer python par python3 dans les commandes.

Je vais essayer. Merci.

L’installation semble avoir fonctionné mais je ne vois pas ce qu’il faut faire ensuite :

lgtv scan

puis en mettant l’IP de ta télé

lgtv --ssl auth <host> MyTV

On dirait que ça fonctionne :

login as: jeedom
jeedom@192.168.240.133's password:
Linux jeedom 5.10.0-29-amd64 #1 SMP Debian 5.10.216-1 (2024-05-03) x86_64

3 updates could not be installed automatically. For more details,
see /var/log/unattended-upgrades/unattended-upgrades.log

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon May 13 09:43:59 2024
jeedom@jeedom:~$ lgtv scan
Traceback (most recent call last):
  File "/usr/local/bin/lgtv", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/dist-packages/LGTV/__init__.py", line 116, in m            ain
    results = LGTVScan()
  File "/usr/local/lib/python3.9/dist-packages/LGTV/scan.py", line 25, in LGTVSc            an
    response, address = sock.recvfrom(512)
socket.timeout: timed out
jeedom@jeedom:~$ lgtv scan
lgtv --ssl auth 192.168.0.137 MyTV
Traceback (most recent call last):
  File "/usr/local/bin/lgtv", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/dist-packages/LGTV/__init__.py", line 116, in m            ain
    results = LGTVScan()
  File "/usr/local/lib/python3.9/dist-packages/LGTV/scan.py", line 25, in LGTVSc            an
    response, address = sock.recvfrom(512)
socket.timeout: timed out
Please accept the pairing request on your LG TV
{"closing": {"code": 1000, "reason": ""}}
Wrote config file: /home/jeedom/.lgtv/config.json
jeedom@jeedom:~$

Quelle est la prochaine étape ?

La TV ne semble pas joignable par ton jeedom.
Elle est éteinte ?

Je viens de refaire la manip :

login as: jeedom
jeedom@192.168.240.133's password:
Linux jeedom 5.10.0-29-amd64 #1 SMP Debian 5.10.216-1 (2024-05-03) x86_64

3 updates could not be installed automatically. For more details,
see /var/log/unattended-upgrades/unattended-upgrades.log

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon May 13 10:43:45 2024 from 192.168.240.1
jeedom@jeedom:~$ su
Mot de passe :
root@jeedom:/home/jeedom# lgtv scan
lgtv --ssl auth 192.168.0.137 MyTV
Traceback (most recent call last):
  File "/usr/local/bin/lgtv", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/dist-packages/LGTV/__init__.py", line 116, in main
    results = LGTVScan()
  File "/usr/local/lib/python3.9/dist-packages/LGTV/scan.py", line 25, in LGTVScan
    response, address = sock.recvfrom(512)
socket.timeout: timed out
Please accept the pairing request on your LG TV
{"closing": {"code": 1000, "reason": ""}}
Wrote config file: /root/.lgtv/config.json
root@jeedom:/home/jeedom#

1 « J'aime »

Après, tu as plein de commandes :

lgtv --name MyTV --ssl audioStatus
lgtv --name MyTV --ssl audioVolume
lgtv --name MyTV --ssl closeAlert <alertId>
lgtv --name MyTV --ssl closeApp <appid>
lgtv --name MyTV --ssl createAlert <message> <button>
lgtv --name MyTV --ssl execute <command>
lgtv --name MyTV --ssl getCursorSocket
lgtv --name MyTV --ssl getForegroundAppInfo
lgtv --name MyTV --ssl getPictureSettings
lgtv --name MyTV --ssl getPowerState
lgtv --name MyTV --ssl getSoundOutput
lgtv --name MyTV --ssl getSystemInfo
lgtv --name MyTV --ssl getTVChannel
lgtv --name MyTV --ssl input3DOff
lgtv --name MyTV --ssl input3DOn
lgtv --name MyTV --ssl inputChannelDown
lgtv --name MyTV --ssl inputChannelUp
lgtv --name MyTV --ssl inputMediaFastForward
lgtv --name MyTV --ssl inputMediaPause
lgtv --name MyTV --ssl inputMediaPlay
lgtv --name MyTV --ssl inputMediaRewind
lgtv --name MyTV --ssl inputMediaStop
lgtv --name MyTV --ssl listApps
lgtv --name MyTV --ssl listLaunchPoints
lgtv --name MyTV --ssl listChannels
lgtv --name MyTV --ssl listInputs
lgtv --name MyTV --ssl listServices
lgtv --name MyTV --ssl mute <true|false>
lgtv --name MyTV --ssl notification <message>
lgtv --name MyTV --ssl notificationWithIcon <message> <url>
lgtv --name MyTV --ssl off
lgtv --name MyTV --ssl on
lgtv --name MyTV --ssl openAppWithPayload <payload>
lgtv --name MyTV --ssl openBrowserAt <url>
lgtv --name MyTV --ssl openYoutubeId <videoid>
lgtv --name MyTV --ssl openYoutubeURL <url>
lgtv --name MyTV --ssl openYoutubeLegacyId <videoid>
lgtv --name MyTV --ssl openYoutubeLegacyURL <url>
lgtv --name MyTV --ssl sendButton <button>
lgtv --name MyTV --ssl serialise
lgtv --name MyTV --ssl setInput <input_id>
lgtv --name MyTV --ssl setSoundOutput <tv_speaker|external_optical|external_arc|external_speaker|lineout|headphone|tv_external_speaker|tv_speaker_headphone|bt_soundbar>
lgtv --name MyTV --ssl screenOff
lgtv --name MyTV --ssl screenOn
lgtv --name MyTV --ssl setTVChannel <channelId>
lgtv --name MyTV --ssl setVolume <level>
lgtv --name MyTV --ssl startApp <appid>
lgtv --name MyTV --ssl swInfo
lgtv --name MyTV --ssl volumeDown
lgtv --name MyTV --ssl volumeUp

Désolé mais je ne comprends rien. Comment utilise-t-on ça dans Jeedom ?

La librairie utilisée par l’ancien plugin que j’ai tenté de sauver est dépassée.
Je te propose de faire quelques essais de commandes pour voir si cette librairie peut fonctionner.
Ensuite, si ca fonctionne, je peux modifier le plugin pour utiliser cette librairie.

Bonjour Flobul, désolé pour mon retour tardif. J’ai eu qlqs PB perso…
J’ai suivi tout le descriptif, J’ai eu une demande d’appareillage, donc j’ai accepté. Maintenant Dans la création de l’équipement il me demande une clé d’appareillage. J’ai mis celui que j’ai reçu en retour. Mais cela me fonctionne pas et je ne vois pas toutes les commandes que tu évoques dans ton messages précèdent.
Aurais je loupé qlq chose?
TV LG

Encore merci pour ton aide

Bonsoir,

C’est d’accord pour moi mais il va falloir me dire comment faire parce que là, je patine dans la choucroute.

Bonjour à tous, @Flobul

Finalement j’ai réussi à passer quelques commandes sur ma télé LG OLED55C9PLA :

lgtv --name MyTV --ssl inputChannelDown
lgtv --name MyTV --ssl inputChannelUp
lgtv --name MyTV --ssl audioStatus
lgtv --name MyTV --ssl getSystemInfo
lgtv --name MyTV --ssl getPowerState
lgtv --name MyTV --ssl off

Toutes ces commandes fonctionnent. Par contre, j’ai voulu rallumer la télé avec :

lgtv --name MyTV --ssl on

Ça n’a pas marché et j’ai obtenu le message suivant :

root@jeedom:/home/jeedom# lgtv --name MyTV --ssl on
Traceback (most recent call last):
 File "/usr/local/bin/lgtv", line 8, in <module>
   sys.exit(main())
 File "/usr/local/lib/python3.9/dist-packages/LGTV/__init__.py", line 190, in main
   ws.on()
 File "/usr/local/lib/python3.9/dist-packages/LGTV/remote.py", line 185, in on
   send_magic_packet(self.__macAddress, ip_address=self.__ip)
 File "/usr/local/lib/python3.9/dist-packages/wakeonlan/__init__.py", line 63, in send_magic_packet
   packets = [create_magic_packet(mac) for mac in macs]
 File "/usr/local/lib/python3.9/dist-packages/wakeonlan/__init__.py", line 63, in <listcomp>
   packets = [create_magic_packet(mac) for mac in macs]
 File "/usr/local/lib/python3.9/dist-packages/wakeonlan/__init__.py", line 29, in create_magic_packet
   if len(macaddress) == 17:
TypeError: object of type 'NoneType' has no len()

Je vais peut-être dire une bêtise mais la mac address de la télé ne semble pas être captée dans le fichier
/root/.lgtv/config.json

{"MyTV": {"key": "47xxxxxxxxxxxxxxxxxxxxxxxxxxxx89", "mac": null, "ip": "192.168.0.137", "hostname": "192.168.0.137"}}

EDIT
J’ai édité le fichier /root/.lgtv/config.json et j’ai remplacé la valeur null par la mac address de ma télé et miracle, la télé s’est allumée en passant la commande lgtv --name MyTV --ssl on

Bonjour, j’arrive sur le sujet et j’ai fait comme dans vos explications, j’arrive bien à piloter ma télé en ligne de commande mais avec le plugin pas moyen de faire la confirmation de connexion.
Peut-être un coup de main SVP

Bonsoir,

D’après ce que je comprends, il faut oublier le plugin pour le moment.