Tu peux utiliser regrouper tes deux trigger dans la même automatisation et utiliser « choose » avec tes conditions d’ouverture et de fermeture.
Salut ,
Merci de participer sur le forum
Lorsque tu postes du code (flow, yaml, js, etc.), utilise les blocs codes
Pour cela, il te suffit de cliquer sur l’outil dédié et de coller ton code à l’endroit indiqué :
L’équipe HACF.
Merci Yul, mais je n’arrive pas à faire tomber en marche mon code: je fais mes tests avec une prise par simplicité je ne vois pas où se trouve mon erreur
- alias: 'Gestion des volets'
description: 'Gestion desvolets'
trigger:
- platform: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
state: 'Mode Auto semaine'
- condition: state
entity_id: binary_sensor.workday_sensor
state: "on"
sequence:
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_fermeture_volets_rdc_semaine.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_ouverture_volets_rdc_semaine.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_ouverture_volets_rdc_semaine.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_fermeture_volets_rdc_semaine.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
- conditions:
- condition: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
state: 'Mode Auto WE/Férié'
- condition: state
entity_id: binary_sensor.workday_sensor
state: "off"
sequence:
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_fermeture_volets_rdc_we.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_ouverture_volets_rdc_we.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_ouverture_volets_rdc_we.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_fermeture_volets_rdc_we.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
default: []
'''
personne pour m’aider?
Partage tes 2 automatisations car dans la dernière, c’est tout cassé
Ca n’a rien à faire dans le service ça… c’était ton déclencheur, ça doit le rester…
Je suis une buse, désolé je n’y arrive pas. Mon trigger est le input_select. Ca ma saoule
- alias: 'Gestion des volets'
description: 'Gestion desvolets'
trigger:
- platform: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
state: 'Mode Auto semaine'
- condition: state
entity_id: binary_sensor.workday_sensor
state: "on"
sequence:
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_fermeture_volets_rdc_semaine.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_ouverture_volets_rdc_semaine.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_ouverture_volets_rdc_semaine.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_fermeture_volets_rdc_semaine.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
- conditions:
- condition: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
state: 'Mode Auto WE/Férié'
- condition: state
entity_id: binary_sensor.workday_sensor
state: "off"
sequence:
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_fermeture_volets_rdc_we.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_ouverture_volets_rdc_we.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
- service: switch.toggle
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_ouverture_volets_rdc_we.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_fermeture_volets_rdc_we.state[0:5]) }}'
entity_id: switch.prise_sejour_on_off
default: []
Pourquoi le code suivant dans l’appel au service switch.toogle ?
data:
value_template: '{{ (states.sensor.time.state > states.input_datetime.heure_fermeture_volets_rdc_semaine.state[0:5]) and (states.sensor.time.state < states.input_datetime.heure_ouverture_volets_rdc_semaine.state[0:5]) }}'
Je dis peut être une bêtise mais ça n’a rien à faire la
Sinon le trigger est sur un changement d’état pour un input_select
. C’est à dire que l’automatisation ne se lancera que lorsque la valeur de l’input_select sera changé. Est-ce bien ça qui est souhaité ?
Entièrement d’accord sur ce bout de code…
Partage tes 2 automatisations…
Pas celle que tu essaies mais celles d’avant qui fonctionnaient…
Voici déjà celle d’ouverture:
- alias: Ouverture des volets semaine
trigger:
- platform: time_pattern
minutes: /1
seconds: 0
condition: # automation enabled and time is right
- condition: state
entity_id: input_boolean.cover_automation
state: 'on'
- condition: template
value_template: '{{ ((as_timestamp(now())|int)|timestamp_custom("%H:%M")) == (states.input_datetime.heure_ouverture_volets_rdc_semaine.state[0:5]) }}'
- condition: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
state: 'Mode Auto semaine'
- condition: state
entity_id: binary_sensor.workday_sensor
state: "on"
action:
- service: rest_command.ouvrir_le_volet_1_sejour
data:
entity_id: rest_command.ouvrir_le_volet_1_sejour
et celle de fermeture:
- alias: Fermeture des volets semaine
trigger:
- platform: time_pattern
minutes: /1
seconds: 0
condition: # automation enabled and time is right
- condition: state
entity_id: input_boolean.cover_automation
state: 'on'
- condition: template
value_template: '{{ ((as_timestamp(now())|int)|timestamp_custom("%H:%M")) == (states.input_datetime.heure_fermeture_volets_rdc_semaine.state[0:5]) }}'
- condition: state
entity_id: input_select.modes_de_fermeture_des_volets_rdc
state: 'Mode Auto semaine'
- condition: state
entity_id: binary_sensor.workday_sensor
state: "on"
action:
- service: rest_command.fermer_le_volet_1_sejour
data:
entity_id: rest_command.fermer_le_volet_1_sejour
Salut, top pour la fermeture des volets en été ! Merci
C’est un peu hard de faire tourner tes automatisations toutes les minutes. Est-ce que ça serait pas plus efficace d’avoir le trigger sur l’heure de déclenchement ?
Un truc comme ça :
Trigger:
- platform: time
at: states.input_datetime.heure_fermeture_volets_rdc_semaine
Hello,
Dans le template on peut ajouter une condition pour que cela s’ouvre si la meteo est a sunny ou partlycloudy ?
Merci à vous
Edit:
J’ai fait ça:
alias: Mode été volets EST (Persienne)
description: Mise en persienne des volets coté Est.
trigger:
- platform: state
entity_id:
- binary_sensor.azimuth_est
to: 'on'
from: 'off'
condition:
- condition: state
entity_id: input_boolean.mode_volets
state: 'on'
action:
- if:
- condition: and
conditions:
- condition: numeric_state
entity_id: sensor.position_baie_suite
above: '5'
- condition: or
conditions:
- condition: state
entity_id: weather.nersac
state: sunny
- condition: state
entity_id: weather.nersac
state: partlycloudy
then:
- service: cover.set_cover_position
data:
position: 83
target:
entity_id: cover.volet_baie_p
- service: cover.set_cover_position
data:
position: 84
target:
entity_id: cover.volet_entree
mode: single
Cela vous parait correct?
Bonjour !
J’utilise la technique décrite dans le tuto depuis un moment mais j’aimerai changer pour plus simplicité et pour d’autres fonctionnalités.
Je me suis créé récemment un unique ‹ binary sensor › qui mêle deux capteurs de présence. L’idée est que si l’un ou l’autre des capteurs détecte une présence alors le ‹ binary sensor › s’allume.
- platform: template
sensors:
presence_wc_sdd_rdc:
friendly_name: "Présence WC et Sdd RDC"
device_class: motion
value_template: >
{{
is_state('binary_sensor.presence_wc_rdc', 'on')
or is_state('binary_sensor.presence_sdd_rdc', 'on')
}}
Je crois que j’utilise toujours la mauvaise version pour rédiger mes ‹ sensors ›. Je devrais le mettre dans mon fichier split ‹ template.yaml › en utilisant la ‹ mordern configuration › mais je n’ai pas eu le temps de les déplacer.
J’aimerai appliquer cela pour l’azimut et l’elevation du soleil sur mon volet mais j’ai encore du mal avec les templates…
Il faudrait que le ‹ binary sensor › passe à ‹ on › quand :
- L’azimut est entre 145 et 245
- ET l’elevation est supérieure à 45
Voici mon idée, mais j’aurai besoin d’un connaisseur pour corriger mes erreurs…
- platform: template
sensors:
soleil_chambre_rdc:
friendly_name: "Soleil Chambre RDC"
value_template: >
{{
is_state_attr(sun.sun', 'elevation')|float > 45
and is_state_attr('sun.sun', 'azimut')|float > 145 < 245
}}
Salut,
Tu peux essayer qqc comme ça :
- platform: template
sensors:
soleil_chambre_rdc:
friendly_name: "Soleil Chambre RDC"
value_template: >
{{
{% set E = state_attr('sun.sun', 'elevation') | float %}
{% set A = state_attr('sun.sun', 'azimuth') | float %}
{{ E > 45 and 145 < A < 245 }}
}}
Attention ce format de template ne sera bientôt plus fonctionnel pensez à mettre à jour ce que vous partagez sinon en septembre beaucoup de template ne fonctionneront plus
template:
- binary_sensor:
- name: "Soleil Chambre rdc"
unique_id: soleil_chambre_rdc
state: >
{{
{% set E = state_attr('sun.sun', 'elevation') | float %}
{% set A = state_attr('sun.sun', 'azimuth') | float %}
{{ E > 45 and 145 < A < 245 }}
}}
Voilà avec le nouveau format, je pense que ça devrait fonctionner
alias: Volet Bureau Azimut
description: Volet Bureau Azimut
trigger:
- entity_id:
- binary_sensor.soleil_volet_sud
from: 'off'
platform: state
to: 'on'
- platform: state
entity_id:
- sensor.capteur_lumiere_exterieur
for:
hours: 0
minutes: 30
seconds: 0
from: '4000'
to: '10000'
- platform: state
entity_id:
- sensor.temperature_158d000273cd8e
- platform: state
entity_id:
- sensor.sunelevation
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: input_select.modevoletbureau
state: Auto
- condition: numeric_state
entity_id: sensor.temperature_158d000273cd8e
above: '22'
- condition: numeric_state
entity_id: sensor.capteur_lumiere_exterieur
above: '5000'
- condition: template
value_template: '{{ state_attr("cover.volet_bureau", "current_position") > 60 }}'
enabled: true
- condition: numeric_state
entity_id: sensor.sunelevation
below: '65'
- condition: state
entity_id: binary_sensor.soleil_volet_sud
state: 'on'
sequence:
- device_id: 3b13f25093299df51a0aa3ddb7bf8774
domain: cover
entity_id: cover.volet_bureau
type: set_position
position: 20
default:
- device_id: 3b13f25093299df51a0aa3ddb7bf8774
domain: cover
entity_id: cover.volet_bureau
type: set_position
position: 100
mode: single
Salut ma petite contribution
J’apporte également ma pierre a l’édifice:
1 seul automatisation pour tout mes volets:
declancheur:
- Soleil levée
- Soleil Couché
- Alert Meteo france (canicule)
- temps /1 minutes
4 Mode:
- Normal (lève et ferme les volets après levée soleil)
- Auto froid (tien compte de la canicule également)
- Auto chauf (si volet isolant alors les volets reste fermé au levée du soleil)
- Manuel
Package:
cover:
############################################################
## COVERS GROUPS ##
############################################################
- platform: group
name: Volets orientés sud
entities:
- cover.module_volet_salon
#- cover.module_volet_salon
- platform: group
name: Volets orientés ouest
entities:
- cover.module_volet_sejour
#- cover.module_volet_sejour
Group (spécial Cover)
group:
############################################################
## ALL COVERS GROUPS ##
############################################################
all_covers_sud:
name: Volets orientés sud
entities:
- cover.module_volet_salon
all_covers_ouest:
name: Volets orientés ouest
entities:
- cover.module_volet_sejour
automatisation:
############################################################
## COVER COUNT UPDATE ##
############################################################
- alias: 'Mise a jour all_covers_sud'
mode: single
max_exceeded: silent
initial_state: 'on'
trigger:
- platform: state
entity_id:
- cover.module_volet_salon
action:
- service: homeassistant.update_entity
data_template:
entity_id: sensor.all_covers_sud
#######################
AUTOMATISATION
#######################
alias: Volet
description: ''
trigger:
- platform: sun
event: sunrise
- platform: sun
event: sunset
- platform: state
entity_id:
- sensor.xx_weather_alert
attribute: Canicule
- platform: time_pattern
minutes: /1
condition: []
action:
- choose:
- conditions:
- condition: sun
after: sunset
after_offset: 00:15:00
sequence:
- service: cover.close_cover
data: {}
target:
entity_id:
- cover.volets_orientes_sud
- cover.volets_orientes_ouest
- conditions:
- condition: sun
after: sunrise
after_offset: 00:30:00
before: sunset
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.soleil_volets_ouest
state: 'on'
- condition: state
entity_id: cover.volets_orientes_ouest
state: open
- condition: state
entity_id: input_select.modevoletouest
state: Auto froid
- condition: state
entity_id: sensor.xx_weather_alert
attribute: Canicule
state: Vert
sequence:
- service: cover.set_cover_position
data:
position: 100
target:
entity_id: cover.volets_orientes_ouest
- conditions:
- condition: sun
before: sunset
after: sunrise
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.soleil_volets_sud
state: 'on'
- condition: state
state: open
entity_id: group.all_covers_sud
- condition: and
conditions:
- condition: state
entity_id: input_select.modevoletsud
state: Auto froid
- condition: state
entity_id: sensor.xx_weather_alert
attribute: Canicule
state: Vert
sequence:
- service: cover.set_cover_position
data:
position: 100
target:
entity_id: cover.volets_orientes_sud
- conditions:
- condition: state
entity_id: binary_sensor.soleil_volets_sud
state: 'on'
- condition: and
conditions:
- condition: state
entity_id: input_select.modevoletsud
state: Auto froid
- condition: device
device_id: 012fbd33f6b7cc0f9b5237f2a376a5a8
domain: cover
entity_id: cover.module_volet_salon
type: is_position
above: 50
sequence:
- service: cover.set_cover_position
data:
position: 0
target:
entity_id: cover.volets_orientes_sud
- conditions:
- condition: state
entity_id: binary_sensor.soleil_volets_ouest
state: 'on'
- condition: and
conditions:
- condition: state
entity_id: input_select.modevoletouest
state: Auto froid
- condition: state
state: open
entity_id: group.all_covers_ouest
sequence:
- service: cover.set_cover_position
data:
position: 0
target:
entity_id: cover.volets_orientes_ouest
- conditions:
- condition: state
entity_id: input_select.modevoletsud
state: Normal
- condition: sun
before: sunset
after: sunrise
- condition: device
device_id: 012fbd33f6b7cc0f9b5237f2a376a5a8
domain: cover
entity_id: cover.module_volet_salon
type: is_position
below: 20
sequence:
- service: cover.set_cover_position
data:
position: 100
target:
entity_id: cover.volets_orientes_sud
- conditions:
- condition: state
entity_id: input_select.modevoletouest
state: Normal
- condition: sun
before: sunset
after: sunrise
- condition: device
device_id: be052f85354620b14a75e06914a6140d
domain: cover
entity_id: cover.module_volet_sejour
type: is_position
below: 20
sequence:
- service: cover.set_cover_position
data:
position: 100
target:
entity_id: cover.volets_orientes_ouest
- conditions:
- condition: sun
before: sunset
after: sunrise
- condition: state
entity_id: input_select.modevoletsud
state: Auto chauf
- condition: state
entity_id: group.volets_sud
state: open
sequence:
- service: cover.set_cover_position
data:
position: 0
target:
entity_id: cover.volets_orientes_sud
- conditions:
- condition: sun
before: sunset
after: sunrise
- condition: state
entity_id: input_select.modevoletouest
state: Auto chauf
- condition: state
entity_id: group.volets_ouest
state: open
sequence:
- service: cover.set_cover_position
data:
position: 0
target:
entity_id: cover.volets_orientes_ouest
default: []
mode: single
Bonne lecture