Une couleur pour surveiller sa maison

Une fois la maison domotisée, les lumières connectées, les volets détectés et la serrure de la porte d’entrée domotisée, imaginez une petite lumière à l’entrée qui change de couleur pour vous indiquer l’état de sécurité de votre maison en un coup d’œil : serrure, volets, fenêtres, lumières… Tout cela piloté par Home Assistant et Zigbee. Validation 200% WAF certifiée.

Objectifs

Créer un indicateur visuel simple et intuitif à l’entrée qui reflète l’état global de la maison. L’objectif est de savoir immédiatement si tout est sécurisé avant de sortir, ou si une lumière est restée allumée lors du départ. Cela évite les allers-retours pour vérifier chaque capteur individuellement, parfait pour une domotique discrète et efficace.

Équipement utilisé

Pour réaliser cet indicateur, j’utilise la veilleuse multifonction Third Reality 3RSNL02043Z, une prise murale Zigbee compatible Zigbee2MQTT. Elle change de couleur (16 millions de teintes), s’allume jour/nuit, et se branche directement dans une prise standard. Je l’ai testée en détail ici. Pairée avec mon coordinateur ZBT-2, elle répond parfaitement aux automatisations Home Assistant.

États et couleurs

Serrure de la porte d’entrée Volets rdc/Garage Fenêtres Lumières Couleur RGB Signification
Fermée Tous fermés Toutes fermées Vert Sécurité totale
Fermée Tous fermés Au moins une ouverte Vert-bleu Quasi sécurisée
Fermée Au moins un ouvert Rouge Alerte prioritaire
Ouverte Tous fermés Toutes éteintes Jaune Prêt à partir
Ouverte Tous fermés Au moins une allumée Orange Lumières à éteindre
Ouverte Au moins un ouvert Toutes fermées Blanc Habitation normale
Ouverte Au moins un ouvert Au moins une ouverte Bleu clair Habitation normale avec fenêtre(s) ouverte(s)

Une journée typique

Le matin, alors que le soleil pointe à peine, la maison dort encore : serrure verrouillée, volets fermés, tout est d’un vert parfait qui m’assure une sécurité absolue pendant la nuit.

Je me lève, ouvre une fenêtre pour laisser entrer l’air frais : instantanément, la veilleuse vire au vert-bleu, un clin d’œil subtil que l’intérieur respire bien, mais que la vigilance reste de mise.

Pour sortir le chien, je déverrouille la porte d’entrée – volets toujours fermés, lumières éteintes ? Elle passe au jaune serein signifiant « prêt à partir promener ». Une lampe est déjà allumée, le Orange vif me titille : « n’oublie pas d’éteindre ».

Les volets du rez-de-chaussée s’ouvrent à la lumière du jour : si au moins une fenêtre est ouverte, bleu clair rafraîchissant ; sinon blanc pur, la maison s’éveille pleinement, habitée et vivante.

Avant de filer au boulot, je referme volets et garage : jaune si tout est éteint (« parfait pour verrouiller »), orange si une lumière traîne (« éteins-moi d’abord ! »). Le verrouillage final de la serrure de la porte d’entrée ramène le vert tranquillisant.

Dîner, lumières tamisées, enfants couchés – tout se ferme progressivement, mais la porte reste ouverte → jaune/orange murmure « verrouille avant la nuit ». Clic de la serrure : si tout impeccable, vert apaisant enveloppe l’entrée ; sinon, rouge strident crie l’oubli d’un volet.

La veilleuse, fidèle sentinelle multicolore verte, veille jusqu’au prochain aube. Bonne nuit, à demain !

Automatisation

