Hello présentation Wibeweb

Bonjour,
Après de nombreuses lectures sur ce forum, il est temps pour moi de me présenter.
Donc, je suis Fabrice, je vis à Nîmes et j’ai découvert la domotique sur le tard via des prises connectées simples. Fraichement installé dans notre nouvelle maison, j’ai voulu automatiser davantage de choses (clim, lumières, volets, alarme…)

Véritable débutant, initialement mon choix se portait sur Jeedom mais j’ai eu la possibilité de le tester, tout comme HA et au final ça ne l’a pas fait du tout (interface vieillotte, logique qui ne me parle pas, bref, c’est très subjectif) ^^

Mon installation est composée comme suit :

  • Home Assistant Green + SkyConnect
  • ampoules Philips Hue + hub
  • prises connectées (Nous A1z)
  • capteurs de température (02P - Sonoff)
  • détecteurs de mouvement (hue et aqara p1)
  • détecteurs d’ouverture (aqara t1)
  • capteur de température & humidité pour le sol (Rehent)
  • capteur de température déporté pour la piscine (Owon)
  • répéteurs pour améliorer le maillage (Aeotec)
  • détecteur de fuite
  • cle SENA BT
  • Echo Show 10

Ce que j’ai pu intégrer facilement :

  • ma climatisation via AirZone (pas la version cloud)
  • mes radiateurs (sèche-serviette) de salle de bain via Overkiz (CosyTouch) - Seul bémol, cela ne gère pas la température de consigne !?!
  • Philips Hue
  • aspirateur Roborock
  • Ecojoko (via Petit Singe)
  • Porte de garage Hörmann (en ble pour connaitre son état : ouvert/fermé)
  • Panneaux solaires + batterie - Fusion Solar (via Kiosk)
  • SmartThings
  • NVR Dahua
  • Telegram pour les notifs techniques (il faut que je bosse pour la gestion des réponses via boutons)

Ce que je gère avec :

  • mes éclairages (avec différents modes, scènes)
  • ma gestion TEMPO (RTE Tempo)
  • suivi de conso + Enedis
  • chauffage / clim

Ce qu’il me reste à faire :

  • intégrer mes volets Profalux (il semble que ce soit une plaie, donc j’attends un peu)
  • intégrer mon alarme VESTA (actuellement j’ai bidouillé un truc via Alexa mais c’est pas safe)
  • connecter mon installation Fusion Solar en direct
  • domotiser mon portail d’entrée
  • améliorer mes automatisations et scripts
  • continuer à découvrir le formidable outil qu’est Home Assistant :wink:

Je serais ravi d’échanger avec vous et surtout d’apprendre à vos côtés !

10 « J'aime »

Bonjour et bienvenue.
tu as de quoi faire ici.

1 « J'aime »

Salut Fabrice :wink:
Belle présentation et puis on voit que tu as déjà bien bossé.
Sois le bienvenu sur HACF :wink:
@+ Guy

Bienvenue parmi nous :+1:

1 « J'aime »

Bienvenue dans la communauté tu as deja un beau dashboard

1 « J'aime »

Re,
juste un petit retour d’expérience sur les erreurs du débutant que je suis.

J’ai eu, il y a quelques jours, un problème de latence sur l’allumage de mes philips Hue. Pour rappel, j’ai un pont Hue et quelques ampoules. J’ai installé mon système Hue avant HA et ce dernier a parfaitement intégré mes lumières. Tout fonctionnait parfaitement !

Mais voilà que quelques jours plus tard, la latence d’allumage, au départ quasi instantanée, est passée à 3, voire 4 secondes (tant sur HA que sur l’appli native Hue). Cette latence revenait à son état initial (donc instantané) lorsque je redémarrais HA puis se dégradait à nouveau.

J’ai cherché sur le forum ici et ailleurs, mais je n’ai rien trouvé. J’ai tenté de recharger l’intégration Hue, sans succès.

J’étais à 2 doigts de me débarrasser du pont Hue et de passer mes ampoules en direct sur HA quand je me suis dit « retourne quand même lire la doc ». Grand bien m’en a pris ! Voici ce que dit la doc :

It is advised to use Hue scenes for controlling multiple lights at once for a smooth experience. If you individually control multiple lights and/or use Home Assistant scenes, each light command will be sent to each light one by one which doesn’t give a very good user experience, while using a Hue scene sends commands to all lights at once in an optimized way, resulting in a smooth experience.

En d’autres termes : Si vous contrôlez individuellement plusieurs lumières et/ou utilisez des scènes Home Assistant, chaque commande d’éclairage sera envoyée à chaque lumière une par une, ce qui n’offre pas une très bonne expérience utilisateur.

Effectivement, j’avais récemment créé des scènes depuis HA pour mon script « Ma soirée télé ». J’ai donc viré ces scènes et instantanément la réactivité des ampoules est revenue.

Ce post est autant pour moi que pour ceux qui effectueraient une recherche sur le terme « latence Philips Hue », et pour me rappeler que lire la doc 2 fois, c’est juste un minimum :wink:

3 « J'aime »

Re,
juste un autre retour d’expérience du débutant que je suis… Actuellement avec une clé SkyConnect (HA Green) sur ZHA (j’ai testé Z2M mais perso je n’accroche pas et j’arrive à quasi tout faire avec ZHA)

En début d’année, j’ai installé HA et j’ai, à peu près, réussi à faire tout ce que je voulais. Il ne me reste, à ce jour, que les volets Profalux à intégrer et mon alarme Vesta. Le reste me semble OK.

