Retour ETAT TV

Salut à tous, et merci @vegeta0911 pour le plugin ! :clap:

J’avais commencé quelque chose mais par manque de temps, j’étais passé par le plugin script.

La commande « INFO » qui est créé, est alimentée sur un simple PING avec une interprétation binaire.

Dans la lib https://github.com/klattimer/LGWebOSRemote
Il existe une commande getPowerState

Serait-il possible de parser son retour et le mettre dans une commande info avec un cron et ainsi donner l’état « vrai » de la TV ? La mienne est toujours connecté au réseau et le Ping ne donne pas l’indication si elle est utilisée ou pas.
Le but de final est d’allumer des lumières selon si la TV est allumé ou eteinte.

Voici ce que ça donne avec les lanceurs :wink: :
/var/www/html/plugins/WebOStvLG/core/class/…/…/resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/

lgtv --name "Salon" --ssl off
{"type": "response", "id": "0", "payload": {"returnValue": true}}
{"closing": {"code": 1000, "reason": ""}}
lgtv --name "Salon" --ssl getPowerState
{"closing": {"code": 1008, "reason": "Try Again Later (EWS)"}}

lgtv --name "Salon" --ssl on

lgtv --name "Salon" --ssl getPowerState
{"type": "response", "id": "0", "payload": {"state": "Active", "returnValue": true}}
{"closing": {"code": 1000, "reason": ""}}

Et pour ce qui est de ma conf TV :

lgtv --name "Salon" --ssl swInfo
{"type": "response", "id": "sw_info_0", "payload": {"returnValue": true, "product_name": "webOSTV 23", "model_name": "HE_DTV_W23O_AFABATAA", "sw_type": "FIRMWARE", "major_ver": "23", "minor_ver": "20.69", "country": "FR", "country_group": "EU", "device_id": "f8:01:b4:ce:e0:52", "auth_flag": "N", "ignore_disable": "N", "eco_info": "01", "config_key": "00", "language_code": "fr-FR"}}

Dispo pour regarder un peu coté code ce que ça peut donner et faire les tests en beta.

A+

Alors merci de l’intérêt du plugin et de l’idée.
Je ne comprends pas l’intérêt car le ping de la tv est fonctionnel, c’est que tu as statut qui change 1 = activité, 0 = désactiver.

Donc quand la tv éteinte = statut à 0.

Du coup tu dis quand TV est éteinte le ping reste à 1 ?

Oui tout à fait le ping est OK, l’IP est joignable, ma TV ne se coupe pas du réseau lorsqu’elle est Off. Peut-être que c’est la fonction « Toujours Prêt » qui permet de la garder en veille.

Ah OK je comprends, j’ai dû à la fonction de ta télé qui fait le statut égal à un.
Je vais voir si je peux faire avec ta méthode en rajoutant une autre commande d’info

1 « J'aime »

Hello
Je confirme : si la fonction « toujours prêt « est active, le ping est à 1 même éteinte

1 « J'aime »

bonjour

Je viens de pousser votre demande sur la version bêta.

Il faut cocher la case image, pour que la commande état soit plus le ping, mais l’état de la fonction toujours prêt.

Petit pense bête : après la mise à jour, merci de supprimer la commande état et de la recréer en sauvegardant.

J’attends votre retour :wink:

1 « J'aime »

OUAHOU ! ça c’est de la réactivité ! Un grand MERCI @vegeta0911 :clap:

Installé et validé en BETA. ça fait le job :+1:

1 « J'aime »

@vegeta0911 , si je peux me permettre, si tu peux ajouter une condition isset sur « state » ou autre pour ne pas avoir les erreurs lorsque le retour est :

{"closing": {"code": 1008, "reason": "Try Again Later (EWS)"}}

Sinon dans les logs ça verbe pour rien :

