Intégration Qivivo (Comap Smart Home)

Bonsoir,

Avant de me lancer dans son déploiement sur une machine physique, je teste depuis plusieurs jours home assistant sur une machine virtuelle (virtualbox).
Je vous sollicite car je n’ai pas trouvé de plugin pour mon thermostat connecté « Qivivo », maintenant appelé « Comap Smart Home ».
Toutefois, il existe un script en python : petit-pierre melec / comapsmarthome_public_api_python · GitLab.

Pensez-vous qu’il soit possible d’intégrer simplement ce script à Home Assistant ?

Merci pour votre aide.

Ma configuration


[center]

version core-2022.9.5
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.5
os_name Linux
os_version 5.15.67
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 9.0
update_channel stable
supervisor_version supervisor-2022.09.1
agent_version 1.3.0
docker_version 20.10.17
disk_total 30.8 GB
disk_used 3.2 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Mosquitto broker (6.1.3), SomfyProtect2MQTT (0.2.1), Node-RED (13.4.0)
Dashboards
dashboards 1
resources 0
views 4
mode storage
Recorder
oldest_recorder_run 16 septembre 2022 à 11:25
current_recorder_run 21 septembre 2022 à 21:35
estimated_db_size 9.82 MiB
database_engine sqlite
database_version 3.38.5
[/center]
1 « J'aime »

Très intéressé aussi par une potentielle intégration, le manque de visibilité va me faire changer de système d’ici quelques temps pour une meilleure intégration dans ma domotique.
Je sais que cela a été développé sur d’autre système, on ne devrait pas en être très loin, mais les compétences me manque!

Je possède aussi un thermostat Qivivo et je suis très intéressé par le sujet

Par contre j’ ai passez de connaissance pour répondre à ta question

J’ai commencé à travailler sur une intégration Qivivo (fil pilote) mais je n’ai malheureusement pas beaucoup de temps à consacrer…

J’ai pour l’instant implémenté quelques fonctionnalités basiques pour mon usage personnel :

  • Activation / désactivation du mode « absence »
  • Changement de planning sur une zone

Je n’ai notamment pas implémenté :

  • Gestion des programmes (je découvre cette fonctionnalité)
  • Gestion du mode vacances
  • Envoi d’une consigne spécifique (température pour un thermostat ou ordre fil pilote)
  • Modification des plannings

Quels sont vos attentes vis-à-vis de l’intégration ?

Je pourrai publier une première version (de faible qualité) après avoir fait une petite passe de nettoyage. Si certains peuvent contribuer, n’hésitez pas à vous signaler :slight_smile:

1 « J'aime »

Bonjour Romain,

Merci pour ta réponse et ta proposition de développement, rien ne presse pour ma part j’ai réussi à contourner le pb avec un jeedom en parallèle pour le moment.

De mon côté, je n’ai qu’une zone gérée par le thermostat, et j’ai besoin des infos et commandes suivantes.

Remonté des infos dans home assistant :

  • température actuelle
  • humidité actuelle
  • température de consigne actuelle
  • chauffage activé ou désactivé c’est à dire ordre fil pilote en confort ou délestage
  • Planning en cours (ce que tu appelles programme je suppose)
  • liste des plannings disponibles
    remarque : je ne suis pas certain qu’une liaison constante soit possible pour la remonté d’info, à mon avis un rafraichissement tous les 5 min est suffisant.

Commande de home assistant vers le thermostat :

  • Modification du planning en cours parmi ceux disponibles (par exemple pour passer d’un planning « matin et soir » à un planning « télétravail »)
  • activation et désactivation du mode absent

Malheureusement, je n’ai pas de compétence en codage, je n’ai même pas réussi a obtenir une info via l’API Comap, par contre je peux faire des tests si besoin :wink:

Merci encore
Bonne journée

Super initiative!

La gestion des plannings par zones est à mon avis le point principal, les réglages se faisant une fois dans l’application Comap.
Si on peut remonter les informations des capteurs Tº, hygrométrie et présence, c’est un plus effectivement.

En tout cas bravo, et je suis volontaire pour tester.

Pour préciser par rapport à mes remarques précédentes et vos retours, il existe deux notions distinctes, programme et plannings.
Pour définir les plages horaires et la consigne à appliquer, ce sont les plannings. Le programme permet d’indiquer quels plannings appliquer pour chaque zone - par défaut il y en a qu’un seul (« Programme principal » dans l’interface) qu’on modifie quand on change le planning d’une zone.

Vous pouvez essayer l’intégration ici: GitHub - rbiremon/hass-comapsmarthome: A Home Assistant custom component for comap smart home thermostats (qivivo)

Pour l’installer, vous pouvez télécharger et déployer dans votre dossier /config, ou pointer le dépôt avec HACS. La configuration se fait ensuite via l’UI - ajoutez l’intégration et cherchez « comap »