Les intégrations les plus intéressantes AMHA sont :

Huawei Fusion Solar
Assez difficile à intégrer, j’ai pas mal galéré, il a fallu s’y reprendre à plusieurs fois étant donné que j’ai un dongle, mais une fois fait, c’est juste top et cela permet bon nombre d’automatisations !

En parlant de ça, j’ai galéré pour obtenir simplement la consommation nette de la maison, si cela vous intéresse regardez ci-dessous :

Comment obtenir la conso nette de la maison ?

Ici, il s’agit de la conso nette de la maison, c’est-à-dire ce que consomme la maison indépendamment du solaire et des batteries.

    # Templates import et export
    - name: "huawei_export_reseau"
      unit_of_measurement: "W"
      state: >
        {% set power = states('sensor.power_meter_active_power') | float %}
        {{ power | int if power >= 0 else 0 }}
    - name: "huawei_import_reseau"
      unit_of_measurement: "W"
      state: >
        {% set power = states('sensor.power_meter_active_power') | float %}
        {{ 0 if power >= 0 else power | abs | int }}
    # Templates calcule la Conso Nette de la maison
    - name: "consommation_nette_maison"
      unit_of_measurement: "W"
      state: >
        {% set production_solaire = states('sensor.inverter_input_power') | float %}
        {% set export_reseau = states('sensor.huawei_export_reseau') | float %}
        {% set import_reseau = states('sensor.huawei_import_reseau') | float %}
        {% set charge_batterie = states('sensor.battery_charge_discharge_power') | float %}

        {% set consommation_nette = production_solaire - export_reseau + import_reseau %}

        {% if charge_batterie > 0 %}
          {% set consommation_nette = consommation_nette - charge_batterie %}
        {% elif charge_batterie < 0 %}
          {% set consommation_nette = consommation_nette - charge_batterie %}
        {% endif %}

        {{ consommation_nette | int if consommation_nette >= 0 else 0 }}

Netatmo Station Météo
Très facile à installer via l’intégration Netatmo mais c’est assez étonnant car HA me l’avait également trouvé via Appareil HomeKit. Toutefois, si HomeKit renvoie les mêmes infos (en local), ce dernier ne me remonte pas les infos de l’anémomètre et du pluviomètre, je ne sais pas pourquoi?

J’ai donc adapté ma carte météo avec mes valeurs locales (bien plus précises que celles des services météo).

SAIC MQTT Gateway (Python)
Ce module complémentaire me permet de monitorer mon véhicule électrique MG4. L’installation est assez simple, il suffit de rentrer quelques infos et le tour est joué. À noter que je suis sous ZHA et que je fais tourner Mosquitto MQTT (indispensable pour l’intégration SAIC mais aussi pour NUKI et HASS Agent)

Nuki Smart Pro 3
Au départ, j’avais utilisé l’intégration HACS (en lien ci-dessus) pour pouvoir l’utiliser sans bridge Nuki, puis dans les paramètres de la Nuki Pro3 j’ai vu qu’il était possible d’activer MQTT, j’ai donc testé, supprimé l’intégration et c’est désormais en local et cela pilote ma serrure connectée sans bridge ni cloud !

Roborock S7 Max Ultra V
Là clairement, c’est pour m’amuser. Intégration depuis HAio très simple, c’est juste pour déterminer les pièces à nettoyer que ce fût un poil plus complexe, mais une fois cela fait, c’est top !

        sequence:
          - service: vacuum.set_fan_speed
            metadata: {}
            data:
              fan_speed: max
            target:
              entity_id: vacuum.roborock_s7_pro_ultra
          - service: vacuum.send_command
            data:
              command: app_segment_clean
              params:
                - segments:
                    - 24
                    - 19
                  repeat: 1
            target:
              entity_id: vacuum.roborock_s7_pro_ultra

Ici, 24 et 19 représentent ma cuisine et mon salon.

Caméras Reolink
Ici, ce fût très simple, installation des caméras via l’appli Reolink sur mon téléphone puis installation de l’intégration HAio. Le flux des caméra remonte bien dans mon tableau de bord, la qualité est plutôt bonne. J’en ai une en WiFi et l’autre sur RJ45.

Module Énergie
Ici, j’utilise les infos de l’intégration Huawei Solar (import, export et batterie). Les données obtenues comparées à mon relevé Enedis sont similaires à 1 ou 2% près. Pour le calcul des coûts, j’utilise RTE Tempo qui me donne le tarif du moment à l’instant T.

Rain Bird
Intégration de mon goutte-à-goutte Rain Bird piloté par ma station météo Netatmo + mon capteur d’humidité TS0601 OWON, le pluviomètre et les prévisions de pluie, il ne me reste plus qu’à préparer un calendrier pour les jours d’été

Lumières
Via le Hub Philips Hue et son intégration sous HA je pilote toutes mes lumières. Je viens de tester les commutateurs intelligents sans neutre Zigbee 3.0 ZBMINIL2 - SONOFF et ça marche plutôt bien.

Piscine
J’ai vu le tuto suivant « Comment automatiser la filtration de la piscine de A à Z avec la domotique Home Assistant dynamiquement » et via Flipr + SHELLY Pro 2 (contact sec), je vais automatiser ma pompe de piscine et remonter tout cela dans HA.

Voilà, c’est à peu près tout pour l’instant ^^
Je confirme néanmoins que cela prend du temps, de la recherche et de la lecture sur cet excellent forum et/ou ailleurs, mais que cela reste un très agréable passe-temps, utile qui plus est !

