Contrôle des lumières avec Home Assistant

Nous allons voir ensemble comment contrôler vos lumières avec Home Assistant, comment créer un groupe de lumières et configurer quelques automations simple.

Personnellement j’utilise des modules Zwave (qubino et fibaro) mais cet article pourra servir à tous le mondes quelque soit vos modules installés pour gérer les luminaires (wifi, zigbee, …)

Prérequis, matériels nécessaires & utilisés :

  • Version de HA : V111.4
  • avoir inclus quelques modules pour gérer vos luminaires
  • savoir ce qu’est une entité

Installation / configuration.

Les bases :

Pour pouvoir gérer vos luminaires il faudra commencer par installer un module (zwave, zigbee, wifi,…) , vous trouverez deux types d’entités différentes dans votre configuration. Soit vous allez avoir des types light.XXX soit des types switch.XXX.
Les switchs n’ont que deux fonctions ON ou OFF, les lights ont (en général) une fonctions de plus, c’est la variation de l’intensité. Les modules avec une entité light vous proposent aussi une entité switch pour l’utiliser avec des luminaires/ampoules qui n’acceptent pas la variation de luminosité, donc attention quand vous configurer vos luminaires de bien choisir la bonne entité (voir exemple ci dessous).


Par pur esthétisme j’ai transformé certains switch.XXX en light.XXX pour avoir un retour visuel de l’icône dans Home Assistant.

Comme vous pouvez le constater, l’icône de l’entité light.cave est éclairé alors que l’entité switch.qubino_cave_switch_12 ne l’est pas et ça peu importe le thème utilisé. C’est juste un détail mais tant qu’à faire, autant le faire bien ;). Nous allons donc voir ça dans la suite de l’article.

Changer le type d’entité.

Les configurations seront faites dans le ficher configuration.yaml, il vous suffit d’ajouter ces quelques lignes:

light:
  - platform: switch
    name: Cave
    entity_id: switch.qubino_cave_switch_12
  • platform: switch c’est pour indiquer que c’est une entité Light Switch.
  • name: c’est ici que vous pouvez donner un nom à votre entité light, dans cet exemple mon entité light va s’appeler light.cave.
  • entity_id: switch.XXX c’est votre entité switch que vous souhaitez changer.

Il faut comme d’habitude enregistrer et redémarrer Home Assistant.

Les groupes.

Les groupes de lumières vous permettent de réunir en une seule entité plusieurs entités light. C’est pratique dans plusieurs cas de figures: •si vous installer dans votre salon 6 ampoules led (ikea zigbee, philips Hue,…), chaque ampoules va avoir sa propre entité light.XXX, il est plus pratique d’avoir un groupe qui réunis ces 6 ampoules pour les allumer ou les éteindre en une seule fois.•Pouvoir éteindre toutes les lumières d’un étage ou même de la maison •…

Comme d’habitude les configurations seront à faire dans le ficher configuration.yaml, il vous suffit d’ajouter ces quelques lignes:light:

light:
  - platform: group
    name: Rez-de-chaussée
    entities:
      - light.qubino_led_salle_a_manger_level_10
      - light.cave
      - light.salle_a_manger_neons
       ...
  • platform: group c’est pour indiquer que c’est un groupe de lumière
  • name: c’est le nom du groupe, dans l’exemple c’est mon groupe pour mon rez-de-chaussée
  • entities: TOUTES vos entités light du groupe

Pour finir, enregistrer et redémarrer Home Assistant.

Quelques automatisations.

Je n’utilise pas énormément d’automatisation pour mes lumières, mais je vais vous partager ici celles que j’utilise au quotidien ;).

Celle qui est le plus utilisé, c’est la variation automatique de la luminosité en fonction de l’heure, pour ne pas brûler les yeux de ma petite famille quand ont doit aller au toilette la nuit, la lumière du couloir et de la salle de bain sont dimmé à 30% entre 21h et 6h du matin.
Le défaut dans cette automatisation est que lors du premier allumage après 21h, la lumière s’allume à 100% et puis la luminosité passe à 30% en moins d’une seconde (effet de petit flash), les allumages suivant sont directement fait à 30% c’est pour cette raison que j’ai configurer l’automatisation tôt dans la soirée, à partir de 21h.

