dubocr / homebridge-tahoma

Homebridge plugin for TaHoma, Connexoon, Cozytouch, Energeasy Connect.
Apache License 2.0
134 stars 42 forks source link

Gestion d'un Chauffe Eau connecté Sauter/CozyTouch #91

Closed macjl closed 5 years ago

macjl commented 5 years ago

Bonjour,

J'utilise le PugIn Homebridge-Tahoma pour gérer un appareil pilotés via CozyTouch. J'ai actuellement un chauffe-eau thermodynamique Sauter. Celui-ci apparait dans HomeKit comme une climatisation :

Capture d’écran 2019-05-05 à 16 21 05

Il n'y a pas forcément d'intérêt à connaître la température de l'eau du chauffe-eau, d'autant que je ne sais pas comment il va se comporter si je lui change ces paramètres.

Par contre, deux commandes qui peuvent être intéressantes selon moi seraient le mode 'Boost' et le mode 'Vacances'. Une autre information intéressante pour moi, serait de savoir si le chauffe-eau est en train de fonctionner, afin de ventiler la pièce dans laquelle il tourne pendant ce temps là.

Je suis allé sur https://dev.duboc.pro/tools/setup pour charger ma configuration. Pensez-vous pouvoir gérer ce type d'appareil?

Cordialement,

dubocr commented 5 years ago

Bonjour,

Pouvez-vous retourner sur la page https://dev.duboc.pro/tools/setup lorsque le chauffe-eau est en boost et qu'il est en chauffe pour voir les paramètres qui changent.

Merci.

macjl commented 5 years ago

Bonjour, Je viens de retourner sur la page pendant que le chauffe-eau tournait, puis après avoir activé le mode « boost » J’ai du faire plusieurs chargement de la page, car les valeurs étaient toujours les mêmes avant que je n’ouvre l’app Cozytouch, qui a dû rafraîchir les données.

dubocr commented 5 years ago

J'ai déployé une nouvelle version du plugin. Peux-tu voir ce que cela donne avec cette version 0.2.0 et me faire un retour pour ajuster. Merci.

macjl commented 5 years ago

Bonjour,

Merci pour ces modifications. Malheureusement, ça n’a pas changé grand chose dans Homekit pour moi. J’ai toujours deux devices, un thermostat, et un accessoire non géré. Voilà la log de démarrage :

