Mauvaise gestion des radiateurs Acova dans HA

Mon problème

Bonjour à tous, j’essaye ici pour avoir un peu d’aide.
J’ai acheté des radiateurs Acova Alcantara chez LR.

Ces radiateurs sont sous Zigbee et j’arrive à bien les remonter dans ZHA.
Je peux aussi modifier la température via la carte Thermostat … mais seulement pendant quelques secondes.
Au bout de quelques secondes la carte Thermostat se positionne sur « Chauffage/Climatisation ».
En fouillant le net j’ai trouvé que ce mode (heat_cool) EMPECHE de modifier la température (ce que je trouve complètement c*n mais passons).

Le soucis arrive quand le « SystemMode » est sur Auto.

S’il est sur EmergencyHeat j’ai bien la possibilité de changer la température (mais encore une fois que sur un court moment)

Je précise que le mode « EmergencyHeating » peut être déclenché quand on modifie manuellement la température sur le radiateur alors qu’il est en mode box.

Du coup je cherche à savoir ce que je peux faire pour rendre ces radiateurs compatibles avec ZHA.
Faire une configuration spécifique ? Si oui comment ?
Il faudrait modifier les hvac_modes je pense. Et aussi que le mode « auto » corresponde en fait au mode « box » et devrait me permettre de modifier la température.

Ma configuration


## System Information

version core-2024.1.5
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.71-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.33.0
Stage running
Available Repositories 1381
Downloaded Repositories 9
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 11.4
update_channel stable
supervisor_version supervisor-2023.12.1
agent_version 1.6.0
docker_version 24.0.7
disk_total 109.3 GB
disk_used 14.7 GB
healthy true
supported true
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons File editor (5.7.0), Home Assistant Google Drive Backup (0.112.1), Mosquitto broker (6.4.0), Terminal & SSH (9.8.1)
Dashboards
dashboards 1
resources 4
views 8
mode storage
Recorder
oldest_recorder_run 13 janvier 2024 à 06:28
current_recorder_run 22 janvier 2024 à 11:23
estimated_db_size 150.97 MiB
database_engine sqlite
database_version 3.41.2

Bj

ZHA est tu sur qui est compatible avec tes radiateurs ?

sinon , en fouillant j’ai trouvé ceci

et ensuite HA.com
Acova alcantara radiator with install code - #7 by jca24440 - Zigbee - Home Assistant Community

et par magie il doivent fonctionné sans souci avec Z2M

thomasjqt
19d
Salut !

j'ai trouvé une solution

pour utiliser les radiateurs acova, avec HomeAssistant et Zigbee2mqtt,

j'utilise l'automatisation nodeRaid pour planifier ces radiateurs avec certaines conditions

Avec nodeRaid, je définis l'état sur « off » lorsque je veux éteindre le chauffage, et je définis l'état sur « auto » et NON « chauffer » pour allumer le chauffage en mode « boîte », une fois l'état du chauffage défini comme « auto » cela me permet de régler la température avec HomeAssistant et si je le souhaite, je peux également utiliser les boutons du chauffage pour régler la température manuellement

J'espère pouvoir vous aider !

et bonne année !


Il n’est pas écrit comme compatible avec ZHA non, mais il fonctionne, juste « mal ».
J’ai rapidement essayé Z2M mais ce n’était clairement pas mieux. Et puis de toute façon j’ai tout sous ZHA, pas envie de multiplier les intégrations.

J’ai vu les différents liens, mais rien qui me permette de rendre ce radiateur pleinement compatible avec ZHA. J’imagine que l’on doit pouvoir créer des fichiers de configuration spécifiques ?

Mais de toute façon je suis presque persuadé que le soucis vient de HA (et même pas ZHA).
Se je suis en mode box, la carte Thermostat bascule sur Chauffage/Climatisation et je ne peux rien faire.
Si je mets le chauffage en mode « Confort » (donc hors mode box) je récupère le contrôle de la température du radiateur. Mais ça ne sert à rien vu que sur le radiateur je ne suis pas en mode boxe donc ce que je défini comme température cible n’impact pas la température du mode confort. Par contre j’insiste sur le fait que la température est bien changée car si je retourne en mode box sur le radiateur je vois qu’il a bien pris en compte mon changement.

Quand je lis ce qui est décrit ici : Climate Entity | Home Assistant Developer Docs (home-assistant.io)
Il semblerait que leur description du mode HVACMode.AUTO dans HA ne soit pas la même que pour le radiateur ? Dans la description ils parlent d’un paramétrage horaire, alors que sur l’Acova c’est le mode box.

Bon en attendant j’ai trouvé comment gérer mes radiateurs (et ça me suffit en l’état).

En mode box on peut régler la température en changeant « occupied_heating_setpoint ».

Donc une automatisation comme ça fonctionne :

action:
  - service: zha.set_zigbee_cluster_attribute
    data:
      cluster_type: in
      ieee: xx:xx:xx
      endpoint_id: 1
      cluster_id: 513
      attribute: 18
      value: "1200"

1200 signifie 12 degrés celsius.

Du coup je suis en train d’utiliser custom button pour faire mes contrôles :