Merci à toutes et à tous pour votre aide et l’inspiration :wink:

Nota: Si quelqu’un a déjà domotisé ses volets Profalux (Zigbee) avec HA, je serais preneur de conseils, j’avoue que tenter cela tout seul et me retrouver (comme un c…) avec des volets non fonctionnels, ça me fait un peu flipper o_O

2 « J'aime »

Trés beau démarrage.

Et vu où tu en es et qu’il te reste encore pas mal de choses à intégrer, je rajoute mon conseil traditionnel : as-tu mis en place une solution automatisée de sauvegarde?
Au début on n’y pense pas… Puis on apprend dans la douleur qu’une sauvegarde c’est bien et (parfois…) on pense à en faire une avant de bidouiller…

Mais la sauvegarde automatique te permettra de récupérer tout ton travail en cas de plantage imprévu (par exemple le materiel qui flanche) et ton historique de données et vu où tu en es, ça peut être intéressant si ce n’est pas déjà fait.

Bravo et bienvenue.

1 « J'aime »

Merci @BBE
oui j’avais lu sur le forum et j’ai mis en place hassio-google-drive-backup avec une sauvegarde auto tous les 3 jours et manuelle quand je fais de grosses modifs sur la config

1 « J'aime »

J’utilise la même chose… L’avantage pour moi (au delà de l’automatisation) étant que des sauvegardes sont stockés sur une autre machine (dans le cloud…) du coup si c’est la machine HA qui devient irrécupérable, les sauvegardes sont protégées… Ceci m’a sauvé la transition quand le Rpi3 à planté de façon irrécupérable…

Par contre sauvegarde tous les jours (histoire de garder le plus d’historique possible, pour l’énergie notamment) et j’utilise l’option « generational Backups » pour garder quelques vieilles versions en cas de gros pépin (1 par mois sur quelques mois).

1 « J'aime »

Bonjour et Bienvenue à toi dans la communauté :wink:

Super démarrage propre et partage de ta solution au top continue :clap:

1 « J'aime »

Bienvenue sur HACF :wink:

1 « J'aime »

Bienvenue :slight_smile: et bravo pour ton dashboard et tout ce que tu as déjà fait !

1 « J'aime »

vraiment content de rencontrer un nimois ici :slight_smile:

1 « J'aime »

Bonjour,

Je souhaite intégrer SAIC MG, mais je ne sais pas comment faire?

Merci de ton aide

Désolé du retard de réponse cela faisait un moment que je n’étais pas venu !

Je n’ai pas rencontré de problème en utilisant le module le SAIC MQTT Gateway (Python). Assure-toi avant d’installer MQTT pour pouvoir remonter les infos.

Du nouveau dans mon install HA ces derniers temps ^^

Pompe de piscine et PàC piscine connectées via Shelly
J’ai voulu automatiser ma piscine au maximum, j’ai cherché un électricien pour mettre cela en place avec Shelly fourni, mais clairement les pros sur lesquels je suis tombé ne connaissaient absolument pas… J’ai donc décidé de le faire tout seul, j’ai galéré, mais c’est en place. Associé à mon Flipr, cela fonctionne très bien !
J’ai donc la possibilité de régler la filtration, de mesurer la conso, de déclencher la PàC selon critères, etc…

Ajout Agenda Google
Plutot agréable d’avoir tous mes agendas réunis en un seul et même endroit, c’est facile à faire et très utile => atomic-calendar-revive

Suivi précis de ma conso TEMPO
Ici j’ai cherché et trouvé des cartes sur le forum (notamment celle de @miquelfr => Merci | que j’ai adaptée toujours avec apexcharts-card)

Ajout Lixee Zlinky en ZHA
Bon ça c’est fait mais je suis un peu déçu :confused:
Il est possible d’avoir tous les index (bleu, blanc, rouge, import, export etc…) mais déjà ce sont des valeurs à diviser par 1000 (je ne sais pas pourquoi mais j’ai du créer des templates pour toutes quasiment), pas de conso instantanée (heureusement que j’ai mon Power Meter Huawei)
Bref, pas top en ZHA - TIC Standard ! Je m’en sers donc principalement pour le suivi des couleurs, mes imports/exports et mes graphiques apex.

Ajout enceinte Sonos Beam 2
Bon là clairement, c’est du bonheur !!! Ça mérite une vue à lui seul lol
Intégration hyper simple, très pratique, toute la famille s’en sert ^^ J’ai ajouté les playlists de tout le monde et quelques stations de radio.

Ajout Sunology en suivi production
J’avais besoin d’un peu plus de solaire et j’ai donc testé les panneaux plug & play de Sunology (rien à redire surtout en promo). Avec une simple prise NOUS avec suivi conso et l’affaire est jouée.

Ajout de mes caméras de sécurité
J’ai enfin réussi à ajouter toutes mes caméra (NVR Dahua + Reolink), j’ai un peu galéré, car je ne connaissais pas, mais ça y est, c’est en place et bien pratique de tout avoir en une seule vue.

Voilà c’est tout pour l’instant :wink:
à bientôt pour de nouvelles intégrations

1 « J'aime »

Hello,
Petit update rapide sur quelques changements majeurs de mon HA.
Remplacement de ma HA Green par un NUC GK3+, changement de SkyConnect par deux SMLIGHT SLZB 06 et 06P10.

J’ai donc ZHA et Z2M sur mon instance HA ^^
ZHA avec SLZB-06 et Z2M avec SLZB-06P10


