je debute avec Home Assistant et j’ai du mal a faire un script pour allumer des lumieres entre la tombée du jour et 23h. L’idée est de simuler une presence lorsque l’on est en vacances
Apres pas mal de recherches, ce script me semblait avoir une bonne tête mais visiblement quelquechose m’echappe car je n’arrive pas a le faire accepter par home assistant en mode YAML
J’ai fait un truc similaire chez moi. J’ai une automatisation pour allumer :
alias: Lampe salon random on After sunset
description: ""
trigger:
- platform: sun
event: sunset
offset: "-01:00:00"
condition: []
action:
- delay: "{{ range(0, 20*60+1)|random }}"
- type: turn_on
device_id: 401cd39f914a0d131b004ece079c9154
entity_id: switch.tz3000_wamqdr3f_ts011f_switch
domain: switch
mode: single
En gros, une heure avant le coucher de soleil, je déclenche mon automatisation et j’applique un délai aléatoire de 0~20 minutes avant d’allumer la lampe.
Ensuite, j’ai une autre automatisation dans le même genre pour éteindre :
alias: Lampe salon random off
description: ""
trigger:
- platform: time
at: "22:50:00"
condition: []
action:
- delay: "{{ range(0, 20*60+1)|random }}"
- type: turn_off
device_id: 401cd39f914a0d131b004ece079c9154
entity_id: switch.tz3000_wamqdr3f_ts011f_switch
domain: switch
mode: single
Là, pareil. Je déclenche à 22h50, et j’applique un délai random de 0~20 minutes avant d’éteindre.
A adapter, bien sûr. mais ça permet de ne jamais allumer et éteindre exactement à la même heure.
Pour être précis, je ne veux pas que cette automatisation tourne 365j par an, seulement quand je le decide, cad en vacances. C’est faisable j’imagine, mais le comment n’est pas encore tres clair pour moi
Une automatisation peut être activée ou désactivée.
Soit par une autre automatisation, soit par un script, ou encore dans une scene.
Par exemple, j’ai une scène que j’utilise pour rendre inactives mes automatisations de chauffage en été:
scene:
#############################################################
#### Scene pour passer les automations chauffage à off ####
#############################################################
- name: automation_chauff_off
entities:
automation.chauffage_presences_family:
state: 'off'
automation.reglage_chauffage_pour_nuit:
state: 'off'
automation.reglage_chauffage_pour_le_matin:
state: 'off'
automation.set_chauff_present_eco:
state: 'off'
automation.reglage_chauffage_confort:
state: 'off'
Cette scène est appelée dans une automatisation par le service scene.turn_on
j’aimerais « coder moi meme » pour comprendre HA au lieu d’utiliser des module HACS pour le moment
un bête script dans ce style marcherait?
je le declenche par appui sur un bouton quand le pars
je le stop a mon retour (mais je ne sais pas encore comment^^)
Techniquement ça doit marcher mais par exemple l’hiver ton script attends pendant plusieurs heures … à rien faire. ça sert à rien de monopoliser des ressources (un thread, même s’il ne fait rien)
Perso pour faire ça 2 automatisations toutes connes :
1 à la tombée de la nuit
1 à 23h
Si tu veux t’amuser à gérer ton bouton (chui là /pas là), tu ajoutes un condition (bouton = on) dans les 2 automatisations ou bien tu actives/désactives les automatisations.
C’est à mon avis bien mieux que de faire ça par un script
la, je suis largué…
mon bouton n’a pas d’etat, ou je ne vois pas ou le prendre (il n’est pas en toggle car il appelle un script qui fait plein d’autres trucs commer armer l’alarme etc
je n’ai pas trouvé… donc j’ai tenté chatGPT et il a raison? (ca me parait bizarre)
Pour activer une automatisation sur l’appui d’un bouton et la désactiver sur l’appui d’un autre bouton dans Home Assistant, vous pouvez utiliser deux entités « input_boolean » et une automatisation qui surveille l’état de ces entités.
Les boutons d’une card c’est bien mais ça n’a pas toutes les fonctions des entités de HA…
switch/input_boolean ça permet de conserver un état. Et cette entité sert pour tout le reste (déclenchement d’automatisation/condition/carte etc)
Esthétiquement si tu veux changer le look de l’entité pour mettre un bouton (un peu plus customizable), ça marche aussi . Le bouton appele le service (toggle par ex) sur l’entité
Comme ça à première vue que ça semble correct.
Plus simple quand même au lieu des 2 scripts passe par le ‹ tap_action › qui serait un ‹ call_service › de type ‹ toogle › sur ton ‹ input_boolean ›
Comme ça à chaque clique ça inverse