Besoin d'aide pour déclencheur mail IMAP

Bonjour,

Je me suis rendu compte apres une mise a jour qu’une fonction que j’utilisais ne marche plus :
Je n’arrive plus a envoyer un mail et de déclencher une action avec un mot clé contenu dans ce mail.

Voici mon fichier configuration.yalm

#action reception mail
  - platform: imap_email_content
    server: imap.orange.fr
    port: 993
    name: actionmail
    username: xxx
    password: xxx
    scan_interval: 60
    senders:
      - xxx@xx.xx

Et voici mon automatisation qui fonctionnait jusqu’a présent :

alias: MAIL Températures
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.imap
condition:
  - condition: template
    value_template: >-
      {{ "#0 temperatures" in
      states.sensor.imap.attributes.body }}
action:
  - service: notify.NOTIFIER_MAIL
    data:
      message: >
        Température salon : {{ states.sensor.ble_temperature_salon.state }}

        Température chambres : {{ states.sensor.ble_temperature_bureau.state }}

        Température exterieure : {{
        states.sensor.ble_temperature_exterieur.state }}

        Température CPU : {{ states.sensor.cpu_temp.state }}
      title: Notification Home Assistant
mode: single

Pouvez vous m’aider a comprendre ce qu’il se passe?
L’automatisation ne se déclenche pas

Merci


Home Assistant 2023.4.6 Supervisor 2023.04.1 Operating System 10.1 Interface utilisateur : 20230411.1 - latest

Hello, le message stipule de 1) supprimer le code dans le configuration.yaml 2) lancer l’intégration imap 3) modifier le code template tel que stipulé dans la mise à jour du lien

Merci , j’ai supprimé les ligne dans config yaml
et desinstallé puis reinstallé l’intégration IMAP.
Mais je n’ai pas de lien…

Le voici IMAP - Home Assistant
Je pense que la rubrique qui t’intéresse est intitulé " Example - extracting formatted text from an email using template sensors"

Alors j’ai collé ça dans config.yalm

template:
  - trigger:
      - platform: event
        event_type: "imap_content"
        id: "custom_event"
    sensor:
      - name: imap_content
        state: "{{ trigger.event.data['subject'] }}"
        attributes:
          Message: "{{ trigger.event.data['text'] }}"
          Server: "{{ trigger.event.data['server'] }}"
          Username: "{{ trigger.event.data['username'] }}"
          Search: "{{ trigger.event.data['search'] }}"
          Folder: "{{ trigger.event.data['folder'] }}"
          Sender: "{{ trigger.event.data['sender'] }}"
          Date: "{{ trigger.event.data['date'] }}"
          Subject: "{{ trigger.event.data['subject'] }}"
          To: "{{ trigger.event.data['headers']['Delivered-To'][0] }}"
          Return_Path: "{{ trigger.event.data['headers']['Return-Path'][0] }}"
          Received-first: "{{ trigger.event.data['headers']['Received'][0] }}"
          Received-last: "{{ trigger.event.data['headers']['Received'][-1] }}"

Puis j’ai fait une automation


alias: Nouvelle automatisation
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.imap_xxxx_orange_fr
condition:
  - condition: state
    entity_id: sensor.imapstatuts
    state: "#00# temperatures"
  - condition: state
    entity_id: sensor.imap_content
    attribute: subject
    state: "#00# temperatures"
action:
  - service: notify.NOTIFIER_MAIL
    data:
      message: >
        Température salon : {{ states.sensor.ble_temperature_salon.state }}

        Température chambres : {{ states.sensor.ble_temperature_bureau.state }}

        Température exterieure : {{
        states.sensor.ble_temperature_exterieur.state }}

        Température CPU : {{ states.sensor.cpu_temp.state }}
      title: Notification Home Assistant
mode: single

Mais rien ne se passe
Dans outil de developpement, lorsque je cherche imap_content
j’ai état : unknown

Avant j’avais juste ceci dans le config.yalm est ça marchait très bien je comprend pas pourquoi il faut modifier des choses lorsqu’il y a des MAJ

#action reception mail
  - platform: imap_email_content
    server: imap.orange.fr
    port: 993
    name: actionmail
    username: xxx
    password: xxx
    scan_interval: 60
    senders:
      - xxx@xx.xx