70385|PHP Notice:  Trying to access array offset on value of type null in /var/www/html/plugins/WebOStvLG/core/class/WebOStvLG.class.php on line 799
70386|PHP Notice:  Undefined index: payload in /var/www/html/plugins/WebOStvLG/core/class/WebOStvLG.class.php on line 798
70387|PHP Notice:  Trying to access array offset on value of type null in /var/www/html/plugins/WebOStvLG/core/class/WebOStvLG.class.php on line 798
70388|PHP Notice:  Undefined index: payload in /var/www/html/plugins/WebOStvLG/core/class/WebOStvLG.class.php on line 799

Corriger dis-moi si ça fait toujours l.erreur.

Ok installé mais chose étrange le cron ne se lance plus, et j’ai des erreurs.
Tenté de supprimé l’objet TV et de refaire l’accrochage Token et toujours KO :

0036|[2025-05-26 17:20:17] WebOStvLG.INFO: lgtvinfo: null [] []
0037|[2025-05-26 17:20:20] WebOStvLG.DEBUG: auth : /var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv auth 192.168.1.184 "Salon" [] []
0038|[2025-05-26 17:20:25] WebOStvLG.DEBUG: tv info : f2af4cbbd592595aa062180c5924f62f [] []
0039|[2025-05-26 17:20:25] WebOStvLG.DEBUG: lgtvauth: {"Salon": {"key": "f2af4cbbd592595aa062180c5924f62f", "mac": "a4:36:c7:f0:5b:d0", "ip": "192.168.1.184", "hostname": "192.168.1.184"}} [] []
0040|[2025-05-26 17:20:26] WebOStvLG.DEBUG: tv info : Salon  [] []
0041|[2025-05-26 17:20:26] WebOStvLG.DEBUG: loadCmdFromConf base [] []
0042|[2025-05-26 17:20:26] WebOStvLG.DEBUG: loadCmdFromConf 2 [] []
0043|[2025-05-26 17:20:26] WebOStvLG.DEBUG: loadCmdFromConf 4  [] []
0044|[2025-05-26 17:20:26] WebOStvLG.DEBUG: loadCmdFromConf 5  [] []
0045|[2025-05-26 17:20:26] WebOStvLG.DEBUG: modification jsom type 1:--name "Salon" --ssl notification  [] []
0046|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0047|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0048|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0049|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0050|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0051|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0052|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0053|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0054|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0055|[2025-05-26 17:20:26] WebOStvLG.DEBUG: no exist [] []
0056|[2025-05-26 17:20:26] WebOStvLG.DEBUG: exist:base [] []
0057|[2025-05-26 17:20:26] WebOStvLG.DEBUG: | Impossible de continuer la récupération  [] []
0058|[2025-05-26 17:25:01] WebOStvLG.DEBUG: loadCmdFromConf base [] []
0059|[2025-05-26 17:25:01] WebOStvLG.DEBUG: loadCmdFromConf 2 [] []
0060|[2025-05-26 17:25:01] WebOStvLG.DEBUG: loadCmdFromConf 4  [] []
0061|[2025-05-26 17:25:01] WebOStvLG.DEBUG: loadCmdFromConf 5  [] []
0062|[2025-05-26 17:25:01] WebOStvLG.DEBUG: modification jsom type 1:--name "Salon" --ssl notification  [] []
0063|[2025-05-26 17:25:01] WebOStvLG.DEBUG: exist:base [] []

La tv été allumé ?

Puis supprime la clé token puis sauvegarde avec la tv allumée.

Car moi j’ai fait le teste est ça fonctionne parfaitement.

Ok c’est bon j’ai désinstallé le plugin + refait l’authent et c’est OK.
La TV était bien allumée, je ne sais pas dire ce qu’y a caffouillé.

C’est ok pour moi pour passer en stable. @Claude69 t’as pu tester aussi ?

Hello
Non, j’ai un autre souci. J’ai ouvert un nouveau post :