download

Ce ne fût pas si difficile à installer. Le pourquoi est, en revanche, intéressant !
En fait je dispose d’un local technique près de ma piscine, mais assez loin de ma maison et donc malgré des répéteurs la qualité de connexion n’'était pas au RDV.


Ainsi, depuis lors, les redémarrages sont ultra-rapides, visualiser mes caméras quasiment instantané, plus de perte de connexion des Enddevices de la piscine (l’ethernet PoE aide grandement)

J’ai enfin pu tester Z2M concrètement ! Bon, je suis pas fan, surement parce que j’ai commencé avec ZHA. Même si je comprends l’idée, pour en tirer pleinement parti, il faudrait que Zigbee2MQTT soit installé ailleurs que sur mon HAOS ; mais je n’ai pas l’iintention de changer d’OS ni de système de domotique pour l’instant :wink:

J’ai aussi fait quelques changements sur le dashboard. Plus pratique pour une lecture sur mobile.

Quelques cartes sympas avec Roborock et des bouton de lancement des services TV.

Du temps passé sur cette automation qui me permet de piloter mes 2 clims du salon via une seule clim maître (Clim Ouest pilote Clim Est mais les 2 peuvent rester indépendantes), bref, tout est dans le code.

alias: Synchroniser les Climatisations Ouest -> Est
description: >-
  Synchronise état, mode et température entre climate.salon_ouest et
  climate.salon_est
triggers:
  - entity_id: climate.salon_ouest
    trigger: state
conditions: []
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: |
              {{ trigger.to_state.state != trigger.from_state.state }}
        sequence:
          - target:
              entity_id: climate.salon_est
            data:
              hvac_mode: "{{ trigger.to_state.state }}"
            action: climate.set_hvac_mode
      - conditions:
          - condition: template
            value_template: |
              {{ trigger.to_state.attributes.temperature is not none and
                 trigger.to_state.attributes.temperature != 
                 trigger.from_state.attributes.temperature }}
        sequence:
          - target:
              entity_id: climate.salon_est
            data:
              temperature: "{{ trigger.to_state.attributes.temperature }}"
            action: climate.set_temperature
    default: []
  - delay: "00:00:02"
mode: restart

Enfin, pour conclure ce petit update bien trop long, j’essaie d’apprivoiser auto-entities.

À bientôt…

Hello la communauté,
Petit update de ma conf avec quelques automatisations dont je suis assez content ^^

J’ai un peu galéré à les mettre en oeuvre mais avec un peu de lecture et chatgpt ça le fait !

1/ Temps restant de la batterie Huawei

Que la batterie soit en charge, en décharge, pleine ou presque épuisée, ce système affiche dynamiquement des informations clés et adapte les couleurs et les icônes pour une compréhension instantanée.

Fonctionnalités principales :

  1. Temps restant ou autonomie des batteries :
  • Calcul dynamique du temps restant avant que les batteries soient entièrement rechargées ou totalement déchargées.
  • Lorsque les batteries sont pleines, affiche « Aucun ».
  • Lorsque les batteries sont totalement déchargées (au seuil critique de 5%), affiche « Batterie déchargée ».
  1. Libellé dynamique de l’état des batteries :
  • Indique clairement les différents états :
    • « Autonomie » (en décharge partielle).
    • « Recharge » (en charge active).
    • « Chargée (en veille) » lorsque la batterie est pleine et inactive.
    • « Déchargée (en veille) » lorsque la batterie est au seuil critique et inactive.
  1. Carte personnalisée :
  • Couleurs adaptées pour chaque état :
    • Vert vif pour une batterie en charge.
    • Orange vif pour une décharge partielle.
    • Rouge orangé pour une batterie totalement déchargée (en veille).
    • Gris clair pour une batterie pleine et inactive.

Temps restant en autonomie ou recharge de la batterie

# Temps restant en autonomie de batterie
- unique_id: "temps_restant_batteries"
  sensor:
    - name: "Temps Restant Batteries"
      unique_id: "autonomie_batteries"
      icon: mdi:battery-clock
      state: >
        {% set capacite_totale = 15000 %}
        {% set soc = states('sensor.batteries_etat_de_la_capacite') | float(0) %}
        {% set capacite_restante = capacite_totale * soc / 100 %}
        {% set puissance = states('sensor.batteries_puissance_de_charge_decharge') | float(0) %}

        {% if capacite_restante > 0 and puissance != 0 %}
          {% if puissance > 0 %}
            {% set heures = ((capacite_totale - capacite_restante) / puissance) | int %}
            {% set minutes = ((((capacite_totale - capacite_restante) / puissance) * 60) % 60) | round(0) %}
          {% elif puissance < 0 %}
            {% set heures = (capacite_restante / (-puissance if puissance < 0 else puissance)) | int %}
            {% set minutes = (((capacite_restante / (-puissance if puissance < 0 else puissance)) * 60) % 60) | round(0) %}
          {% endif %}
          {{ heures }}h et {{ minutes }}mn
        {% elif soc == 100 %}
          Aucun
        {% elif soc <= 5 and puissance == 0 %}
          Batterie déchargée
        {% else %}
          Batterie inactive
        {% endif %}

Libellé dynamique pour l’état de la batterie