- id: '1584297156408'
  alias: DimLight30Couloir
  description: ''
  trigger:
  - entity_id: light.qubino_escalier_level
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data_template:
      brightness: "{%- if now().strftime('%H')| int >= 21 %}\n  55\n{%- elif now().strftime('%H')|\
        \ int < 6 %}\n  55\n{%- elif now().strftime('%H')| int >= 6 %}\n  255\n{%-\
        \ endif %}\n"
      entity_id: light.qubino_escalier_level
    service: light.turn_on

Toute l’astuce se trouve dans la partie data_template:

  • {%- if now().strftime(‘%H’)| int >= 21 %}\n 55\n : si il est plus de 21h (et avant minuit) alors configure le brigtness à 55 sur 255, ici le niveau va de 0 à 255 se n’est donc pas un pourcentage 0% à 100%
  • {%- elif now().strftime(‘%H’)|\ \ int < 6 %}\n 55\n : si est + de minuit et avant 6h alors configure le brigtness à 55 sur 255
  • {%- elif now().strftime(‘%H’)| int >= 6 %}\n 255\n : si il est plus de 6h du matin alors configure le brigtness à 255 sur 255

L’automatisation suivante allume la lumière de la terrasse quand j’ouvre la porte de la cuisine (qui donne directement sur la terrasse) mais seulement 45 minutes après que le soleil c’est couché.

- id: '1585837816336'
  alias: Lumière Terrasse Soir
  description: ''
  trigger:
  - entity_id: binary_sensor.ds_porte_cuisine_contact
    platform: state
    to: 'on'
  condition:
  - after: sunset
    after_offset: '45'
    condition: sun
  action:
  - data: {}
    entity_id: switch.fibaro_terrasse_switch_3
    service: switch.turn_on

Une des dernières automatisations est dans mon grenier, j’ai aménagé mon grenier et j’ai installé une trappe avec un escalier pliant pour accéder au comble (enfin se qu’il en reste), j’ai donc placé un détecteur d’ouverture Xiaomi sur la trappe pour allumer et éteindre la lumière automatiquement.

- id: '1584360533612'
  alias: Lumiere_Comble_On
  description: ''
  trigger:
  - entity_id: binary_sensor.ds_trappe_grenier_contact
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data: {}
    entity_id: switch.qubino_comble_switch
    service: switch.turn_on
- id: '1584360605388'
  alias: Lumiere_Comble_Off
  description: ''
  trigger:
  - entity_id: binary_sensor.ds_trappe_grenier_contact
    from: 'on'
    platform: state
    to: 'off'
  condition: []
  action:
  - data: {}
    entity_id: switch.qubino_comble_switch
    service: switch.turn_off

Vous trouverez pleins d’autre exemples d’automatisation sur le forum.

Conclusion.

Vous pouvez maintenant gérer vos lumières facilement avec ces quelques conseils, si vous en avez d’autres, partagez vos conseils, automatisations ou astuces sur notre forum.


Trucs & astuces.

  • Vide

To Do List :

  • Vide

Mise à jour :

  • 20/03/2021 : Correction de l’indentation de l’entité group @Clemalex
  • 03/12/2020 : Correction @McFly (Merci à Pierre)
  • 28/11/2020 : Création de l’article. (@McFly, merci à @bob69740 pour l’erreur trouvé)
  • 23/06/2020 : Création de l’article. (@TheD6Bel)

Sources.

  • Home Assistant (Officiel)
4 « J'aime »

@Clemalex
@McFly

Bonjour,
Juste un petit soucis de mise en page sur ceci

light:
  - platform: group
      name: Rez-de-chaussée
      entities:
       - light.qubino_led_salle_a_manger_level_10
       - light.cave
       - light.salle_a_manger_neons
       ...

Il faut que name et entities soient en dessous de platform
Ca peut sembler logique pour les habitués, mais étant novice, je bloquais là dessus ^^
Merci @McFly pour m’avoir expliqué :wink:

