Problème avec réfrigérateur LG

Bonjour,

Je dispose d’un réfrigérateur LG mais je n’arrive pas à le faire communiquer avec jeedom. Il est bien visible sur le plugin après avoir cliqué sur « synchronisation », mais hélas aucune information ne remonte :(.

Sur la partie santé, j’ai ceci :

Appareil Type Plateforme Statut Connecté RSSI Dernière communication Date création
Cuisine Réfrigérateur Réfrigérateur thinq1 OK NON Réfrigérateur 2024-05-13 12:39:07

J’ai réinstallé le plugin et le réfrigérateur est bien connecté (sur l’application LG ThinQ, tout est ok). Il y a un truc à faire pour que ça fonctionne ?

Les infos du réfrigérateur d’après le plugin sont:

Type 101
Code de l’appareil KI0101
Nom du code de l’appareil Réfrigérateur side by side
Identifiant de la maison 163806008561751327
Identifiant de l’appareil b4527ab0-814c-11e7-a9f3-b4e62a1a3782
Nom du modèle 2RES1VE61PFWA
Type de plateforme thinq1
Dernière communication

merci d’avance :slight_smile: .

Bonjour.

Il me faudrait les logs après synchronisation stp.

Merci de ton retour, voici ce que j’ai :

[2024-05-13 15:21:01] DEBUG  : update début
[2024-05-13 15:21:01] DEBUG  : update fin
[2024-05-13 15:21:09] DEBUG  : Action sur refresh avec options {"user_login":"admin","user_id":"1"}
[2024-05-13 15:21:09] DEBUG  : refresh début
[2024-05-13 15:21:09] DEBUG  : getTokenIsExpired refresh_token à jour, il expire dans 3539 secondes
[2024-05-13 15:21:09] DEBUG  : loadConfigFile débutb4527ab0-814c-11e7-a9f3-b4e62a1a3782
[2024-05-13 15:21:09] DEBUG  : loadConfigFile Le fichier de configuration /var/www/html/plugins/lgthinq2/core/class/../../data/b4527ab0-814c-11e7-a9f3-b4e62a1a3782.json est corrompu
[2024-05-13 15:21:09] DEBUG  : pollMonitorStatus URL : https://eic.lgthinq.com:46030/api/rti/rtiResult
[2024-05-13 15:21:09] DEBUG  : pollMonitorStatus DATA : {"lgedmRoot":{"workList":[{"deviceId":"b4527ab0-814c-11e7-a9f3-b4e62a1a3782","workId":"n-b4527ab0-814c-11e7-a9f3-b4e62a1a3782"}]}}
[2024-05-13 15:21:09] DEBUG  : pollMonitorStatus HEADERS : ["Accept: application\/json","Content-Type: application\/json","x-thinq-application-key: wideq","x-thinq-security-key: nuts_securitykey","x-thinq-token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","x-thinq-jsessionId: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.nodes_sadap_02"]
[2024-05-13 15:21:09] DEBUG  : refresh fin
[2024-05-13 15:22:02] DEBUG  : update début
[2024-05-13 15:22:02] DEBUG  : update fin

Merci.
J’ai poussé une màj sur la beta.

Merci pour ton retour rapide, je viens de faire la MAJ en beta, supprimer puis ajouter de nouveau le réfrigérateur. Il y a du mieux mais ça ne fonctionne pas mieux qu’avant :frowning:

Voici le log:

[2024-05-13 17:09:03] DEBUG  : Action sur refresh avec options {"user_login":"admin","user_id":"1"}
[2024-05-13 17:09:03] DEBUG  : refresh début
[2024-05-13 17:09:03] DEBUG  : getTokenIsExpired refresh_token à jour, il expire dans 3305 secondes
[2024-05-13 17:09:04] DEBUG  : pollMonitorStatus URL : https://eic.lgthinq.com:46030/api/rti/rtiResult
[2024-05-13 17:09:04] DEBUG  : pollMonitorStatus DATA : {"lgedmRoot":{"workList":[{"deviceId":"b4527ab0-814c-11e7-a9f3-b4e62a1a3782","workId":"n-b4527ab0-814c-11e7-a9f3-b4e62a1a3782"}]}}
[2024-05-13 17:09:04] DEBUG  : pollMonitorStatus HEADERS : ["Accept: application\/json","Content-Type: application\/json","x-thinq-application-key: wideq","x-thinq-security-key: nuts_securitykey","x-thinq-token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX","x-thinq-jsessionId: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.nodes_sadap_10"]
[2024-05-13 17:09:04] DEBUG  : pollMonitorStatus response : {"lgedmRoot":{"returnCd":"0000","returnMsg":"OK","workList":{"deviceId":"b4527ab0-814c-11e7-a9f3-b4e62a1a3782","deviceState":"E","format":"B64","returnCode":"0000","returnData":"AgUHAQICAgABAAEA","stateCode":"S","workId":"n-b4527ab0-814c-11e7-a9f3-b4e62a1a3782"}}}
[2024-05-13 17:09:04] DEBUG  : refresh fin

Hello, n’oublie pas de mettre les logs entre balise de texte formaté, ce sera plus lisible :wink:

Ca fonctionne bien, l’appareil répond.

Mais…
Vraiment étrange. il envoie pas d’info cohérente.
En base64, ça donne : a��� au lieu de vraie information.

Ok, c’est fait, merci de l’information.

Je comprends ce que tu veux dire, tu aurais une idée de ce que je pourrais faire ?

Bon, j’ai trouvé pourquoi.
Il y a du travail à faire.

En gros, ton appareil est ancien et remonte les info en binaire (au lieu de json pour les appareils récents).
Donc faut que je traite cette partie lors de la création des commandes.

  "Monitoring": {
        "type": "BINARY(BYTE)",
        "protocol": [
            {
                "_comment": "Refrigerator Temperature(1byte)",
                "startByte": 1,
                "length": 1,
                "value": "TempRefrigerator"
            },
            {
                "_comment": "Freezer Temperature(1byte)",
                "startByte": 2,
                "length": 1,
                "value": "TempFreezer"
            },
            {
                "_comment": "Ice Plus(1byte)",
                "startByte": 3,
                "length": 1,
                "value": "IcePlus"
            },
            {
                "_comment": "Fresh Air Filter(1byte)",
                "startByte": 4,
                "length": 1,
                "value": "FreshAirFilter"
            },
            {
                "_comment": "Smart Saving Staus(1byte)",
                "startByte": 5,
                "length": 1,
                "value": "SmartSavingMode"
            },
            {
                "_comment": "Water Filter State(used month) => (remain : 6 - value)",
                "startByte": 6,
                "length": 1,
                "value": "WaterFilterUsedMonth"
            },
            {
                "_comment": "Door Open Info.",
                "startByte": 7,
                "length": 1,
                "value": "DoorOpenState"
            },
            {
                "_comment": "Temperature Unit : F or ℃ ",
                "startByte": 8,
                "length": 1,
                "value": "TempUnit"
            },
            {
                "_comment": "Smart Mode Status(1byte)",
                "startByte": 9,
                "length": 1,
                "value": "SmartSavingModeStatus"
            },
			  {
                "_comment": "LockingStatus : LOCK or UNLOCK",
                "startByte": 10,
                "length": 1,
                "value": "LockingStatus"
            },
			  {
                "_comment": "Active Saving Status : OFF or ON",
                "startByte": 11,
                "length": 1,
                "value": "ActiveSavingStatus"
            }
        ]
    }
1 « J'aime »

Bon, pas facile ni logique, mais j’ai codé le tout et ça fonctionne.

Le principal problème, c’est que LG laisse volontairement un byte et ne commence pas à zéro. Mais uniquement pour la réception des informations. Pour l’envoie des commandes, il faut commencer à zéro. :roll_eyes: :crazy_face:

Je pousse la modification en beta.(il faudra faire une synchronisation après la màj pour appliquer les changements)

1 « J'aime »

waouuuu :hushed:, merci pour ta rapidité, les explications et ton travail !!!

J’ai l’impression que les informations du réfrigérateur sont bien reçues mais sur le dashboard, il m’est impossible d’afficher la tuile car j’ai ce message d’erreur :

Que puis je faire ?

Si ça peut aider, en désactivant cette ligne, le dashboard est ok .

C’est normal d’avoir des réponses de ce type ?
@RE_STATE_FRESH_AIR_FILTER_MODE_AUTO_W

Par contre dans la partie « santé » du plugin, il indique toujours que le réfrigérateur n’est pas connecté, est ce normal ?

Merci pour l’info, c’est corrigé.

Oui, c’est des clés à traduire. Normalement, tout est censé être traduit grâce aux fichier de langue fournis par LG.
J’ai vu un petit bug, j’ai poussé la modification. Il faut recréer les commandes info pour que la traduction soit prise en compte.
Sinon, sił y a des traductions non faite, il faut les rajouter ici Jeedom-lgthinq2/core/class/lgthinq2.customLang.php at master · Flobul/Jeedom-lgthinq2 · GitHub

"online": false,

Ton appareil est indiqué comme offline.
En fait, comme ton appareil est ancien, il remonte l’info autrement (deviceState):

        JsonElementBuildersKt.put(jsonObjectBuilder4, "online", Boolean.valueOf(Intrinsics.areEqual("E", str)));

Je rajoute ça.

Edit : Poussé sur la beta

MERCI pour tout, les modifications sont fonctionnelles :heart_eyes:.

Je vais être un peu chiant :sweat_smile: mais en testant rapidement, je viens de voir qu’il est impossible d’envoyer une commande, voici le log :

[2024-05-16 20:43:35] DEBUG  : Données à envoyer en thinq1 headers ["Accept: application\/json","Content-Type: application\/json","x-thinq-application-key: wideq","x-thinq-security-key: nuts_securitykey","x-thinq-token: XXXXXXXXXXXXXXXXXXXXXXXnodes_sadap_10"]
[2024-05-16 20:43:46] DEBUG  : execute Code retour erroné {"returnCd":"0111","returnMsg":"\uc81c\ud488 \uc751\ub2f5 \uc9c0\uc5f0","deviceId":"b4527ab0-814c-11e7-a9f3-b4e62a1a3782","stateCode":"P","workId":"n-2b25e69a-2f81-4332-8214-8bc188d992","format":"B64","deviceState":"E","timestamp":0}

Quelle commande c’était ? Si t’as la ligne de log, que je vois les données envoyées

Je viens de voir que j’ai l’erreur que rarement mais même avec l’application LG ThinQ, j’ai parfois des bugs, je pense que j’ai l’erreur quand je change trop souvent de valeurs. En revanche, la lecture des informations semble bien marcher mais je ne peux modifier aucun paramètre avec jeedom (température réfrigérateur, congélateur…). Après ce n’est pas des choses que je pense beaucoup utiliser donc même si ça ne marche pas, ce n’est pas bien grave :slight_smile: . Je voulais surtout avoir des alertes si le frigo n’est pas connecté, si les températures ne sont pas bonnes, ou si la porte est restée trop longtemps ouverte.

Voici un exemple de commande pour SetControl TempRefrigerator = 2°C qui ne fonctionne pas

[2024-05-17 18:28:43] DEBUG  : Action sur SetControlTempRefrigerator avec options {"select":"6","user_login":"admin","user_id":"1"}
[2024-05-17 18:28:43] DEBUG  : getTokenIsExpired refresh_token à jour, il expire dans 2993 secondes
[2024-05-17 18:28:43] DEBUG  : Données à envoyer en thinq1
[2024-05-17 18:28:43] DEBUG  : Données à envoyer en thinq1 headers ["Accept: application\/json","Content-Type: application\/json","x-thinq-application-key: wideq","x-thinq-security-key: nuts_securitykey","x-thinq-token: XXXXXXXXXXXXX.nodes_sadap_10"]

Pour info :

« 0111 »: « RESPONSE_DELAY_DEVICE »,

제품 응답 지연 : Retards dans la réponse au produit

Je regarde ça, merci.

J’ai poussé le correctif.
Testé de mon côté, et fonctionnel.

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.