alias: Veilleuse entrée - Sécurité complète
description: Couleurs selon lock + volets/garage/fenêtres/lumières
triggers:
  - trigger: state
    entity_id: lock.porte
  - trigger: state
    entity_id:
      - binary_sensor.petit_volet_de_la_salle_a_manger_contact
      - binary_sensor.volet_de_la_cuisine_contact
      - binary_sensor.grand_volet_de_la_salle_a_manger_contact
      - binary_sensor.porte_du_garage_contact
      - binary_sensor.fenetre_de_manon_contact
      - binary_sensor.fenetre_toilettes_du_bas_contact
      - binary_sensor.fenetre_de_coralie_contact
      - binary_sensor.fenetre_de_la_chambre_des_parents_contact
      - light.lumiere_chambre_de_coralie
      - light.lumiere_chambre_parents
      - light.lumiere_chambre_de_manon
      - light.lumiere_couloir_etage
      - light.lumiere_du_bureau
      - light.lumieres_de_l_etage
      - light.lumieres_de_la_cuisine
      - light.lumieres_de_la_salle_a_manger
      - light.lumieres_du_canape
      - light.lumieres_du_dressing
      - light.lumieres_du_salon
conditions: []
actions:
  - target:
      entity_id: light.veilleuse_entree
    data:
      rgb_color: >
        {% set lock_state = states('lock.porte') %}
        {% set vg_ok = [states('binary_sensor.petit_volet_de_la_salle_a_manger_contact'),states('binary_sensor.volet_de_la_cuisine_contact'),states('binary_sensor.grand_volet_de_la_salle_a_manger_contact'),states('binary_sensor.porte_du_garage_contact')] | select('eq','off') | list | count == 4 %}
        {% set f_ok = [states('binary_sensor.fenetre_de_manon_contact'),states('binary_sensor.fenetre_toilettes_du_bas_contact'),states('binary_sensor.fenetre_de_coralie_contact'),states('binary_sensor.fenetre_de_la_chambre_des_parents_contact')] | select('eq','off') | list | count == 4 %}
        {% set lumieres_off = [states('light.lumiere_chambre_de_coralie'),states('light.lumiere_chambre_parents'),states('light.lumiere_chambre_de_manon'),states('light.lumiere_couloir_etage'),states('light.lumiere_du_bureau'),states('light.lumieres_de_l_etage'),states('light.lumieres_de_la_cuisine'),states('light.lumieres_de_la_salle_a_manger'),states('light.lumieres_du_canape'),states('light.lumieres_du_dressing'),states('light.lumieres_du_salon')] | select('eq','off') | list | count == 11 %}
        {% if lock_state == 'locked' %}
          {% if vg_ok %}
            {% if f_ok %} [0,255,0] {% else %} [0,255,200] {% endif %}
          {% else %} [255,0,0] {% endif %}
        {% elif lock_state == 'unlocked' %}
          {% if vg_ok %}
            {% if lumieres_off %} [255,255,0] {% else %} [255,140,0] {% endif %}
          {% elif f_ok %} [255,255,255]
          {% else %} [119,159,235] {% endif %}
        {% else %} [255,255,255] {% endif %}
    service: light.turn_on
mode: single

Explications

Cette automatisation est mon « super gardien » dans Home Assistant : j’observe constamment plusieurs éléments de ma maison (serrure, volets, fenêtres, lumières) et elle change la couleur de ma petite veilleuse à l’entrée pour me donner un résumé visuel clair, sans que j’aie à ouvrir une app ou vérifier chaque chose une par une. C’est comme un feu tricolore pour la sécurité de ma maison, qui réagit en quelques secondes à tout changement.

Comment elle détecte les changements ?

L’automatisation « écoute » les modifications d’état de 18 éléments précis de ma maison :

  • Ma serrure de la porte d’entrée (lock.porte : verrouillée ou déverrouillée).

  • Mes 4 capteurs de volets et garage (ex. : binary_sensor.petit_volet_de_la_salle_a_manger_contact – « off » signifie fermé).

  • Mes 4 capteurs de fenêtres (ex. : binary_sensor.fenetre_de_manon_contact – « off » signifie fermée).

  • Mes 11 lumières (ex. : light.lumiere_chambre_de_coralie – « off » signifie éteinte).

Dès qu’un de ces éléments change (j’ouvre une fenêtre, j’allume une lampe, etc.), l’automatisation se réveille automatiquement et met à jour la couleur de ma veilleuse (light.veilleuse_entree).

Le « cerveau » : mon calcul magique des couleurs

