gduteil / cozytouch

Atlantic Cozytouch integration for Home Assistant
19 stars 0 forks source link

Intégration Naviclim - TAKAO M3 #1

Closed alicesalse-bmg closed 6 months ago

alicesalse-bmg commented 7 months ago

Bonjour @gduteil ,

Merci pour ce début d'intégration. J'ai pu m'en servir pour connecter mon pack naviclim avec mes clims réversibles Takao M3.

J'ai chargé toutes les entités inconnues et voici les déductions que j'ai pu faire :

cozytouch_ha cozytouch_ha2

J'ai pas encore eu le temps de regarder trop en détail votre code mais si je peux je pousserai mes contributions.

En effet, je voudrais arriver à gérer aussi : cool / dry / fan / auto en plus de heat.

Bonne soirée.

gduteil commented 7 months ago

Bonsoir et merci pour le retour.

Pour résumer :

100800 et 100803 me paraissent étranges, ils évoluent en fonction du mode mais sont identiques pour des modes différents, 181 a l'air interessant.

Le "Central Heating" est remonté mais n'a pas l'air cohérent pour une clim.

En regardant les autres, j'ai l'impression que :

Il doit y avoir une capability indiquant les possibilités de l'appareil (chauffage, chauffe-eau, clim, ...), ça pourrait être interessant de trouver laquelle pour pouvoir configurer les modes des entités climate correctement, ça pourrant se faire en se partageant le fichier Cozytouch.json présent dans le dossier config de HA (si la case a été cochée lors de l'installation) et en comparant. Des infos peuvent être un peu privées dedans (ville, numéro de série, ...) n'hésitez pas à les masquer avant de l'envoyer.

En attendant on peut se baser sur le modelId, d'ailleurs quel est le modelId remonté pour in TAKAO M3 ?

Je vais ajouter les infos trouvées, si vous voulez faire des tests les mappings se trouvent dans capability.py et model.py. Il y a également un mode de debug dans l'application Cozytouch interessant (probablement oublié par les développeurs), activable avec un tap à 2 doigts en dehors d'un contrôle, l'activation de l'oeil en haut active un overlay avec les capabilities utilisés sur chaque page :

1 2

Bonne soirée.

alicesalse-bmg commented 7 months ago

bonsoir,

merci pour le mode débug ca aide 😉

pour compléter :

