Problème de connexion avec le plugin LG Smart Thinq

Bonjour,

J’étais parti pour installer du LG partout chez moi parce qu’ils font quand même des produit de qualité mais faut être honnête… leur connectivité est catastrophique, il suffit de voir la note du skill Alexa pour LG ThingQ, quasiment 100% des commentaires qui disent que ça ne fonctionne pas et aucune réaction de LG depuis plusieurs années.

Je reçois effectivement les mêmes erreurs que la plupart d’entre vous, leur site répond pas, des messages d’erreurs, des pages inexistantes, bref on se croirait au site marchant de l’épicerie du coin.

J’espère que LG travaille effectivement à l’amélioration de leur protocole domotique et que Pifou25 va nous trouver une solution magique.

Stay connected…

1 « J'aime »

Bonjour,

Je viens de mettre en place le pifou25 / Thinq-MQTT-Proxy. Merci beaucoup pour tout le taff accompli.

Ça semble fonctionner pour ma PAC et j’ai bien le retour de l’api LG :

22:27:34.441 [Timer-0] DEBUG Device - climatiseur processStateData([Operation:0, OpMode:0, WindStrength:6, TempUnit:NS, TempCur:24.5, TempCfg:20, GroupType:1, SleepTime:0, OnTime:0, OffTime:0, RacAddFunc:NS, ExtraOp:0, DiagCode:00, TimeBsOn:0, TimeBsOff:0, AirClean:0, AutoDry:0, PowerSave:0, WDirVStep:1, WDirHStep:100, TempLimitMax:0, TempLimitMin:0, DuctZoneType:0, ZoneControl:0, DRED:0, SensorPM1:0, SensorPM2:0, SensorPM10:0, AirPolution:0, HumidityCfg:0, WaterTempCoolMin:NS, WaterTempCoolMax:NS, WaterTempHeatMin:NS, WaterTempHeatMax:NS, HotWaterTempMin:NS, HotWaterTempMax:NS, SensorHumidity:0, TotalAirPolution:0, SensorMon:0, CleanDry:0, ProductStatus:0, AirMonitoring:0, Humidification:0, AirFast:0, AirRemoval:0, AirUVDisinfection:0, WatertankLight:0, SignalLighting:0, WDirUpDown:0, WDirLeftRight:0, WSwirl:0, Jet:0, LowHeating:0, CirculateStrength:0, CirculateDir:0, AntiBugs:0, IceValley:0, Humsave:0, WaterTempCur:0, HotWaterTempCur:0, HotWaterTempCfg:0, HotWaterMode:0, HotWater:0, AWHPTempCfgSwitch:0, AirTempCoolMin:NS, AirTempCoolMax:NS, AirTempHeatMin:NS, AirTempHeatMax:NS, WaterInTempCur:0, AWHPWATempControlSta:0, DisplayControl:0, SmartCare:0, TwoSetCoolTemp:0, TwoSetHeatTemp:0, TwoSetCoolUSL:0, TwoSetCoolLSL:0, TwoSetHeatUSL:0, TwoSetHeatLSL:0, TwoSetACOState:0, TwoSetModeDeadband:0, TwoSetState:0])
22:27:34.441 [Timer-0] INFO  Device - {name=lastUpdate, value=2023-10-02T22:27:34+0200}
22:27:34.441 [Timer-0] INFO  Mqtt - Sending to topic thinq/climatiseur/event/lastUpdate message 2023-10-02T22:27:34+0200

Dans le plugin MQTT manager de Jeedom, j’arrive bien à récup le last update depuis le Topic racine « thinq » :

Mon problème étant que je n’arrive pas à comprendre comment envoyer des message pour, par exemple, changer la température de consigne.

J’ai tenté de set de plusieurs manière ; mais sans succès :

Pourtant, je vois bien les messages via mosquitto_sub :

root@JeedomBox:/var/log/mosquitto # mosquitto_sub -h localhost -u jeedom -P $mosquitto_pass -t "#" -v
thinq/LWT online
thinq/LWT/climatiseur/event/temperatureTarget 21
thinq/LWT/climatiseur/event/TempCfg 22
thinq/LWT/climatiseur/event/SetTempCfg 23
thinq/climatiseur/event/lastUpdate 2023-10-02T22:37:34+0200
thinq/climatiseur/event/temperatureTarget 21
thinq/climatiseur/event/TempCfg 22
thinq/climatiseur/event/SetTempCfg 24

Est-ce que tu pourrais me renseigner sur comment envoyer un message au proxy MQTT afin d’intéragie avec ma PAC ?

N’hésite pas à me contacter en MP pour de plus amples informations ou si tu veux que l’on fasse des tests plus avancés ensemble.

Merci d’avance.

Cordialement,
Gauthier.

1 « J'aime »

Bonjour, merci pour ton retour :slight_smile:

en vrai j’en ai aucune idée, tu es le 1er il faut bien un début à tout :smiley: de mon expérience avec le mqtt pour zwave, il faut ajouter /set à la fin d’un topic… (mais c’est peut être une convention spécifique au zwave, aucune assurance que LG fasse de même) essaye donc ceci:

thinq/LWT/climatiseur/event/temperatureTarget/set ou bien
thinq/climatiseur/event/TempCfg/set

C’est quoi LWT dans certains topics ? lgthinq est le préfixe générique, paramétrable. climatiseur = ton appareil, event ? me fait dire que c’est peut être pour des infos, et du coup pour envoyer une commande, faudrait l’enlever et le remplacer par set, du coup teste aussi ceci:
thinq/LWT/climatiseur/set/temperatureTarget ou bien
thinq/climatiseur/set/TempCfg

Dis nous si tu trouve, sinon peut être rechercher sur les forums de nos amis HA ils ont les mêmes problèmes.

Je sais pas du tout si c’est le même fonctionnement mais sur le plugin Jmqtt pour les commandes action des modules Shelly il faut ajouter /command à la fin. Je ne sais pas si cette syntaxe est générique à mosquitto, ou proposer à Shelly. A tester ?

Les topics, comme les payloads, sont spécifiques à chaque fabricant.
Il faut donc consulter la documentation.

La documentation chez LG ça existe :rofl: ?

J’ai regardé le code, une requête POST n’est envoyée/traitée que pour les appareils de type AirConditionner en api V1 :
https://github.com/search?q=repo%3Apifou25/Thinq-MQTT-Proxy%20sendCommand&type=code
Je n’ai pas regardé quelle était la syntaxe et gestion en mqtt.

Le "fabricant" ici doit plutôt être :

Capture d’écran du 2023-10-03 11-38-47
:grin:

Moi j’aimerais bien mettre en place ça mais comme je l’avais déjà indiqué à @pifou ça dépasse mes compétences. J’arrive même pas à installer un conteneur docker via le plugin officiel. Du coup erreur dès la première commande cd :frowning:
Si quelqu’un veut bien me guider sur la création du docker : nom de l’objet, nom du conteneur, mode de création, etc… Ouais j’en suis là :expressionless:

Bonjour,

Merci de ta réponse. Pour info, je suis SRE et je vais continuer à chercher. Même si j’ai l’impression que le ThinQ proxy ne subscribe pas grand chose.

Le LWT est le préfix donné par le ThinQ proxy pour donner l’état de connection vers les serveurs LG.
Le event est push pour donner l’info du lastupdated.

Je vais continuer à chercher. Après, peut-être y a-t-il moyen de request l’API directement une fois l’init passé et les tokens récupéré.

Je vous tiens au courant si je trouve quelque chose. Je pense que je n’aurais pas trop le temps cette semaine. Certainement samedi ou lundi soir prochain.

Bonsoir,

Je viens de tester. Ça ne marche pas.

J’ai l’impression que le ThinQ MQTT proxy ne fait que de la publication sur le MQTT Jeedom et ne fait aucun subscription…

Je continue de creuser…

Tu saurais me guider pour monter un docker avec le plugin officiel ? J’ai lu ton wiki, et bien logiquement il n’est pas expliqué comment créer le docker puisque ce n’est pas ton boulot :stuck_out_tongue: . Ça vaut le coup de me lancer là-dedans même si comme tu le vois je suis une bille ?

Répondu plus haut :

ça m’intéresserait de savoir lire le code Groovy :slight_smile: mais je n’ai fait que la containerisation docker, le reste est l’oeuvre de mgwoj (mais il ne répond pas sur le github) qui lui même a optimisé le code de dcmeglio. A priori il faut mettre Set je suppose en respectant la majuscule. Si ça n’est dispo que pour les AirConditionner pour l’api V1, je pense que c’est générique pour la v2, en tout cas ça se teste.

oui, bien sûr, il faut se lancer :slight_smile: installe les 2 plugins Jeedom : docker management et mqtt manager ou bien jMQTTau choix
ensuite, crée le fichier state.json comme décrit avec les valeurs pour te connecter au mqtt que tu viens d’installer.
Créer le docker c’est les commandes docker run blabla ...

1 « J'aime »

Ce n’est que mon avis sur LG, pas un reproche : comme la méthode précédente, je trouve que c’est un emboitement de beaucoup de cailloux sur une base peu stable sur le long terme.

J’ai bien envie de regarder si on peut pas aller au plus simple et gérer le tout en php, via requêtes get/post directement. (Après captures mitm…)

2 « J'aime »

Si tu veux un testeur, je suis dispo :wink:

J’ai installé les 2 plugins (j’avais déjà Mqtt manager) mais je ne sais pas par où commencer :

  • le fichier json je le crée où ?
  • le docker je dois en créer un via le plugin ou en ligne de commande ? Et ligne de commande c’est via l’interface accessible dans Réglages/Système/Configuration ou via ssh ?
  • les étapes à suivre c’est celles-ci ou celles-là ? Dans les deux cas je suis KO des la première ligne de commande (mvn clean , ou cd).

Sorry pour toutes ces questions sûrement bateau

1 « J'aime »

Je suis tout disposé aussi à aider aux tests ou à ouvrir mon accès si besoin, j’ai une PAC air/air avec 4 splits :slightly_smiling_face:

bonjour,

je n’ai pas compris non plus j’avais déjà mqtt manager j’ai téléchargé docker et la je bloque.

++