Alors je pense que j’ai vraiment un truc qui tourne pas rond, voilà les logs :

0343|[2025-05-26 23:44:04] WebOStvLG.INFO: Etat TV: Screen Saver [] []
0344|[2025-05-27 14:05:57] WebOStvLG.DEBUG: $$$ EXEC: /var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl on >  [] []
0345|[2025-05-27 14:06:04] WebOStvLG.INFO: Etat TV: Active [] []
0346|[2025-05-27 14:07:04] WebOStvLG.INFO: Etat TV: Active [] []
0347|[2025-05-27 14:07:40] WebOStvLG.DEBUG: $$$ EXEC: /var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl off > {"type": "response", "id": "0", "payload": {"returnValue": true}} {"closing": {"code": 1000, "reason": ""}}  [] []
0348|[2025-05-27 15:30:29] WebOStvLG.DEBUG: $$$ EXEC: /var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl on >  [] []
0349|[2025-05-27 15:31:04] WebOStvLG.INFO: Etat TV: Active [] []
0350|[2025-05-27 15:32:04] WebOStvLG.INFO: Etat TV: Active [] []
0351|[2025-05-27 15:33:03] WebOStvLG.INFO: Etat TV: Active [] []
0352|[2025-05-27 15:34:04] WebOStvLG.INFO: Etat TV: Active [] []
0353|[2025-05-27 15:35:04] WebOStvLG.INFO: Etat TV: Active [] []
0354|[2025-05-27 15:37:04] WebOStvLG.INFO: Etat TV: Active [] []
0355|[2025-05-27 15:38:04] WebOStvLG.INFO: Etat TV: Active [] []
0356|[2025-05-27 15:39:04] WebOStvLG.INFO: Etat TV: Active [] []
0357|[2025-05-27 15:40:04] WebOStvLG.INFO: Etat TV: Active [] []
0358|[2025-05-27 15:41:04] WebOStvLG.INFO: Etat TV: Active [] []
0359|[2025-05-27 15:42:04] WebOStvLG.INFO: Etat TV: Active [] []
0360|[2025-05-27 15:43:04] WebOStvLG.INFO: Etat TV: Active [] []
0361|[2025-05-27 15:44:04] WebOStvLG.INFO: Etat TV: Active [] []
0362|[2025-05-27 16:01:17] WebOStvLG.DEBUG: $$$ EXEC: /var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl off > {"closing": {"code": 1008, "reason": "Try Again Later (EWS)"}}  [] []

Ce que j’en lis selon le timestamp c’est que lorsque la TV passe en Off (via l’exec par CLI) le cron d’Etat TV ne s’exécute plus.

tu a des logs autre du genre http.error ou cron.execution

Dans la log de cron_execution :

0005|Traceback (most recent call last):
0006|File "/var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv", line 8, in <module>
0007|sys.exit(main())
0008|File "/var/www/html/plugins/WebOStvLG/resources/venv/lib/python3.9/site-packages/LGTV/__init__.py", line 193, in main
0009|ws.connect()
0010|File "/var/www/html/plugins/WebOStvLG/resources/venv/lib/python3.9/site-packages/ws4py/client/__init__.py", line 225, in connect
0011|self.sock.connect(self.bind_addr)
0012|File "/usr/lib/python3.9/ssl.py", line 1375, in connect
0013|self._real_connect(addr, False)
0014|File "/usr/lib/python3.9/ssl.py", line 1366, in _real_connect
0015|self.do_handshake()
0016|File "/usr/lib/python3.9/ssl.py", line 1342, in do_handshake
0017|self._sslobj.do_handshake()
0018|ConnectionResetError: [Errno 104] Connection reset by peer

Et effectivement si je lance la commande suivante entre le moment ou j’éteins la TV et 2s le retour est le suivant :