Pour l’instant l’intégration va créer :

  • Un sensor pour l’habitation. En attribut sur celle-ci est disponible la liste des plannings.
  • Une entité climat pour chaque zone. S’il s’agit d’une zone thermostat, alors les infos de température et humidité sont remontées. En principe la température de consigne aussi.

Les services permettent de :

  • Définir un planning (via son identifiant unique) pour une zone
  • Donner une consigne temporaire (température ou ordre) via les services standard de la plateforme climat.
  • Activer le mode absence courte durée + retour
2 « J'aime »

Bonjour Romain,

Un grand merci pour le travail fourni !
Je n’ai pas eu de problème pour l’installation via HACS.
Après renseignement des identifiants, j’ai une entité « climate.chauffage_eteint » qui s’est créée.
Ensuite, en renseignant la pièce de cette entité climat, j’ai un sensor qui s’est créé.

Voici mon retour sur le fonctionnement (je n’ai qu’une zone gérée par le thermostat) :

Concernant l’entité climat :

  • j’ai bien la température actuelle qui s’affiche
  • je n’ai pas la consigne qui s’affiche et je peux pas la modifier (erreur 502)
  • les 2 boutons en bas de la carte produise une erreur 502
    image

Pour info; j’ai pu extraire les renseignements suivants (via Node red)

{"_msgid":"864160ae905cee44","payload":"off","topic":"","data":{"entity_id":"climate.chauffage_eteint","state":"off","attributes":{"hvac_modes":["heat","off"],"min_temp":7,"max_temp":35,"target_temp_step":"0.5","current_temperature":19.2,"temperature":0,"current_humidity":63,"id":"038ff1cf-e43a-42eb-bfd6-09b47717c004","title":"Chauffage eteint","area_type":null,"programmation_type":"connected","instruction_type":"temperature","schedule_id":"c6793820-3228-4feb-a177-7d5373d7af9d","friendly_name":"Comap","supported_features":1},"last_changed":"2022-11-02T08:45:58.818953+00:00","last_updated":"2022-11-02T09:15:03.167Z","context":{"id":"01GGVSYPJ1X1ZM8P7BXHZ2EQMM","parent_id":null,"user_id":"*********"},"timeSinceChangedMs":1803115}}

Concernant le sensor

  • J’ai effectivement en attribut, les plannings disponibles
  • Je ne sais lequel est en cours (inconnu), même après modification de celui-ci
{"_msgid":"120ffa1528ed17d9","payload":"unknown","topic":"","data":{"entity_id":"sensor.maison","state":"unknown","attributes":{"address":"6B rue ********","available_schedules":{"511a3eda-4aea-494d-845a-0bb94885829a":"Arrêt","c6793820-3228-4feb-a177-7d5373d7af9d":"Midi","038ff1cf-e43a-42eb-bfd6-09b47717a001":"Scolaire","dbf3973e-b179-40f6-b007-23024421f467":"Télétravail","038ff1cf-e43a-42eb-bfd6-09b47717a003":"Vacances"},"friendly_name":"Mode thermostat"},"last_changed":"2022-11-02T08:45:59.125346+00:00","last_updated":"2022-11-02T08:54:57.191Z","context":{"id":"01GGVRSYX75Y3P99MAFQKYFBXH","parent_id":null,"user_id":null},"timeSinceChangedMs":2184096}}

A ta disposition, si tu as besoin davantage d’information.

Yohann

Bonjour, Effectivement j’ai le même soucis que Yohan, sniff :cry:
Si besoin de plus d’info n’hésitez pas
Cédric

Bonjour,

Effectivement il y a un problème avec l’appel du service qui applique un ordre temporaire, que je reproduis. Je vais investiguer.
D’ailleurs je ne sais pas exactement quoi faire du fonctionnement par défaut (et obligatoire) de l’entité climate qui exige un mode « HEAT » et « OFF » (les deux boutons dont vous parlez). Actuellement cela passe un ordre temporaire avec une consigne de température (élevée ou faible) pour simuler une marche forcée.

En revanche les services spécifiques à la plateforme comap devraient fonctionner :

Pour le sensor - c’est « normal » que pour le moment il remonte un état inconnu, je n’ai rien programmé. Ce n’est pas terrible, je pourrais y remonter l’état global du système (chauffage activé ou desactivé).

Le planning actif est forcément lié à une zone, on peut mettre un planning différent par zone. Pour l’instant vous pouvez voir l’ID du planning actif en attribut de l’entité climat correspondant à la zone (attribut schedule_id que je vois bien dans tes données).

Lorsque j’aurai un peu de temps, je propose de faire:

  • 1 device par zone
  • Raccrocher à ce device l’entité climat
  • Rajouter des entités pour le planning actif et l’ordre actif, pour éviter que ça soit caché dans les attributs de l’entité climat

Bonsoir,

Effectivement j’ai accès aux services. Les 2 premiers fonctionnent. Pour le 3ème, je n’ai pas compris le fonctionnement, je regarderai plus en détail demain.

