Être alerté si la pluie est attendue dans moins d'une heure

Perso je ne me suis pas compliqué la vie, j’ai créé un template sensor (on/off) qui regade si le premier attribut forecast de mon integration meteo france contient le mot « rain », et j’ai créé une automatisation qui m’alerte quand il passe a on, ca m’evite de gérer si j’ai deja été notifié ou pas :slight_smile:

Et oui je prefere HA en anglais

platform: template
sensors:
  rain_next_hour:
    friendly_name: "Rain Next Hour"
    value_template: >-
      {% if 'rain' in state_attr('weather.ma_ville_top_secrete', 'forecast')[0].condition  %}
      on
      {% else %}
      off
      {% endif %}

en fait tout fonctionne nickel , j’avait fait une boulette :wink: merci beaucoup!
serait-il possible au lieu de notify.notify d’utiliser les notifications iOS ? j’ai essayé mais ca ne fonctionne pas . il faut sans doute changer le format du message à transmettre .

Merci pour cette automatisation. Après installation, et avec les jours de pluie de ce milieu de semaine, je suis spammé sur mon Telegram.

J’ai loupé quelque chose ou c’est chez tout le monde comme ça ?

C’est pour tout le monde pareil

1 « J'aime »

Depuis la maj HA il m’indique que certaines valeur timestamp n’ont pas de valeur par defaut, pouvez-vous me dire si j’ai mal intégré la valeur par defaut :

- alias: '[NOTIFY]Alerte quand pluie attendue'
  id: 30f4e5a8-df44-11ea-87d0-0242ac130003
  description: Envoie des notifications quand la pluie est attendue dans l'heure
  max_exceeded: silent
  trigger:
  - platform: state
    entity_id: sensor.ville_next_rain
  action:
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ trigger.to_state.state != ''unknown'' }}'
      - condition: state
        entity_id: input_boolean.stop_rain_notification
        state: 'off'
        for:
          minutes: 10
      - condition: time
        after: 05:00:00
        before: '22:00:00'
      sequence:
      - choose:
        - conditions:
          - condition: template
            value_template: '{{ trigger.to_state.state != trigger.from_state.state
              }}'
          sequence:
          - service: notify.notify
            data:
              title: Alerte pluie de [5h/22h]
              message: La pluie est attendue à {{ as_timestamp(states('sensor.ville_next_rain')[0])
                | timestamp_custom('%H:%M', True, 0) }}.🌧️
          - delay:
              hours: 0
              minutes: 20
              seconds: 0
              milliseconds: 0
          - service: input_boolean.turn_off
            data: {}
            target:
              entity_id: input_boolean.stop_rain_notification
      - choose:
        - conditions:
          - condition: template
            value_template: '{{ state_attr(''sensor.ville_next_rain'', ''1_hour_forecast'')[''0
              min''] != ''Temps sec'' }}'
          sequence:
          - service: input_boolean.turn_on
            data:
              entity_id: input_boolean.stop_rain_notification
    - conditions:
      - condition: template
        value_template: '{{ trigger.to_state.state == ''unknown'' }}'
      - condition: template
        value_template: '{{ trigger.from_state.state != ''unknown'' }}'
      sequence:
      - service: notify.notify
        data:
          message: Plus de pluie attendue dans la prochaine heure 🌤️.
      - service: input_boolean.turn_off
        data:
          entity_id: input_boolean.stop_rain_notification
  mode: single

J’ai depuis cette erreur persistante, comment met-on la valeur par defaut merci

Error rendering data template: ValueError: Template error: as_timestamp got invalid input '2' when rendering template 'La pluie est attendue à {{ as_timestamp(states('sensor.xxxx_next_rain')[0]) | timestamp_custom('%H:%M', True, 0)(0) }}.🌧️' but no default was specified

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 !

En parallèle, sur jeedom j’utilisais le plugin meteoprev qui donnait une quantité estimée de pluie à 1, 2, 3 ou 4 jours.
Je ne sais pas quel site ils utilisent pour ça.
Savez vous si on peut récupérer cette info ?
J’ai vu qu’on savait le faire à 1h sur météofrance mais c’est trop peu pour une prévision d’un arrosage automatique.
Merci

Salut,
Regarde bien l’intégration météo france fait ça sur plusieurs jours :

Merci
Les entités sont dispo pour chaque jour ou en cumulées ?

chaque jour … 2.4 puis 0.2 ça ne peut pas être un cumul

1 « J'aime »

OK
Je l’ai installée mais je n’ai que 9 entités.
Concernant la pluie je n’ai que l’entité sur le daily precipitation.
Je ne vois pas comment faire pour récupérer ces valeurs dont tu parles

C’est dans les attribues de l’entité weather.xxxx


Donc à récupérer avec un template

Ah oui je viens de voir.
J’ai 3 intégrations météo différentes. Toutes ont à peu près les mêmes données :wink:
Comment fais tu pour afficher une card aussi complète. La mienne est bien plus sommaire. J’utilise la card météo native HA
Autre question, comme les attributs ne sont pas marqués J1, J2 ou 24/48h, comment penses tu que je puisses récuérer par exemple la 1ère ou les 2 premières pour construire une entité cumulée ?

La récupération est un bête template, les éléments sont nommés ou ordonnées 0, 1, 2 etc


Pour la carte, c’est celle d’hacf avec les options activées :

Top merci je viens de l’installer
En revanche sur la card HACS, j’ai pas ni les alertes ni la barre pluie dans l’heure, c’est normal ?
J’ai fouillé un peu mais à priori ça devrait être automatique non ?

Tu as raté la configuration de la carte… Décrite également dans le sujet ci-dessus

Je relis alors
Voici ma config de carte

Tu n’as pas configuré les sensors

C’est bon pour les sensors ci-dessus.
Bon après avoir bien fouillé, mon département n’est pas couvert par le nextrain

Dans la doc ici : Météo-France - Home Assistant
Ils parlent de restriction pour le nextrain. Bizarre ces restrictions météo france…

EDIT : j’ai trouvé le sensor alert. Il n’a pas été créé pour les 2 premières villes ajoutées. Bref c’est OK
Me manque que le nextrain