/var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl getPowerState
Traceback (most recent call last):
  File "/var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv", line 8, in <module>
    sys.exit(main())
  File "/var/www/html/plugins/WebOStvLG/resources/venv/lib/python3.9/site-packages/LGTV/__init__.py", line 193, in main
    ws.connect()
  File "/var/www/html/plugins/WebOStvLG/resources/venv/lib/python3.9/site-packages/ws4py/client/__init__.py", line 225, in connect
    self.sock.connect(self.bind_addr)
  File "/usr/lib/python3.9/ssl.py", line 1375, in connect
    self._real_connect(addr, False)
  File "/usr/lib/python3.9/ssl.py", line 1366, in _real_connect
    self.do_handshake()
  File "/usr/lib/python3.9/ssl.py", line 1342, in do_handshake
    self._sslobj.do_handshake()
ConnectionResetError: [Errno 104] Connection reset by peer

si je retry en suivant en CLI :

/var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl getPowerState
{"closing": {"code": 1008, "reason": "Try Again Later (EWS)"}}

Donc j’en comprends que la TV ne sait pas répondre à l’appel quand elle est en phase d’extinction. Sauf que je ne comprends pas pourquoi le cron ne retente pas 60 secondes plus tard.

Quand la TV se rallume, via la télécommande ou via un appel CLI, le cron réaffiche :

0525|[2025-05-27 23:58:04] WebOStvLG.INFO: Etat TV: Active [] []

Pour le statut des 60 secondes, c’est sûrement l’attente de la réponse de la commande getPowerState, car cher moi j’ai une réponse au bout de 3 minutes quand la tv est allumé puis éteinte.

j’ai poussé une correction voir si c’est mieux :wink:.

C’est tout mieux :wink:

0829|[2025-05-28 12:26:04] WebOStvLG.INFO: Etat TV: Desactive [] []
0830|[2025-05-28 12:27:04] WebOStvLG.INFO: Etat TV: Desactive [] []
0831|[2025-05-28 12:27:53] WebOStvLG.DEBUG: $$$ EXEC: /var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl on >  [] []
0832|[2025-05-28 12:28:04] WebOStvLG.INFO: Etat TV: Active [] []
0833|[2025-05-28 12:29:03] WebOStvLG.INFO: Etat TV: Active [] []
0834|[2025-05-28 12:29:52] WebOStvLG.DEBUG: $$$ EXEC: /var/www/html/plugins/WebOStvLG/core/class/../../resources/venv/bin/python3 /var/www/html/plugins/WebOStvLG/resources/venv/bin/lgtv --name "Salon" --ssl off > {"type": "response", "id": "0", "payload": {"returnValue": true}} {"closing": {"code": 1000, "reason": ""}}  [] []
0835|[2025-05-28 12:30:05] WebOStvLG.INFO: Etat TV: Desactive [] []
0836|[2025-05-28 12:31:04] WebOStvLG.INFO: Etat TV: Desactive [] []
0837|[2025-05-28 12:32:04] WebOStvLG.INFO: Etat TV: Desactive [] []
0838|[2025-05-28 12:33:03] WebOStvLG.INFO: Etat TV: Desactive [] []
0839|[2025-05-28 12:34:04] WebOStvLG.INFO: Etat TV: Active [] []
0840|[2025-05-28 12:35:04] WebOStvLG.INFO: Etat TV: Active [] []
//---- ellipse temporelle---//
0856|[2025-05-28 12:51:04] WebOStvLG.INFO: Etat TV: Active [] []
0857|[2025-05-28 12:52:04] WebOStvLG.INFO: Etat TV: Active [] []
0858|[2025-05-28 12:53:04] WebOStvLG.INFO: Etat TV: Desactive [] []
0859|[2025-05-28 12:54:03] WebOStvLG.INFO: Etat TV: Desactive [] []
1 « J'aime »

Je le met en stable dans les prochains jours ou aujourd’hui.:wink:

1 « J'aime »

Tu peu fermer le file de discutions en appuyant sur le bouton solution stp.