image
Voici le contenu du Cozytouch.json : ```json [ { "id": 750470, "name": "setup1", "address": {}, "numberOfRooms": 4, "numberOfPersons": 2, "area": 100, "type": 2, "mainHeatingEnergy": 1, "mainDHWEnergy": 1, "setupBuildingDate": 2, "timeZone": "Europe/Paris", "absence": { "endDate": null, "startDate": null }, "devices": [ { "customName": "CLIF Default", "deviceId": 2860076, "gatewayId": 549286, "masterDeviceId": null, "modelId": 556, "name": "CLIF Default", "productId": 25, "tags": [], "gatewaySerialNumber": "...", "longName": "CLIF Default", "productRange": null, "isAvailable": true, "isAvailableTimestamp": 1708453503, "isRemoteMaintainable": false, "zoneId": 364698, "capabilities": [ { "capabilityId": 93, "modificationDate": 1708457107, "value": "1" }, { "capabilityId": 98, "modificationDate": 1708457106, "value": "100922432400072" }, { "capabilityId": 121, "modificationDate": 1708457106, "value": "1.0.15" }, { "capabilityId": 150, "modificationDate": 1708457167, "value": "[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]" }, { "capabilityId": 152, "modificationDate": 1708457107, "value": "0" }, { "capabilityId": 172, "modificationDate": 1708457107, "value": "10.0000000000000000000" }, { "capabilityId": 179, "modificationDate": 1708544122, "value": "-46" }, { "capabilityId": 182, "modificationDate": 1708457107, "value": "0" }, { "capabilityId": 188, "modificationDate": 1708457107, "value": "1" }, { "capabilityId": 218, "modificationDate": 1708457102, "value": "0" }, { "capabilityId": 222, "modificationDate": 1708463507, "value": "[1708463504,0]" }, { "capabilityId": 304, "modificationDate": 1708457107, "value": "0" }, { "capabilityId": 315, "modificationDate": 1708457124, "value": "3600" } ] }, { "customName": "ROOM_0", "deviceId": 2860077, "gatewayId": 549286, "masterDeviceId": 2860076, "modelId": 557, "name": "ROOM_0", "productId": 26, "tags": [ { "label": "iothubChildrenIds", "value": "UI_0" } ], "gatewaySerialNumber": "...", "longName": "ROOM_0", "productRange": null, "isAvailable": true, "isAvailableTimestamp": 1708453504, "isRemoteMaintainable": false, "zoneId": 364696, "capabilities": [ { "capabilityId": 7, "modificationDate": 1708535902, "value": "0" }, { "capabilityId": 40, "modificationDate": 1708516977, "value": "19.00000000000000000000" }, { "capabilityId": 73, "modificationDate": 1708457107, "value": "4" }, { "capabilityId": 117, "modificationDate": 1708457107, "value": "23.5000000000000000000" }, { "capabilityId": 154, "modificationDate": 1708512172, "value": "S\u00e9jour" }, { "capabilityId": 157, "modificationDate": 1708457107, "value": "0" }, { "capabilityId": 158, "modificationDate": 1708457107, "value": "120" }, { "capabilityId": 159, "modificationDate": 1708457107, "value": "0" }, { "capabilityId": 160, "modificationDate": 1708457107, "value": "16.0000000000000000000" }, { "capabilityId": 161, "modificationDate": 1708457107, "value": "30.0000000000000000000" }, { "capabilityId": 162, "modificationDate": 1708457107, "value": "18.0000000000000000000" }, { "capabilityId": 163, "modificationDate": 1708457107, "value": "30.0000000000000000000" }, { "capabilityId": 166, "modificationDate": 1708514129, "value": "411" }, { "capabilityId": 177, "modificationDate": 1708457107, "value": "20.0000000000000000000" }, { "capabilityId": 181, "modificationDate": 1708535907, "value": "0" }, { "capabilityId": 184, "modificationDate": 1708514094, "value": "0" }, { "capabilityId": 217, "modificationDate": 1708513371, "value": "3331" }, { "capabilityId": 218, "modificationDate": 1708457104, "value": "0" }, { "capabilityId": 294, "modificationDate": 1708457107, "value": "0.5000000000000000000" }, { "capabilityId": 295, "modificationDate": 1708457107, "value": "15" }, { "capabilityId": 296, "modificationDate": 1708457107, "value": "60" }, { "capabilityId": 303, "modificationDate": 1708457167, "value": "[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]" }, { "capabilityId": 306, "modificationDate": 1708457107, "value": "10" }, { "capabilityId": 100000, "modificationDate": 1708457107, "value": "1" }, { "capabilityId": 100002, "modificationDate": 1708457107, "value": "5" }, { "capabilityId": 100004, "modificationDate": 1708457107, "value": "9" }, { "capabilityId": 100013, "modificationDate": 1708457107, "value": "1" }, { "capabilityId": 100021, "modificationDate": 1708457107, "value": "9" }, { "capabilityId": 100022, "modificationDate": 1708457107, "value": "411" }, { "capabilityId": 100023, "modificationDate": 1708457107, "value": "3331" }, { "capabilityId": 100260, "modificationDate": 1708457167, "value": "[0,0]" }, { "capabilityId": 100261, "modificationDate": 1708457107, "value": "0" }, { "capabilityId": 100300, "modificationDate": 1708457107, "value": "1" }, { "capabilityId": 100301, "modificationDate": 1708457107, "value": "70" }, { "capabilityId": 100320, "modificationDate": 1708463264, "value": "[[360,17,0],[1320,18,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100321, "modificationDate": 1708463255, "value": "[[360,17,0],[1320,18,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100322, "modificationDate": 1708463245, "value": "[[360,17,0],[1320,18,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100323, "modificationDate": 1708463235, "value": "[[360,17,0],[1320,18,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100324, "modificationDate": 1708463279, "value": "[[360,17,0],[1320,18,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100325, "modificationDate": 1708463218, "value": "[[360,17,0],[1320,18,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100326, "modificationDate": 1708463295, "value": "[[360,17,0],[1320,18,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100327, "modificationDate": 1708457167, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100328, "modificationDate": 1708457167, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100329, "modificationDate": 1708457168, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100330, "modificationDate": 1708457168, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100331, "modificationDate": 1708457168, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100332, "modificationDate": 1708457168, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100333, "modificationDate": 1708457167, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100505, "modificationDate": 1708515622, "value": "0" }, { "capabilityId": 100506, "modificationDate": 1708515237, "value": "1" }, { "capabilityId": 100507, "modificationDate": 1708515326, "value": "0" }, { "capabilityId": 100800, "modificationDate": 1708513371, "value": "2" }, { "capabilityId": 100801, "modificationDate": 1708514811, "value": "1" }, { "capabilityId": 100802, "modificationDate": 1708514925, "value": "1" }, { "capabilityId": 100803, "modificationDate": 1708535907, "value": "1" }, { "capabilityId": 100804, "modificationDate": 1708459548, "value": "0" } ] }, { "customName": "ROOM_1", "deviceId": 2860078, "gatewayId": 549286, "masterDeviceId": 2860076, "modelId": 558, "name": "ROOM_1", "productId": 27, "tags": [ { "label": "iothubChildrenIds", "value": "UI_1" } ], "gatewaySerialNumber": "...", "longName": "ROOM_1", "productRange": null, "isAvailable": true, "isAvailableTimestamp": 1708453504, "isRemoteMaintainable": false, "zoneId": 364697, "capabilities": [ { "capabilityId": 7, "modificationDate": 1708497128, "value": "0" }, { "capabilityId": 40, "modificationDate": 1708463488, "value": "18.00000000000000000000" }, { "capabilityId": 73, "modificationDate": 1708457109, "value": "4" }, { "capabilityId": 117, "modificationDate": 1708457109, "value": "16.2500000000000000000" }, { "capabilityId": 154, "modificationDate": 1708457109, "value": "Bureau" }, { "capabilityId": 157, "modificationDate": 1708462908, "value": "0" }, { "capabilityId": 158, "modificationDate": 1708457109, "value": "120" }, { "capabilityId": 159, "modificationDate": 1708462913, "value": "0" }, { "capabilityId": 160, "modificationDate": 1708457109, "value": "16.0000000000000000000" }, { "capabilityId": 161, "modificationDate": 1708457109, "value": "30.0000000000000000000" }, { "capabilityId": 162, "modificationDate": 1708457109, "value": "18.0000000000000000000" }, { "capabilityId": 163, "modificationDate": 1708457109, "value": "30.0000000000000000000" }, { "capabilityId": 166, "modificationDate": 1708463330, "value": "411" }, { "capabilityId": 177, "modificationDate": 1708457109, "value": "20.0000000000000000000" }, { "capabilityId": 181, "modificationDate": 1708497132, "value": "0" }, { "capabilityId": 184, "modificationDate": 1708463325, "value": "0" }, { "capabilityId": 217, "modificationDate": 1708457109, "value": "3331" }, { "capabilityId": 218, "modificationDate": 1708457104, "value": "0" }, { "capabilityId": 294, "modificationDate": 1708457109, "value": "0.5000000000000000000" }, { "capabilityId": 295, "modificationDate": 1708457109, "value": "15" }, { "capabilityId": 296, "modificationDate": 1708457109, "value": "60" }, { "capabilityId": 303, "modificationDate": 1708457167, "value": "[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]" }, { "capabilityId": 306, "modificationDate": 1708457109, "value": "10" }, { "capabilityId": 100000, "modificationDate": 1708457109, "value": "1" }, { "capabilityId": 100002, "modificationDate": 1708457109, "value": "5" }, { "capabilityId": 100004, "modificationDate": 1708457109, "value": "9" }, { "capabilityId": 100013, "modificationDate": 1708457109, "value": "1" }, { "capabilityId": 100021, "modificationDate": 1708457109, "value": "9" }, { "capabilityId": 100022, "modificationDate": 1708457109, "value": "411" }, { "capabilityId": 100023, "modificationDate": 1708457109, "value": "3331" }, { "capabilityId": 100260, "modificationDate": 1708457168, "value": "[0,0]" }, { "capabilityId": 100261, "modificationDate": 1708457109, "value": "0" }, { "capabilityId": 100300, "modificationDate": 1708457109, "value": "1" }, { "capabilityId": 100301, "modificationDate": 1708457109, "value": "70" }, { "capabilityId": 100320, "modificationDate": 1708462598, "value": "[[300,20,0],[1080,17,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100321, "modificationDate": 1708462543, "value": "[[300,20,0],[1080,17,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100322, "modificationDate": 1708462670, "value": "[[300,20,0],[1080,17,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100323, "modificationDate": 1708462707, "value": "[[300,20,0],[1080,17,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100324, "modificationDate": 1708462746, "value": "[[300,20,0],[1080,17,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100325, "modificationDate": 1708462766, "value": "[[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100326, "modificationDate": 1708462777, "value": "[[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100327, "modificationDate": 1708457168, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100328, "modificationDate": 1708457168, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100329, "modificationDate": 1708457168, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100330, "modificationDate": 1708457167, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100331, "modificationDate": 1708457167, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100332, "modificationDate": 1708457167, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100333, "modificationDate": 1708457167, "value": "[[360,20,0],[1320,19,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]" }, { "capabilityId": 100505, "modificationDate": 1708457109, "value": "0" }, { "capabilityId": 100506, "modificationDate": 1708457109, "value": "1" }, { "capabilityId": 100507, "modificationDate": 1708457109, "value": "0" }, { "capabilityId": 100800, "modificationDate": 1708457109, "value": "2" }, { "capabilityId": 100801, "modificationDate": 1708457110, "value": "5" }, { "capabilityId": 100802, "modificationDate": 1708457110, "value": "0" }, { "capabilityId": 100803, "modificationDate": 1708497132, "value": "1" }, { "capabilityId": 100804, "modificationDate": 1708457110, "value": "0" } ] }, { "customName": "UI_0", "deviceId": 2860079, "gatewayId": 549286, "masterDeviceId": 2860076, "modelId": 562, "name": "UI_0", "productId": 31, "tags": [], "gatewaySerialNumber": "...", "longName": "UI_0", "productRange": null, "isAvailable": true, "isAvailableTimestamp": 1708453504, "isRemoteMaintainable": false, "zoneId": 364698, "capabilities": [ { "capabilityId": 218, "modificationDate": 1708457104, "value": "0" }, { "capabilityId": 100078, "modificationDate": 1708512147, "value": "0" } ] }, { "customName": "UI_1", "deviceId": 2860080, "gatewayId": 549286, "masterDeviceId": 2860076, "modelId": 563, "name": "UI_1", "productId": 32, "tags": [], "gatewaySerialNumber": "...", "longName": "UI_1", "productRange": null, "isAvailable": true, "isAvailableTimestamp": 1708453505, "isRemoteMaintainable": false, "zoneId": 364698, "capabilities": [ { "capabilityId": 218, "modificationDate": 1708457105, "value": "0" }, { "capabilityId": 100078, "modificationDate": 1708512163, "value": "0" } ] } ], "gateways": [ { "id": "549286", "serialNumber": "...", "isAlive": true, "setupId": 750470, "type": 1000 } ], "zones": [ { "id": 364696, "name": "S\u00e9jour", "zoneType": 1, "numberOfDevices": 1 }, { "id": 364697, "name": "Bureau", "zoneType": 1, "numberOfDevices": 1 }, { "id": 364698, "name": "zoneTechnique", "zoneType": 2, "numberOfDevices": 3 } ] } ] ```
gduteil commented 7 months ago

