Réveil lumineux avec Home Assistant

Mon problème

Bonjour à tous,
Je me suis lancer depuis quelques mois dans Home Assistant et je tente de faire quelque chose d’un peu particulier. Je suis équipé d’ampoule connecté de la marque Meross et mon souhaite est d’allumer progressivement la lumière d’une de mes lampe de chevet à l’heure de mon réveil.
Pour l’instant j’ai créé un script extrêmement simple via l’interface graphique car je ne suis pas encore à l’aise avec la partie template et je préfère comprendre ce que je fais. Voici le résultat actuel.

J’ai découvert via ce sujet (Création d'une entité temps : 30min avant réveil) qu’il est possible de récupérer l’alarme de son téléphone portable comme entité dans Home Assistant et je me dis que ce serai la condition parfaite à respecter pour que la séquence de ce script s’exécute (sachant que l’alarme de mon téléphone serait utilisé ici seulement en déclencheur et pas en sonnerie permettant ainsi un réveil plus doux et moins brusque.

Dans le sujet il est préciser que le temps remonte en UTC et qu’il faut utiliser l’expression
| as_local
pour permettre une conversion du temps.

J’imagine que je dois passer par la partie template et programmation pour faire ça, c’est d’ailleurs mon métier mais je n’ai pas trouver de tuto ni de doc clair pour comprendre le fonctionnement de manière globale. Si vous avez des liens pour que je puisse y voir plus clair et voir comment mettre tout ça en pratique sur cet exemple je suis preneur.

Ma configuration


System Information

version core-2024.5.2
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 5000
Installed Version 1.34.0
Stage running
Available Repositories 1391
Downloaded Repositories 2
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.05.1
agent_version 1.6.0
docker_version 25.0.5
disk_total 457.7 GB
disk_used 8.3 GB
healthy true
supported true
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Studio Code Server (5.15.0), Terminal & SSH (9.13.0), Mosquitto broker (6.4.0), Samba share (12.3.1), InfluxDB (5.0.0), MyElectricalData (0.12.0), AdGuard Home (5.0.7)
Dashboards
dashboards 3
resources 0
views 1
mode storage
Recorder
oldest_recorder_run 5 mai 2024 à 08:53
current_recorder_run 8 mai 2024 à 18:13
estimated_db_size 5.71 MiB
database_engine sqlite
database_version 3.44.2
___

Tu as l’entité prochaine alarme qui est récupérée via l’app compagnion. Cela pourait être un bon trigger.

1 « J'aime »

On est d’accord que je suis obligé de passer par la partie « programmation » de home assistant pour utiliser l’entité prochaine alarme comme trigger pour lancer le script car je ne vois pas comment le faire via l’éditeur visuel.

Il faut créer une automatisation, et non un script.

Le déclencheur se trouvera être l’entité de la prochaine alarme:


Par contre, l’allumage de la lumière peut être simplifié en utilisant le service allumer une lumière et en paramètre (transition) un indicateur de temps qui fera démarrer progressivement la lumière.

1 « J'aime »

Bonjour chpego, merci beaucoup pour tes captures d’écran je viens de mettre ça en place. Par contre je n’ai pas trouver le paramètre transition pour simplifié l’allumage de la lumière.
Quand j’appelle le service allumer une lumière j’ai les paramètres suivants et j’avais tester valeur de pas de luminosité mais sans succès malheureusement.


Je crois mais à vérifier que le paramètre transition n’apparait qu’en fonction du type de lumière.

C’est bien écrit dans la documentation qu’il faut vérifier l’état de la lumière pour voir les attributs, cependant c’est aussi expliqué qu’il faut essayer et voir si cela fonctionne.
L’interface graphique pour créer une automatisation c’est bien mais rien ne vaut de passer par le « code » en YAML.

2 « J'aime »

Hello

@chpego a raison, toutes les " light" ne supportent pas la transition , et pour certaines le délai max peut être très limité.

Voici un script que je lance depuis une automatisation pour faire un fade up le matin sur un vieux ruban led.
Il faut juste définir dans les variables les niveaux start et end , la durée, le pas ( incrément) , changer l’entité ( ici light.strip_chp) , et eventuellement les infos rgb .

alias: Nightlight CHP -  UP
sequence:
  - variables:
      start_brightness: 0
      end_brightness: 220
      brightness_increments: 5
      duration_mins: 10
      repeat_count: "{{ ((end_brightness - start_brightness) / brightness_increments) }}"
      repeat_delay: "{{ ((duration_mins * 60) / repeat_count) }}"
  - service: light.turn_on
    data:
      brightness: "{{ start_brightness + 1 }}"
      rgb_color:
        - 240
        - 0
        - 0
    target:
      entity_id: light.strip_chp
  - delay:
      hours: 0
      minutes: 0
      seconds: "{{ repeat_delay | int }} "
      milliseconds: 0
  - repeat:
      while:
        - condition: template
          value_template: "{{ (state_attr('light.strip_chp', 'brightness') < end_brightness) }}"
      sequence:
        - service: light.turn_on
          data:
            brightness: >-
              {{ state_attr('light.strip_chp', 'brightness') | int +
              brightness_increments }}
            rgb_color:
              - 240
              - 0
              - 0
          entity_id:
            - light.strip_chp
        - delay:
            hours: 0
            minutes: 0
            seconds: "{{ repeat_delay | int }} "
            milliseconds: 0
mode: restart
icon: mdi:lightbulb

@+

ps: facilement adapatable en Down :wink:

1 « J'aime »

Merci beaucoup @Krull56 pour l’exemple de script je vais m’en inspirer.
Merci à tous pour votre aide mon réveil lumineux est en marche depuis une semaine et j’en suis très content.

1 « J'aime »