# Libellé dynamique pour l'état des batteries
- unique_id: "libelle_etat_batteries"
  sensor:
    - name: "Libellé État Batteries"
      unique_id: "etat_batteries_label"
      state: >
        {% set puissance = states('sensor.batteries_puissance_de_charge_decharge') | float(0) %}
        {% set soc = states('sensor.batteries_etat_de_la_capacite') | float(0) %}

        {% if soc == 100 and puissance == 0 %}
          Chargée (en veille)
        {% elif soc <= 5 and puissance == 0 %}
          Déchargée (en veille)
        {% elif puissance < 0 %}
          Autonomie
        {% elif puissance > 0 %}
          Recharge
        {% else %}
          Batterie inactive
        {% endif %}

Carte personnalisée pour tableau de bord

type: entities
entities:
  - type: custom:template-entity-row
    entity: sensor.libelle_etat_batteries
    name: Mode Batterie
    icon: mdi:battery-heart-variant
    card_mod:
      style: |
        :host {
          --paper-item-icon-color: 
          {% if is_state('sensor.libelle_etat_batteries', 'Chargée (en veille)') %} 
            lightgrey;  /* Gris clair pour l'icône */
          {% elif is_state('sensor.libelle_etat_batteries', 'Déchargée (en veille)') %} 
            #ff4500;  /* Rouge orangé pour l'icône en décharge totale */
          {% elif states('sensor.batteries_puissance_de_charge_decharge') | float < 0 %} 
            #ffa500;  /* Orange vif pour l'icône en décharge partielle */
          {% else %} 
            #4dff4d;  /* Vert vif pour l'icône en charge */
          {% endif %};
        }
        .state {
          color: 
          {% if is_state('sensor.libelle_etat_batteries', 'Chargée (en veille)') %} 
            lightgrey;  /* Gris clair pour la valeur */
          {% elif is_state('sensor.libelle_etat_batteries', 'Déchargée (en veille)') %} 
            #ff4500;  /* Rouge orangé pour la valeur en décharge totale */
          {% elif states('sensor.batteries_puissance_de_charge_decharge') | float < 0 %} 
            #ffa500;  /* Orange vif pour la valeur en décharge partielle */
          {% else %} 
            #4dff4d;  /* Vert vif pour la valeur en charge */
          {% endif %};
        }
  - entity: sensor.temps_restant_batteries
    name: Temps Restant
    icon: mdi:timer-outline
  - entity: sensor.batteries_puissance_de_charge_decharge
    name: Charge / Décharge
  - entity: sensor.batteries_etat_de_la_capacite
    name: Niveau de Charge
show_header_toggle: false
state_color: false

Ce qui donne ceci (ici en orange car batterie en décharge):
image

2/ NON, ce n’est pas encore l’heure de se lever !

Mon fils de 5 ans a pour habitude de se lever avant 7h00 le we, ça pique un peu pour les parents que nous sommes ^^

Grâce à cette automation, la lampe Bloom Nolan s’illumine dynamiquement en rouge signifiant qu’il est trop tôt (avant 08h00) pour se lever et en vert quand il le peut (après 08h00) ! La lampe est commandée par le motion sensor et le smart buton à sa disposition. Ainsi, si nous devons entrer dans sa chambre la nuit, la lumière s’allumera avec une faible intensité. Et si Nolan se demande s’il peut se lever, il appuiera simplement sur son bouton et la lumière s’allumera soit en vert, soit en rouge, lui signifiant ainsi s’il peut se lever ou non.

Détection de mouvement

alias: Allume Bloom Nolan sur détection
description: Allume la lampe bloom Nolan (hue) sur détection Motion Sensor Nolan (hue)
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.hue_motion_sensor_4_mouvement
    from: "off"
    to: "on"
conditions:
  - condition: numeric_state
    entity_id: sensor.hue_motion_sensor_4_eclairement
    below: 30
  - condition: time
    after: "22:00:00"
    before: "09:00:00"
actions:
  - choose:
      - conditions:
          - condition: time
            after: "19:00:00"
            before: "07:59:00"
        sequence:
          - action: light.toggle
            metadata: {}
            data:
              brightness_pct: 100
              color_name: indianred
            target:
              entity_id: light.hue_bloom_1
      - conditions:
          - condition: time
            after: "08:00:00"
            before: "18:59:00"
        sequence:
          - action: light.toggle
            metadata: {}
            data:
              brightness_pct: 100
              color_name: green
            target:
              entity_id: light.hue_bloom_1
mode: restart

Smart button Hue Nolan

alias: Bouton Nolan - Lampe Bloom
description: >-
  Gestion de la lampe avec temporisation pour éviter les appuis multiples et
  logique de couleur selon l'heure.
triggers:
  - entity_id:
      - event.hue_smart_button_2_bouton_1
    attribute: event_type
    trigger: state
    to: long_press
  - entity_id:
      - event.hue_smart_button_2_bouton_1
    attribute: event_type
    trigger: state
    to: short_release
conditions:
  - condition: time
    after: "18:00:00"
    before: "10:00:00"
actions:
  - choose:
      - conditions:
          - condition: time
            after: "19:00:00"
            before: "07:59:00"
        sequence:
          - action: light.toggle
            metadata: {}
            data:
              brightness_pct: 100
              color_name: indianred
            target:
              entity_id: light.hue_bloom_1
      - conditions:
          - condition: time
            after: "08:00:00"
            before: "18:59:00"
        sequence:
          - action: light.toggle
            metadata: {}
            data:
              brightness_pct: 100
              color_name: green
            target:
              entity_id: light.hue_bloom_1
mode: queued
max: 10

Extinction automatique de la lampe après 5mn