[5/8/2019, 8:53:00 PM] Loaded config.json with 0 accessories and 1 platforms.[5/8/2019, 8:53:00 PM] --- [5/8/2019, 8:53:00 PM] Loaded plugin: homebridge-tahoma homebridge-tahoma API version: 2.4 [5/8/2019, 8:53:00 PM] Registering platform 'homebridge-tahoma.Tahoma' [5/8/2019, 8:53:00 PM] --- [5/8/2019, 8:53:00 PM] Loading 1 platforms... [5/8/2019, 8:53:00 PM] [Tahoma] Initializing Tahoma platform... [5/8/2019, 8:53:01 PM] [Tahoma] [Box] type: Pod > Pod, protocol: internal [5/8/2019, 8:53:01 PM] [Tahoma] No definition found for Pod > Pod in mapping.json file [5/8/2019, 8:53:01 PM] [Tahoma] [DHWP Actuator] type: WaterHeatingSystem > DomesticHotWaterProduction, protocol: io [5/8/2019, 8:53:01 PM] [Tahoma] Instanciate DHWP Actuator as Thermostat [5/8/2019, 8:53:01 PM] [Tahoma] [IO (2401135#2)] type: ElectricitySensor > CumulativeElectricPowerConsumptionSensor, protocol: io [5/8/2019, 8:53:01 PM] [Tahoma] Instanciate IO (2401135#2) as ElectricitySensor [5/8/2019, 8:53:01 PM] [Tahoma] Service ElectricitySensor not implemented [5/8/2019, 8:53:01 PM] [Tahoma] Device IO (2401135#2) (CumulativeElectricPowerConsumptionSensor) attached to DHWP Actuator (DomesticHotWaterProduction) [5/8/2019, 8:53:01 PM] [Tahoma] Initializing platform accessory 'DHWP Actuator'... [5/8/2019, 8:53:01 PM] [Tahoma] Initializing platform accessory 'IO (2401135#2)'... Setup Payload: X-HM://0023OA51DN31E Scan this code with your HomeKit app on your iOS device to pair with Homebridge:

dubocr commented 5 years ago

Le mode boost doit s’activer en passant en « chauffage », le mode vacances en passant en « arrêt » et passer en « auto » désactive le boost et le mode vacances. Il est normalement possible de détecter la chauffe avec la caractéristique de l’etat courant (Chauffage : chauffe en cours, Autre : pas de chauffe en cours).

Quelles sont les 3 premières lettres de votre identifiant cozytouch ? Je ne vois pas le passage en boost dans l’hisoriQue

jptoucas commented 5 years ago

Bonjour, Je me permets de rebondir sur un point similaire dans mon installation !

J'ai un sèche-serviette Sauter raccordé via une interface Cozytouch (via fil pilote : https://boutique.confort-sauter.com/interface-cozytouch.html) Vue Tahoma, j'ai 4 états, Mode éco, Confort, Hors Gel et Off Vue plugin, l'interface est vue comme un climatiseur Les ordres Homebridge sont bien pris en compte: Refroidir -> Déclenche le mode éco en climatiseur 19° (je ne sais pas d'ou vient cette température) Chauffer -> Déclenche le mode confort Eteindre -> Eteint le sèche serviette

Dans l'autre sens je n'ai pas réussit à observer de mise à jour de l'état dans l'application Maison (il y a un statut HorsGel côté Tahoma qui me semble ne pas avoir de correspondance coté plugin)

J'ai fait plusieurs chargements via https://dev.duboc.pro/tools/setup, la premiere chose qui m'a paru bizarre c'est que l'interface Sauter est vue comme un chauffage électrique Atlantic, mon soucis bien peut être de la ? -> Est-ce quelque chose sur lequel il est possible d'agir? Merci pour tout aide :)

Je joins quelques screenshots du site donnant l'état des appareils, on y retrouve les 4 modes et le statut on/off si ç peut aider.

2 Eco 1 Confort 3 HorsGel 4 Off
macjl commented 5 years ago

Le mode boost doit s’activer en passant en « chauffage », le mode vacances en passant en « arrêt » et passer en « auto » désactive le boost et le mode vacances. Il est normalement possible de détecter la chauffe avec la caractéristique de l’etat courant (Chauffage : chauffe en cours, Autre : pas de chauffe en cours).

Merci! Je vais faire le test!

Quelles sont les 3 premières lettres de votre identifiant cozytouch ? Je ne vois pas le passage en boost dans l’hisorique

Mon identifiant commence par 'fam'

macjl commented 5 years ago

Après test de passage en 'Boost', une erreur dans la log :

[5/8/2019, 10:38:36 PM] [Tahoma] Error 400 Managed action group is invalid : setBoostModeDuration() : Invalid value for command parameter p1 : expected integer value between 1 and 7 but got 60 (UNSPECIFIED_ERROR) [5/8/2019, 10:38:36 PM] [Tahoma] [DHWP Actuator] setBoostModeDuration Error 400 Managed action group is invalid : setBoostModeDuration() : Invalid value for command parameter p1 : expected integer value between 1 and 7 but got 60 (UNSPECIFIED_ERROR)

La valeur de Boost doit être le temps en jours, et non en minutes selon moi.

Pour le mode absence, ça semble passer dans la log : [5/8/2019, 10:41:36 PM] [Tahoma] [DHWP Actuator] setAwayModeDuration[30] [5/8/2019, 10:41:38 PM] [Tahoma] [DHWP Actuator] setAwayModeDuration COMPLETED Mais le chauffe-eau n'apparaît pas en mode absent dans CozyTouch.

dubocr commented 5 years ago

Je vais modifier pour le boost. Pour l’absence, est-ce que lors d’une mise en absence depuis le chauffe-eau celle-ci s’affiche correctement sur Cozytouch ? Et est-ce que la mise en absence sur HomeKit est bien prise en compte sur le chauffe-eau ?

Merci

dubocr commented 5 years ago

Pour la chauffe ce ne sera pas possible de connaître l’etat sur ce produit. Il ne semble pas y avoir le paramètre d’état de chauffe.

macjl commented 5 years ago

Bonjour, J'ai creusé un peu en questionnant les API de CozyTouch en direct. Et j'ai trouvé ce paramètres qui semble évoluer quand le chauffe-eau est en marche : energyDemandStatus (dans la section io:OperatingModeCapabilitiesState)

Je continue à creuser.

dubocr commented 5 years ago

Effectivement ces objets n'étaient pas affichés sur ma page de config. J'ai intégré leur gestion et mis à jour le plugin. Avant de nouveau test pensez à mettre à jour.

dubocr commented 5 years ago

@jptoucas HomeKit ne dispose pas d'autant de mode que le fil pilote. D'où le mapping déséquilibré. La mise à jour des états se fait toute les 30 minutes car l'API de Cozytouch ne permet pas de pousser les informations en temps réel.

jptoucas commented 5 years ago

@jptoucas HomeKit ne dispose pas d'autant de mode que le fil pilote. D'où le mapping déséquilibré. La mise à jour des états se fait toute les 30 minutes car l'API de Cozytouch ne permet pas de pousser les informations en temps réel.

Merci pour ce retour ! les 30 minutes expliquent pas mal de choses :) Effectivement, sans équipement proche d'un sèche serviette côté HomeKit, difficile de faire de magie. -> Il aurait presque fallu avoir un switch a 4 positions à paramétrer au besoin..