Je ne connais pas les raisons du changement (peut-être le souhait de migrer progressivement le code en GUI) .
Je suis en vacances 1 semaine = il m’est difficile de t’aider sur un smartphone, mais je pense que ton code n’est pas bon :
Je testerais ce code

  - trigger:
      - platform: event
        event_type: "imap_content"
        id: "custom_event"
        event_data:
          sender: "no-reply@smartconnect.apc.com"
    sensor:
      - name: house_electricity
        state: >-
          {% if 'UPS On Battery' in trigger.event.data["subject"] %}
            power_out
          {% elif 'Power Restored' in trigger.event.data["subject"] %}
            power_on
          {% endif %} 

En remplaçant no-reply@smartconnect.apc.com par l’email de l’envoyeur
En remplaçant UPS On Battery par ton texte… Température
En remplaçant subject Par text
En remplaçant power_out par un truc de type envoyer_email
En mettant elseif une valeur pas_d_email

Puis faire une simple automatisation sur la valeur du template = envoyer_email qui enverra les notifications souhaitées.

Désolé je ne peux faire mieux d’où je suis.

Juste, je suis surpris par ce cas d’usage. Dans quels buts/comment utilises-tu cette routine ?

C’est déjà très gentil de te pencher sur mon probleme.
Je continue mes test, cette nuit j’ai reçu une 15 aine de mail d’un coup avec un gros retard.

Le but était de donner des ordres par mail pour l’execution de certaine taches (envoi des temperatures, fermer les volets…) sans donner l’acces à l’exterieur à Home assistant

1 « J'aime »

Ce code je dois le mettre tel que dans le fichier configuration.Yalm?
Par ce que j’ai déjà un template pour autre chose et cela ressemble a ça

  - platform: template
    sensors:
      vacuum_status:
        friendly_name: Status
        entity_id:
          - vacuum.xiaomi_vacuum_cleaner
.....

Désolé je suis complétement perdu

Et j’ai aussi une notification :
The following integrations and platforms could not be set up:

Please check your config and logs.

C’est bon je pense avoir réussi, je posterai le code

1 « J'aime »

Bon je n’ai pas réussi à le faire fonctionner correctement.
Je pense que ce code ne fonctionne pas :

template:
  - trigger:
      - platform: event
        event_type: "imap_content"
        id: "custom_event"
        event_data:
          sender: "xxx@xx.fr"
    sensor:
      - name: actionmail
        state: >-
          {% if '#0# temperatures' in trigger.event.data["subject"] %}
            #0# temperatures
          {% if '#0# wakeonlan' in trigger.event.data["subject "] %}
            #0# wakeonlan

…Car j’utilise l’ancien modèle de template.
J’ai essayé de commencer a le modifier pour l’intégrer mais je sèche un peu :

  - platform: template
    sensors:
      actionmail:
        friendly_name: Action Mail
        value_template: "{% if '#0# temperatures' in trigger.event.data['subject'] %}temperatures{% else %}0{% endif %}"

Quelqu’un pourrait t’il m’aider à le convertir dans l’ancien modèle ?

Hello @Jer031

J’avais compris que le template > trigger était le nouveau modèle de template pour les sensors/triggers :thinking: (Template - Home Assistant)

Et si tu isoles le sensor, est-ce que ça marcherait ? + je ne sais pas à quoi sert #0# et si ça perturbe la détection :
dans configuration.yaml (si « temperature » se trouve dans le corps du mail = mettre 'text"; s’il se trouve dans le titre du mail laisser « subject »

template:
  sensor:
      - name: actionmail
        state: >-
          {% if 'temperatures' in trigger.event.data["text"] %}
            temperatures
          {% if 'wakeonlan' in trigger.event.data["text"] %}
            wakeonlan

et définir une automatisation qui checkerait quand l’état de actionmail est = à températures alors lancer ton notifier.

le #0# c’était un code pour éviter que ça se déclanche pour rien.

Ca n’a pas l’air de fonctionner
Dans mon fichier config.yalm j’ai ça :

sensor:
#action reception mail
  - platform: imap_email_content
    server: imap.orange.fr
    port: 993
    name: actionmail
    username: xxxx@orange.fr
    password: xxxx
    scan_interval: 60
    senders:
      - xxxx@orange.fr

Plus loin j’ai ça

  - platform: template
    sensors:
      imap_xxxxx_orange_fr:
        friendly_name: Action_Mail
        value_template: "{% if '#0# temperatures' in trigger.event.data['subject'] %}temperatures{% else %}0{% endif %}"

Dans outil de developpement j’ai ça :

Peut etre que je me suis trompé dans une ligne