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
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 »