Concernant les boutons heat et off, j’ai l’impression que cela pourrait être associé au mode « eteindre le chauffage » sur le site comap, si cela est possible avec l’API.

Bonne soirée
Yohann

Bonjour,

Je reviens sur les modes « heat » et « off ». D’après ce que j’ai compris, cela fonctionne avec l’attribut « hvac_action » :

  • hvac_action sur off : thermostat éteint, ce qui revient au mode « éteindre le chauffage » (= mode hors gel)
  • hvac_action sur idle : chauffage allumé mais inactif (il fait assez chaud, donc les radiateurs sont éteints)
  • hvac_action sur heating : chauffage allumé et actif (les radiateurs sont allumés)

Je fais peut-être fausse route, mais je ne vois pas cet attribut renseigné sur l’entité climat créée par l’intégration :

	hvac_modes: heat, off
min_temp: 7
max_temp: 35
target_temp_step: 0.5
current_temperature: 19.2
temperature: 0
current_humidity: 66
id: 038ff1cf-e43a-42eb-bfd6-09b47717c004
title: Chauffage eteint
area_type: null
programmation_type: connected
instruction_type: temperature
schedule_id: 038ff1cf-e43a-42eb-bfd6-09b47717a003
friendly_name: Comap
supported_features: 1

Bonne journée

Bonjour,

Au temps pour moi, le fonctionnement de l’entité doit être surement être différente lorsque le thermostat est externe. L’entité passe bien « en chauffe » en même temps que le thermostat et repasse sur « désactivé » ensuite.
image
(ne tient pas compte de la consigne, je l’ai modifiée manuellement)

L’historique est bien renseigné également (sauf température de consigne) :

Yohann

J’ai publié une version qui devrait résoudre les problèmes lié à l’instruction temporaire et l’affichage de la température de consigne… c’est plus facile quand le chauffage est allumé :slight_smile:

1 « J'aime »

Bonjour,

Super boulot, j’ai fait la mise à jour via HACS. Après redémarrage, l’entité climat n’était plus reconnue, j’ai supprimé l’intégration (paramètres / appareils et services / intégrations), pour la recréer, puis s’est rentré dans l’ordre.

Fonctionnement (pour rappel je n’ai qu’une zone thermostat) :

  • Température de consigne : OK
  • Bouton « chauffe » : Ok, augmente la température de 1°C pendant 2 heures
  • Bouton « arrêt » : Ok, baisse la température à 8°C pendant 2 heures
  • Service « comapsmarthome.set_away » : active le mode absent jusqu’à la prochaine consigne
  • Service « comapsmarthome.set_home » : annule le mode absent
  • Service « comapsmarthome.set_schedule » : je n’ai toujours pas compris son fonctionnement

Pour le dernier point (Service « comapsmarthome.set_schedule »), j’ai fait plusieurs essais, mais rien de concluant. Ce service sert à modifier le planning ?
En target, il faut indiquer le sensor créé par l’intégration ?
En schedule_name, l’ID du planning ?
Par exemple :

service: comapsmarthome.set_schedule
data:
  schedule_name: 511a3eda-4aea-494d-845a-0bb94885829a
target:
  entity_id: sensor.maison

Merci encore et bonne soirée.
Yohann

Désolé je me suis noté de rajouter un peu de doc mais pas encore eu le temps- pour le service set schedule il faut mettre l’entité climat comme cible entity_id: climate.salon par exemple
Pour schedule_name c’est bien l’id qu’il faut donner pour l’instant

Pas de soucis, cela fonctionne, merci :+1:

1 « J'aime »

Bonjour,
D’abord un grand merci pour cette intégration. Je rencontre toutefois un soucis… si l’un de vous pouvait m’aider cela serait super.
J’utilise un comap/qivivo avec deux zones : une gérée par thermostat et l’autre par fil pilote.

Pour la zone gérée par le fil pilote, je tente d’utiliser la carte « simple thermostat ». Elle affiche bien les différents preset tels que away, confort, eco, etc. Depuis cette carte, je peux initier le changement de mode, mais le retour d’état sur la carte n’apparaît pas. Par exemple, si l’application comap montre le mode « hors gel » et que je sélectionne « confort » sur la carte HA, l’application comap change pour « confort », mais la carte ne se met pas à jour en conséquence et reste sur « away ». De même, un changement effectué directement sur l’application comap ne met pas à jour la carte. On dirait que l’intégration ne récupère pas l’état actuel. Dans les outils pour développeurs, le mode reste constant et ne se modifie pas.

J’ai un problème similaire avec la zone gérée par le thermostat qui utilise une carte thermostat standard. Je peux modifier la température depuis la carte, mais la carte ne se met pas à jour si je modifie la température via l’application Comap.

Quelqu’un aurait-il une solution à suggérer ?"

Bonjour,

Je ne sais pas si c’est toi qui avait ouvert le ticket github concernant ce problème, mais la version 1.1.1 corrige cela !

1 « J'aime »

Je viens de faire la mise à jour. Cela fonctionne parfaitement. Un grand merci!