alias: Eteint automatiquement lampe bloom Nolan
description: ""
triggers:
  - trigger: state
    entity_id:
      - light.hue_bloom_1
    to: "on"
    for:
      hours: 0
      minutes: 5
      seconds: 7
conditions: []
actions:
  - action: light.turn_off
    metadata: {}
    data:
      transition: 60
    target:
      entity_id: light.hue_bloom_1
mode: restart

J’ai aussi ajouté un suivi des déclenchements :

alias: Notification Hue Bloom Nolan allumée
description: >
  Envoie une notification Telegram quand la lampe hue_bloom_1 Nolan s'allume, en
  identifiant si l'origine est le bouton Hue Smart Button, un capteur de
  mouvement, ou une source inconnue.
triggers:
  - event_type: event.hue_smart_button_2_bouton_1
    event_data:
      event_type: short_release
    trigger: event
  - entity_id: light.hue_bloom_1
    to: "on"
    trigger: state
conditions: []
actions:
  - delay: 1
  - data:
      message: >
        {% set cause = 'inconnu' %} {% if trigger.platform == 'event' and
        trigger.event.event_type == 'event.hue_smart_button_2_bouton_1' %}
          {% set cause = 'le bouton Hue Smart Button' %}
        {% elif is_state('binary_sensor.hue_motion_sensor_4_mouvement', 'on') %}
          {% set cause = 'le capteur de mouvement Hue Motion Sensor' %}
        {% endif %} La lampe Hue Bloom 1 s'est allumée à {{
        now().strftime('%H:%M:%S') }}  et a été déclenchée par {{ cause }}.
    action: telegram_bot.send_message
mode: single

3/ Notification de production solaire journalière

Vue sur Domo-blog.fr

Chaque soir, à 18h, je rçois un rapport détaillé de la production solaire. Cette automation m’informe sur la quantité d’énergie gratuite générée, la charge actuelle de la batterie, et de ma consommation énergétique.

Fonctionnalités principales :

  1. Envoi de notifications via Telegram :
  • À 18h, une notification est envoyée pour résumer la journée.
  • Les messages sont personnalisés en fonction de la production solaire.
  1. Trois niveaux de production :
  • Petite journée de production (entre 1 kWh et 5 kWh) : Un message met en évidence la faible production due à une météo défavorable.
  • Production moyenne (entre 5 kWh et 15 kWh) : Un message souligne une météo changeante et une production correcte.
  • Excellente production (plus de 15 kWh) : Un message célèbre une journée très productive grâce à un ensoleillement optimal.
  1. Détails de la journée :
  • Production totale et par système (Huawei et Sunology).
  • Niveau de charge des batteries.
  • Import/export énergétique EDF.
  • Information sur la couleur Tempo actuelle et du lendemain.

Code de l’automatisation

alias: Bilan - Notification de production solaire du jour
description: Notification quotidienne via Telegram de la production solaire Huawei et Sunology, avec consommation et export EDF.
trigger:
  - platform: time
    at: "18:00:00"
condition: []
action:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.total_daily_solar_production
            above: 1
            below: 5
        sequence:
          - service: telegram_bot.send_message
            data:
              title: ⚡ *Petite journée de Production*
              message: >
                --------------------------------------------------------------

                Aujourd’hui est un jour {{
                states("sensor.rte_tempo_couleur_actuelle_visuel") }}, la maison
                n'a produit que *{{ states("sensor.total_daily_solar_production") }} kWh* d'énergie gratuite en raison du mauvais temps.



                ☀️ Détail par îlot de Production :
                --------------------------------------------------------------
                 + Huawei    : *{{ states("sensor.huawei_daily_production_rounded") }} kWh*
                 + Sunology : *{{ states("sensor.sunology_daily_production") }} kWh*
                --------------------------------------------------------------


                🔋 Les batteries sont actuellement chargées à *{{
                states("sensor.batteries_etat_de_la_capacite") | int }}%* pour
                encore plus d'énergie gratuite qui sera utilisée cette nuit.



                📶 Détail de votre Consommation : 
                --------------------------------------------------------------
                 + Import : *{{ "%.2f" | format(states("sensor.daily_import_energy") | float(0)) }} kWh*
                 + Export : *{{ "%.2f" | format(states("sensor.daily_export_energy") | float(0)) }} kWh*
                --------------------------------------------------------------


                Pour rappel: demain sera un jour
                {{ states("sensor.rte_tempo_prochaine_couleur_visuel") }}.

                Je vous souhaite une bonne fin de journée.
      - conditions:
          - condition: numeric_state
            entity_id: sensor.total_daily_solar_production
            above: 5
            below: 15
        sequence:
          - service: telegram_bot.send_message
            data:
              title: ⚡⚡ *Production Solaire moyenne*
              message: >
                --------------------------------------------------------------

                Aujourd’hui est un jour {{
                states("sensor.rte_tempo_couleur_actuelle_visuel") }}, la maison
                a produit *{{ states("sensor.total_daily_solar_production") }} kWh* d'énergie gratuite, grâce à une météo changeante.



                ☀️ Détail par îlot de Production :
                --------------------------------------------------------------
                 + Huawei    : *{{ states("sensor.huawei_daily_production_rounded") }} kWh*
                 + Sunology : *{{ states("sensor.sunology_daily_production") }} kWh*
                --------------------------------------------------------------


                🔋 Les batteries sont actuellement chargées à *{{
                states("sensor.batteries_etat_de_la_capacite") | int }}%* pour
                encore plus d'énergie gratuite qui sera utilisée cette nuit.



                📶 Détail de votre Consommation : 
                --------------------------------------------------------------
                 + Import : *{{ "%.2f" | format(states("sensor.daily_import_energy") | float(0)) }} kWh*
                 + Export : *{{ "%.2f" | format(states("sensor.daily_export_energy") | float(0)) }} kWh*
                --------------------------------------------------------------


                Pour rappel: demain sera un jour
                {{ states("sensor.rte_tempo_prochaine_couleur_visuel") }}.

                Je vous souhaite une bonne fin de journée.
      - conditions:
          - condition: numeric_state
            entity_id: sensor.total_daily_solar_production
            above: 15
        sequence:
          - service: telegram_bot.send_message
            data:
              title: ⚡⚡⚡ *Excellente Production Solaire*
              message: >
                --------------------------------------------------------------

                Aujourd’hui est un jour {{
                states("sensor.rte_tempo_couleur_actuelle_visuel") }}, la maison
                a produit une excellente quantité de
                *{{ states("sensor.total_daily_solar_production") }} kWh*
                d'énergie gratuite !



                ☀️ Détail par îlot de Production :
                --------------------------------------------------------------
                 + Huawei    : *{{ states("sensor.huawei_daily_production_rounded") }} kWh*
                 + Sunology : *{{ states("sensor.sunology_daily_production") }} kWh*
                --------------------------------------------------------------


                🔋 Les batteries sont actuellement chargées à *{{
                states("sensor.batteries_etat_de_la_capacite") | int }}%* pour
                encore plus d'énergie gratuite qui sera utilisée cette nuit.



                📶 Détail de votre Consommation : 
                --------------------------------------------------------------
                 + Import : *{{ "%.2f" | format(states("sensor.daily_import_energy") | float(0)) }} kWh*
                 + Export : *{{ "%.2f" | format(states("sensor.daily_export_energy") | float(0)) }} kWh*
                --------------------------------------------------------------


                Pour rappel: demain sera un jour
                {{ states("sensor.rte_tempo_prochaine_couleur_visuel") }}.

                Je vous souhaite une bonne fin de journée.