Au cœur, il y a un petit programme qui fait trois vérifications rapides :

  • Volets/Garage OK ? : Tous mes 4 capteurs sont-ils « off » (fermés) ? Il compte : si exactement 4, c’est vrai.

  • Fenêtres OK ? : Toutes mes 4 sont-elles « off » (fermées) ? Compte = 4 → vrai.

  • Lumières éteintes ? : Toutes mes 11 sont-elles « off » ? Compte = 11 → vrai.

Ensuite, selon l’état de ma serrure, il choisit la couleur RGB (comme un code pour vert, rouge, etc.) :

  • Serrure verrouillée (locked) :

    • Volets/Garage OK + Fenêtres OK → Vert pur : « Tout est sécurisé ! »

    • Volets/Garage OK mais une fenêtre ouverte → Vert-bleu : « Presque parfait, je m’aère. »

    • Un volet ou garage ouvert → Rouge : « Danger, je ferme ça vite ! »

  • Serrure déverrouillée (unlocked) :

    • Volets/Garage OK + Toutes lumières éteintes → Jaune : « Prêt à verrouiller et partir. »

    • Volets/Garage OK mais une lumière allumée → Orange : « J’éteins les lumières d’abord ! »

    • Volets/Garage pas OK mais Fenêtres OK → Blanc : « Maison habitée normalement. »

    • Volets/Garage pas OK + Fenêtres ouvertes → Bleu clair : « Maison vivante avec aération. »

  • Si autre état → Blanc par défaut.

Cette couleur est envoyée via le service « light.turn_on » pour allumer ma veilleuse avec la teinte exacte.

Génial non ?

Pas de conditions compliquées (tout fonctionne direct), ultra-réactif (mises à jour instantanées), et facile à personnaliser : j’ajoute mes propres capteurs dans les listes, je teste le template dans l’interface « Modèles » de Home Assistant. Résultat : ma maison qui « parle » en couleurs, simple et sans fil visible !

Nota : J’ai réalisé cela en YAML directement car l’interface graphique des automatisations ne permet pas encore de réaliser cela.

Automatisation V2

J’ajoute le rose

Le rouge le matin quand on ouvre les volets du rez-de-chaussée n’est pas adapté, il n’y a pas d’anomalie.

J’ai donc mis en oeuvre le rose sur un créneau horaire et gardé le rouge le soir.

Nouveau tableau des états

Serrure de la porte d’entrée Volets rdc/Garage Fenêtres Lumières Couleur Horaires Signification
Fermée Tous fermés Toutes fermées Vert Sécurité totale
Fermée Tous fermés Au moins une ouverte Vert-bleu Quasi sécurisée
Fermée Au moins un ouvert Rouge 20h-6h Alerte prioritaire
Fermée Au moins un ouvert Rose 6h-20h Levé
Ouverte Tous fermés Toutes éteintes Jaune Prêt à partir
Ouverte Tous fermés Au moins une allumée Orange Lumières à éteindre
Ouverte Au moins un ouvert Toutes fermées Blanc Habitation normale
Ouverte Au moins un ouvert Au moins une ouverte Bleu clair Habitation normale avec fenêtre(s) ouverte(s)

Nouvelle automatisation

alias: Veilleuse entrée - Sécurité complète
description: Couleurs selon lock + volets/garage/fenêtres/lumières
triggers:
  - trigger: state
    entity_id: lock.porte
  - trigger: state
    entity_id:
      - binary_sensor.petit_volet_de_la_salle_a_manger_contact
      - binary_sensor.volet_de_la_cuisine_contact
      - binary_sensor.grand_volet_de_la_salle_a_manger_contact
      - binary_sensor.porte_du_garage_contact
      - binary_sensor.fenetre_de_manon_contact
      - binary_sensor.fenetre_toilettes_du_bas_contact
      - binary_sensor.fenetre_de_coralie_contact
      - binary_sensor.fenetre_de_la_chambre_des_parents_contact
      - light.lumiere_chambre_de_coralie
      - light.lumiere_chambre_parents
      - light.lumiere_chambre_de_manon
      - light.lumiere_couloir_etage
      - light.lumiere_du_bureau
      - light.lumieres_de_l_etage
      - light.lumieres_de_la_cuisine
      - light.lumieres_de_la_salle_a_manger
      - light.lumieres_du_canape
      - light.lumieres_du_dressing
      - light.lumieres_du_salon
