comme c’est mon premier post, je tiens d’abord à vous remercier pour cette communauté à laquelle j’espère participer régulièrement. J’ai découvert HA il y a quelques semaines et ai donc (pour l’instant ?) des questions j’imagine assez basiques. Voici donc mon premier souci:
J’ai intégré un boitier Konyks eCosy me permettant de contrôler mon radiateur électrique. J’arrive à l’activer / le désactiver avec un déclencheur de type heure et je souhaite maintenant pouvoir le déclencher en fonction de la température actuelle.
J’ai donc défini l’automatisation ci-dessous:
alias: Maintien de la température à en journée
description: 'Entre 8h et 18h, le chauffage doit s''allumer s''il fait moins de 19,5°'
trigger:
- type: temperature
platform: device
device_id: cff9ec9e8287b4ee1e9634a02595e4b6
entity_id: sensor.netatmo_station_meteo_interieur_bureau_temperature
domain: sensor
below: 19.5
for:
hours: 0
minutes: 0
seconds: 0
milliseconds: 0
condition: []
action:
- scene: scene.8thk9cgpvn3i63ac
- device_id: 309d842de9ce681a10743bcab1423819
domain: mobile_app
type: notify
title: 'Température < 19,5° en journée'
message: Le chauffage s'est allumé dans le bureau
mode: single
cependant rien ne se déclenche alors que la température actuelle est bien en-dessous de 19,5°.
Ma première piste est que la valeur récupérée n’est peut être pas numérique mais je ne sais pas comment le vérifier et ensuite la convertir.
Pourriez-vous me guider et/ou m’indiquer d’autres pistes ?
Je pense avoir trouvé la solution pour la conversion mais cela ne fonctionne toujours pas. Voici le code:
alias: Minimum 20° en journée dans le bureau
description: 'Entre 8h et 18h, le chauffage doit s''''allumer s''''il fait moins de 20°'
trigger:
- platform: numeric_state
entity_id: sensor.netatmo_station_meteo_interieur_bureau_temperature
value_template: >-
{{ states('sensor.netatmo_station_meteo_interieur_bureau_temperature') |
float }}
above: '20.0'
condition: []
action:
- device_id: 309d842de9ce681a10743bcab1423819
domain: mobile_app
type: notify
title: Changement de statut du radiateur
message: Le radiateur s'est allumé dans le bureau
- service: persistent_notification.create
data:
title: Changement de statut du radiateur
message: Le radiateur s'est allumé dans le bureau
mode: single
Je ne pense pas qu’il y ai besoin de conversion. Passes par l’UI pour créer ton automatisation, paramètre tout et rebascules sur le YAML (tout en haut à droite) , tu auras le code.
Tu es sur que l’info de ton netatmo est remontée?
Test ton automatisation en changeant la température manuellement dans « outils de supervisions ».
La différence entre mes deux codes s’explique par le fait d’avoir d’abord essayé un trigger de type device puis basculé sur un trigger de type numeric_state.
Je suis maintenant passé sur un type template dont voici le code (je fais tout par l’interface graphique):
alias: Minimum 20° en journée dans le bureau
description: 'Entre 8h et 19h, le chauffage doit s''''allumer s''''il fait moins de 20°'
trigger:
- platform: template
value_template: >-
{% if states('sensor.netatmo_station_meteo_interieur_bureau_temperature')
| float <= 20 %}
true
{% else %}
false
{% endif %}
condition:
- condition: time
after: '08:00'
before: '19:00'
action:
- device_id: 309d842de9ce681a10743bcab1423819
domain: mobile_app
type: notify
title: Température < 20° en journée
message: Le radiateur s'est allumé dans le bureau
- service: persistent_notification.create
data:
title: Changement de statut du radiateur
message: Le radiateur s'est allumé dans le bureau
- scene: scene.8thk9cgpvn3i63ac
mode: single
Ce qui m’étonne, c’est que si je vais dans Outils de développement > Etats, que je sélectionne l’entité sensor.netatmo_station_meteo_interieur_bureau_temperature et que je fixe une valeur dans le champs Etat et que j’appuie sur <DEFINIR L’ETAT>, tout se passe parfaitement.
Par contre, si je filtre sur l’entité en question, je constate que les attributs associés sont:
unit_of_measurement: °C
friendly_name: Netatmo Station météo (Intérieur) bureau Temperature
device_class: temperature
Du fait de la première ligne, je suis quasi sûr que je dois faire une conversion mais je peux bien sûr me tromper. Je joins un screenshot pour plus de détails.
Mes conditions étaient pourries. Du coup, voici ce qui fonctionne maintenant:
alias: Minimum 20° en journée dans le bureau
description: 'Entre 8h et 19h, le chauffage doit s''''allumer s''''il fait moins de 20°'
trigger:
- platform: numeric_state
entity_id: sensor.netatmo_station_meteo_interieur_bureau_temperature
below: '20'
condition:
- condition: time
after: '08:00'
before: '19:00'
action:
- service: persistent_notification.create
data:
title: Changement de statut du radiateur
message: Le radiateur s'est allumé dans le bureau
- device_id: 309d842de9ce681a10743bcab1423819
domain: mobile_app
type: notify
title: Température < 20° en journée
message: Le radiateur s'est allumé dans le bureau
- scene: scene.8thk9cgpvn3i63ac
mode: single
Je pense d’ici peu utilisé des inputs pour faciliter la customisation en cas de besoin.
Je te conseille te le faire au fur et à mesure (c’est très rapide depuis que l’on peut créer les entités depuis l’interface graphique) avant de devoir revenir sur toutes tes automatisations .
Pour ce qui est déclencheur (trigger) et condition, l’interface graphique te propose déjà d’utiliser des entités
Voici un exemple par contre pour le message de notification (tu en trouveras d’autre sur le forum dans divers posts ) :
- device_id: 309d842de9ce681a10743bcab1423819
domain: mobile_app
type: notify
title: "Bureau : température < {{states('input_number.temperature_minimale_bureau')}}"
message: Le radiateur s'est allumé.