mode: single

J’ai aussi mis ces infos sur le tableau de bord :
image

Code de la carte sur le tableau de bord

type: entities
entities:
  - type: custom:multiple-entity-row
    name: Production Solaire
    entity: sensor.total_daily_solar_production
    state_header: Total
  - type: custom:multiple-entity-row
    name: Par Zone
    entity: sensor.huawei_daily_production_rounded
    state_header: Huawei
    entities:
      - entity: sensor.sunology_daily_production
        name: Sunology
        unit: kWh
  - type: custom:multiple-entity-row
    name: Consommation
    entity: sensor.daily_import_energy
    state_header: Import
    entities:
      - entity: sensor.daily_export_energy
        name: Export
        unit: kWh
state_color: false
show_header_toggle: false

4/ Tu vas être à la bourre… Encore !

On a tendance à trainer un peu trop longtemps sous la douche et dans la salle de bain le matin.
J’ai donc mis en place une automatisation toute simple qui, lors des jours de travail, annonce simplement l’heure tous les 1/4 d’heure via l’enceinte connectée de la salle de bain.

Code de l’annonce de l’heure

alias: Annonce de l'heure les jours travaillés sur SONOS SDB
description: >-
  Annonce l'heure toutes les 30 minutes entre 6h00 et 8h00 si c'est un jour
  travaillé avec TTS Cloud de Nabu Casa.
triggers:
  - minutes: /15
    trigger: time_pattern
conditions:
  - condition: state
    entity_id: binary_sensor.jour_de_travail
    state: "on"
  - condition: time
    after: "06:00:00"
    before: "08:30:00"
  - condition: state
    entity_id: input_boolean.absent
    state: "off"
actions:
  - target:
      entity_id: media_player.sdb_parents
    data:
      message: >
        Il est maintenant {{ now().hour }} heures {% if now().minute != 0 %} et
        {{ now().minute }} minutes{% endif %}.
    action: tts.cloud_say
mode: single

Voilà, c’est à peu prés tout :wink:
Si vous aussi vous avez des automations sympas et qui vous rendent service, ce serait sympa de les partager, c’est toujours inspirant et utile aux débutants comme moi ^^

Autre jour, autre automation ^^

J’ai fait l’acquisition d’un cube aqara T1 pro, j’aimais bien l’approche par face et le look de la bête. J’ai d’abord tenté de l’apparairer via ZHA, cela fonctionne mais les fonctions sont très limitées (même par ZHA Events), je l’ai donc passé sur Z2MQTT et là c’est top !

Le projet visait à utiliser ce Cube Aqara comme interface pour contrôler la musique dans une salle de bain via Home Assistant, par Music Assistant, et sur l’enceinte Sonos. L’objectif était de pouvoir :

  1. Lancer différentes playlists (Fabrice, Delphine, Nolan, et une aléatoire) en fonction de la face du cube.
  2. Mettre en pause la musique en positionnant une face dédiée.
  3. Changer de piste en secouant le cube.
  4. Monter ou baisser le volume en faisant tourner le cube à droite ou à gauche.
  5. Gérer les erreurs potentielles (comme le cube endormi ou des délais système).
  6. Inclure des annonces vocales pour chaque action déclenchée.

Voici l’automation principale pour gérer les playlists de chacun selon la face du cube :

