Files
fresh-home/components/packages/imap.yaml
T

60 lines
2.5 KiB
YAML

# sensor:
# - platform: imap
# name: 'Chickadee: All'
# server: !secret imap_server
# port: 993
# username: !secret imap_username
# password: !secret imap_password
# search: !secret imap_search_1
# charset: US-ASCII
# - platform: imap
# name: 'Chickadee: Unread'
# server: !secret imap_server
# port: 993
# username: !secret imap_username
# password: !secret imap_password
# search: !secret imap_search_2
# charset: US-ASCII
template:
- trigger:
- trigger: event
event_type: "imap_content"
id: "custom_event"
sensor:
- name: imap_content
state: "{{ trigger.event.data['subject'] }}"
attributes:
Entry: "{{ trigger.event.data['entry_id'] }}"
UID: "{{ trigger.event.data['uid'] }}"
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'] }}"
Initial: "{{ trigger.event.data['initial'] }}"
To: "{{ trigger.event.data['headers'].get('Delivered-To', ['n/a'])[0] }}"
Return-Path: "{{ trigger.event.data['headers'].get('Return-Path',['n/a'])[0] }}"
Received-first: "{{ trigger.event.data['headers'].get('Received',['n/a'])[0] }}"
Received-last: "{{ trigger.event.data['headers'].get('Received',['n/a'])[-1] }}"
- name: PNC Balance
default_entity_id: sensor.pnc_balance
unique_id: 741fc355-76da-4a14-8c31-8d9b94bd4376
availability: "{{ states('sensor.imap_content') not in ['unknown', 'unavailable'] }}"
state: >
{{ trigger.event.data["text"] | regex_findall_index("\ x7491:\* \$([0-9.]+)") }}
binary_sensor:
- name: Low Balance
device_class: problem
default_entity_id: binary_sensor.low_balance
unique_id: ae9d430f-53a5-4fcb-af51-d645592617e6
availability: "{{ states('sensor.balance_alert_messages') not in ['unknown', 'unavailable'] }}"
state: >-
{{ 'Your available balance is less than your threshold amount.' in trigger.event.data["subject"]}}
attributes:
balance: >
{{ trigger.event.data["text"] | regex_findall_index("\ x7491:\* \$([0-9.]+)") }}