Hi, ja genau du hast es schon richtig erfasst, als Trigger z.B. jede Stunde prüfen lassen und unter Bedingungen dann den jetzigen Trigger einfügen (also wenn Preis unter 1,71€ liegt).
Auf die Weise wird dann jede Stunde geprüft ob der Preis unter 1,71€ liegt und bekommst im Anschluss deine Benachrichtigung.
alias: "Sprit-Alarm: Günstiger Kraftstoff"
triggers:
- trigger: template
value_template: |
{% set threshold = 1.65 %}
{% set cheapest = states.sensor
| selectattr('entity_id', 'search', '_e10')
| rejectattr('state', 'in', ['unavailable', 'unknown', 'none'])
| map(attribute='state') | map('float') | list | min %}
{{ cheapest < threshold if cheapest is defined else false }}
conditions:
- condition: time
after: "07:00:00"
before: "21:00:00"
- condition: template
value_template: >
{# Verhindert mehrfaches Auslösen innerhalb einer Stunde #}
{{ (as_timestamp(now()) -
as_timestamp(state_attr('automation.sprit_alarm_gunstiger_kraftstoff', 'last_triggered') | default(0))) > 3600 }}
actions:
- variables:
# Findet die Entität mit dem niedrigsten Preis
cheapest_entity: |
{{ (states.sensor
| selectattr('entity_id', 'search', '_e10')
| rejectattr('state', 'in', ['unavailable', 'unknown', 'none'])
| sort(attribute='state') | first).entity_id }}
brand_name: "{{ state_attr(cheapest_entity, 'brand') | lower | replace(' ', '') }}"
street: "{{ state_attr(cheapest_entity, 'street') }}"
city: "{{ state_attr(cheapest_entity, 'city') }}"
price: "{{ states(cheapest_entity) }}"
- repeat:
for_each:
- notify.mobile_app_DEVICE_1 # Hier dein erstes Gerät eintragen
- notify.mobile_app_DEVICE_2 # Hier dein zweites Gerät eintragen
sequence:
- action: "{{ repeat.item }}"
data:
title: "⛽ {{ price }}€ | {{ state_attr(cheapest_entity, 'brand') }}"
message: "Günstig tanken in {{ city }}! {{ street }} {{ state_attr(cheapest_entity, 'house_number') }}"
data:
clickAction: /lovelace/sprit-dashboard
tag: sprit-notification
image: /local/tankstellen/{{ brand_name }}.png
actions:
- action: URI
title: Google Maps
uri: "https://www.google.com/maps/search/?api=1&query={{ street | urlencode }}+{{ city | urlencode }}"
- action: URI
title: Apple Maps
uri: "http://maps.apple.com/?daddr={{ street | urlencode }}+{{ city | urlencode }}"
mode: restart
Hat mich bissel Überlegung mit dem template gekostet das wenn ich in Tankerkönig was ändere nicht die Entitäten der Tankstellen neu eingeben muss die dazu gekommen sind.
Bei der Push-Notification wird auch das Logo mitgesendet (muss man aktuell aber noch lokal ablegen; wobei ich da was am testen bin das es einfach so klappt).
Und aus der Notification kann man auch Apple oder Google Maps starten.
Habt ihr noch ne Idee für es Sinnvoll zu erweitern?
Ich habe das so gelöst das ich anhand der beobachteten Preise eine Preisvorstellung gesetzt habe die mit meinen Tankstellen die ich auserwählt habe verglichen wird und sobald ein Preis übereinstimmt bekomme ich eine Sprach-Ansage zuhause und auf dem Handy mit dem Preis und der Tankstelle die diesen hat.