alias: Cube SDB Parents - Gestion de la musique (Avec Annonces)
triggers:
  - entity_id: sensor.cube_aqara_sdb_parents_side
    trigger: state
conditions: []
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: sensor.cube_aqara_sdb_parents_side
            state: "1"
        sequence:
          - data:
              entity_id: media_player.sdb_parents
              message: Arrêt de la musique
              cache: true
            action: tts.cloud_say
          - target:
              entity_id: media_player.salle_de_bain
            action: media_player.media_pause
            data: {}
      - conditions:
          - condition: state
            entity_id: sensor.cube_aqara_sdb_parents_side
            state: "2"
        sequence:
          - data:
              entity_id: media_player.sdb_parents
              message: Lancement playlist Fabrice
              cache: true
            action: tts.cloud_say
          - choose:
              - conditions:
                  - condition: template
                    value_template: |
                      {{ states('media_player.salle_de_bain') != 'playing' or
                         state_attr('media_player.salle_de_bain', 'media_content_id') !=
                         'spotify://playlist/55skHXhn9HOz6fbtQUOAor' }}
                sequence:
                  - target:
                      entity_id: script.playlist_fabrice_2
                    action: script.turn_on
                    data: {}
          - delay: "00:00:02"
          - choose:
              - conditions:
                  - condition: template
                    value_template: >
                      {{ state_attr('media_player.salle_de_bain',
                      'media_content_id') !=
                         'spotify://playlist/55skHXhn9HOz6fbtQUOAor' }}
                sequence:
                  - target:
                      entity_id: script.playlist_fabrice_2
                    action: script.turn_on
                    data: {}
      - conditions:
          - condition: state
            entity_id: sensor.cube_aqara_sdb_parents_side
            state: "4"
        sequence:
          - data:
              entity_id: media_player.sdb_parents
              message: Lancement playlist aléatoire
              cache: true
            action: tts.cloud_say
          - target:
              entity_id: script.playlist_aleatoire_sdb
            action: script.turn_on
            data: {}
      - conditions:
          - condition: state
            entity_id: sensor.cube_aqara_sdb_parents_side
            state: "5"
        sequence:
          - data:
              entity_id: media_player.sdb_parents
              message: Lancement playlist Nolan
              cache: true
            action: tts.cloud_say
          - choose:
              - conditions:
                  - condition: template
                    value_template: |
                      {{ states('media_player.salle_de_bain') != 'playing' or
                         state_attr('media_player.salle_de_bain', 'media_content_id') !=
                         'spotify://playlist/453Q3zmFrKQROkyR8QSsGN' }}
                sequence:
                  - target:
                      entity_id: script.playlist_nolan_sdb
                    action: script.turn_on
                    data: {}
          - delay: "00:00:02"
          - choose:
              - conditions:
                  - condition: template
                    value_template: >
                      {{ state_attr('media_player.salle_de_bain',
                      'media_content_id') !=
                         'spotify://playlist/453Q3zmFrKQROkyR8QSsGN' }}
                sequence:
                  - target:
                      entity_id: script.playlist_nolan_sdb
                    action: script.turn_on
                    data: {}
      - conditions:
          - condition: state
            entity_id: sensor.cube_aqara_sdb_parents_side
            state: "6"
        sequence:
          - data:
              entity_id: media_player.sdb_parents
              message: Lancement playlist Delphine
              cache: true
            action: tts.cloud_say
          - choose:
              - conditions:
                  - condition: template
                    value_template: |
                      {{ states('media_player.salle_de_bain') != 'playing' or
                         state_attr('media_player.salle_de_bain', 'media_content_id') !=
                         'spotify://playlist/3xNPRkNX2xgGbCI9FHtmph' }}
                sequence:
                  - target:
                      entity_id: script.playlist_magasin
                    action: script.turn_on
                    data: {}
          - delay: "00:00:02"
          - choose:
              - conditions:
                  - condition: template
                    value_template: >
                      {{ state_attr('media_player.salle_de_bain',
                      'media_content_id') !=
                         'spotify://playlist/3xNPRkNX2xgGbCI9FHtmph' }}
                sequence:
                  - target:
                      entity_id: script.playlist_magasin
                    action: script.turn_on
                    data: {}

Celle qui change de piste en secouant le cube :

alias: Cube SDB Parents - Chanson suivante
triggers:
  - topic: zigbee2mqtt/Cube_aqara_sdb_parents/action
    trigger: mqtt
conditions:
  - condition: template
    value_template: "{{ trigger.payload == 'shake' }}"
actions:
  - target:
      entity_id: media_player.sdb_parents
    action: media_player.media_next_track
    data: {}

Celle qui augmente ou baisse le volume en tournant le cube :

alias: Cube SDB Parents - Volume (Corrigé et Simplifié)
triggers:
  - entity_id: sensor.cube_aqara_sdb_parents_action_angle
    not_from:
      - unknown
      - unavailable
      - None
    trigger: state
conditions: []
actions:
  - variables:
      rotation_angle: |
        {{ trigger.to_state.state | float(0) }}
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ rotation_angle > 0 }}"
        sequence:
          - target:
              entity_id: script.augmenter_le_volume_sdb_parents
            action: script.turn_on
            data: {}
      - conditions:
          - condition: template
            value_template: "{{ rotation_angle < 0 }}"
        sequence:
          - target:
              entity_id: script.diminuer_le_volume_sdb_parents
            action: script.turn_on
            data: {}

Gros FAF (Facteur d’Acceptation Familial) sur ce cube, toute la famille s’en sert et même le plus petit :wink: