Premiers tests #plugin-lgthinq2

Idem, par contre le l’image aspirateur apparait sur l’objet maintenant, c’est top.

[2023-10-21 12:04:10][DEBUG] : Action sur refresh avec options {"user_login":"admin","user_id":"2"}
[2023-10-21 12:04:10][DEBUG] : refresh : début
[2023-10-21 12:04:10][DEBUG] : getTokenIsExpired : refresh_token à jour, il expire dans 1853 secondes
[2023-10-21 12:04:10][DEBUG] : getDeviceWorkId :  DATA : {"cmd":"Mon","cmdOpt":"Start","deviceId":"FB5BA61F-909D-444C-9EA0-30a9de299afa","workId":"da0ff7d0-bce4-4582-839f-728cc92f34cb"}
[2023-10-21 12:04:10][DEBUG] : getDeviceWorkId :  RESPONSE : <lgedmRoot><returnCd>9000</returnCd><returnMsg>잘못된 요청</returnMsg></lgedmRoot>
[2023-10-21 12:04:10][DEBUG] : getDeviceWorkId : Erreur de la requête  null
[2023-10-21 12:04:10][DEBUG] : getDeviceRtiResult :  response : <lgedmRoot><returnCd>9000</returnCd><returnMsg>잘못된 요청</returnMsg></lgedmRoot>
[2023-10-21 12:04:10][DEBUG] : getDeviceRtiResult : Erreur de la requête  null
[2023-10-21 12:04:10][DEBUG] : refresh : fin

Foutu coréen !

je viens de modifier le log.
un second refresh à la suite du 1er donne un log différent … toujours pas en Français par contre :blush:

Ok, merci. Pas mieux :frowning:

J’ai encore poussé une mise à jour.

Pareil même log, par contre si je synchronise j’ai ce log (retraité du lave-linge) :