Merci je vais regarder tout ça et oui le mode debug est assez pratique ;)

Au passage Je me demandais, je n'ai qu'un seul appareil, l'intégration arrive à s'en sortir avec plusieurs ?

alicesalse-bmg commented 7 months ago

J'ai fait une intégration pour chaque appareil ROOM_0 / ROOM_1.

CLIF je pense que c'est le HUB Naviclim. ensuite UI_0 et UI_1 je ne sais pas trop...

image
gduteil commented 7 months ago

Vous avez 2 clims connectées en Zigbee sur un hub, lui même connecté en Wifi ?

Si c'est le cas, je pense effectivement que CLIF est le hub (179 a l'air d'être un niveau réception d'un signal Wifi), UI_x doivent être des interfaces internes pour la connexion entre clim et hub, et ROOM_x sont les clims, d'ailleurs CLIF et UI_x sont associées à une zone "zoneTechnique" qui est d'un type différent, probablement masquée dans l'application.

Je suis surpris par les modelId, tous différents

alicesalse-bmg commented 7 months ago

Vous avez 2 clims connectées en Zigbee sur un hub, lui même connecté en Wifi ?

Oui c'est exactement ça.

Je suis surpris par les modelId, tous différents

Mes 2 splits sont des TAKAO M3 mais pas la même puissance donc modèle différent (ASYG14KGTE / ASYG07KGTE) ce qui peut expliquer la différence d'ID. 🤔