macjl commented 5 years ago

J'ai mis à jour en 0.2.2. J'attends de voir comment se comporte la remontée d'information sur l'activité du chauffe-eau.

Pour la partie 'BOOST' et 'ABSENCE', voici ce que j'ai pu tester ce soir :

En mode NORMAL : { "name": "core:OperatingModeState", "type": 11, "value": { "absence": "off", "relaunch": "off" } }

En mode ABSENCE : { "name": "core:OperatingModeState", "type": 11, "value": { "absence": "on", "relaunch": "off" } },{ "name": "io:AwayModeDurationState", "type": 3, "value": "always" } La valeur de AwayModeDurationState est un nombre de jours, ou 'always'

En mode BOOST : { "name": "core:OperatingModeState", "type": 11, "value": { "absence": "off", "relaunch": "on" } },{ "name": "core:BoostModeDurationState", "type": 1, "value": 3 } La valeur de BoostModeDurationState est un nombre de jours entre 1 et 7.

macjl commented 5 years ago

Bonjour,

Avec la nouvelle version, les commandes semblent passer, et le chauffe eau change bien de mode "Absence, Boost, Auto". Par contre, il y a un message d'erreur dans la log après avoir passé la commande, et au bout d'un moment, l'appareil passe en mode 'Pas de réponse' dans Homekit : 2019-05-12T15:04:35.320809870Z [5/12/2019, 5:04:35 PM] [Tahoma] [DHWP Actuator] setCurrentOperatingMode[{"relaunch":"off","absence":"off"}] 2019-05-12T15:04:50.076317859Z [5/12/2019, 5:04:50 PM] [Tahoma] [DHWP Actuator] setCurrentOperatingMode ERRORCOMMAND 2019-05-12T15:04:50.077173413Z [5/12/2019, 5:04:50 PM] [Tahoma] Callback already triggered

Pour la remontée d'information si le chauffe eau est en fonctionnement ou pas, je n'ai pas l'impression que cela fonctionne. L'icône dans Home reste tout le temps en orange, ce qui semble indiquer qu'il chauffe, alors que ce n'est pas tout le temps le cas. De plus, je n'ai pas trouvé le moyen de déclencher des scénarios d'après l'état d'un thermostat dans Home ou Eve. Je pense qu'il serait mieux de refléter cet état par un deuxième device de type interrupteur, afin de pouvoir créer des automatisations.

dubocr commented 5 years ago

Pouvez-vous vous connecter à ma page pour voir le détail. Sous Eve, il faut utiliser la caractéristique "Mode". Lorsqu'elle est en "HEAT" c'est que le chauffe-eau chauffe.

Merci

macjl commented 5 years ago

Je guette depuis 3 jours le moment où le chauffe eau va se mettre en route, sans le forcer en mode 'Boost'. Je l'ai enfin eu il y a quelques minutes. Donc je me suis connecté à votre page, et les infos devraient être dispo.

dubocr commented 5 years ago

Est-ce que le "Mode" du chauffe-eau est passé en HEAT sous EVE ?

dubocr commented 5 years ago

IMG_0370

macjl commented 5 years ago

Le mode est actuellement en "Chauffage", alors que le chauffe eau s'est arrêté il y a 3 heures.

dubocr commented 5 years ago

Peux-tu te connecter à nouveau à ma page stp.

macjl commented 5 years ago

Voilà qui est fait

dubocr commented 5 years ago

C'est bon cela devrait fonctionner correctement dans la dernière mise à jour. Je ne peux pas tester le comportement des changement d'état mais pour l'état actuel (dernière connexion à ma page), le widget apparait bien en "climatisation" indiquant qu'il ne chauffe pas.