custom

Pour avoir les degrés actuels dans le nom j’ai créé un sensor dans configuration.yaml

sensor:
  - platform: template
    sensors:
      temp_radiateur_sam:
        value_template: "{{ state_attr('climate.radiateur_sam_thermostat', 'current_temperature') }}"
        unit_of_measurement: '°C'
        friendly_name: 'SAM Temp'

Et au niveau de la custom card j’ai ça :

type: vertical-stack
cards:
  - type: custom:button-card
    name: >-
      [[[ return "Salle à manger : " + states["sensor.temp_radiateur_sam"].state
      + " °C";]]]
    aspect_ratio: 5/1
  - type: horizontal-stack
    cards:
      - type: custom:button-card
        name: 10°
        aspect_ratio: 1
        tap_action:
          action: call-service
          service: zha.set_zigbee_cluster_attribute
          service_data:
            cluster_type: in
            ieee: xxxxx
            endpoint_id: 1
            cluster_id: 513
            attribute: 18
            value: '1000'
      - type: custom:button-card
        name: 15°
        aspect_ratio: 1
        tap_action:
          action: call-service
          service: zha.set_zigbee_cluster_attribute
          service_data:
            cluster_type: in
            ieee: xxxxx
            endpoint_id: 1
            cluster_id: 513
            attribute: 18
            value: '1500'
      - type: custom:button-card
        name: 19°
        aspect_ratio: 1
        tap_action:
          action: call-service
          service: zha.set_zigbee_cluster_attribute
          service_data:
            cluster_type: in
            ieee: xxxx
            endpoint_id: 1
            cluster_id: 513
            attribute: 18
            value: '1900'

On peut ajouter un verrou pour éviter les appuis accidentels :

lock: true
confirmation:
  text: Sûr ?

Si on veut repasser le radiateur en mode « box » (donc contrôle depuis ZHA) :

service: zha_toolkit.attr_write
data:
  ieee: xx:xx:xxxxxx
  cluster: 0x0201
  attribute: 0x001c
  attr_val: "1"

Bonjour et merci stardros83,

Je suis équipé de radiateurs Acova qui pour le moment son pilotés (péniblement) par la box Enki. Je souhaite les passer sous HA (que j’ai découvert en fin d’année dernière) et je me retrouve confronté au problème que tu évoques dans ton premier poste.

Je suis donc intéressé par ta solution mais je découvre HA et ne connais que l’interface graphique. Par quoi dois-je débuter pour comprendre la configuration que tu as faite en yml ? (par quelles notions dans la documentation ou dans des tutos ?)

