Problème de connexion avec le plugin LG Smart Thinq

Ces étapes, en français pour Jeedom

dans ce répertoire, il faut le créer et tu peux utiliser l’éditeur de fichier de Jeedom pour créer le répertoire et le fichier : /var/www/html/plugins/docker2/data/config/thinq2mqtt/

Le 1er il faut le faire en ssh, parce que tu dois écrire dans le log (copier l’URL, aller t’identifier sur le portail LG, puis copier l’URL avec le token et la copier dans le log du container) (shift + insert pour coller dans ssh). Ce container est temporaire et permet juste d’initialiser la connexion. Il faut d’abord être dans le répertoire créé à l’étape d’avant :
cd /var/www/html/plugins/docker2/data/config/thinq2mqtt/
puis go :

docker run -ti --rm -e "TZ=Europe/Paris" -v=$PWD/state.json:/home/app/state.json pifou25/thinq2mqtt init

Le 2e docker run, à tester dans le plugin pour voir ? Sinon, en ssh aussi…

docker run -e "TZ=Europe/Paris" -d --name thinq2mqtt -v=$PWD/state.json:/home/app/state.json pifou25/thinq2mqtt
1 « J'aime »

Merci pour ces précisions. Pour le moment j’ai réussi à créer le fichier json mais j’arrive pas à lancer le premier docker: déjà ça tourne pendant une heure pour télécharger et a la fin j’ai un message « unexpected EOF ». Il faut que je réessaie.

Édit : j’ai réussi ! J’ai remarqué que tu avais modifié les commandes de docker run sur le wiki hier midi, et j’utilisais encore les anciennes. Je sais pas si c’est ça mais ça a été beaucoup plus rapide, et successful : j’ai un docker maintenant sans Docker Management :partying_face:.
Bon ok il n’a aucune commande et je ne sais pas quoi en faire mais c’est déjà beaucoup mieux!

Édit 2: les commandes sont apparues et j’ai pu le démarrer !

Bon du coup j’ai bien mon conteneur thinq2mqtt créé dans Docker Management et j’ai pu le démarrer (statut = running). Mais je sais même pas si le deuxième « docker run » a fonctionné, y a moyen de le savoir ? Et après je sais pas trop quoi faire.
J’ai créé un équipement dans Jmqtt abonné au topic « thins » comme expliqué par @G4uth mais j’ai un message d’erreur quand j’essaie de créer une commande event/lastUpdate.
Voilà où j’en suis :smiling_face_with_tear:. Si vous savez me guider pour la suite je suis open ! Par exemple je sais pas où regarder les logs que voit g4uth, comment avoir les messages du mosquitto_sub (en ssh? Il faut installer qqch ?), ni comment où as trouvé le nom « climatiseur » pour tes topics.
Merci à vous 2 pour votre aide !

Bravo :slight_smile: tu a donc réussi à copier / coller l’URL de token dans le 1er container, qui s’est terminé de suite après ? Celui-ci, c’est comme mission impossible il s’auto-détruit à la fin.
Le 2e docker run a certainement fonctionné puisque le conteneur tourne, tu peux voir ses logs dans le plugin docker management avec le bouton dans la page Equipement de ton conteneur Logs conteneur
ou bien avec cette commande SSH:
docker logs thinq2mqtt
Pour MQTT je te conseille d’installer sur ton propre pc MQTT-explorer et le connecter sur ton broker MQTT, il va surveiller en direct tout ce qui passe.

1 « J'aime »

Lance toi, crée le fichier json, puis démarre le 1er conteneur pour configurer le token, et te connecter sur le cloud LG… suis la doc et dis moi où tu plante, j’essaye de la mettre à jour avec vos retours :slight_smile:

Première remarque sur la doc : il faut se connecter en root pour pouvoir lancer les dockers run :wink: . En tous cas chez moi c’était le cas.

Aaah j’avais raté ce bouton Log conteneurs (je fais beaucoup de chosessur mon téléphone et c’est pas évident).
Oui j’ai réussi à coller l’adresse (on est d’accord que c’est la même que sur ton plugin originel ?).
Du coup voici les logs en question, ça a pas l’air foufou:

2023-10-04T22:21:36.569004152Z 	at java.base/java.security.AccessController.doPrivileged(Native Method)
2023-10-04T22:21:36.569023694Z 	at io.netty.util.internal.PlatformDependent0.(PlatformDependent0.java:326)
2023-10-04T22:21:36.569044110Z 	at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:289)
2023-10-04T22:21:36.569064235Z 	at io.netty.util.internal.PlatformDependent.(PlatformDependent.java:92)
2023-10-04T22:21:36.569084360Z 	at io.netty.util.NetUtil$1.run(NetUtil.java:260)
2023-10-04T22:21:36.569104194Z 	at io.netty.util.NetUtil$1.run(NetUtil.java:253)
2023-10-04T22:21:36.569123735Z 	at java.base/java.security.AccessController.doPrivileged(Native Method)
2023-10-04T22:21:36.569142694Z 	at io.netty.util.NetUtil.(NetUtil.java:253)
2023-10-04T22:21:36.569238944Z 	at com.hivemq.client.internal.util.InetSocketAddressUtil.create(InetSocketAddressUtil.java:32)
2023-10-04T22:21:36.569262569Z 	at com.hivemq.client.internal.mqtt.MqttClientTransportConfigImpl.(MqttClientTransportConfigImpl.java:34)
2023-10-04T22:21:36.569283569Z 	at com.hivemq.client.internal.mqtt.MqttRxClientBuilderBase.(MqttRxClientBuilderBase.java:46)
2023-10-04T22:21:36.569303402Z 	at com.hivemq.client.internal.mqtt.MqttRxClientBuilderBase$Choose.(MqttRxClientBuilderBase.java:216)
2023-10-04T22:21:36.569324986Z 	at com.hivemq.client.mqtt.MqttClient.builder(MqttClient.java:59)
2023-10-04T22:21:36.569346569Z 	at com.hivemq.client.mqtt.MqttClient$builder.call(Unknown Source)
2023-10-04T22:21:36.569366111Z 	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
2023-10-04T22:21:36.569386236Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
2023-10-04T22:21:36.569415694Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130)
2023-10-04T22:21:36.569435819Z 	at Mqtt.connect(Mqtt.groovy:50)
2023-10-04T22:21:36.569454486Z 	at Mqtt$connect.call(Unknown Source)
2023-10-04T22:21:36.569473736Z 	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
2023-10-04T22:21:36.569493569Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
2023-10-04T22:21:36.569513403Z 	at ThinqMqttProxy.doRun(ThinqMqttProxy.groovy:41)
2023-10-04T22:21:36.569532653Z 	at ThinqMqttProxy.main(ThinqMqttProxy.groovy:18)
2023-10-04T22:21:36.571484781Z 00:21:36.570 [main] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.(long, int): unavailable
2023-10-04T22:21:36.573991078Z 00:21:36.572 [main] DEBUG i.n.util.internal.PlatformDependent - sun.misc.Unsafe: available
2023-10-04T22:21:36.653072849Z 00:21:36.651 [main] DEBUG i.n.util.internal.PlatformDependent - maxDirectMemory: 1012924416 bytes (maybe)
2023-10-04T22:21:36.655677729Z 00:21:36.654 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.tmpdir: /tmp (java.io.tmpdir)
2023-10-04T22:21:36.658159817Z 00:21:36.657 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
2023-10-04T22:21:36.665523539Z 00:21:36.664 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: -1 bytes
2023-10-04T22:21:36.668329669Z 00:21:36.666 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
2023-10-04T22:21:36.674446806Z 00:21:36.673 [main] DEBUG io.netty.util.internal.CleanerJava9 - java.nio.ByteBuffer.cleaner(): available
2023-10-04T22:21:36.677145602Z 00:21:36.675 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
2023-10-04T22:21:36.687676830Z 00:21:36.686 [main] DEBUG io.netty.util.NetUtil - /proc/sys/net/core/somaxconn: 4096
2023-10-04T22:21:37.303809805Z 00:21:37.300 [main] INFO  Mqtt - starting connection the server mqtt://localhost:1883...
2023-10-04T22:21:37.993759667Z 00:21:37.992 [main] DEBUG i.n.c.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 12
2023-10-04T22:21:38.072083979Z 00:21:38.070 [main] DEBUG i.n.u.i.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
2023-10-04T22:21:38.074255733Z 00:21:38.073 [main] DEBUG i.n.u.i.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
2023-10-04T22:21:38.110772467Z 00:21:38.107 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
2023-10-04T22:21:38.111375343Z 00:21:38.110 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
2023-10-04T22:21:38.156784136Z 00:21:38.155 [main] DEBUG i.n.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
2023-10-04T22:21:38.181273681Z 00:21:38.180 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@288a4658
2023-10-04T22:21:38.190415990Z 00:21:38.184 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@470a9030
2023-10-04T22:21:38.190548698Z 00:21:38.187 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@66d57c1b
2023-10-04T22:21:38.191706909Z 00:21:38.190 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@27494e46
2023-10-04T22:21:38.194754539Z 00:21:38.193 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@d59970a
2023-10-04T22:21:38.197682003Z 00:21:38.196 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@1e411d81
2023-10-04T22:21:38.201081676Z 00:21:38.199 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@53b98ff6
2023-10-04T22:21:38.204248307Z 00:21:38.203 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@3e6fd0b9
2023-10-04T22:21:38.207477646Z 00:21:38.206 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@7fcff1b9
2023-10-04T22:21:38.210557944Z 00:21:38.209 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@697446d4
2023-10-04T22:21:38.213591574Z 00:21:38.212 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@76adb233
2023-10-04T22:21:38.216735747Z 00:21:38.215 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@36074e47
2023-10-04T22:21:38.326917117Z 00:21:38.325 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
2023-10-04T22:21:38.329553789Z 00:21:38.328 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
2023-10-04T22:21:38.367997860Z 00:21:38.367 [main] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible: true
2023-10-04T22:21:38.369958739Z 00:21:38.369 [main] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: true
2023-10-04T22:21:38.375200582Z 00:21:38.374 [main] DEBUG i.n.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@9f6e406
2023-10-04T22:21:38.420687833Z 00:21:38.419 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 10
2023-10-04T22:21:38.422955837Z 00:21:38.422 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 10
2023-10-04T22:21:38.425159091Z 00:21:38.424 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
2023-10-04T22:21:38.427850013Z 00:21:38.426 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
2023-10-04T22:21:38.430250142Z 00:21:38.429 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
2023-10-04T22:21:38.432536813Z 00:21:38.431 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.tinyCacheSize: 512
2023-10-04T22:21:38.435190110Z 00:21:38.433 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
2023-10-04T22:21:38.437341739Z 00:21:38.436 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
2023-10-04T22:21:38.439488409Z 00:21:38.438 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
2023-10-04T22:21:38.442286956Z 00:21:38.440 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
2023-10-04T22:21:38.444154793Z 00:21:38.443 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
2023-10-04T22:21:38.446538297Z 00:21:38.445 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: true
2023-10-04T22:21:38.454638771Z 00:21:38.447 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
2023-10-04T22:21:38.482635323Z 00:21:38.481 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: pooled
2023-10-04T22:21:38.484620410Z 00:21:38.483 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 0
2023-10-04T22:21:38.486515663Z 00:21:38.485 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
2023-10-04T22:21:38.881348478Z 00:21:38.880 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 1 (auto-detected)
2023-10-04T22:21:38.893885501Z 00:21:38.893 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: 02:42:ac:ff:fe:11:00:02 (auto-detected)
2023-10-04T22:21:39.303070093Z 00:21:39.302 [main] INFO  Mqtt - connected!
2023-10-04T22:21:39.358645529Z 00:21:39.357 [main] DEBUG ThinQ_Integration - ThinQ generateKeyAndCSR()
2023-10-04T22:21:42.762234710Z 00:21:42.761 [main] DEBUG ThinQ_Integration - ThinQ getOAuthDetailsFromUrl() - [code:, url:https://gb.lgeapi.com/, user_number:]
2023-10-04T22:21:42.777553363Z 00:21:42.776 [main] DEBUG ThinQ_Integration - ThinQ getAccessToken([code:, grant_type:authorization_code, redirect_uri:https://kr.m.lgaccount.com/login/iabClose])
2023-10-04T22:21:44.628727793Z 00:21:44.627 [main] ERROR ThinQ_Integration - ThinQ getAccessToken - ResponseException
2023-10-04T22:21:44.635758431Z 00:21:44.634 [main] ERROR ThinQ_Integration - ThinQ getAccessToken([code:, grant_type:authorization_code, redirect_uri:https://kr.m.lgaccount.com/login/iabClose]) - OAuth error: LG.OAUTH.EC.1005: Invalid request parameters.
2023-10-04T22:21:44.648306829Z 00:21:44.647 [main] WARN  ThinQ_Integration - ThinQ Unable to validate OAuth Code LG.OAUTH.EC.1005. Click next to return to the main page and try again
2023-10-04T22:21:44.736355034Z Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: ThinQ_Integration.dynamicPage() is applicable for argument types: (LinkedHashMap, ThinQ_Integration$_returnErrorPage_closure5) values: [[name:prefError, title:Error Occurred, nextPage:prefMain, uninstall:false, ...], ...]
2023-10-04T22:21:44.737092952Z 	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:70)
2023-10-04T22:21:44.737297702Z 	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:80)
2023-10-04T22:21:44.737999745Z 	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
2023-10-04T22:21:44.738171245Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
2023-10-04T22:21:44.738340121Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194)
2023-10-04T22:21:44.738374246Z 	at ThinQ_Integration.returnErrorPage(ThinQ_Integration.groovy:305)
2023-10-04T22:21:44.738830413Z 	at ThinQ_Integration$returnErrorPage$1.callCurrent(Unknown Source)
2023-10-04T22:21:44.738936580Z 	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
2023-10-04T22:21:44.738965455Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
2023-10-04T22:21:44.738988205Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194)
2023-10-04T22:21:44.739010080Z 	at ThinQ_Integration.prefDevices(ThinQ_Integration.groovy:266)
2023-10-04T22:21:44.739031955Z 	at ThinQ_Integration$prefDevices.call(Unknown Source)
2023-10-04T22:21:44.739053830Z 	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
2023-10-04T22:21:44.739627248Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
2023-10-04T22:21:44.739746540Z 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130)
2023-10-04T22:21:44.739774832Z 	at ThinqMqttProxy.doRun(ThinqMqttProxy.groovy:42)
2023-10-04T22:21:44.739796998Z 	at ThinqMqttProxy.main(ThinqMqttProxy.groovy:18)

Je vais essayer d’installer Mqqt-listener mais j’ai pas de pc sous la main pour le moment :clown_face:

Merci pour ton support en tous cas, c’est cool.

Non justement pas, c’est un autre portail, qui ressemble, mais dédié à l’api v2. Je pense que c’est ce qu’il essaye d’exprimer dans son log, tu n’es pas connecté :
WARN ThinQ_Integration - ThinQ Unable to validate OAuth Code LG.OAUTH.EC.1005. Click next to return to the main page and try again

Tu te connecte en ssh avec ton tel aussi ? je suis admiratif ! :star_struck:

1 « J'aime »

Aaah ok bah voilà j’ai mal lu l’adresse où se logger :clown_face: Quel idiot
Il faut que je refasse toute l’install du docker depuis le début pour remettre la bonne URL ?
Ouais j’ai trouvé une appli ssh qui fonctionne à peu près, ça fait le job à la hauteur de mes compétences :sweat_smile:

oui, refais tout :

  • supprime le conteneur existant (possible avec le plugin en principe)
  • vérifie le fichier state.json à mon avis il a évolué donc il vaut mieux le remettre d’équerre.
  • Ensuite, 1er container l’initialisation, avec le bon portail et la bonne URL :smiley:
  • Enfin le 2e container
    et voilà :slight_smile:

Merci pour ton aide. J’ai supprimé le docker (en ssh via docker rm, ça avait pas l’air de marcher via le plugin) et j’ai tout relancé cette fois en suivant la bon URL :slight_smile:
Les nouveaux logs (3 dernières lignes seulement ):

2023-10-05T18:42:59.155681161Z 20:42:59.155 [Timer-0] DEBUG Device - sèche-linge processStateData([State:@WM_STATE_POWER_OFF_W, processState:@WM_STATE_DETECTING_W, Reserve_Time_H:0.0, Reserve_Time_M:0.0, Remain_Time_H:0.0, Remain_Time_M:0.0, Initial_Time_H:0.0, Initial_Time_M:0.0, DryLevel:@WM_TERM_NO_SELECT_W, ecoHybrid:@WM_TERM_NO_SELECT_W, reservation:@CP_OFF_EN_W, antiCrease:@CP_OFF_EN_W, childLock:@CP_OFF_EN_W, selfClean:@CP_OFF_EN_W, dampDryBeep:@CP_OFF_EN_W, handIron:@CP_OFF_EN_W, remoteStart:@CP_OFF_EN_W, initialBit:INITIAL_BIT_OFF, standby:STANDBY_OFF, dnnReady:DNNREADY_OFF, courseDryer24inchBase:NOT_SELECTED, smartCourseDryer24inchBase:NOT_SELECTED, downloadedCourseDryer24inchBase:Easy Iron_촉촉건조, Error:ERROR_NOERROR])
2023-10-05T18:42:59.180618118Z 20:42:59.179 [Timer-0] INFO  Device - {name=lastUpdate, value=2023-10-05T20:42:59+0200}
2023-10-05T18:42:59.192054969Z 20:42:59.191 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/lastUpdate message 2023-10-05T20:42:59+0200

Ça commence à sentir bon tout ça, ça ressemble à ce qu’a @G4uth . Mais pour autant j’ai essayé de créer un équipement jmqtt inscrit au topic thinq avec une commande sèche-linge/event/lastUpdate et ça marche pas …

Bon malgré ces fins de logs prometteurs je vois rien passer sur Mqtt explorer (enfin une version sur mobile :sweat_smile:) pour le topic thinq. Je vois bien tous les autres topics (zigbee2mqtt par exemple) donc j’y suis bien connecté.
Dans les logs du conteneur plus haut je vois ces lignes :

2023-10-05T18:42:49.063870503Z 20:42:49.062 [main] INFO  Mqtt - Unencrypted key - no password needed
2023-10-05T18:42:49.820018134Z 20:42:49.818 [main] INFO  Mqtt - starting connection the server ssl://a3phael99lf879-ats.iot.eu-west-1.amazonaws.com:8883...
2023-10-05T18:42:49.827695688Z 20:42:49.825 [main] INFO  Mqtt - connected!

C’est bizarre comme adresse de connexion a3phael…amazonaws non? Ça devrait pas être mon broker local ici ?

Bon je voudrais pas avoir l’air de me l’a raconter mais après une douzième installation du docker j’ai enfin des messages publiés sur le topic thinq !
J’avais mis l’adresse localhost pour le broker mqqt, et j’imagine que depuis un docker il fallait être plus explicite donc j’ai remplacé par l’adresse de jeedom. Et ça marche !
Pour info voici les logs de mon docker :

2023-10-05T22:35:49.456361067Z N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
2023-10-05T22:35:49.456373900Z o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
2023-10-05T22:35:49.456385275Z 5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
2023-10-05T22:35:49.456396650Z rqXRfboQnoZsG4q5WTP468SQvvG5
2023-10-05T22:35:49.456407734Z -----END CERTIFICATE-----
2023-10-05T22:35:49.456418526Z
2023-10-05T22:35:49.919107262Z 00:35:49.918 [main] INFO  Mqtt - Unencrypted key - no password needed
2023-10-05T22:35:50.292558206Z 00:35:50.291 [main] INFO  Mqtt - starting connection the server ssl://a3phael99lf879-ats.iot.eu-west-1.amazonaws.com:8883...
2023-10-05T22:35:50.299054309Z 00:35:50.296 [main] INFO  Mqtt - connected!
2023-10-05T22:35:50.369137958Z 00:35:50.367 [com.hivemq.client.mqtt-1-2] DEBUG io.netty.handler.ssl.OpenSsl - netty-tcnative not in the classpath; OpenSslEngine will be unavailable.
2023-10-05T22:35:50.393313423Z 00:35:50.392 [com.hivemq.client.mqtt-1-2] DEBUG io.netty.handler.ssl.JdkSslContext - Default protocols (JDK): [TLSv1.2]
2023-10-05T22:35:50.396805520Z 00:35:50.395 [com.hivemq.client.mqtt-1-2] DEBUG io.netty.handler.ssl.JdkSslContext - Default cipher suites (JDK): [TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384]
2023-10-05T22:35:50.405045025Z 00:35:50.404 [main] DEBUG ThinQ_Integration - ThinQ registerRTIMonitoring(ThinQ_Dryer@6dee8ae6)
2023-10-05T22:35:50.408064406Z 00:35:50.407 [main] DEBUG ThinQ_Integration - ThinQ getDeviceThinQVersion(ThinQ_Dryer@6dee8ae6)
2023-10-05T22:35:50.510890781Z 00:35:50.509 [Timer-0] DEBUG ThinQ_Integration - ThinQ lgAPIGet(https://eic-service.lgthinq.com:46030/v1/service/devices/5e82c0a9-a97d-1df8-a16a-b8165f3130db)
2023-10-05T22:35:50.515492770Z 00:35:50.514 [Timer-0] DEBUG ThinQ_Integration - ThinQ getStandardHeaders() - headers: [Accept:application/json, x-client-id:d347defbf90e4195ace4dc4ef0c6ee7bb7b73424efd347b8a754762c671ddd5d, x-country-code:FR, x-language-code:fr-FR, x-message-id:VJMcbWuRSy2XMqMupH30kA, x-api-key:VGhpblEyLjAgU0VSVklDRQ==, x-service-code:SVC202, x-service-phase:OP, x-thinq-app-level:PRD, x-thinq-app-os:ANDROID, x-thinq-app-type:NUTS, x-thinq-app-ver:3.0.1700, Host:aic-service.lgthinq.com:46030, x-emp-token:0c129a9b0dc9a345b34415df679b6b095fe3640e1784320a821490306636bc03c066fbd5eb19b588db121baaf494c5d4, x-user-no:FR2306046555148]
2023-10-05T22:35:50.528641603Z 00:35:50.527 [main] INFO  ThinqMqttProxy - Waiting forever...
2023-10-05T22:35:50.936440921Z 00:35:50.935 [Timer-0] TRACE ThinQ_Integration - ThinQ lgAPIGet(https://eic-service.lgthinq.com:46030/v1/service/devices/5e82c0a9-a97d-1df8-a16a-b8165f3130db) - [appType:NUTS, modelAppType:NUTS, modelCountryCode:WW, countryCode:FR, modelName:RH90V9_WW, deviceType:202, deviceCode:LA03, alias:Sèche-linge, deviceId:5e82c0a9-a97d-1df8-a16a-b8165f3130db, fwVer:, imageFileName:home_appliances_img_wmdrum.png, ssid:La-box-de-buch, softapId:, softapPass:, macAddress:, networkType:02, timezoneCode:Europe/Paris, timezoneCodeAlias:Europe/Paris, utcOffset:1, utcOffsetDisplay:+01:00, dstOffset:2, dstOffsetDisplay:+02:00, curOffset:2, curOffsetDisplay:+02:00, sdsGuide:{"deviceCode":"LA03"}, newRegYn:N, remoteControlType:, userNo:FR2306046555148, tftYn:N, deviceState:E, snapshot:[washerDryer:[courseDryer24inchBase:NOT_SELECTED, initialBit:INITIAL_BIT_OFF, standby:STANDBY_OFF, initialTimeMinute:0.0, processState:DETECTING, dnn_temp:25, smartPairing:SMARTPAIRING_OFF, error:ERROR_NO, dryLevel:NO_DRYLEVEL, dnn_precipitationProbability:7, downloadedCourseDryer24inchBase:EASYIRON, dnn_washingIndex:80, dnnReady:DNNREADY_OFF, remainTimeHour:0.0, handIron:HANDIRON_OFF, reservation:RESERVATION_OFF, state:POWEROFF, antiCrease:ANTICREASE_OFF, reserveTimeMinute:0.0, smartCourseDryer24inchBase:NOT_SELECTED, washingIndex:80, dnn_humidity:62, dnn_dust:-, dampDryBeep:DAMPDRYBEEP_OFF, ecoHybrid:NO_ECOHYBRID, remainTimeMinute:0.0, reserveTimeHour:0.0, childLock:CHILDLOCK_OFF, remoteStart:REMOTE_START_OFF, selfClean:SELFCLEAN_OFF, initialTimeHour:0.0], fwUpgradeInfo:[upgSched:[upgUtc:0, cmd:none]], static:[deviceType:202, countryCode:FR], meta:[allDeviceInfoUpdate:true, messageId:0pUQTMEWQn-gVRShD0giVw], mid:9692.0, online:true, timestamp:1696516634988], online:true, platformType:thinq2, area:131931, regDt:20230605151559, blackboxYn:Y, modelProtocol:courseDryer24inchBase, receipeVersion:0, activeSaving:OFF, smartCareV2:OFF, order:0, nlpAlias:none, drServiceYn:N, fwInfoList:[[checksum:013F0FE1, order:2.0, partNumber:SAA38490529], [checksum:00000358, order:1.0, partNumber:SAA39934945]], brandType:common, regDtUtc:20230605131559, regIndex:0, groupableYn:N, controllableYn:N, combinedProductYn:N, masterYn:Y, controlGuideType:TYPE4, initDevice:false, firebaseLogKey:T:DR-S:24-U:0-P:TITAN2, manufacture:[inventoryOrg:DFZ_OEM_SEONGCHEOL, macAddress:B8:16:5F:31:30:DB, manufactureModel:RH90V5AV5N.BBWQKFS, manufacturedAt:2022-12-20T07:23:03+00:00, registeredAt:2023-01-06T04:49:37.252305+00:00, salesModel:RH9V50WH.BBWQKFS, serialNo:212STLJ0E000], upgradableYn:N, autoFwDownloadYn:N, csUpgradableYn:N, foodPoisonIndex:0, tclcount:0]
2023-10-05T22:35:50.945918487Z 00:35:50.944 [Timer-0] DEBUG ThinQ_Integration - {appType=NUTS, modelAppType=NUTS, modelCountryCode=WW, countryCode=FR, modelName=RH90V9_WW, deviceType=202, deviceCode=LA03, alias=Sèche-linge, deviceId=5e82c0a9-a97d-1df8-a16a-b8165f3130db, fwVer=, imageFileName=home_appliances_img_wmdrum.png, ssid=La-box-de-buch, softapId=, softapPass=, macAddress=, networkType=02, timezoneCode=Europe/Paris, timezoneCodeAlias=Europe/Paris, utcOffset=1, utcOffsetDisplay=+01:00, dstOffset=2, dstOffsetDisplay=+02:00, curOffset=2, curOffsetDisplay=+02:00, sdsGuide={"deviceCode":"LA03"}, newRegYn=N, remoteControlType=, userNo=FR2306046555148, tftYn=N, deviceState=E, snapshot={washerDryer={courseDryer24inchBase=NOT_SELECTED, initialBit=INITIAL_BIT_OFF, standby=STANDBY_OFF, initialTimeMinute=0.0, processState=DETECTING, dnn_temp=25, smartPairing=SMARTPAIRING_OFF, error=ERROR_NO, dryLevel=NO_DRYLEVEL, dnn_precipitationProbability=7, downloadedCourseDryer24inchBase=EASYIRON, dnn_washingIndex=80, dnnReady=DNNREADY_OFF, remainTimeHour=0.0, handIron=HANDIRON_OFF, reservation=RESERVATION_OFF, state=POWEROFF, antiCrease=ANTICREASE_OFF, reserveTimeMinute=0.0, smartCourseDryer24inchBase=NOT_SELECTED, washingIndex=80, dnn_humidity=62, dnn_dust=-, dampDryBeep=DAMPDRYBEEP_OFF, ecoHybrid=NO_ECOHYBRID, remainTimeMinute=0.0, reserveTimeHour=0.0, childLock=CHILDLOCK_OFF, remoteStart=REMOTE_START_OFF, selfClean=SELFCLEAN_OFF, initialTimeHour=0.0}, fwUpgradeInfo={upgSched={upgUtc=0, cmd=none}}, static={deviceType=202, countryCode=FR}, meta={allDeviceInfoUpdate=true, messageId=0pUQTMEWQn-gVRShD0giVw}, mid=9692.0, online=true, timestamp=1696516634988}, online=true, platformType=thinq2, area=131931, regDt=20230605151559, blackboxYn=Y, modelProtocol=courseDryer24inchBase, receipeVersion=0, activeSaving=OFF, smartCareV2=OFF, order=0, nlpAlias=none, drServiceYn=N, fwInfoList=[{checksum=013F0FE1, order=2.0, partNumber=SAA38490529}, {checksum=00000358, order=1.0, partNumber=SAA39934945}], brandType=common, regDtUtc=20230605131559, regIndex=0, groupableYn=N, controllableYn=N, combinedProductYn=N, masterYn=Y, controlGuideType=TYPE4, initDevice=false, firebaseLogKey=T:DR-S:24-U:0-P:TITAN2, manufacture={inventoryOrg=DFZ_OEM_SEONGCHEOL, macAddress=B8:16:5F:31:30:DB, manufactureModel=RH90V5AV5N.BBWQKFS, manufacturedAt=2022-12-20T07:23:03+00:00, registeredAt=2023-01-06T04:49:37.252305+00:00, salesModel=RH9V50WH.BBWQKFS, serialNo=212STLJ0E000}, upgradableYn=N, autoFwDownloadYn=N, csUpgradableYn=N, foodPoisonIndex=0, tclcount=0}
2023-10-05T22:35:50.953502524Z 00:35:50.952 [Timer-0] DEBUG ThinQ_Integration - ThinQ findMQTTDataNode([washerDryer:[courseDryer24inchBase:NOT_SELECTED, initialBit:INITIAL_BIT_OFF, standby:STANDBY_OFF, initialTimeMinute:0.0, processState:DETECTING, dnn_temp:25, smartPairing:SMARTPAIRING_OFF, error:ERROR_NO, dryLevel:NO_DRYLEVEL, dnn_precipitationProbability:7, downloadedCourseDryer24inchBase:EASYIRON, dnn_washingIndex:80, dnnReady:DNNREADY_OFF, remainTimeHour:0.0, handIron:HANDIRON_OFF, reservation:RESERVATION_OFF, state:POWEROFF, antiCrease:ANTICREASE_OFF, reserveTimeMinute:0.0, smartCourseDryer24inchBase:NOT_SELECTED, washingIndex:80, dnn_humidity:62, dnn_dust:-, dampDryBeep:DAMPDRYBEEP_OFF, ecoHybrid:NO_ECOHYBRID, remainTimeMinute:0.0, reserveTimeHour:0.0, childLock:CHILDLOCK_OFF, remoteStart:REMOTE_START_OFF, selfClean:SELFCLEAN_OFF, initialTimeHour:0.0], fwUpgradeInfo:[upgSched:[upgUtc:0, cmd:none]], static:[deviceType:202, countryCode:FR], meta:[allDeviceInfoUpdate:true, messageId:0pUQTMEWQn-gVRShD0giVw], mid:9692.0, online:true, timestamp:1696516634988])
2023-10-05T22:35:51.011254894Z 00:35:51.010 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(POWEROFF, [dataType:enum, valueMapping:[POWEROFF:[index:0, label:@WM_STATE_POWER_OFF_W], INITIAL:[index:1, label:@WM_STATE_INITIAL_W], RUNNING:[index:2, label:@WM_STATE_DRYING_W], PAUSE:[index:3, label:@WM_STATE_PAUSE_W], END:[index:4, label:@WM_STATE_END_W], ERROR:[index:5, label:@WM_STATE_ERROR_W], AUDIBLE_DIAGNOSIS:[index:8, label:@WM_STATE_SMART_DIAGNOSIS_W], RESERVED:[index:100, label:@WM_STATE_RESERVE_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.014721407Z 00:35:51.013 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(DETECTING, [dataType:enum, valueMapping:[DETECTING:[index:0, label:@WM_STATE_DETECTING_W], STEAM:[index:1, label:@WM_STATE_STEAM_W], DRY_LV1:[index:2, label:@WM_STATE_DRY_W], DRY_LV2:[index:3, label:@WM_STATE_DRY_W], DRY_LV3:[index:4, label:@WM_STATE_DRY_W], COOL:[index:5, label:@WM_STATE_COOLING_W], ANTI_CREASE:[index:6, label:@WM_STATE_ANTI_CREASE_W], END:[index:7, label:@WM_STATE_END_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.020057533Z 00:35:51.019 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(0.0, [dataType:range, label:@WM_DRY24_STATE_RESERVATION_W, valueMapping:[min:3, max:19]], modelInfo[FILTERED])
2023-10-05T22:35:51.023781884Z 00:35:51.022 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(0.0, [dataType:range, valueMapping:[min:0, max:59]], modelInfo[FILTERED])
2023-10-05T22:35:51.027020893Z 00:35:51.025 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(0.0, [dataType:range, valueMapping:[min:0, max:30]], modelInfo[FILTERED])
2023-10-05T22:35:51.030392905Z 00:35:51.029 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(0.0, [dataType:range, valueMapping:[min:0, max:59]], modelInfo[FILTERED])
2023-10-05T22:35:51.033755874Z 00:35:51.032 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(0.0, [dataType:range, valueMapping:[min:0, max:30]], modelInfo[FILTERED])
2023-10-05T22:35:51.037522226Z 00:35:51.036 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(0.0, [dataType:range, valueMapping:[min:0, max:59]], modelInfo[FILTERED])
2023-10-05T22:35:51.041417495Z 00:35:51.040 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(NO_DRYLEVEL, [dataType:enum, label:@WM_DRY24_BUTTON_DRY_LEVEL_W, default:NO_DRYLEVEL, valueMapping:[NO_DRYLEVEL:[index:0, label:@WM_TERM_NO_SELECT_W], DRYLEVEL_IRON:[index:1, label:@WM_DRY24_DRY_LEVEL_IRON_W], DRYLEVEL_CUPBOARD:[index:3, label:@WM_DRY24_DRY_LEVEL_CUPBOARD_W], DRYLEVEL_EXTRA:[index:4, label:@WM_DRY24_DRY_LEVEL_EXTRA_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.044427460Z 00:35:51.043 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(NO_ECOHYBRID, [dataType:enum, label:@WM_DRY24_BUTTON_ECO_HYBRID_W, default:NO_ECOHYBRID, valueMapping:[NO_ECOHYBRID:[index:0, label:@WM_TERM_NO_SELECT_W], ECOHYBRID_ECO:[index:1, label:@WM_DRY24_ECO_HYBRID_ENERGY_W], ECOHYBRID_NORMAL:[index:2, label:@WM_DRY24_ECO_HYBRID_NORMAL_W], ECOHYBRID_TURBO:[index:3, label:@WM_DRY24_ECO_HYBRID_TIME_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.048233561Z 00:35:51.047 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(RESERVATION_OFF, [dataType:enum, default:RESERVATION_OFF, label:@WM_DRY24_STATE_RESERVATION_W, valueMapping:[RESERVATION_OFF:[index:0, label:@CP_OFF_EN_W], RESERVATION_ON:[index:1, label:@CP_ON_EN_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.051527405Z 00:35:51.050 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(ANTICREASE_OFF, [dataType:enum, default:ANTICREASE_OFF, label:@WM_DRY24_BUTTON_ANTI_CREASE_W, valueMapping:[ANTICREASE_OFF:[index:0, label:@CP_OFF_EN_W], ANTICREASE_ON:[index:1, label:@CP_ON_EN_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.055085503Z 00:35:51.053 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(CHILDLOCK_OFF, [dataType:enum, default:CHILDLOCK_OFF, label:@WM_DRY24_BUTTON_CHILD_LOCK_W, valueMapping:[CHILDLOCK_OFF:[index:0, label:@CP_OFF_EN_W], CHILDLOCK_ON:[index:1, label:@CP_ON_EN_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.058057925Z 00:35:51.057 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(SELFCLEAN_OFF, [dataType:enum, default:SELFCLEAN_OFF, label:@WM_DRY24_BUTTON_SELF_CLEANING_W, valueMapping:[SELFCLEAN_OFF:[index:0, label:@CP_OFF_EN_W], SELFCLEAN_ON:[index:1, label:@CP_ON_EN_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.060752675Z 00:35:51.059 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(DAMPDRYBEEP_OFF, [dataType:enum, default:DAMPDRYBEEP_OFF, label:@WM_DRY24_BUTTON_DAMP_DRY_BEEP_W, valueMapping:[DAMPDRYBEEP_OFF:[index:0, label:@CP_OFF_EN_W], DAMPDRYBEEP_ON:[index:1, label:@CP_ON_EN_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.063636429Z 00:35:51.062 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(HANDIRON_OFF, [dataType:enum, default:HANDIRON_OFF, label:@WM_DRY24_BUTTON_HAND_IRON_W, valueMapping:[HANDIRON_OFF:[index:0, label:@CP_OFF_EN_W], HANDIRON_ON:[index:1, label:@CP_ON_EN_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.066204886Z 00:35:51.065 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(REMOTE_START_OFF, [dataType:enum, default:REMOTE_START_OFF, label:@WM_DRY24_REMOTE_START_W, valueMapping:[REMOTE_START_OFF:[index:0, label:@CP_OFF_EN_W], REMOTE_START_ON:[index:1, label:@CP_ON_EN_W]]], modelInfo[FILTERED])
2023-10-05T22:35:51.068882429Z 00:35:51.068 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(INITIAL_BIT_OFF, [dataType:Boolean, default:INITIAL_BIT_OFF, valueMapping:[INITIAL_BIT_OFF:[index:0, label:INITIAL_BIT_OFF], INITIAL_BIT_ON:[index:1, label:INITIAL_BIT_ON]]], modelInfo[FILTERED])
2023-10-05T22:35:51.071618014Z 00:35:51.070 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(STANDBY_OFF, [dataType:Boolean, default:STANDBY_OFF, valueMapping:[STANDBY_OFF:[index:0, label:STANDBY_OFF], STANDBY_ON:[index:1, label:STANDBY_ON]]], modelInfo[FILTERED])
2023-10-05T22:35:51.074266097Z 00:35:51.073 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(DNNREADY_OFF, [dataType:Boolean, default:DNNREADY_OFF, valueMapping:[DNNREADY_OFF:[index:0, label:DNNREADY_OFF], DNNREADY_ON:[index:1, label:DNNREADY_ON]]], modelInfo[FILTERED])
2023-10-05T22:35:51.076838638Z 00:35:51.076 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(NOT_SELECTED, [ref:Course], modelInfo[FILTERED])
2023-10-05T22:35:51.079589098Z 00:35:51.078 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(NOT_SELECTED, [ref:SmartCourse], modelInfo[FILTERED])
2023-10-05T22:35:51.082059262Z 00:35:51.081 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(EASYIRON, [ref:SmartCourse], modelInfo[FILTERED])
2023-10-05T22:35:51.085359522Z 00:35:51.084 [Timer-0] DEBUG ThinQ_Integration - ThinQ getParsedMqttValue(ERROR_NO, [dataType:enum, valueMapping:[ERROR_NO:[_comment:No Error, index:0, label:ERROR_NOERROR, title:ERROR_NOERROR_TITLE, content:ERROR_NOERROR_CONTENT], ERROR_TE1:[_comment:ERROR_TE1, index:1, label:@WM_US_DRYER_ERROR_TE1_W, title:@WM_US_DRYER_ERROR_TITLE_TE1_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_TE2:[_comment:ERROR_TE2, index:2, label:@WM_US_DRYER_ERROR_TE2_W, title:@WM_US_DRYER_ERROR_TITLE_TE2_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_TE4:[_comment:ERROR_TE4, index:4, label:@WM_US_DRYER_ERROR_TE4_W, title:@WM_US_DRYER_ERROR_TITLE_TE4_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_CE1:[_comment:ERROR_CE1, index:7, label:@WM_US_DRYER_ERROR_CE1_W, title:@WM_US_DRYER_ERROR_TITLE_CE1_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_DRAINMOTOR:[_comment:ERROR_DRAINMOTOR, index:13, label:@WM_US_DRYER_ERROR_OE_W, title:@WM_US_DRYER_ERROR_TITLE_OE_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_EMPTYWATER:[_comment:ERROR_EMPTYWATER, index:14, label:@WM_US_DRYER_ERROR_EMPTYWATER_W, title:@WM_US_DRYER_ERROR_TITLE_EMPTYWATER_W, content:@WM_US_DRYER_ERROR_CONTENT_EMPTYWATER_S], ERROR_DOOR:[_comment:ERROR_DOOR, index:15, label:@WM_US_DRYER_ERROR_DE_DE1_W, title:@WM_US_DRYER_ERROR_TITLE_DE_W, content:@WM_US_DRYER_ERROR_CONTENT_DE_S], ERROR_NOFILTER:[_comment:ERROR_NOFILTER, index:17, label:@WM_US_DRYER_ERROR_NOFILTER_W, title:@WM_US_DRYER_ERROR_NOFILTER_TITLE_W, content:@WM_US_DRYER_ERROR_CONTENT_NOFILTER_S], ERROR_F1:[_comment:ERROR_F1, index:19, label:@WM_US_DRYER_ERROR_F1_W, title:@WM_US_DRYER_ERROR_TITLE_F1_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_LE2:[_comment:ERROR_LE2, index:20, label:@WM_US_DRYER_ERROR_LE2_W, title:@WM_US_DRYER_ERROR_TITLE_LE2_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_AE:[_comment:ERROR_AE, index:21, label:@WM_US_DRYER_ERROR_AE_W, title:@WM_US_DRYER_ERROR_TITLE_AE_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_LE1:[_comment:ERROR_LE1, index:30, label:@WM_US_DRYER_ERROR_LE1_W, title:@WM_US_DRYER_ERROR_TITLE_LE1_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_DE4:[_comment:ERROR_DE4, index:37, label:@WM_WW_FL_ERROR_DE4_W, title:@WM_WW_FL_ERROR_DE4_TITLE_W, content:@WM_US_DRYER_ERROR_CONTENT_TE1_S], ERROR_DE2:[_comment:ERROR_DE2, index:42, label:@WM_WW_FL_ERROR_DE2_W, title:@WM_WW_FL_ERROR_DE2_TITLE_W, content:@WM_WW_FL_ERROR_DE2_CONTENT_S]]], modelInfo[FILTERED])
2023-10-05T22:35:51.088593281Z 00:35:51.087 [Timer-0] DEBUG ThinQ_Integration - ThinQ decodeMQTTMessage([State:@WM_STATE_POWER_OFF_W, processState:@WM_STATE_DETECTING_W, Reserve_Time_H:0.0, Reserve_Time_M:0.0, Remain_Time_H:0.0, Remain_Time_M:0.0, Initial_Time_H:0.0, Initial_Time_M:0.0, DryLevel:@WM_TERM_NO_SELECT_W, ecoHybrid:@WM_TERM_NO_SELECT_W, reservation:@CP_OFF_EN_W, antiCrease:@CP_OFF_EN_W, childLock:@CP_OFF_EN_W, selfClean:@CP_OFF_EN_W, dampDryBeep:@CP_OFF_EN_W, handIron:@CP_OFF_EN_W, remoteStart:@CP_OFF_EN_W, initialBit:INITIAL_BIT_OFF, standby:STANDBY_OFF, dnnReady:DNNREADY_OFF, courseDryer24inchBase:NOT_SELECTED, smartCourseDryer24inchBase:NOT_SELECTED, downloadedCourseDryer24inchBase:Easy Iron_촉촉건조, Error:ERROR_NOERROR])
2023-10-05T22:35:51.096594699Z 00:35:51.095 [Timer-0] DEBUG Device - sèche-linge processStateData([State:@WM_STATE_POWER_OFF_W, processState:@WM_STATE_DETECTING_W, Reserve_Time_H:0.0, Reserve_Time_M:0.0, Remain_Time_H:0.0, Remain_Time_M:0.0, Initial_Time_H:0.0, Initial_Time_M:0.0, DryLevel:@WM_TERM_NO_SELECT_W, ecoHybrid:@WM_TERM_NO_SELECT_W, reservation:@CP_OFF_EN_W, antiCrease:@CP_OFF_EN_W, childLock:@CP_OFF_EN_W, selfClean:@CP_OFF_EN_W, dampDryBeep:@CP_OFF_EN_W, handIron:@CP_OFF_EN_W, remoteStart:@CP_OFF_EN_W, initialBit:INITIAL_BIT_OFF, standby:STANDBY_OFF, dnnReady:DNNREADY_OFF, courseDryer24inchBase:NOT_SELECTED, smartCourseDryer24inchBase:NOT_SELECTED, downloadedCourseDryer24inchBase:Easy Iron_촉촉건조, Error:ERROR_NOERROR])
2023-10-05T22:35:51.125407737Z 00:35:51.124 [Timer-0] INFO  Device - {name=lastUpdate, value=2023-10-06T00:35:51+0200}
2023-10-05T22:35:51.136226700Z 00:35:51.135 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/lastUpdate message 2023-10-06T00:35:51+0200
2023-10-05T22:35:51.142680510Z 00:35:51.141 [com.hivemq.client.mqtt-1-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xe85e5a52, L:/172.17.0.2:49132 - R:a3phael99lf879-ats.iot.eu-west-1.amazonaws.com/52.19.128.14:8883] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
2023-10-05T22:35:51.177775855Z 00:35:51.177 [Timer-0] DEBUG Device - updateDataValue(initialHours, 0.0)
2023-10-05T22:35:51.210020114Z 00:35:51.209 [Timer-0] DEBUG Device - updateDataValue(remainHours, 0.0)
2023-10-05T22:35:51.260847041Z 00:35:51.260 [com.hivemq.client.mqtt-1-2] INFO  Mqtt - Connected
2023-10-05T22:35:51.260980335Z 00:35:51.260 [Timer-0] DEBUG Device - updateDataValue(reserveHours, 0.0)
2023-10-05T22:35:51.302047649Z 00:35:51.301 [Timer-0] INFO  ThinQ_Integration - ThinQ cleanEnumValue(@WM_STATE_POWER_OFF_W, @WM_STATE_) = power off
2023-10-05T22:35:51.305477995Z 00:35:51.304 [Timer-0] INFO  Device - sèche-linge CurrentState: power off
2023-10-05T22:35:51.306500511Z 00:35:51.305 [Timer-0] INFO  Device - {name=currentState, value=power off}
2023-10-05T22:35:51.309330014Z 00:35:51.308 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/currentState message power off
2023-10-05T22:35:51.321383413Z 00:35:51.320 [Timer-0] INFO  Device - sèche-linge Was turned off
2023-10-05T22:35:51.322789268Z 00:35:51.321 [Timer-0] INFO  Device - {name=switch, value=off, descriptionText=Was turned off}
2023-10-05T22:35:51.323981912Z 00:35:51.323 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/switch message off
2023-10-05T22:35:51.326156321Z 00:35:51.325 [Timer-0] INFO  Device - {name=runTime, value=0.0, unit=seconds}
2023-10-05T22:35:51.328532567Z 00:35:51.327 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/runTime message 0.0
2023-10-05T22:35:51.331459488Z 00:35:51.330 [Timer-0] INFO  Device - {name=runTimeDisplay, value=00:00, unit=hh:mm}
2023-10-05T22:35:51.333572938Z 00:35:51.332 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/runTimeDisplay message 00:00
2023-10-05T22:35:51.336363941Z 00:35:51.335 [Timer-0] INFO  Device - {name=remainingTime, value=0.0, unit=seconds}
2023-10-05T22:35:51.337955508Z 00:35:51.337 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/remainingTime message 0.0
2023-10-05T22:35:51.340817469Z 00:35:51.339 [Timer-0] INFO  Device - {name=remainingTimeDisplay, value=00:00, unit=hh:mm}
2023-10-05T22:35:51.341669941Z 00:35:51.341 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/remainingTimeDisplay message 00:00
2023-10-05T22:35:51.343344134Z 00:35:51.342 [Timer-0] INFO  Device - {name=delayTime, value=0.0, unit=seconds}
2023-10-05T22:35:51.345408584Z 00:35:51.344 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/delayTime message 0.0
2023-10-05T22:35:51.348059584Z 00:35:51.347 [Timer-0] INFO  Device - {name=delayTimeDisplay, value=00:00, unit=hh:mm}
2023-10-05T22:35:51.349818070Z 00:35:51.349 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/delayTimeDisplay message 00:00
2023-10-05T22:35:51.352590405Z 00:35:51.351 [Timer-0] INFO  Device - {name=finishTimeDisplay, value=2023-10-06T00:35:51+0200, unit=hh:mm}
2023-10-05T22:35:51.354498810Z 00:35:51.353 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/finishTimeDisplay message 2023-10-06T00:35:51+0200
2023-10-05T22:35:51.357272604Z 00:35:51.356 [Timer-0] INFO  Device - {name=reservation, value=off}
2023-10-05T22:35:51.359192093Z 00:35:51.358 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/reservation message off
2023-10-05T22:35:51.362199807Z 00:35:51.361 [Timer-0] INFO  Device - {name=antiCrease, value=off}
2023-10-05T22:35:51.363570078Z 00:35:51.363 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/antiCrease message off
2023-10-05T22:35:51.366175578Z 00:35:51.365 [Timer-0] INFO  Device - {name=childLock, value=off}
2023-10-05T22:35:51.367493932Z 00:35:51.366 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/childLock message off
2023-10-05T22:35:51.370354352Z 00:35:51.369 [Timer-0] INFO  Device - {name=selfClean, value=off}
2023-10-05T22:35:51.372952351Z 00:35:51.372 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/selfClean message off
2023-10-05T22:35:51.376456490Z 00:35:51.375 [Timer-0] INFO  Device - {name=dampDryBeep, value=off}
2023-10-05T22:35:51.379046823Z 00:35:51.377 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/dampDryBeep message off
2023-10-05T22:35:51.381981536Z 00:35:51.381 [Timer-0] INFO  Device - {name=handIron, value=off}
2023-10-05T22:35:51.383910941Z 00:35:51.383 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/handIron message off
2023-10-05T22:35:51.386899113Z 00:35:51.386 [Timer-0] INFO  Device - {name=remoteStart, value=off}
2023-10-05T22:35:51.388861769Z 00:35:51.388 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/remoteStart message off
2023-10-05T22:35:51.391628563Z 00:35:51.390 [Timer-0] INFO  Device - {name=standby, value=off}
2023-10-05T22:35:51.393118128Z 00:35:51.392 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/standby message off
2023-10-05T22:35:51.396631600Z 00:35:51.396 [Timer-0] INFO  Device - {name=dnnReady, value=off}
2023-10-05T22:35:51.398345752Z 00:35:51.397 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/dnnReady message off
2023-10-05T22:35:51.401041753Z 00:35:51.400 [Timer-0] INFO  Device - {name=courseDryer24inchBase, value=NOT_SELECTED}
2023-10-05T22:35:51.402072728Z 00:35:51.401 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/courseDryer24inchBase message NOT_SELECTED
2023-10-05T22:35:51.405417697Z 00:35:51.404 [Timer-0] INFO  Device - {name=error, value=noerror}
2023-10-05T22:35:51.406508464Z 00:35:51.405 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/error message noerror
2023-10-05T22:35:51.409556221Z 00:35:51.408 [Timer-0] INFO  Device - {name=dryLevel, value=no drylevel}
2023-10-05T22:35:51.410632404Z 00:35:51.410 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/dryLevel message no drylevel
2023-10-05T22:35:51.413600826Z 00:35:51.412 [Timer-0] INFO  Device - {name=ecoHybrid, value=no ecohybrid}
2023-10-05T22:35:51.415108683Z 00:35:51.414 [Timer-0] INFO  Mqtt - Sending to topic thinq/sèche-linge/event/ecoHybrid message no ecohybrid

Je regarderai ça à tête reposée demain :smiley: mais je devrais pouvoir créer des commandes info à partir du mode temps réel de Jmqtt et donc récupérer les status quo m’intéressent !

Édit du matin :
Et voilà à quoi ça ressemble ce matin en créant toutes les commandes existantes via les trames reçues :slight_smile:

Il faut que je fasse du ménage mais ça commence à ressembler à qqch d’exploitable. Aucune commande action évidemment mais si j’ai bien compris c’est normal, il faudrait essayer de les trouver un peu au pif.
Et sinon question : je vois dans ses logs que le docker envoie des messages toutes les 30min, c’est paramétrable différemment ? Ou bien c’est l’API qui limite?

@pifou si tu veux que je fasse d’autres tests ou te partage qqcj n’hésite pas.
Une remarque à indiquer dans la doc je pense: la page d’authentification LG est un peu capricieuse, il faut parfois la rafraîchir et etre en navigation privée pour réussir à se connecter.

J’ai vu qu’il y a un paramètre dans le fichier state.json "pollTime": 30 je suppose que c’est ça qu’il faut changer.

En tout cas, bravo pour avoir persévéré, c’était payant finalement :slight_smile: maintenant il ne te reste plus qu’à faire un beau petit widget et le partager en tant que template thinq2mqtt pour le plugin jMQTT pour les autres qui auront le même sèche-linge que toi :wink:

Pour les commandes, essaye en ajoutant le suffixe /Set à la fin des topics existant.

1 « J'aime »

Je peux changer le fichier JSON à la volée où il faut que je réinstalle (une 1000e fois :rofl:) le docker ?
Je vais voir pour le template oui, déjà fait que je comprenne à quoi correspond chaque commande ! Et pour les actions en fait je sais pas trop ce que je pourrais faire, ça a pas beaucoup de sens de piloter un sèche-linge à distance à mon avis…

Tu peux modifier le fichier json à la volée, sans tout refaire, à mon avis il faudra quand même arrêter/ relancer le conteneur pour prendre en compte les modifs.

Bingo ça fonctionne ! Merci pifou, a rajouter dans la doc :wink: ?

merci pour tes retours, j’ai maj la doc :slight_smile:

1 « J'aime »

Et du coup comme j’y connais rien je me rends pas compte, mais intégrer tout ça a dans un plugin c’est vraiment galère?
Je connais pas trop le fonctionnement du docker donc je comprends pas pourquoi c’est plus simple de passer par ça plutôt qu’un plugin qui communiquerait avec l’API et publierait en MQTT.

Il faudrait juste « convertir » tout le code groovy de l’appli qui est dans le docker, en php (ou python) (ou bien node js d’ailleurs) c’est vraiment galère, il n’existe pas d’outil de traduction automatique fiable. C’est bien dommage d’ailleurs.

Alors que grâce à Docker on n’a aucun problème à faire tourner une application groovy / java sur nos box Jeedom :slight_smile: je m’oriente plutôt sur un plugin qui ferait juste ce que tu a fait manuellement: le fichier json de paramétrage, l’initialisation et le « démon » qui sera juste un conteneur.