macjl commented 5 years ago

Merci!!

Je viens de mettre à jour. Je vais vérifier le comportement.

macjl commented 5 years ago

L'information remonte maintenant dans Home et Eve. 👍 Par contre, le rafraîchissement de l'état ne semble pas se faire en arrière plan. Ce matin, le chauffe-eau s'est mis en route vers 8h. Ce n'est qu'à 9h30, après que j'ai ouvert les applications Home, Eve puis CozyTouch que mon automatisation s'est déclenchée, et que la ventilation de la pièce s'est donc allumée.

Je vérifierais plus précisément lors de l'arrêt du chauffe-eau d'ici 2h si c'est l'ouverture de Home, de Eve ou de CozyTouch qui a rafraichi l'état et a pu déclencher l'automatisation.

dubocr commented 5 years ago

En ce qui concerne le rafraîchissement malheureusement les possibilités sont limitées. Effectivement Atlantic lance un rafraîchissement global des produits au démarrage de l'application. Donc pour résumer :

Pour pallier au 1er point, actuellement, le plugin lance un rafraîchissement toute les 30 minutes (en principe donc ton automatisation aurait du démarrer au plus tard 30 min après, 1h au pire si les produits n'ont pas répondu dans les 10 secondes). Tu peux modifier le paramètre "refreshPeriod" (en secondes) dans ta config homebridge pour faire des tests. Vu la lourdeur du processus derrière (gros flux radio entre la box et les produits), je te déconseille de descendre trop bas (10 min (paramètre à 600 secondes) est peut-être une limite à ne pas franchir).

Pour le second point, il n'a d'impact que pour les produits qui remontent leur état en temps réél. Mais tu ne semble pas en avoir. Sinon c'est géré par le polling server. Voir #84

Pour debugger, tu peux ajouter la ligne suivante après la ligne 132 du fichier overkiz-api.js that.log('Refresh global ' + device.name);

macjl commented 5 years ago

J'ai modifié le fichier, passé la période à 600 seconde, et voilà ce que j'obtiens dans les logs : 2019-05-17T08:55:04.555844210Z [5/17/2019, 10:55:04 AM] [Tahoma] Refresh global undefined 2019-05-17T08:55:04.562123197Z [5/17/2019, 10:55:04 AM] [Tahoma] Refresh global undefined 2019-05-17T08:55:04.562252376Z [5/17/2019, 10:55:04 AM] [Tahoma] Refresh global undefined 2019-05-17T09:05:04.553284791Z [5/17/2019, 11:05:04 AM] [Tahoma] Refresh global undefined 2019-05-17T09:05:04.553330160Z [5/17/2019, 11:05:04 AM] [Tahoma] Refresh global undefined 2019-05-17T09:05:04.554790561Z [5/17/2019, 11:05:04 AM] [Tahoma] Refresh global undefined 2019-05-17T09:15:04.837664613Z [5/17/2019, 11:15:04 AM] [Tahoma] Refresh global undefined 2019-05-17T09:15:04.837966710Z [5/17/2019, 11:15:04 AM] [Tahoma] Refresh global undefined 2019-05-17T09:15:04.839205327Z [5/17/2019, 11:15:04 AM] [Tahoma] Refresh global undefined

Est-ce normal?

macjl commented 5 years ago

Quand j'interroge l'API CozyTouch manuellement, je vois pendant de longues périodes :
"attributes": [], "available": false, "controllableName": "io:AtlanticDomesticHotWaterProductionV3IOComponent",

Cela veut-il dire que l'appareil n'est pas accessible en sans fil? Si oui, cela pourrait-être la cause du non rafraîchissement des données actuellement. Je vais essayer de rapprocher le boitier CozyTouch du chauffe-eau ce week-end. Il se trouve actuellement à côté de la borne Wifi, d'un pont Hue, d'une box eLocky et d'un Rfxcom... C'est assez saturé en ondes radio dans cette étagère 🤣

dubocr commented 5 years ago

Oui les logs semblent OK (remplace juste device.name par device.label). Mais effectivement c’est bien possible que le produit soit injoignable. Compare avec l’etaT dans Cozytouch. Lorsqu’il est OK dans Cozytouch alors 10min max après il devrait l’être sur HomeKit.

macjl commented 5 years ago

J’ai déplacé le pont Cozytouch pour le rapprocher du chauffe-eau, et j’ai tout de suite eu la remontée d’informations sur son état. Donc tout semble donc fonctionner.

Merci beaucoup pour toutes ces évolutions !