J’ai également une question : j’ai constaté chez moi que les radiateurs réagissent différemment suivant la température extérieure (surement à cause de la température des murs) : pour une consigne de 18°, je peux avoir entre 18 et 21 dans la pièce (plus il fait froid dehors, plus il fait chaud dedans). J’aimerais donc pouvoir dynamiquement réduire la température de consigne, si la températeur monte trop (or j’ai l’impression que dans ta configuration la consigne est en dur. Sais-tu si c’est possible et aurais-tu une piste pour que je creuse ?

Merci à toi !

Désolé je viens uniquement de voir ton message.

Pour la documentation je ne saurai pas trop où te rediriger, mais concrètement voici un exemple de custom card que j’ai utilisé :
Button Card est une carte que l’on peut ajouter à Home assitant (via HACS).

custom-cards/button-card: :sparkle: Lovelace button-card for home assistant (github.com)

HACS : Home Assistant Community Store | HACS

type: custom:button-card
name: 12°
aspect_ratio: 1
tap_action:
  action: call-service
  service: zha.set_zigbee_cluster_attribute
  service_data:
    cluster_type: in
    ieee: xx:xx:xx:xx:xx:xx:xx:xx
    endpoint_id: 1
    cluster_id: 513
    attribute: 18
    value: '1200'
lock: true
confirmation:
  text: Sûr ?

J’utilise button card car j’aime bien ajouter une demande de confirmation, ça évite les appuis malencontreux.
ieee: c’est le numéro du radiateur

Concernant la variation de température tu peux déjà régler la température avec une thermomètre (cf. la documentation).
Après il est possible d’utiliser des thermomètres connectés et de récupérer les valeurs dans home assistant mais je trouve ça trop contraignant.
Ton problème peut aussi très bien être dû au mode éco ? A voir.
Ah et moi j’ai désactivé la détection d’ouverture de fenêtre.

Les miens ne varient pas (en tout cas pas autant) quand je suis en mode box.

Pour la configuration yaml il faut modifier le fichier de configuration comme décrit ici :
:white_check_mark: Installer File Editor et modifier vos fichiers de configuration depuis HA - Home Assistant - Tutoriels & Partages / Add-on - Home Assistant Communauté Francophone (hacf.fr)

Salut les gens !

Il y a quelque chose d’étonnant suite à la dernière mise à jour (ou encore avant mais je n’avais pas vérifié).

J’ai un de mes radiateurs qui a maintenant plus d’options et je peux apparemment le piloter correctement.
Dans les modes j’ai maintenant « Chauffage/Climatisation » et ça semble fonctionner.

Par contre les autres n’ont pas toutes les options :

J’ai essayé de faire « reconfigurer » mais ça ne change rien.
Y a-t-il une solution pour avoir la même chose ?
Je précise que ce sont les mêmes radiateurs, achetés en même temps.

Et dans les outils de développements je vois ça :
Le bon radiateur : hvac_modes: off, heat_cool, cool, heat
Les autres : hvac_modes: off, heat

Hello,
Le fonctionnement des radiateurs Acova sur ZHA m’intrigue car je suis utilisateur de Z2M et je me suis occupé du support des Taffetas dessus mais on a un souci, nous autres utilisateurs de Z2M :
les modes hvac dans HA ne correspondent pas au fonctionnement du radiateur.

Je m’explique, en mode Auto, tout va bien, on configure de occupied_setpoint et au bout de 2h sans voir personne le thermostat descend tout seul petit à petit jusqu’au unoccupied_setpoint.
Par contre, pour les autres modes c’est le zbeul… Le mode Chauffe notamment met le radiateur en mode hors-gel. Les autres, je ne me souviens pas, je les ai désactivés dans la conf Z2M pour éviter de faire de la merde…
Ça se passe comment sur ZHA ? Le mode hors-gel est-il accessible et correctement nommé ?

En revanche, sur Z2M, quand on passe dans un mode hors box (hors-gel ou off, les autres ne sont pas exposés comme dit précédemment), on peut revenir au mode auto. Autrement dit, même hors du mode box, le radiateur est commandé en zigbee. Si je comprend bien, ce n’est pas le cas avec ZHA ? Ou alors ce sont juste certains modes qui merdent ?

Non c’est mal géré aussi.
Et le radiateur qui « fonctionnait » sans explication … ne fonctionne plus sans explication.

Je peux les gérer manuellement (et ça fonctionne très bien) mais j’avoue que c’est frustrant.
J’aimerai pouvoir rajouter les modes supportés (hvac_modes) mais je n’ai pas trouvé comment, pas sûr que ce soit modifiable.

Et oui même en mode « off » on peut toujours gérer le radiateur (rallumer ect.). C’est vraiment juste un soucis de nom entre les modes.

Edit : Je peux rajouter les hvac_modes dans les outils développeurs mais ils disparaissent presque aussitôt.

Salut

On peut surcharger les modes avec le customize.yaml

Un petit tuto ou autre pour faire ça ?
Je serai preneur :grinning: !

Un tuto ?
J’ai pas mon ha sous la main, mais il y a infiniment plus de lignes dans le tutoriel que dans le fichier pour faire la modif.
Tu donnes l’entité, tu lui associe l’attribut mode, dont les valeurs sont un tableau avec le nom des différents modes…
Il y a des exemples réguliers pour modifier les icônes, le principe est identique.

Je viens de trouver quelques infos et je peux ajouter un mode.
Bon ça ne me fonctionne pas mais c’est un début.
Plus qu’à essayer de bidouiller tout ça :).

il faut que la syntaxe corresponde :

  • sur le nom des modes attendus par la clim (attention minuscules/majuscules)
  • sur le format de tableau yaml

Question, on pourrait dégager le mode « auto » qui n’existe pas ?
Mais surtout remapper l’attribut temperature qui en fait n’est pas du tout la température de la pièce, mais la température configurée (temperature == current_temperature)

Oui

Remapper je ne pense pas.
De plus dans tous les cas avec les climate, température ce n’est jamais la température de la piéce mais la température de la consigne

OK pour les modes :

homeassistant:
  customize:
    climate.heater_chambre_lilian:
      hvac_modes:
        - "off"
        - heat
    climate.heater_chambre_robin:
      hvac_modes:
        - "off"
        - heat
    climate.heater_chambre_parentale:
      hvac_modes:
        - "off"
        - heat

Oui, excuse-moi, j’ai inversé current_temperature et temperature. Sur les Acova, pour un raison qui me dépasse : current_temperature = temperature… Du coup, je cherche à faire un truc comme ça :

homeassistant:
  customize:
    climate.heater_chambre_lilian:
      hvac_modes:
        - "off"
        - heat
      templates:
        current_temperature : >
          return states('sensor.thermo_hygro_chambre_lilian_temperature') |c int(0);

Mais ça ne fonctionne pas.

Donc c’est comme les zwave LC13 qui ne disposent pas de sonde de température exposée ?
Regarde ça GitHub - bieniu/ha-thermostat-update: This script updates Z-Wave thermostat entity state and current temperature from external sensor

A non… On est plus pervers là… Il y a bien une sonde mais :

  • Elle n’est pas exposée (via zigbee).
  • Elle n’est pas calibrable (via zigbee)

Et du coup les mecs d’Acova ne devait pas trop savoir quoi faire du champ temperature alors ils ont mappé current_temperature dedans…

Faut que je regarde si ta solution n’est pas trop agressive, car je n’ai pas la fréquence de MAJ en tête…

Dans l’absolu, c’est pas faux… Que ce soit en mode chauffage ou clim, la température mesurée tends vers la température de consigne.