light:
  - platform: group
    name: Rez-de-chaussée
    entities:
       - light.qubino_led_salle_a_manger_level_10
       - light.cave
       - light.salle_a_manger_neons
       ...
1 « J'aime »

Merci pour le signalement c’est corrigé.

bonjour,
j’essaie de faire un group avec mes ampoules yeelight xiaomi pour pouvoir ensuite les faire s’allumer avec le coucher du soleil mais je n’arrive pas à faire de group, j’ai pourtant bien suivi votre tuto;
il me met une notification entitès no found ?
Je débute et suis perdue
merci d’avance

Peux tu nous fournir le code du groupe et le code de la carte ?

je ne sais pas pas ce que tu veux comme code ?

light:
  - platform: group
    name: lumières chambre 
    entities:
       - light.yeelight_color_0x00000000036d5a4c
etc

Et dans Outils de développementOnglet ETATS, as-tu l’entité light.lumieres_chambre ?

non, c’est le nom des entités et pas leur id
mais c’est bon, je pense avoir réussi en passant par automatisation,
voici ce que j’ai dans config/automations.yaml, on verra demain

- id: '1612285787532'
  alias: 'Allumer les lumières chambre avec soleil '
  description: ''
  trigger:
  - platform: sun
    event: sunset
    offset: -00:30:00
  condition: []
  action:
  - domain: light
    entity_id: light.yeelight_stripe_0x00000000045215ae
    device_id: 7d69d55637bc6d9ac400fdc48d66193b
    type: turn_on
  - domain: light
    entity_id: light.yeelight_color_0x00000000036d5a4c
    device_id: 5478b6d2b6002bcf60188b7a3685dd54
    type: turn_on
  - domain: light
    entity_id: light.yeelight_color_0x00000000036ef236
    device_id: a89028a96e0c48b10b45fc074fb5401c
    type: turn_on
  - domain: light
    entity_id: light.yeelight_color_0x0000000003706b4e
    device_id: 06c635066c60af7c2f0e0ad5ee5565b3
    type: turn_on
  - domain: light
    entity_id: light.yeelight_color_0x00000000036f0856
    device_id: 5ecce49a41c26ef9b9a5558758ab021a
    type: turn_on
  mode: single

Merci de m’avoir répondu tout de même

Je ne comprends pas… :upside_down_face:

Du coup, pour créer un groupe de lumière la procédure est la suivante :

Tu crées un groupe de lumière par YAML (pas encore géré dans l’interface graphique)

light:
  - platform: group
    name: lumières chambre 
    entities:
       - light.yeelight_color_01
       - light.yeelight_color_02

Ensuite, il faut redémarrer HA pour la prise en compte du groupe qui apparaît (une fois le redémarrage terminé) dans Outils de développementOnglet ETATS :

Et c’est cette entité que tu utilise dans ton automatisation :

- id: '1612285787532'
  alias: 'Allumer les lumières chambre avec soleil '
  description: ''
  trigger:
  - platform: sun
    event: sunset
    offset: -00:30:00
  condition: []
  action:
  - service: light.turn_on
    entity_id: light.lumieres_chambre
  mode: single

@tetra même si tu as réussi, je mets l’explication pour les autres également :+1:

2 « J'aime »

merci pour ta réponse , je vais voir ce soir si cela fonctionne

Bonjour,
D’abord, merci pour ton post.

De mon côté, l’automatisation ne fonctionne pas, et je n’arrive pas comprendre pourquoi.

- id: "1667924606404"
  alias: Chambre - Variation luminosité
  description: ""
  trigger:
    - entity_id: light.chambre
      from: "off"
      platform: state
      to: "on"
  condition: []
  action:
    - data_template:
        brightness_pct: "{%- if now().strftime('%H')| int >= 21 %}\n  10\n{%- elif now().strftime('%H')|\
        \ int < 6 %}\n  10\n{%- elif now().strftime('%H')| int >= 6 %}\n  100\n{%-\
        \ endif %}\n"
        entity_id: light.chambre
      service: light.turn_on
  mode: single