j'ai complété mon commentaire précédent

alicesalse-bmg commented 7 months ago

Pour la clim réversible le capability ID 7 peut prendre plusieurs valeurs :

je vais voir comment je peux implémenter ca dans votre code

alicesalse-bmg commented 7 months ago

Voici donc ce que j'ai réussi à faire :

image

image

je pousse mes devs dans une branche. j'ai essayé de faire en sorte que ca prenne en compte votre config également, mais c'est à tester chez vous.

alicesalse-bmg commented 7 months ago

Bonjour @gduteil, est il possible de m'autoriser à créer une branche?

gduteil commented 7 months ago

Vous avez 2 clims connectées en Zigbee sur un hub, lui même connecté en Wifi ?

Oui c'est exactement ça.

Je suis surpris par les modelId, tous différents

Mes 2 splits sont des TAKAO M3 mais pas la même puissance donc modèle différent (ASYG14KGTE / ASYG07KGTE) ce qui peut expliquer la différence d'ID. 🤔

j'ai complété mon commentaire précédent

Ok ça s'explique et ça me rassure un peu

gduteil commented 7 months ago

Voici donc ce que j'ai réussi à faire :

image

image

je pousse mes devs dans une branche. j'ai essayé de faire en sorte que ca prenne en compte votre config également, mais c'est à tester chez vous.

