Je souhaitais créer un bouton de type interrupteur dans le tableau de bord qui lorsque je cliques dessus change de couleur et soit lié également à un bouton poussoir physique ZigBee de marque Aqara et de modèle WXKG11LM.
*Mais cela ne fonctionnait pas. J’ajoutais une carte avec le matériel de mon bouton. J’ai donc chercher, chercher, chercher pour enfin trouver la solution. J’ai créé une Entrée dans le menu /Paramètres/Appareils et Services/Entrées et je l’ai nommée pareil que mon bouton. Mon bouton s’appelle bouton2 et mon Entrée s’appelle bouton2_valeur.
Remarque : Et par rapport à Jeed… avec le même matériel, il n’y a aucune latence. Cela réagi instantanément. Une efficacité redoutable ce Home Assistant …
Ma configuration
System Information
version
core-2024.6.1
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.12.2
os_name
Linux
os_version
6.6.29-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
4998
Installed Version
1.34.0
Stage
running
Available Repositories
1392
Downloaded Repositories
1
HACS Data
ok
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.3
update_channel
stable
supervisor_version
supervisor-2024.06.0
agent_version
1.6.0
docker_version
25.0.5
disk_total
30.8 GB
disk_used
5.1 GB
healthy
true
supported
true
host_connectivity
true
supervisor_connectivity
true
ntp_synchronized
true
virtualization
kvm
board
ova
supervisor_api
ok
version_api
ok
installed_addons
File editor (5.8.0), Advanced SSH & Web Terminal (18.0.0), Studio Code Server (5.15.0), Mosquitto broker (6.4.1), Zigbee2MQTT (1.38.0-1)
Salut,
Il n’y a aucune raison, avec ce que tu as expliqué pour que cela marche
De base un bouton de ce type-là n’a normalement pas d’état on/off, tout ce qu’il fait c’est envoyer l’info quand il a été cliqué.
Donc si au travers de HA tu veux l’utiliser pour un créer un interrupteur avec un état on/off, c’est faisable avec exactement ce que tu as utilisé, un input_boolean.
A moins qu’il y a une fonction récente qui le fasse, un input_boolean, ne peux être automatquement lié à une autre entité par son nom ou autre chose.
Il faudrait quelque chose comme une automatisation qui se déclenche au clic sur le bouton physique pour appeler le servive input_boolean.toggle par exemple, pour faire ce que tu as décrit.
Alors je ne sais pas si tu as quelque chose que tu as testé avant qui reste et qui donne ce résultat. Mais en tous cas il doit y avoir quelque chose…
J’ai compris. Je te remercie pour tes explications claires
Faire le Ninja n’est pas encore pour maintenant. Je ne me suis pas encore noyé dans la documentation YAML de HA. Je fais pour le moment tout avec l’éditeur visuel pour comprendre le code YAML généré. Mais ce principe de programmation en YAML est très riche. On peut demander ce que l’on souhaite au système. Je suis très content d’utiliser un système domotique, enfin, qui tienne la route !
PS: L’épais brouillard se dissipe petit à petit, lentement…
- id: '17xxxxxxxxxxxxxxxxxx'
alias: automation_appui_bouton2
description: Appui court sur le bouton2 de la maison
trigger:
- platform: device
domain: mqtt
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
type: click
subtype: single
condition: []
action:
- parallel:
- service: input_boolean.toggle
metadata: {}
data: {}
target:
entity_id: input_boolean.bouton2_valeur
mode: single
Il est dommage que la valeur de -id est un nombre. Je m’en sort pour me repérer avec l’alias.
Idem avec la valeur de device_id: qui est une suite alphanumérique. Je m’en sors en renommant mon bouton physique bouton2 et en nommant l’Entrée, bouton2_valeur. Je sais donc que si l’entrée est bouton2_valeur, cela correspond à un bouton physique qui se nomme bouton2
Utile quand sa propre mémoire approche celle de Dory …
J’aurai certainement dû l’appeler bouton2_interrupteur d’ailleurs. Puisque c’est bien son Type à l’Entrée, un interrupteur On/Off.
Quand penses-tu @AlexHass stp ? Ma convention de nommage est t’elle suffisante pour le syndrome Dory ?
Je dirais, de base nommer une entitié « bouton2 » ce n’est pas forcément suffisant, quand tu n’as rien de configuré dans le système ,ça va, mais si tu penses arriver sur un système plus gros, très vite « bouton2 » ça va devenir trop abstrait
Après la notion de « valeur » c’est un peu vague, mais « interrupteur » l’est tout autant, d’autant que l’entité a déjà un type input_boolean… qui renseiogne sur la fonction
Pour le côté YAML dans les automatisations, c’est simple pour partager, mais dans les faits utiliser l’interface graphique c’est qd même plus facile, je n’utilise que ça.
De la même façon l’ID de l’automatisation, je n’ai pas ouvert le ficheir automations.yaml depuis un long moment, si je veux voir le yaml d’une automatisation, je fais ça directement depuis l’interface graphique:
Bonjour @AlexHass. Je suis d’accord. bouton2 était juste pour le test. J’apprends que input_boolean est en fait un interrupteur. Je vais réfléchir à un nommage correct… Je compte donc également utiliser à outrance l’éditeur visuel suite à ton conseil. Cela évitera une infinité d’erreurs de conception yaml.
Petite remarque pour ceux qui débute comme moi. J’essai de ne pas écrire de choses en double dans l’automation. J’aimerai donc utiliser des variables. Par exemple, pour des seuils de déclenchement ou autre.
Voici pour l’instant, ma configuration YAML :
/config/configuration.yaml:
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
homeassistant: !include homeassistant.yaml
http: !include http.yaml
#conversation:
lovelace:
/config/automation.yaml:
- variables: !include variables.yaml
- id: 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
alias: automation_appui_bouton2
description: Appui court sur le bouton2 de la maison
trigger:
- platform: device
domain: mqtt
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
type: click
subtype: single
condition: []
action:
- parallel:
- service: input_boolean.toggle
metadata: {}
data: {}
target:
entity_id: input_boolean.bouton2_interrupteur
mode: single
- id: 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
alias: gestion_charge_telephone_s9
description: Gestion de la charge du téléphone S9 avec notifications
trigger:
- type: not_plugged_in
platform: device
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
entity_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: binary_sensor
condition:
- type: is_battery_level
condition: device
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
entity_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: sensor
above: 0
below: '{{ battery_level_below }}'
action:
- service: persistent_notification.create
data:
message: Le niveau de charge n'est pas à 100%, veuillez rebrancher votre téléphone
S9
title: Le téléphone S9 a été débranché.
- device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: mobile_app
type: notify
message: Le niveau de charge n'est pas à 100%, veuillez rebrancher votre téléphone
S9.
title: Votre téléphone S9 a été débranché.
mode: single
- id: 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
alias: gestion_charge_telephone_s20
description: Gestion de la charge du téléphone S20 avec notifications
trigger:
- type: not_plugged_in
platform: device
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
entity_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: binary_sensor
condition:
- type: is_battery_level
condition: device
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
entity_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: sensor
above: 0
below: '{{ battery_level_below }}'
action:
- service: persistent_notification.create
data:
message: Le niveau de charge n'est pas à 100%, veuillez rebrancher votre téléphone
S20.
title: Le téléphone S20 a été débranché.
- device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: mobile_app
type: notify
message: Le niveau de charge n'est pas à 100%, veuillez rebrancher votre téléphone
S20.
title: Le téléphone S20 a été débranché.
mode: single
- id: 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
alias: Alerte Baie Serveurs
description: Gestion de la temperature de la baie serveurs
trigger:
- type: temperature
platform: device
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
entity_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: sensor
for:
hours: 0
minutes: '{{ rack_server_temperature_critical_stay_for_minutes }}'
seconds: 0
above: '{{ rack_server_temperature_critical }}'
condition: []
action:
- service: persistent_notification.create
metadata: {}
data:
message: Niveau critique atteint de la température de {{ rack_server_temperature_critical }}° de la baie serveurs.
title: ALERTE TEMPERATURE {{ rack_server_temperature_critical }}° BAIE SERVEURS
- device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: mobile_app
type: notify
message: Niveau critique atteint de la température de {{ rack_server_temperature_critical }}° de la baie serveurs.
title: ALERTE TEMPERATURE {{ rack_server_temperature_critical }}° BAIE SERVEURS
- device_id: xxxxxxxxxxxxxxxxxxxxxxxxxx
domain: mobile_app
type: notify
message: Niveau critique atteint de la température de ({{ rack_server_temperature_critical }}°) de la baie serveurs.
title: ALERTE TEMPERATURE {{ rack_server_temperature_critical }}° BAIE SERVEURS
mode: single
Je compte prendre comme prochain appareil connectée, 2 prises connectées ZigBee. Je pourrai ainsi réguler la température de ma petite baie serveur en branchant des petits ventilateurs dedans…