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
(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