Bonne nouvelle !

il y a moyen d'ajouter d'autres elements sur l'entité climate, j'ai commencé à la rendre un peu plus configurable, je pense pouvoir commiter quelque chose ce week-end.

gduteil commented 7 months ago

Bonjour @gduteil, est il possible de m'autoriser à créer une branche?

Je ne suis pas très à l'aise avec GitHub, vous avez dû recevoir une invitation, je devrais pouvoir gérer les droits une fois l'invitation acceptée

alicesalse-bmg commented 7 months ago

est ce que je peux vous pousser mes devs? sur une branche?

actuellement je n'y parvient pas

image
alicesalse-bmg commented 7 months ago

désolé je n'avais pas vu l'invite : j'ai poussé ici https://github.com/gduteil/cozytouch/tree/dev/integ-takao-m3

gduteil commented 7 months ago

Merci je vais vérifier que ça n'a pas d'impact dans mon cas avec une Chaudière Naema.

Du coup le 117 remonte bien la température courante ? il n'avait pas l'air de fonctionner avant.

alicesalse-bmg commented 7 months ago

Pour moi le 117 est bloqué sur 23,5 et 16,2. Peut être les valeurs au moment ou j’ai initialisé les interfaces naviclim. Mais je n’ai pas de rafraîchissement depuis.

je ne vois pas d’autre paramètre qui pourrait indiquer la température ambiante.

peut être un bug dans le rafraîchissement au niveau de Cozytouch? Il y a forcément une sonde de température…

🤔 à suivre

gduteil commented 7 months ago

C'est effectivement assez étrange, 117 dans mon cas est la sonde de température du thermostat, et c'est surprenant que ça soit remonté par l'API avec des valeurs non nulles et cohérentes avec une température mais ne varient pas.

Il y a une température courante affichée dans Cozytouch ?

alicesalse-bmg commented 7 months ago

Non dans l’interface graphique il n’y a pas de température ambiante affichée.

IMG_5441

dans les paramètres du mode debug il y a bien la valeur mais toujours la même

IMG_5442

sans doute un dev pas encore abouti…

gduteil commented 7 months ago

Si vous regardez la capture que j'ai envoyée avant-hier, j'ai la même page mais avec l'indication de température thermostat, ce qui peut vouloir dire qu'elle n'est affichée que si un thermostat d'ambiance est présent.

Dans le cas où il n'y n'est pas présent, la clim utiliserait une sonde interne pour sa régulation mais ne la remonte peut-être pas, et la valeur 117 reste à une ancienne valeur (valeur durant les tests usine ?)

