Benachrichtigung bei Kalendereintrag

Hi!

Ich bekomms einfach nicht hin…
Ich habe Trash card installiert und die Müllabfuhrtermine aus dem Kalender integriert. Das funktioniert schon mal.
Die Termine im Kalender sind importiert und zwar aus der Integration “waste collection schedule”.
Nun wollte ich mir eine Benachrichtigung basteln, die mir einfach eine Nachricht an mein iPhone oder iPad schickt, wenn der nächste Termin ansteht.
Eine Nachricht bei einem Ereignis, zB Tür vom Auto geöffnet hab ich schon getestet, das war kein Problem.

Mit der Blaupause

Komm ich auch nicht zurecht. Ich kann da alles nach Anleitung einstellen, aber beim Ausführen geschieht gar nix.


Edith sagt:
Ich habs nun geschafft, manuell eine Benachrichtigung über automationen einzurichten. Obs dann zur richtigen Zeit passiert, kann ich noch nicht sagen :wink:
Aber vielleicht kann mir jemand helfen, wie ich den Kalendereintrag, zB “Biotonne” in die Nachricht bekomme?

Edith2:
Mit den Anleitungen aus dem Netz hat das überhaupt nicht geklappt. zB

{{ trigger.calendar_event.summary }} 

Da aber für den Müllkalender ein Sensor angelegt ist, habe ich diesen nun angesprochen:

service: notify.mobile_app_iphone15_user
metadata: {}
data:
  title: Müllabfuhr
  message: "{{ states('sensor.muellabfuhr') }}"

Hmmmm, so ganz funktioniert das noch nicht nach meinem Geschmack.

Ich bekomme jetzt bei jedem Eintrag eine Benachrichtigung, also wenn in “Zustand” ein Wert eingetragen ist. Das kann aber auch sein “Biotonne in 8 days”.

Ich möchte aber eine Benachrichtigung nur eine bestimmte Zeit vor dem Ereignis. Also müsste ich ja die Attribute auslesen, bzw. das erste/nächste Attribut. Von diesem string dann das Datum auslesen und mit dem heutigen vergleichen.
Erst, wenn offset -6 (also immer um 18 Uhr, weil ganztägiges Ereignis) eintritt, soll eine Benachrichtigung versendet werden.

Wie stell ich das nun an?

Bringt dir denn die Integration keine Sensoren? Die würde ich dann als trigger verwenden.

platform: state
entity_id:
  - sensor.abfallsperrmuell
to: Morgen
1 „Gefällt mir“

Nö, die Sensoren muss ich selbst anlegen.

Das hab ich auch grade versucht, mal sehn, ob es dann auch zum richtigen Zeitpunkt klappt.

Ich habe in der configuration.yaml einen Sensor angelegt:

  - platform: waste_collection_schedule
    name: abfallnotify
    details_format: 'upcoming'
    value_template: '{{value.daysTo}}'
    types:
      - "Biotonne"
      - "Haushalte 1: Gelber Sack"
      - "Haushalte 1: Restmüll"
      - "Haushalte 1: Altpapier"

und dann eine Benachrichtigung erstellt:

alias: Abfall Benachrichtigung
description: ""
trigger:
  - platform: time
    at: "18:00:00"
condition:
  - condition: state
    entity_id: sensor.abfallnotify
    state: "1"
action:
  - service: notify.mobile_app_iphone15_user
    data:
      title: Müllabfuhr
      message: "{{ states('sensor.muellabfuhr') }}"
mode: single

Die Idee kommt von hier:

Könnte klappen, oder?

Mal ein Bsp. für die Müll-Erinnerung am Vortag um 18 Uhr und wenn ich zu Hause zwischen 16 und 23:30 ankomme.

alias: Erinnerung Müllabfuhr
description: ""
trigger:
  - platform: time
    at: "18:00:00"
  - platform: state
    entity_id: device_tracker.xyz
    attribute: place
    to: Zuhause
condition:
  - condition: time
    after: "16:00"
    before: "23:30"
  - condition: template
    value_template: |-
      {% set morgen = (now() + timedelta(days = 1 )).strftime("%d.%m.%y")%}
      {{ states('sensor.next_waste_collection_date') == morgen}}
