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

Je t’avoues que je l’ai écrit rapidement et ne l’est pas du tout testé…

Je suis au boulot, donc ça attendra ce soir pour ma part.

Effectivement, j’étais parti sur le fait d’informer que l’execution manuelle ne marche pas dans le cas de l’utilisation des données contenu dans le déclencheur :+1:

très bien pas de problème je vais attendre je suis moi même au boulot :stuck_out_tongue:

Après une pause café passé sur le forum (car les collègues sont en vacances… :sob:) :

    #DEBUG
    - service: persistent_notification.create
      data:
        message: "L'entité **{{trigger.from_state.name}}** *({{trigger.from_state.entity_id}})* vient de passer de : \n '{{trigger.from_state.state}}' \n à \n '{{trigger.to_state.state}}'"
        title: "DEBUG Automatisation"
        notification_id: "{{ (range(1, 9999)|random) }}"
    #DEBUG

il y avait un ‹ trigger.from_state .state. name › de trop :+1:, mais sans rapport avec ton erreur.

J’ai pris ton automatisation, et ajouter donc le débogage :

- id: 30f4e5a8-df44-11ea-87d0-0242ac130003
  alias: Alerte quand pluie attendue
  description: Envoie des notifications quand la pluie est attendue dans l'heure
  trigger:
  - platform: state
    entity_id: sensor.courlay_next_rain
  action:
  #DEBUG
  - service: persistent_notification.create
    data:
      message: "L'entité **{{trigger.from_state.name}}** *({{trigger.from_state.entity_id}})* vient de passer de : \n '{{trigger.from_state.state}}' \n à \n '{{trigger.to_state.state}}'"
      title: "DEBUG Automatisation"
      notification_id: "{{ (range(1, 9999)|random) }}"
  #DEBUG
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ trigger.to_state.state != ''unknown'' }}'
      - condition: state
        entity_id: input_boolean.stop_rain_notification
        state: 'off'
      sequence:
      #DEBUG
      - service: persistent_notification.create
        data:
          message: "Déclencheur différent de 'unknown'"
          title: "DEBUG Automatisation"
          notification_id: "{{ (range(1, 9999)|random) }}"
      #DEBUG
      - choose:
        - conditions:
          - condition: template
            value_template: '{{ trigger.to_state.state != trigger.from_state.state
              }}'
          sequence:
          #DEBUG
          - service: persistent_notification.create
            data:
              message: "Déclencheur différent de l'état précédent, la pluie arrive !"
              title: "DEBUG Automatisation"
              notification_id: "{{ (range(1, 9999)|random) }}"
          #DEBUG
          - service: notify.telegram_groupe
            data:
              message: 'La pluie est attendue à {{ as_timestamp(states(''sensor.courlay_next_rain''))
                | timestamp_custom(''%H:%M'', True) }}.

                '
      - choose:
        - conditions:
          - condition: template
            value_template: '{{ state_attr(''ssensor.courlay_next_rain'', ''1_hour_forecast'')[''0
              min''] != ''Temps sec'' }}'
          sequence:
          #DEBUG
          - service: persistent_notification.create
            data:
              message: "La pluie est là !"
              title: "DEBUG Automatisation"
              notification_id: "{{ (range(1, 9999)|random) }}"
          #DEBUG
          - 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:
      #DEBUG
      - service: persistent_notification.create
        data:
          message: "Plus de pluie dans l'heure..."
          title: "DEBUG Automatisation"
          notification_id: "{{ (range(1, 9999)|random) }}"
      #DEBUG
      - service: notify.telegram_groupe
        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

Je te confirme que ce code fonctionne car je l’ai testé :wink:

:warning: je n’ai rien modifié à la logique, du coup, une question me vient :

  • As tu bien créé le booléen input_boolean.stop_rain_notification ?
    Car sans lui, tu ne verras que la première notification…

J’aimerai bien trouver un moyen de le faire sans le input_boolen.

1 « J'aime »

Et pourquoi ne pas utiliser les scènes ?

Une utilisation ici.
Et conditionner sur le fait de son existence ?

ah non j’avais pas fait le input boolean :frowning:
par contre j’ai un autre problème lol

image

je pense a voir trouvé j’ai changer le fuseau horaire

Tu veux dire que tu l’avais mal renseigné à l’installation ?

si je pose la question, c’est pour m’assurer que le code est bon

Car c’est la fonction as_timestamp() qui renvoi l’heure locale (le fait de mettre True en paramètre)

oui j’avais laisser UTC, mais la il pleut plus chez moi c’est chiant alors plus de notification lol

Remonte plus haut dans le fil pour déboguer, @oncleben31 à mit comment il faisait (et c’est ce qu’il faut faire :wink:)

c’est bon ça marche :slight_smile:
image

par contre c’est possible de rajouter si c’est une pluie faible ou autre pour avoir un peux plus de détails?

Je t’invite à lire la documentation pour essayer et nous faire un retour :+1:

1 « J'aime »

Hello. Je re ouvre le fil car je cherche un blueprint (si pluie dans dans l’heure ou 30 mn) avec évidemment l’api Meteo france, pour y associer une scene ?!

des pistes ?

Bonjour à tous , merci @oncleben31 cela fonctionne parfaitement :slight_smile:

bonjour , ce script fonctionne t’il toujours car je le copie colle dans mon éditeur Yaml et que je change avec mes entités. j 'ai une erreur .

Message malformed: expected dictionary

ca vous dit quelquechose ? :slight_smile:
merci à tous

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 »