gduteil commented 7 months ago

Bonsoir,

Je suis en train de finir un peu de refacto/nettoyage, je regarderai pour merger vos modifications ensuite.

Je voulais en profiter pour ajouter les modelId, pouvez-vous me dire lequels sont ASYG14KGTE et ASYG07KGTE ? Le hub a un nom "commercial" ?

Au passage je pensais que les "UI" étaient les interfaces Zigbee des clims pour la connexion avec le hub, mais vu que le 154 (nom de la zone Zigbee) est attachée aux clims, je pense plutôt que les UI sont les interfaces pour les télécommandes.

alicesalse-bmg commented 7 months ago

Bonjour,

ASYG14KGTE = 557 ASYG07KGTE = 558

Le hub c'est un HUB NAVICLIM = 556 (CLIF).

Pour les UI (562 et 563) je ne sais pas trop de toute façon ca ne semble rien remonter d'interessant et je ne sais pas dire laquelle correspond a quel climatiseur.

image

Je n'ai pas encore pris le temps de faire les intégrations pour les position du volet / la vitesse de ventilation / le mode eco ...

Je vous laisse peut être le temps de consolider ce que j'ai déjà poussé et je le ferai ensuite.

gduteil commented 7 months ago

Le JSON indique que UI_0 est un enfant de ROOM_0, et UI_1 de ROOM_1, et effectivement vu ce qui remonte ça n'a pas grand intérêt, je souhaitais juste ajouter l'identification.

Dans le commit d'hier soir j'ai ajouté les mode eco et powerful, ainsi que l'état presence en entités basiques, il me reste à finir de rendre l'entité climate plus paramétrable avant d'intégrer vos modifications, l'idée est d'avoir un descripteur d'appareils dans model.py et que les capteurs/contrôles s'adaptent en conséquence.

Je vais également regarder pour le côté traduction.

gduteil commented 7 months ago

Bonsoir,

Je suis en train d'intégrer vos modifications, je me pose une petite question concernant le mode "auto". Je vois que vous l'avez considéré comme un mode "heat", ça ne serait pas plutôt un mode "heat_cool" qui donne une plage de température, en dessous ça passe en heat et au dessus en cool ?

gduteil commented 7 months ago

Je viens de faire un push qui devrait intégrer vos modifications, vu la refacto et le nettoyage que j'étais en train de faire je n'ai pas pu le faire automatiquement, je l'ai fait manuellement et adaptant, il est possible que j'ai oublié quelque chose.

Vous pouvez vérifier que ça fonctionne bien chez vous ?

alicesalse-bmg commented 7 months ago

Bonjour,

Pour le mode AUTO, je n'ai pas la possibilité de renseigner une plage de temperature qui pourrait correspondre à un TARGET_TEMPERATURE_RANGE, je peux juste renseigner une seule temperature de consigne dans l'appli Cozytouch. En soit, je pense que l'implémentation AUTO / HEAT_COOL n'a pas grande importance, les 2 peuvent supporter une plage de température. Il vaut peut être mieux garder heat_cool pour les éventuelles intégrations futures ou il y aura besoin d' un RANGE.

Oui j'ai vu que vous aviez fait pas mal de modifs, je vais donc tester chez moi et vous pousser mes éventuels debugs.

Merci. :)

gduteil commented 7 months ago

Bonsoir,

A vous de voir ce que vous pensez être le mieux pour ces modes.

J'ai effectivement changé pas mal de choses, j'ai essayé de mieux séparer les possibilités des appareils et des entités pour éviter d'éventuelles régressions, c'est pas parfait mais c'est mieux qu'avant

alicesalse-bmg commented 6 months ago

Bonsoir,

J'ai poussé une branche avec quelques adaptations pour les clims TAKAO M3. #3

Pour les PRESET_MODES au départ j'avais pensé l'utiliser pour les modes ACTIVE (détecteur présence) / ECO / BOOST (powerful). Mais du coup on ne peut pas les cumuler avec la programmation. Je ne sais pas comment on pourrait faire, avez- vous une idée?

Est il possible que l'id de l'entité soit plutôt de type climate.room_0_air_conditionnerou sensor.room_0_capability_100000_2 au lieu de comme ci-dessous? Il me semble que c'était bien géré dans la première version, mais je ne trouve plus a quel endroit on le configure.

