J’ai déjà vu ce phénomène.
Je ne suis pas sur que ce soit un raté de chauffe, c’est juste que l’hystérésis doit être réglé sur 1°C sur nos système Koolnova.
L’hystérésis : ce mode est particulièrement adapté aux installations qui nécessitent des plages de chauffe longues comme les poêles à bois (pellets, granulés…) ou les pompes à chaleur. Cette régulation permet d’avoir des changements d’état du chauffage plus espacés.
Le fonctionnement est le suivant :
Lorsque la température descend en dessous de la consigne moins le delta, le chauffage s’allume. Lorsque la température dépasse la consigne plus le delta, le chauffage s’éteint.
Cette valeur ne doit pas être modifiable sur nos systèmes (ou peut-être voir avec un installateur spécialiste Koolnova).
Impeccable, Merci @Pesto000, j’attend le dernier retour de @Troy après son test et je rebasculerai le tout dans la branche principale pour tagger une nouvelle version.
@bouracho, j’ai bien vu ton commentaire sur l’idée d’optimiser les vues thermostats de chaque zone. Ca ne va pas être aussi simple qu’une simple suppression de mode (comme imaginer à la lecture de ton commentaire) puisque l’entité « climate » générique de HA (sur laquelle s’appuie les entités « climate » de l’intégration) ne te permet pas d’agir si facilement que ca.
Je regarderai dans un second temps après m’être occupé de la partie Modbus TCP.
Enfin, il faut bien setup la télécommande maître sur INT 49. Pour ça il faut rester appuyer 3 sec sur le bouton de configuration (engrenage) pour passer en mode installateur. Mon INT par défaut était 44 et impossible de le faire fonctionner même en le renseignant sur l’interface du module coté home assistant.
Bilan, c’est top ! Demain, expédition dans les combles pour setup le koolnova de l’étage.
Je vous tiens au courant si ca marche bien avec les 2 en même temps.
J’envisage (si je trouve le temps) de te proposer qq amélioration pour ton intégration mais j’aurai besoin de la doc Koolnova à ce sujet si tu es ok pour la partager.
Petit retour d’expérience de l’ajout de cette intégration, de mes premiers pas vers une possible automatisation (en fonction de mes souhaits).
Mon installation : sur le même groupe de clim (Daikin) un HVAC Koolnova 4 zones (2 chambres, 2 pièces de vie) et 3 groupes d’intérieur (Daikin) cause pas d’autres solutions possible (en grosse rénovation).
Installation de l’intégration : petite galère pour trouver un bon USB/RS485 (qui fonctionne) et grâce à l’intégration de @sinseman44 aucun soucis. Il faut savoir qu’au 1er lancement après l’ajout du module : il faut penser que les zones sont numérotées de 1 à X comme sur les télécommandes (pour celles que j’ai) et qu’il faut penser à cocher la case pour renseigner la zone suivante (jusqu’à la 3 pour moi) et ne surtout pas cocher à la dernier sinon on est coincé et obligé de tout recommencer (pas très grave mais un peu pénible).
Grâce à l’intégration je me suis rendu compte que l’une des télécommande (radio) perdait la connexion TRES souvent. Donc appel au support Koolnova (sous garantie) et en attente (aujourd’hui) du remplacement de l’UC pour un modèle qui aurait une meilleure capacité radio (selon eux)… 2 autres télécommandes perdent aussi (plus rarement) la connexion (et parfois se mettent en OFF). C’est très problématique car elles asservissent le déclenchement avec la température relevée (et l’hygro).
Automatisation : après une tentative infructueuse (pour le moment) d’intégrer Versatile Thermostat (VTHERM) j’ai pour le moment un ensemble d’automatisation (en cours de finalisation) qui gèrent des températures de confort et eco selon les heures, les zones (et le tarif Tempo).
Les automatisations sont en cours de perfectionnement car on ne peut pas simultanément envoyer plusieurs ordres (mise en route, température de consigne …) d’autant plus que comme j’ai des récepteurs qui dysfonctionnent je suis obligé de vérifier que les températures de consignes sont bien « enregistrées » sinon…
Au stade où j’en suis :
je peux partager mes versions brouillon d’automatisation si ça intéresse quelqu’un
cherche si quelqu’un peut partager la manière dont il a configuré (en entier) un VTHERM avec cette intégration Koolnova (j’ai déjà ajouté des sensors qui remontent la température de chaque zone).
Sur les télécommandes initialement mais comme ça ne permettait pas beaucoup de flexibilité je suis passé sur une programmation via Home Assistant comme toi…
Pas encore eu le temps de faire un truc très poussé avec tempo par contre… Je vais jeter un œil à Versatile Thermostat. Pourrais tu partager tes automatisations « simples » au cas où s’il te plaît ?
Top, merci de ton retour.
J’ai mis à jour le README de la configuration du module WIFI/RS485 avec tes remarques.
Pour l’activation du modbus via la télécommande maître, je ne l’ai pas détaillé dans la documentation de l’intégration puisque normalement elle est dans la doc utilisateur (ou installateur) du Koolnova.
je vais merger la branche modbusTCP dans la branche principale pour créer une nouvelle version et la pousser à tout le monde.
J’avais envisager une détection automatique des zones configurées (et j’avais commencé à la coder). Je ne suis pas aller jusqu’au bout.
Si mon intégration a pu t’aider sur ce problème, c’est cool. J’espère que le SAV de Koolnova sera réactif avec toi.
Je suis également en Tempo et donc intéressé par ton automatisation. Quel est le problème avec Versatile Thermostat ? Tu n’as pas l’air d’être le premier a rencontrer un problème avec. Faudrait que je me penche sur la question.
Bon, après un peu de recherche, on pourrait envoyer plusieurs ordres en une seule trame modbus (cf : doc de la fonction write_registers() ou de la fonction readwrite_registers() de pymodbus). par contre, il faudrait développer une entité dite « virtuelle » ou « automatisation » pour l’utiliser dans le cas d’automatisation Home Assistant.
Sur les télécommandes j’ai EXACTEMENT le même problème que je viens de signaler à Koolnova (via mon installateur). Seule la première ligne s’exécute et ensuite la zone bascule en OFF.
Comme j’ai préparé mes automatisation en même temps que ces programmes je me suis retrouvé avec un sacré casse tête le temps de comprendre la cause.
Voici l’une des automatisations mises en place. Je peux les partager toutes si ça intéresse.
Celle du jour rouge coupe tout pendant le jour…
alias: Thermostat Cuisine Entree - Confort/Eco en semaine LMJV
description: >-
Allume et bascule en mode confort/eco selon la tranche horaire les jours bleus
et blancs. Certaines heures sont là pour contrôle uniquement
triggers:
- at: "05:01:00"
trigger: time
- trigger: time
at: "07:31:00"
- at: "16:01:00"
trigger: time
- trigger: time
at: "20:01:00"
- trigger: time
at: "22:01:00"
- trigger: time
at: "23:01:00"
conditions:
- condition: and
conditions:
- condition: time
weekday:
- mon
- thu
- fri
- tue
- condition: not
conditions:
- condition: state
entity_id: sensor.rte_tempo_couleur_actuelle
state: Rouge
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.vacances_scolaires_aujourdhui
state: "on"
- condition: state
entity_id: binary_sensor.workday_sensor
state: "on"
actions:
- variables:
cuisine_temp_avant: "{{ state_attr('climate.koolnova_cuisine_area', 'temperature') }}"
entree_temp_avant: "{{ state_attr('climate.koolnova_entree_area', 'temperature') }}"
cuisine_hvac_avant: "{{ states('climate.koolnova_cuisine_area') }}"
entree_hvac_avant: "{{ states('climate.koolnova_entree_area') }}"
duree_pause: "{{ states('input_number.koolnova_duree_pause') | int(20) }}"
- if:
- condition: template
value_template: "{{ cuisine_hvac_avant != 'heat' }}"
then:
- action: climate.set_hvac_mode
metadata: {}
data:
hvac_mode: heat
target:
entity_id: climate.koolnova_cuisine_area
- delay:
hours: 0
minutes: 0
seconds: "{{ duree_pause }}"
milliseconds: 0
- if:
- condition: template
value_template: "{{ entree_hvac_avant != 'heat' }}"
then:
- action: climate.set_hvac_mode
metadata: {}
data:
hvac_mode: heat
target:
entity_id: climate.koolnova_entree_area
- delay:
hours: 0
minutes: 0
seconds: "{{ duree_pause }}"
milliseconds: 0
- if:
- condition: or
conditions:
- condition: and
conditions:
- condition: time
after: "05:00:00"
- condition: time
before: "07:30:00"
- condition: and
conditions:
- condition: time
after: "16:00:00"
- condition: time
before: "20:00:00"
- condition: and
conditions:
- condition: time
after: "22:00:00"
- condition: time
before: "23:00:00"
then:
- sequence:
- action: climate.set_temperature
metadata: {}
data:
temperature: >
{% set temp = states('input_number.temperature_confort_cuisine')
| float(18.0) %} {{ (temp * 2) | round(0) / 2 }}
target:
entity_id: climate.koolnova_cuisine_area
- delay:
hours: 0
minutes: 0
seconds: "{{ duree_pause }}"
milliseconds: 0
- action: climate.set_temperature
metadata: {}
data:
temperature: >
{% set temp = states('input_number.temperature_confort_entree')
| float(18.0) %} {{ (temp * 2) | round(0) / 2 }}
target:
entity_id: climate.koolnova_entree_area
- delay:
hours: 0
minutes: 0
seconds: "45"
milliseconds: 0
- action: notify.telegram_maison
metadata: {}
data:
message: >-
Passage en mode *confort* :
- _Cuisine_ : Température avant {{ cuisine_temp_avant }}°C,
nouvelle température {{
state_attr('climate.koolnova_cuisine_area', 'temperature')
}}°C, consigne {{
states('input_number.temperature_confort_cuisine') }}°C,
Mode : état avant {{ cuisine_hvac_avant }} après {{
states('climate.koolnova_cuisine_area') }}
- _Entrée_ : Température avant {{ entree_temp_avant }}°C,
nouvelle température {{
state_attr('climate.koolnova_entree_area', 'temperature') }}°C,
consigne {{ states('input_number.temperature_confort_entree')
}}°C,
Mode : état avant {{ entree_hvac_avant }}, après {{
states('climate.koolnova_entree_area') }}
title: "*{{ this.attributes.friendly_name }} *"
else:
- sequence:
- action: climate.set_temperature
metadata: {}
data:
temperature: >
{% set temp = states('input_number.temperature_eco_cuisine') |
float(18.0) %} {{ (temp * 2) | round(0) / 2 }}
target:
entity_id: climate.koolnova_cuisine_area
- delay:
hours: 0
minutes: 0
seconds: "{{ duree_pause }}"
milliseconds: 0
- action: climate.set_temperature
metadata: {}
data:
temperature: >
{% set temp = states('input_number.temperature_eco_entree') |
float(18.0) %} {{ (temp * 2) | round(0) / 2 }}
target:
entity_id: climate.koolnova_entree_area
- delay:
hours: 0
minutes: 0
seconds: "45"
milliseconds: 0
- action: notify.telegram_maison
metadata: {}
data:
message: >-
Passage en mode *éco* :
- _Cuisine_ : Température avant {{ cuisine_temp_avant }}°C,
nouvelle température {{
state_attr('climate.koolnova_cuisine_area', 'temperature')
}}°C, consigne {{
states('input_number.temperature_eco_cuisine') }}°C,
Mode : état avant {{ cuisine_hvac_avant }} après {{
states('climate.koolnova_cuisine_area') }}
- _Entrée_ : Température avant {{ entree_temp_avant }}°C,
nouvelle température {{
state_attr('climate.koolnova_entree_area', 'temperature') }}°C,
consigne {{ states('input_number.temperature_eco_entree') }}°C,
Mode : état avant {{ entree_hvac_avant }}, après {{
states('climate.koolnova_entree_area') }}
title: "*{{ this.attributes.friendly_name }} *"
mode: single
J’ai défini des input_number qui me permettent via le tableau de bord de paramétrer les températures de consigne (et le délais entre les « commandes » Koolnova sinon elles ne sont pas prises en compte).
J’avais au départ des automatisations différentes mais au final seuls les zones et horaires diffèrent donc je vais basculer sur une version qui appelle un script commun (ça sera plus facile à corriger/maintenir). Je découvre HA en parallèle.
Je suis également en Tempo et donc intéressé par ton automatisation.
Premier partage effectué dans le message précédent. Je peux tout mettre si besoin (mais ca va faire bcp).
Quel est le problème avec Versatile Thermostat ? Tu n’as pas l’air d’être le premier a rencontrer un problème avec. Faudrait que je me penche sur la question.
Le problème est ma compréhension de comment on définit des VTHERM. J’ai compris tardivement qu’il fallait faire un Vtherm over climate (thermostat sur thermostat) . A priori j’arrive à créer quelque chose qui semble cohérent pour chaque zone. Mais pour le moment la température de consigne n’est pas remontée dans les VTHERM alors que je les vois bien dans le Therm classiques (directement issus de ton intégration). Donc si quelqu’un la modifie sur une télécommande, ou via une automatisation ou autre… On ne la voit pas dans les Vtherm…
J’en suis là ce soir, après avoir débogué les automatisations qui étaient instables jusqu’à présent lié au problème de (non) parallélisation possible sur modbus via ton intégration (logique tu m’as répondu déjà sur Github). Je pense que certains problèmes que je rencontre sont liés au soucis Koolnova dont j’ai parlé plus haut… vivement que ce soit résolu !
par contre, il faudrait développer une entité dite « virtuelle » ou « automatisation » pour l’utiliser dans le cas d’automatisation Home Assistant.
Je ne sais pas à quoi tu fais allusion. Je n’ai HA que depuis heu 3 semaines J’ai un peu (bcp) d’expérience de code donc ça va mais les concepts propres à cet environnement restent à découvrir (si nécessaire).
C’est ça globalement on a le même soucis concernant les programmes directement depuis la télécommande koolnova.
Après au final je ne pense pas les utiliser (ou en backup si mon home assistant est en maintenance) car les possibilités offertes par HA sont quand même plus intéressantes.
Un grand merci pour le partage, tu utilises quoi comme intégration pour récupérer l’info tempo ?
La version v0.2.0 a été déployée.
Merci aux testeurs (@bouracho, @Troy, @Pesto000) pour leur contribution sur la partie modbus TCP.
@Troy, tu pourras me faire un retour avec tes 2 instances de l’intégration (pour tes 2 koolnova). J’ai corrigé un bug pour un utilisateur (issue #16 sur mon github) qui semble avoir la même configuration que toi. Point important, les 2 instances doivent avoir des noms différents lors de la configuration, sinon les entités de la deuxième instance vont écraser celles de la première instance.
@ChrysM34, je suis tombé sur cet article permettant d’implémenter des services personnalisables dans une intégration qui pourrait peut-être envoyer plusieurs ordres simultanément ou quelque chose s’en rapprochant. Il faudrait que je creuse le sujet.
Merci pour cette nouvelle version.
Je ne sais pas si c’est lié mais je viens de me rendre compte que j’avais ça dans les logs
Enregistreur: custom_components.koolnova_bms.coordinator
Source: helpers/update_coordinator.py:382
intégration: Koolnova BMS (documentation, problèmes)
S'est produit pour la première fois: 19 novembre 2024 à 20:39:02 (374 occurrences)
Dernier enregistrement: 22:15:47
Unexpected error fetching koolnova_bms data
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 382, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 279, in _async_update_data
return await self.update_method()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/koolnova_bms/koolnova/device.py", line 431, in async_update_all_areas
_ret, _vals = await self._client.async_areas_registered()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/koolnova_bms/koolnova/operations.py", line 212, in async_areas_registered
regs, ret = await self.__async_read_registers(start_reg = const.REG_START_ZONE,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/koolnova_bms/koolnova/operations.py", line 101, in __async_read_registers
raise ModbusConnexionError('Client Modbus not connected')
custom_components.koolnova_bms.koolnova.operations.ModbusConnexionError: Client Modbus not connected
Bonjour à tous !
Je suis équipé d’un gainable koolnova aussi, intégré à HA via le port modbus et l’intégration koolnova2mqtt. Je suis tombé sur ce sujet qui m’intéresse fortement même si aujourd’hui l’automatisation en place fonctionne très bien.
Pour info, j’avais voulu tester versatile, mais avec des bugs à l’utilisation. A mon avis, la machine ne recevait pas les ordres simultanés, quand par exemple versatile éteignait toute la clim. Du coup j’ai laissé tomber versatile