Bonjour,
Après avoir essayé cette automatisation quelques mois, je me rends compte que j’ai pas mal de notifications et parfois, cela n’a aucun intérêt pour moi. Je préfèrerai avoir des notifications seulement quand mes fenêtres sont ouvertes.
Si j’ai besoin de savoir si la pluie arrive, je vais ouvrir l’appli et regarder ma carte de prévisions :
### PLUIE DANS L'HEURE ###
- type: vertical-stack
cards:
- type: conditional
conditions:
- entity: sensor.chalon_sur_saone_next_rain
state_not: "unknown"
card:
type: entities
entities:
- entity: sensor.chalon_sur_saone_next_rain
name: Averse
- type: conditional
conditions:
- entity: sensor.chalon_sur_saone_next_rain
state_not: "unknown"
card:
type: horizontal-stack
cards:
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: "0"
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['0 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['0 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['0 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 5min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 05
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['5 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['5 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['5 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 10min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 10
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['10 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['10 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['10 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 15min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 15
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['15 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['15 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['15 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 20min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 20
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['20 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['20 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['20 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 25min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 25
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['25 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['25 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['25 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 35min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 35
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['35 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['35 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['35 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 45min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 45
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['45 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['45 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['45 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
# Prochaine pluie à 55min
- color_type: card
entity: sensor.chalon_sur_saone_next_rain
name: 55
show_icon: false
show_state: false
state:
- color: 'rgb(204, 217, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['55 min'] == 'Pluie faible')
]]]
- color: 'rgb(128, 159, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['55 min'] == 'Pluie modérée')
]]]
- color: 'rgb(51, 102, 255)'
operator: template
value: |
[[[
return states['sensor.chalon_sur_saone_next_rain'].attributes
&& (states['sensor.chalon_sur_saone_next_rain'].attributes['1_hour_forecast']['55 min'] == 'Pluie forte')
]]]
- color: 'rgb(255, 255, 255)'
operator: default
styles:
card:
- height: 50px
type: 'custom:button-card'
J’ai donc regroupé mes 3 capteurs qui correspondent aux fenêtres que je souhaite suivre en cas de pluie :
# Mes fenêtres ouvertes
- name: "Fenêtres ouvertes"
unique_id: fenetres_ouvertes
device_class: window
state: >
{{
is_state('binary_sensor.fenetre_2_salon', 'on')
or is_state('binary_sensor.porte_chambre_rdc', 'on')
or is_state('binary_sensor.velux_1_chambre_etage', 'on')
}}
Et je l’ai ajouté en condition dans l’automatisation :
trigger:
- platform: state
entity_id:
- sensor.chalon_sur_saone_next_rain
condition: []
action:
- choose:
- conditions:
- "{{ trigger.to_state.state != 'unknown' }}"
- condition: state
entity_id: input_boolean.stop_rain_notification
state: "off"
- condition: state
entity_id: binary_sensor.fenetres_ouvertes
state: "on"
sequence:
...
Maintenant, je souhaiterai avoir connaissance de la ou les fenêtres ouvertes dans mon message. Je dois donc rajouter un élément ici :
- service: notify.synochat_appart
data:
message: >
La pluie est attendue vers {{
as_timestamp(states('sensor.chalon_sur_saone_next_rain'))
| timestamp_custom('%H:%M', True) }}.
et ici :
- service: notify.synochat_appart
data:
message: La pluie est attendue dans quelques minutes.
Avec un message du style :
La pluie est attendue vers {{ as_timestamp(states(‹ sensor.chalon_sur_saone_next_rain ›)) | timestamp_custom(‹ %H:%M ›, True) }} et {{ fenetre en question }} est/sont ouverte/s !
et
La pluie est attendue dans quelques minutes et {{ fenetre en question }} est/sont toujours ouverte/s !
Avez-vous une idée ou un code que je pourrai adapté pour afficher le nom de mon binary_sensor qui correspond à la ou les fenêtres ouvertes ?
Merci !