J’ai une entité climate, une TRV qui ne gère pas nativement l’attribut « HVAC_action ». Cet attribut m’est nécessaire pour faire fonctionner une intégration de gestion plus « fine » du thermostat.
Du coup, je cherche, via un switch, à « émuler » cet attribut.
Il fonctionne pour la partie climate.set_hvac_mode et passe bien ma vanne de régulation en mode chauffage/off.
Ce qui me chagrine, c’est la partie - service_template: "{{ state_attr('climate.bureau', 'hvac_action', 'heating') }}"
J’ai beau retourner le problème dans tous les sens, je n’y arrive pas.
…:: Ce que je cherche donc en finalité ::… (toutes les idées sont les bienvenues)
Soit trouver une méthode pour émuler l’attribut hvac_action (s’il existe un moyen de lier l’attribut hvac_mode d’origine avec hvac_action) du genre : hvac_mode: 'heat' == hvac_action: 'heating'
et à l’inverse : hvac_mode: 'off' == hvac_action: 'idle'
OU ALORS :
M’expliquer où je me plante dans ce switch qui fait que j’ai cette erreur : Échec de l'appel du service switch/turn_on. Error rendering service name template: TypeError: state_attr() takes 3 positional arguments but 4 were given
Parce que je ne vois pas où est le 4e argument dont il me parle !
Ma configuration
System Information
version
core-2024.2.5
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.12.1
os_name
Linux
os_version
6.6.16-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.34.0
Stage
running
Available Repositories
1403
Downloaded Repositories
28
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 12.0
update_channel
stable
supervisor_version
supervisor-2024.02.1
agent_version
1.6.0
docker_version
24.0.7
disk_total
30.8 GB
disk_used
10.5 GB
healthy
true
supported
true
board
ova
supervisor_api
ok
version_api
ok
installed_addons
File editor (5.8.0), FTP (5.0.1), Mosquitto broker (6.4.0), Zigbee2MQTT (1.35.3-1), WireGuard (0.10.2), Studio Code Server (5.15.0)
Slt…
Il te dit qu’ily a un argument en trop !
Déjà passe par le Mode développement état et vérifie ton climate , tu auras les attributs !
Puis dans modele , essaye ton template ?
je connais les attributs de l’entité. hvac_action n’y figure pas nativement. Je l’ai rajouté via un custom attribute dans mon fichier configuration.yaml :
Jusque là tout est bon. Le code indiqué dans le post original fonctionne. La partie que tu m’as mise en évidence n’est pas concernée puisqu’elle fonctionne. Je n’ai que la ligne où je cherche à modifier le hvac_action qui déconne.
J’ai tenté, bien avant de poster ce message, les outils de devs. Ces derniers me renvoient la même erreur concernant les 4 arguments ! Et c’est là que je pêche… Je n’arrive pas à lui demander de me modifier la valeur de l’attribut hvac_action. J’ai cherché la syntaxe sur le web pendant quasi 3h hier et 1 bonne heure aujourd’hui. Et j’arrive au bout de mes investigations. Je n’ai sûrement pas les connaissances suffisantes pour ça, j’en convient de bonne grâce. Mais cette particularité ne semble pas faire partie de la doc de hass ou alors je n’ai pas su lire correctement la doc. Pour ça que tout seul, je tourne en rond
J’ai tenté avec un genre de {{ set state_attr('climate.brueau ... etc. sans plus de succès. Comment définir cette saleté d’attribut
Non plus mon pauvre. Je peux y modifier les modes CVC (hvac_modes), allumer (climate.turn_on), éteindre par exemple mais pas changer ce fichu attribut.
Justement, je me suis affranchi de tuya pour du Z2M. afin justement de ne plus dépendre de leur cloud.
Mais l’ajout via Z2M ne me retourne pas le hvac_action tant demandé par toutes les intégrations de gestion du chauffage.
Je suis trop neuneu pour du local tuya. Jamais réussi à le faire fonctionner dans la durée.
Alors hvac_action peut revêtir plusieurs valeurs. Parmi elles :
heating,
idle,
cooling,
…
Les 2 seules valeurs que cet attribut m’intéressent sont : ‹ heating › et ‹ idle ›.
En gros quand ça chauffe : heating
quand je l’éteins : idle.
Et non pas OFF, j’ai mis off comme valeur de base mais je peux mettre « idle » effectivement. Néanmoins, ça ne change rien à mon affaire
Et ça, tous les blueprint/intégrations de HACS utilisent cet attribut. C’est pour ça. Les vannes gèrent très très mal mon chauffage et « Versatile Thermostat » par exemple fonctionne du feu de Dieu pour mes 2 sèches serviettes. Vu qu’il propose aussi de gérer des vannes thermostatiques, je me suis dit que soit j’investit, soit je trouve une solution pour faire semblant.
Pas certain de bien comprendre ta problématique.
Avec Versatile thermostat, un climate over climate sur ton TRV n’est pas suffisant ?
C’est ce que j’ai mis en place sur 2 trv zigbee et ça roule
Et bien tu vois, depuis que je suis passé tout sonoff quasiment, je n’ai plus aucun problème. Plus d’indisponibilité des capteurs, plus de lumières qui s’allument ou s’éteignent pour un oui ou pour un non.
Sonoff via Z2M a changé ma vie si je puis dire. Reste que les noname chinois me donnent des cheveux blancs.
Après je ne suis pas parano anti-cloud etc. Mais le défi technique m’avait l’air surmontable de tout passer sous Zigbee2Mqtt. C’était sans compter sur ce truc de définir une valeur à un attribut. Mais c’est plus de la mauvaise connaissance de home assistant qu’autre chose je pense.
voilà alors ça oui bien sûr ! mais comment automatiser ce truc là ?
Je vois que tu me parles de python. Si c’est pas vraiment possible en yaml alors je vais abandonner l’idée. J’ai déjà de grosses lacunes en yaml alors vu que je n’y connais strictement rien en python, je vais pas me lancer dans plus de complexité.
Ca me semble parfaitement correspondre. J’avais déjà vu ce forum. Néanmoins, je n’ai pas réussi à implémenter cette solution correctement. Elle me propose de changer l’état général de l’entité, mais pas l’attribut. Je vais retenter, avec une bonne nuit de sommeil, je suis peut-être passé à côté de qqch.
Je retente. Mais selon vous il n’existe pas de moyen simple dans un template de faire ça du coup ?