conditions: []
actions:
  - target:
      entity_id: light.veilleuse_entree
    data:
      rgb_color: >
        {% set lock_state = states('lock.porte') %}  {% set heure = now().hour
        %} {% set nuit = heure >= 20 or heure < 6%} {% set vg_ok =
        [states('binary_sensor.petit_volet_de_la_salle_a_manger_contact'),states('binary_sensor.volet_de_la_cuisine_contact'),states('binary_sensor.grand_volet_de_la_salle_a_manger_contact'),states('binary_sensor.porte_du_garage_contact')]
        | select('eq','off') | list | count == 4 %} {% set f_ok =
        [states('binary_sensor.fenetre_de_manon_contact'),states('binary_sensor.fenetre_toilettes_du_bas_contact'),states('binary_sensor.fenetre_de_coralie_contact'),states('binary_sensor.fenetre_de_la_chambre_des_parents_contact')]
        | select('eq','off') | list | count == 4 %} {% set lumieres_off =
        [states('light.lumiere_chambre_de_coralie'),states('light.lumiere_chambre_parents'),states('light.lumiere_chambre_de_manon'),states('light.lumiere_couloir_etage'),states('light.lumiere_du_bureau'),states('light.lumieres_de_l_etage'),states('light.lumieres_de_la_cuisine'),states('light.lumieres_de_la_salle_a_manger'),states('light.lumieres_du_canape'),states('light.lumieres_du_dressing'),states('light.lumieres_du_salon')]
        | select('eq','off') | list | count == 11 %} {% if lock_state ==
        'locked' %}
          {% if vg_ok %}
            {% if f_ok %} [0,255,0] {% else %} [0,255,200] {% endif %} 
            {% else %} {% if nuit %} [255,0,0] {% else %} [255,104,235] {% endif %} {% endif %}
        {% elif lock_state == 'unlocked' %}
          {% if vg_ok %}
            {% if lumieres_off %} [255,255,0] {% else %} [255,140,0] {% endif %}
          {% elif f_ok %} [255,255,255]
          {% else %} [119,159,235] {% endif %}
        {% else %} [255,255,255] {% endif %}
    action: light.turn_on
mode: single

 

Et sur le Dashboard de Home Assistant ?

Oui, je reprends cette couleur de light.veilleuse_entree dans une icone sur mon Dashboard, l’information est utile également sur cet écran.

La carte est noyée dans une carte picture-elements de la page principale de mon dashboard. Pour intégrer la carte tile, j’ai utilisé la combine que j’avais documentée dans sur le tuto : Des cartes ne s’intègrent pas dans une carte picture-elements

J’ai ajouté un card_mod pour rendre la carte transparente pour la mettre en superposition de l’image du plan de ma maison.

type: picture-elements
image: /local/maison/1920x1000/transparent.png
elements:
  - type: custom:mod-card
    card:
      type: tile
      entity: light.veilleuse_entree
      icon: mdi:home-circle-outline
      show_entity_picture: false
      hide_state: true
      vertical: false
      features_position: bottom
      name: "\_"
    style:
      top: 75%
      left: 26.5%
    card_mod:
      style: |
        :host {
          --ha-card-background: transparent !important;
          --ha-card-box-shadow: none;
        }

 

Conclusion

Cette veilleuse 3RSNL02043Z transforme l’entrée en tableau de bord visuel instantané, piloté par Home Assistant et Zigbee pour une sécurité intuitive au quotidien.

Plus besoin de consulter l’app ou le dashboard : un simple coup d’œil sur le vert apaisant confirme que tout est verrouillé, ou le rouge urgent alerte un volet oublié.

Simple à déployer, évolutive avec de nouveaux capteurs, elle incarne la domotique discrète et efficace, 200% WAF