Home Assistant - Benachrichtigung wenn das Benzin günstig wird

Hey ..
hab vollgendes Problem ..

Ich möchte eine Automatiesierung mir zusammen basteln die mich benachrichtigt, wenn das Benzin in meiner umgebung günstig ist.

ich lasse es mir auch schon im Home Assistant anzeigen, das ist auch alles fein aber er wirft mir keine Benachrrichtigung raus.

Wenn ich es Manuell ausführe bekomme ich eine Benachrichtigung aufs Handy.. was mache ich falsch

Braucht die Automatiesierung einen trigger .. ??? zb. Jede Minute Jede Stunde ..??

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.

1 „Gefällt mir“

hab es mir gedacht hab es drei mal pro Tag eingerichtet sonnst ist das zu viel :wink:

Grüße und ein schönes Wochende …

1 „Gefällt mir“

Also ich hab es so gelöst:

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.