action:
  - service: notify.xyz
    data:
      title: Müll Erinnerung
      message: >-
        {{states('sensor.next_waste_collection_type')}} schon rausgestellt?
        Morgen ist es soweit.
mode: single

Der zugehörige Sensoren sehen so aus.

#sensor.yaml
- platform: waste_collection_schedule
  name: next_waste_collection_date
  details_format: upcoming
  value_template: '{{value.date.strftime("%d.%m.%Y")}}'
#sensor.yaml
- platform: waste_collection_schedule
  name: next_waste_collection_type
  details_format: upcoming
  value_template: '{{value.types|join(", ")}}'

Gruß
Osorkon

1 „Gefällt mir“

Muss den alten Thread nochmal hervorkramen. Läuft noch nicht so, wie ich mir das vorstelle.
Mit meiner Lösung

message: "{{ states('sensor.muellabfuhr') }}"

erhalte ich den string “Biotonne in 1 days” oder auch “Haushalte 1: Restmüll in 1 days”. Eben das, was unter Zustand eingetragen ist:

Verwende ich das Beispiel von Osorkon:

message: >-
        {{states('sensor.next_waste_collection_type')}} schon rausgestellt?

Dann erhalte ich alle Einträge von diesem Tag ungefiltert:
2

Ich hätte nun gerne nur die Nachricht “Biotonne” oder “Restmüll” usw. ohne “Haushalte 1:”.
Ich müsste also die Ausgabe so beschneiden, dass “Haushalte 1:” weggelassen wird. Das passiert aber nur beim Restmüll, Gelber Sack und Altpapier. Nicht bei Biotonne. Und es können auch zwei Termine anfallen, die dann durch ein Komma getrennt sind.
Ziemlich kompliziert für mich :see_no_evil:

Wenn nur die Biotonne alleine dar steht, kannst Du einfach nur den Text nach : ausgeben.
Und wenn der Typ Biotonne ist, dann den vollständigen Text.

{% set tonne = states('sensor.next_waste_collection_type') %}
{{ iif(tonne == 'Biotonne', tonne, tonne.split(':')[1]) }} schon rausgestellt?

Das geht aber nicht gut, wenn 2 Müllarten an einem Tag anstehen.

Da würde es sich empfehlen, die Kalendereinträge zu bereinigen.
Oder Du kannst glaube ich bei Waste Collection den Abfallltyp auch customizen.

Gruß
Osorkon

1 „Gefällt mir“

Danke!
Ja, manchmal stehen zwei verschiedene Mülltonnen zur Abholung bereit.
In der Waste collection sind die einzelnen Typen eh schon angepasst, aber
die kann ich von dort nicht auslesen.
Kalendereinträge sind auch gefiltert, wie man in der Spalte “Attribute” sehen kann.
Also muss ich nur ein paar Zeichen entfernen.

Meine Idee wäre:

{{states('sensor.muellabfuhr') | replace ("Haushalte 1:", "", 1) | replace ("in 1 days", "", 1) }}

Ergibt zB “Restmüll”

Edit:
Ich glaub, ich habs:

alias: Müllabfuhr Benachrichtigung
description: ""
trigger:
  - platform: time
    at: "17:00:00"
condition:
  - condition: state
    entity_id: sensor.abfallnotify
    state: "1"
action:
  - service: notify.mobile_app_iphone15
    data_template:
      title: Müllabfuhr
      message: >
        {{states('sensor.muellabfuhr') | replace ("Haushalte 1:", "", 1) | replace ("in 1 days", "", 1) | replace (", ", " und ", 1) }} schon rausgestellt?
      data:
        push:
          sound: US-EN-Alexa-Good-Morning.wav
mode: single

Ergibt “Restmüll schon rausgestellt?”
und durch das Ersetzen des Kommas vermutlich dann auch “Restmüll und Altpapier schon rausgestellt?”

Wenn jemand eine elegantere/bessere Lösung hat, gerne!