[2023-10-21 12:42:13][DEBUG] : synchronize : début
[2023-10-21 12:42:13][DEBUG] : getTokenIsExpired : refresh_token à jour, il expire dans 3457 secondes
[2023-10-21 12:42:13][DEBUG] : getDevices :  getDEVICES HEADERS : ["Accept: application\/json","Accept-Encoding: gzip, deflate, br","Accept-Language: fr-FR;q=1","Content-Type: application\/json;charset=UTF-8","User-Agent: LG ThinQ\/4.1.49230 (iPhone; iOS 16.7; Scale\/2.00)","x-api-key: VGhpblEyLjAgU0VSVklDRQ==","x-app-version: 4.1.49230","x-country-code: FR","x-language-code: fr-FR","x-model-name: iPhone SE(2nd Gen)","x-origin: app-native","x-os-version: 16.7","x-service-code: SVC202","x-service-phase: OP","x-thinq-app-logintype: LGE","x-thinq-app-level: PRD","x-thinq-app-os: IOS","x-thinq-app-type: NUTS","x-thinq-app-ver: 4.1.4800","x-client-id: c5d650271100d8cb7232296b1c331855b4cba176d6b538879f0577e6aa33e6e3","x-emp-token: 9a73f8a793eeac0893063f0a5c5510081cb26669e930b0f1500e96206ebfb4d7d8df965292103b64bb6a71b736884417","x-user-no: FR1308134500232","x-message-id: 0c78ce1bf4400a7353bb9186220bd1fbb1c7f427bb1c"]
[2023-10-21 12:42:13][DEBUG] : getDevices :  getDEVICES : {"resultCode":"0000","result":{"item":[{"modelName":"HITN","deviceType":"501","deviceCode":"LI01","alias":"HOM-BOT","deviceId":"FB5BA61F-909D-444C-9EA0-30a9de299afa","homeId":"165204644608274248","homeName":"Domicile","roomId":"165220550373181533","roomName":"2nd Etage","ownershipYn":"Y","homeDeviceOrder":2,"fwVer":"17851","ssid":"ROG_HOME","networkType":"01","langPackProductTypeVer":"78.0","langPackProductTypeUri":"https://objectcontent.lgthinq.com/b7f14077-75d8-483f-8c28-029d9271cda9?hdnts=exp=1753863934~hmac=90704d58f696be5492f55f9588a9f2178827a0e88120b57e7b4904464c138f12","langPackModelVer":"","langPackModelUri":"","appModuleVer":"20.38","appModuleUri":"https://objectcontent.lgthinq.com/0d55e240-bddf-43cb-b7d1-703b4665a03f?hdnts=exp=1752997540~hmac=4815e06e24bbeedfdf01c566e1799099ae061c10221ddff77514c813371c256f","appRestartYn":"Y","appModuleSize":"6938738","newRegYn":"N","remoteControlType":"","snapshot":null,"platformType":"thinq1","modelJsonVer":"2.7","modelJsonUri":"https://eic.lgthinq.com:46030/api/webContents/modelJSON?modelName=HITN&countryCode=FR&contentsId=FR21012704452213313346&authKey=thinq","deviceState":"E","regDtUtc":"20220510175711","regIndex":0,"guideTypeYn":"Y","guideType":"","drServiceYn":"N","groupableYn":"N","controllableYn":"N","combinedProductYn":"N","masterYn":"Y","pccModelYn":"N","autoOrderYn":"N","modelProtocol":"STANDARD","fwInfoList":null,"modemInfo":null,"detailDeviceCode":null},{"modelName":"F_V8_F___W.B_2QEUK","deviceType":"201","deviceCode":"LA02","alias":"Lave-linge hublot","deviceId":"12a22fbb-5743-182b-8f29-4cbce941e0d9","homeId":"165204644608274248","homeName":"Domicile","roomId":"165220581837573242","roomName":"Buanderie","ownershipYn":"Y","homeDeviceOrder":3,"fwVer":"","ssid":"ROG_HOME","networkType":"02","langPackProductTypeVer":"130.6","langPackProductTypeUri":"https://objectcontent.lgthinq.com/75806b17-bea2-4a9d-b9c1-23e1fef97192?hdnts=exp=1759984741~hmac=3d8e5fdc54e491324145583b1bad8939e3b1028d457b92e9ba763a587362e014","langPackModelVer":"0.4","langPackModelUri":"https://objectcontent.lgthinq.com/e99788e6-eeaf-4c8c-8e11-2182934284e1?hdnts=exp=1716025272~hmac=726d6a33e707c8524dd1d0adbca699bc019250740447cd1385191e4c6fab9f81","appModuleVer":"203.16","appModuleUri":"https://objectcontent.lgthinq.com/f24d6ee6-d315-48b5-ab0f-4edcf0c5bc48?hdnts=exp=1719705701~hmac=f14ce8a8407b387a62eac888306baa678e9ee0fa20062ef13e565dc1ce6ab006","appRestartYn":"Y","appModuleSize":"3696622","newRegYn":"N","remoteControlType":"","snapshot":{"washerDryer":{"sequenceNum":2.0,"courseFL24inchBaseTitan":"TURBO39","ezLinkDetergentState":"EZLINKDT_NOT_EMPTY","initialTimeMinute":39.0,"preState":"END","dnn_temp":"11","dnn_precipitationProbability":"1","mlStep":0.0,"dnn_washingIndex":"80","remainTimeHour":0.0,"preWash":"PREWASH_OFF","ezDispenseType":"EZD_DETERGENT_SOFTENER","state":"POWEROFF","ezCSSoftenerSetVal":"EZCSSO_OFF","wrinkleCare":"WRINKLECARE_OFF","AIDDLed":"AIDDLed_OFF","dnn_humidity":"46","medicRinse":"MEDICRINSE_OFF","accumulatedEnergyData":206.0,"ezDispenseNotation":"ezDisNotation_ml","turboWash":"TURBOWASH_OFF","remainTimeMinute":0.0,"steamSoftener":"STEAMSOFTENER_OFF","childLock":"CHILDLOCK_OFF","remoteStart":"REMOTE_START_OFF","ezDispenseDrawerState":"ezDisDrawer_CLOSE","rinseSpin":"RINSE_SPIN_OFF","initialTimeHour":0.0,"initialBit":"INITIAL_BIT_OFF","periodicEnergyData":19.0,"standby":"STANDBY_OFF","error":"ERROR_NO","dryLevel":"NOT_SELECTED","ezDetergentState":"EZCSDT_NOT_EMPTY","creaseCare":"CREASECARE_OFF","ezSoftenerAmount":0.0,"smartCourseFL24inchBaseTitan":"NOT_SELECTED","steam":"STEAM_OFF","rinse":"NO_RINSE","loadItemWasher":"LOADITEM_OFF","temp":"NO_TEMP","doorLock":"DOOR_LOCK_OFF","reserveTimeMinute":0.0,"ezCSDetergentSetVal":"EZCSDT_OFF","washingIndex":"80","TCLCount":28.0,"downloadedCourseFL24inchBaseTitan":"QUICKWASHDRY","ezSoftenerState":"EZCSSO_NOT_EMPTY","dnn_dust":"-","ezDispenseSetting":"EZD_SETTING_OFF","ecoHybrid":"ECOHYBRID_OFF","reserveTimeHour":0.0,"spin":"NOT_SELECTED","ezDetergentAmount":0.0,"soilWash":"NO_SOILWASH"},"fwUpgradeInfo":{"upgSched":{"upgUtc":"0","cmd":"none"}},"static":{"deviceType":"201","countryCode":"FR"},"meta":{"allDeviceInfoUpdate":false,"messageId":"2wsSG4VoS8mb8iz0pV1XMA"},"mid":2091070.0,"online":false,"timestamp":1.697738284334E12},"platformType":"thinq2","modelJsonVer":"1.4","modelJsonUri":"https://objectcontent.lgthinq.com/8c05531e-782c-4316-adc0-6066675fe07b?hdnts=exp=1749636365~hmac=fa374831e3df0fafb7df3ef7d8bc22bbb811ea468669889c9f586bf692ae3758","deviceState":"D","regDtUtc":"20220731091844","regIndex":0,"guideTypeYn":"Y","guideType":"TYPE2","drServiceYn":"N","groupableYn":"N","controllableYn":"N","combinedProductYn":"N","masterYn":"Y","pccModelYn":"N","autoOrderYn":"N","modelProtocol":"courseFL24inchBaseTitan","fwInfoList":[{"checksum":"0000F982","order":2.0,"partNumber":"SAA42458609"},{"checksum":"0000471E","order":1.0,"partNumber":"SAA41837605"}],"modemInfo":{"appVersion":"clip_hna_v1.9.175","modelName":"F_V8_F___W.B_2QEUK","modemType":"RTK_RTL8711am","oneshot":"y","ruleEngine":"y","size":1572864.0},"detailDeviceCode":null}]}}
[2023-10-21 12:42:13][DEBUG] : getDevices : $items {"modelName":"HITN","deviceType":"501","deviceCode":"LI01","alias":"HOM-BOT","deviceId":"FB5BA61F-909D-444C-9EA0-30a9de299afa","homeId":"165204644608274248","homeName":"Domicile","roomId":"165220550373181533","roomName":"2nd Etage","ownershipYn":"Y","homeDeviceOrder":2,"fwVer":"17851","ssid":"ROG_HOME","networkType":"01","langPackProductTypeVer":"78.0","langPackProductTypeUri":"https:\/\/objectcontent.lgthinq.com\/b7f14077-75d8-483f-8c28-029d9271cda9?hdnts=exp=1753863934~hmac=90704d58f696be5492f55f9588a9f2178827a0e88120b57e7b4904464c138f12","langPackModelVer":"","langPackModelUri":"","appModuleVer":"20.38","appModuleUri":"https:\/\/objectcontent.lgthinq.com\/0d55e240-bddf-43cb-b7d1-703b4665a03f?hdnts=exp=1752997540~hmac=4815e06e24bbeedfdf01c566e1799099ae061c10221ddff77514c813371c256f","appRestartYn":"Y","appModuleSize":"6938738","newRegYn":"N","remoteControlType":"","snapshot":null,"platformType":"thinq1","modelJsonVer":"2.7","modelJsonUri":"https:\/\/eic.lgthinq.com:46030\/api\/webContents\/modelJSON?modelName=HITN&countryCode=FR&contentsId=FR21012704452213313346&authKey=thinq","deviceState":"E","regDtUtc":"20220510175711","regIndex":0,"guideTypeYn":"Y","guideType":"","drServiceYn":"N","groupableYn":"N","controllableYn":"N","combinedProductYn":"N","masterYn":"Y","pccModelYn":"N","autoOrderYn":"N","modelProtocol":"STANDARD","fwInfoList":null,"modemInfo":null,"detailDeviceCode":null}
[2023-10-21 12:42:13][DEBUG] : createEquipement début{"modelName":"HITN","deviceType":"501","deviceCode":"LI01","alias":"HOM-BOT","deviceId":"FB5BA61F-909D-444C-9EA0-30a9de299afa","homeId":"165204644608274248","homeName":"Domicile","roomId":"165220550373181533","roomName":"2nd Etage","ownershipYn":"Y","homeDeviceOrder":2,"fwVer":"17851","ssid":"ROG_HOME","networkType":"01","langPackProductTypeVer":"78.0","langPackProductTypeUri":"https:\/\/objectcontent.lgthinq.com\/b7f14077-75d8-483f-8c28-029d9271cda9?hdnts=exp=1753863934~hmac=90704d58f696be5492f55f9588a9f2178827a0e88120b57e7b4904464c138f12","langPackModelVer":"","langPackModelUri":"","appModuleVer":"20.38","appModuleUri":"https:\/\/objectcontent.lgthinq.com\/0d55e240-bddf-43cb-b7d1-703b4665a03f?hdnts=exp=1752997540~hmac=4815e06e24bbeedfdf01c566e1799099ae061c10221ddff77514c813371c256f","appRestartYn":"Y","appModuleSize":"6938738","newRegYn":"N","remoteControlType":"","snapshot":null,"platformType":"thinq1","modelJsonVer":"2.7","modelJsonUri":"https:\/\/eic.lgthinq.com:46030\/api\/webContents\/modelJSON?modelName=HITN&countryCode=FR&contentsId=FR21012704452213313346&authKey=thinq","deviceState":"E","regDtUtc":"20220510175711","regIndex":0,"guideTypeYn":"Y","guideType":"","drServiceYn":"N","groupableYn":"N","controllableYn":"N","combinedProductYn":"N","masterYn":"Y","pccModelYn":"N","autoOrderYn":"N","modelProtocol":"STANDARD","fwInfoList":null,"modemInfo":null,"detailDeviceCode":null}
[2023-10-21 12:42:13][DEBUG] : getDevices : modelJsonUri https://eic.lgthinq.com:46030/api/webContents/modelJSON?modelName=HITN&countryCode=FR&contentsId=FR21012704452213313346&authKey=thinq
[2023-10-21 12:42:14][DEBUG] : getLangJson Fichier de langue{"@RK_UX30_OBSTACLE_POLES":"Objet haut et \u00e9troit<\/br>(pieds de chaise)","@RK_POP_LOADING_VIDEO_FAIL_INDIC_S":"Impossible de t\u00e9l\u00e9charger la vid\u00e9o.

OK.

Est-ce qu’un de vous pourrait me partager son compte LG ? Pour que je récupère les requêtes envoyées par l’app et répliquer ça pour les méthodes thinq1 du plugin ?

Je t’envoie mes login en MP, j’ai pas d’équipement en thinq1 c’est pas grave ?

Autre question : dans les commandes de mon sèche-linge je vois qu’il y a « remaintime_hour » et « remaintime_minute », est-ce volontaire de ta part de séparer heures et minutes ou c’est automatique ?
Dans ce qu’avait fait pifou (docker & cie) il y avait « remainetime_display » de type Autre sous la forme HH:mm et « remaintime » de type numérique avec le nb de secondes restant. C’était pas mal pour gérer un affichage et des calculs.

Ah non, il faudrait avec des appareils thinq1.

C’est récupéré comme ça.
J’ai pas encore regardé comment c’était traité dans le fichier de config de LG.

Ok bon bah oublie les login alors :stuck_out_tongue:

Ok pour les commandes je comprends que c’est la version brute, pas de souci. D’ailleurs tu sais si je peux les renommer sans que ça crée de problème ?

Oui, pas de problème pour renommer les commandes.

Edit : j’ai une piste pour thinq1

Màj poussée.

Il faut relancer la Connexion en cliquant sur le bouton dans la page de configuration du plugin.

Il manquait une information pour que les appareils thinq1 soient listés.

voilà le résultat du refresh :

[2023-10-21 16:56:53]DEBUG : Action sur refresh avec options {"user_login":"admin","user_id":"2"}
[2023-10-21 16:56:53]DEBUG : refresh : début
[2023-10-21 16:56:53]DEBUG : getTokenIsExpired : refresh_token à jour, il expire dans 3574 secondes
[2023-10-21 16:56:53]DEBUG : getDeviceWorkId :  URL : https://eic.lgthinq.com:46030/api/member/login
[2023-10-21 16:56:53]DEBUG : getDeviceWorkId :  DATA : {"lgedmRoot":{"cmd":"Mon","cmdOpt":"Start","deviceId":"FB5BA61F-909D-444C-9EA0-30a9de299afa","workId":"926851b9-9d19-49e1-b0fd-a4808a810d74"}}
[2023-10-21 16:56:53]DEBUG : getDeviceWorkId :  HEADERS : ["Accept: application\/json","Content-Type: application\/json","x-thinq-application-key: wideq","x-thinq-security-key: nuts_securitykey","x-thinq-token: bb81ff7dbdde17c87458a551f8aab4889b840061ab5c0ea2e2247cc109a8a129122b878eea01864f99dc3d5f316e1534","x-thinq-jsessionId: "]
[2023-10-21 16:56:53]DEBUG : getDeviceWorkId :  RESPONSE : {"lgedmRoot":{"returnCd":"0102","returnMsg":"Not logged in.","timestamp":0}}
[2023-10-21 16:56:53]DEBUG : getDeviceWorkId : Erreur de la requête  null
[2023-10-21 16:56:53]DEBUG : getDeviceRtiResult :  response : 9000잘못된 요청
[2023-10-21 16:56:53]DEBUG : getDeviceRtiResult : Erreur de la requête  null
[2023-10-21 16:56:53]DEBUG : refresh : fin

jsessionId est vide.

Tu as bien fait ça ?
=>

MaJ appliquée, aucun impact chez moi (thinq2), pour info.
Et sinon par curiosité l’idée ensuite c’est d’avoir des « profils » par appareil pour nettoyer un peu les commandes ou de laisser ça brut et chaque user fait sa popote ?

Yes j’ai bien relancé la Connexion via le bouton sur la page du plugin.

Envoie alors les log de la connexion (step6)

Mon but c’est d’éviter de créer un fichier de config des commandes pour chaque type d’appareil, parce que chaque appareil a ses propres valeurs. Ex : 2 frigo auront des min/max de température différents, des fonctions différentes.
Le plugin récupère le fichier de configuration de chaque appareil fourni par LG, et créé les commandes en fonction.
Ce fichier de configuration est assez bien étoffé, j’ai probablement encore quelques améliorations à apporter pour adapter les commandes.

Donc, si une commande te parait inutile, tu peux la supprimer, mais elle réapparaîtra à la prochaine synchro.

[2023-10-21 17:08:41][DEBUG] : login : STEP 6
[2023-10-21 17:08:41][DEBUG] : step6 :  URL : https://eic.lgthinq.com:46030/api/member/login
[2023-10-21 17:08:41][DEBUG] : step6 :  DATA : {"lgedmRoot":{"countryCode":"FR","langCode":"fr-FR","loginType":"EMP","token":"3dd8fa57b9a9498094930b779dd32284c5001e2e4fa8766ca28c10084e70b56d2de2af7f8e7a1fe8f877a8288c2b4bc1"}}
[2023-10-21 17:08:41][DEBUG] : step6 :  HEADERS : ["Accept: application\/json","Content-Type: application\/json","x-thinq-application-key: wideq","x-thinq-security-key: nuts_securitykey","x-thinq-token: 3dd8fa57b9a9498094930b779dd32284c5001e2e4fa8766ca28c10084e70b56d2de2af7f8e7a1fe8f877a8288c2b4bc1"]
[2023-10-21 17:08:41][DEBUG] : login : FINAL TOKENS = {"access_token":"3dd8fa57b9a9498094930b779dd32284c5001e2e4fa8766ca28c10084e70b56d2de2af7f8e7a1fe8f877a8288c2b4bc1","expires_in":"3600","refresh_token":"4ddaa82c5013787a171533fc0a8488fa911e84d054bdd6b09e6e503a34ece2d54ab50944013556a988ff916bf39623c5","oauth2_backend_url":"https%3A%2F%2Fgb.lgeapi.com%2F"}

Merci.
Boulette corrigée.

Relance la connexion une fois la màj appliquée.

log refresh :

[2023-10-21 17:17:50]DEBUG : Action sur refresh avec options {"user_login":"admin","user_id":"2"}
[2023-10-21 17:17:50]DEBUG : refresh : début
[2023-10-21 17:17:50]DEBUG : getTokenIsExpired : refresh_token à jour, il expire dans 3564 secondes
[2023-10-21 17:17:50]DEBUG : getDeviceWorkId :  URL : https://eic.lgthinq.com:46030/api/member/login
[2023-10-21 17:17:50]DEBUG : getDeviceWorkId :  DATA : {"lgedmRoot":{"cmd":"Mon","cmdOpt":"Start","deviceId":"FB5BA61F-909D-444C-9EA0-30a9de299afa","workId":"08428daa-460d-4879-91d6-8425ec7d40a5"}}
[2023-10-21 17:17:50]DEBUG : getDeviceWorkId :  HEADERS : ["Accept: application\/json","Content-Type: application\/json","x-thinq-application-key: wideq","x-thinq-security-key: nuts_securitykey","x-thinq-token: 1017729c944869e5106ad8b44dcfef439ff49fd1b30ca40d17ebc4264692e34dd60c4dbe7efe9d48cb49a89c24580dce","x-thinq-jsessionId: C335D586C9328AEBCE159C35924E64ED.nodes_sadap_01"]
[2023-10-21 17:17:50]DEBUG : getDeviceWorkId :  RESPONSE : {"lgedmRoot":{"stateCode":"S","deviceState":"E","timestamp":0}}
[2023-10-21 17:17:50]DEBUG : getDeviceWorkId : Erreur de la requête  null
[2023-10-21 17:17:50]DEBUG : getDeviceRtiResult :  response : 9000잘못된 요청
[2023-10-21 17:17:50]DEBUG : getDeviceRtiResult : Erreur de la requête  null
[2023-10-21 17:17:50]DEBUG : refresh : fin