image

Bonne soirée.

gduteil commented 6 months ago

Bonsoir,

Je vais regarder pour merger la branche.

En cas de programmation active les modes autres modes sont supposés désactiver temporairement la programmation ? (Atlantic appelle ça "dérogation").

Pour les IDs d'entités, c'est une régression suite à la refacto, je m'en suis rendu compte hier, essayez en intégrant les commits d'hier, puis en réinstallant les appareils, ça devrait être mieux.

alicesalse-bmg commented 6 months ago

bonjour,

Les modes « détecteur de présence » (se met en mode eco si pas de présence) / « eco » et « powerful » peuvent à priori être utilisés pendant la programmation. Les activer ne déclenche pas de dérogation.

Idéalement il faudrait que ce soit une autre catégorie de presets_modes. Mais il ne peut pas y en avoir je suppose?

gduteil commented 6 months ago

L'entité climate n'a malheureusement qu'une seule liste de presets, il est peut-être possible de la surcharger pour la faire évoluer (au moins dans un dashboard, je pense que c'est fixe dans les paramètres), je n'ai jamais regardé cette partie.

J'avais ajouté prog/basic/override en tant que presets pour les chaudières qui n'ont pas de modes très complexes, on peut imaginer de les sortir de l'entité climate dans les cas des clims en tant que controles différents (switch, select ou autre) et de ne laisser dans les presets que les modes "utiles"

alicesalse-bmg commented 6 months ago

Bonsoir,

J'ai fait un petite correction, car j'avais une erreur sur le time.sleep()

AttributeError: type object 'datetime.time' has no attribute 'sleep'

Puis j'ai intégré les presets ACTIVITY/ECO/BOOST pour les clims, en effet les programmes pouvant être finalement créés dans le home assistant, cela me semble plus intéressant.

image
gduteil commented 6 months ago

Ca commence à ressembler à quelque chose ;) bravo et merci pour l'ajout.

J'ai validé le pull request, c'est surprenant pour l'import time, chez moi ça rentre en conflit avec datetime, je l'ai supprimé. Vous pouvez réessayer avec le dernier main ou la 0.5 si ça fait toujours la même chose chez vous ?

alicesalse-bmg commented 6 months ago

Bonjour @gduteil,

Merci à vous pour tout le code de départ, je n'aurai pas été capable de le faire toute seule.

je viens de retester avec la v0.5, le problème avec datetime.time c'est que j'ai ce message d'erreur à chaque fois que je modifie la température ou n'importe quel paramètre :

image

Sinon autre petit bug constaté sur la v0.5 : image

gduteil commented 6 months ago

C'est bizarre, je n'ai pas le message et avec l'import time j'ai des messages d'erreurs à cause d'un conflit avec datetime, je regarderai ce soir.

Pour le label manquant, j'ai déjà eu le cas et ça venait du cache du navigateur, vous pouvez essayer en forçant un rafraichissement ou en vidant le cache ?

alicesalse-bmg commented 6 months ago

pour le cache ca a bien fonctionné 👍🏽

gduteil commented 6 months ago

J'ai un peu de mal à comprendre l'intérêt d'avoir un objet time dans time et un autre dans datetime...

Je viens commiter une correction qui devrait corriger les problèmes de conflits.

alicesalse-bmg commented 6 months ago

Bonjour @gduteil,

Hier, j'ai fait des modifications sur mon wifi et j'ai du re-appairer mon Hub Naviclim. Etrangement mon capability 117 s'est ajusté avec de nouvelles temperatures : 20 et 24.5 et est maintenant bloqué sur celles-ci. Cela confirme mon idée qu'il y a un souci sur le rafraichissement de ce paramètre. A suivre...

image

gduteil commented 6 months ago

Bonjour,

C'est effectivement surprenant que ces valeurs aient changées lors de la reconfiguration... j'ai remarqué que quand elle est affichée dans l'appli elle est correctement mise à jour, alors que quand elle n'est pas affichée elle n'est soit pas remontée par l'API, soit remontée avec une valeur incorrecte qui ne varie pas.

Autre sujet, j'ai trouvé des capabilities pour les consommations, mais je n'ai rien vu dans votre JSON qui pourrait correspondre, vous avez un suivi de la conso dans l'appli ?