Seite 1 von 1

iCal Kalendereintrag als Sensor ?

Verfasst: Fr 7. Apr 2023, 08:52
von Undertaker

Moin Jungs und frohe Ostern.
Ich habe ein kleines Problem, dass ich mit meinem HA Wissen nicht lösen kann.
Ich habe die Abholdaten meines Entsorgers als iCal in den HA Kalender importiert. Die Daten werden auch brav angezeigt.

Screenshot_20230407-084250_Chrome.jpg
Screenshot_20230407-084250_Chrome.jpg (93.09 KiB) 1627 mal betrachtet
Screenshot_20230407-084156_Chrome.jpg
Screenshot_20230407-084156_Chrome.jpg (223.39 KiB) 1627 mal betrachtet

Für meine anderen Projekte wäre es sehr hilfreich, diese Kalendereinträge als Sensor in HA zu definieren, um sie zu exportieren. Hat jemand von euch eine Idee, wie ich einen Sensor oder etwas ähnliches erstellen kann, der mir jeweils den nächsten Abholtermin für grün, grau und die Schadstoffsammlung anzeigt ?


Re: iCal Kalendereintrag als Sensor ?

Verfasst: Fr 7. Apr 2023, 16:13
von Osorkon

Was genau schwärmt Dir vor?

Hier mal ein Binary Sensor z.B. für die Biotonne.
Ausgehend davon es handelt sich um ein Ganztag Ereignis und der Termin lautet "Bioabfall"
Wäre ein passender Sensor mit dem Status on, wenn heute Bioabfall im Kalender steht, oder off, wenn nicht.

Auszug aus der template.yaml

Code: Alles auswählen

- binary_sensor:
  - name: Bioabfall
    unique_id: 45b41020-d54d-11ed-b5cd-a302878cb37d
    state: |
      {% set ab = state_attr('calendar.abfuhrkalender','message') %}
      {% if ab == "Bioabfall" %}
        on
      {% else %}
        off
      {% endif %}

Ansonsten schaue Dir mal die den Waste Collection Schedule aus dem HACS

Gruß
Osorkon


Re: iCal Kalendereintrag als Sensor ?

Verfasst: Fr 7. Apr 2023, 17:58
von Osorkon

Das ganze als Template mit Ausgabe was in wievielten Tagen Abgeholt wird würde dann so aussehen.
Voraussetzung der nächste anstehende Termin wird als Attribute angezeigt.

Code: Alles auswählen

{% set midnight = today_at() %}
{% set event = state_attr('calendar.abfuhrkalender', 'start_time') | as_datetime | as_local %}
{% set message = state_attr('calendar.abfuhrkalender', 'message') %}
{% set delta = event - midnight %}
{% if delta.days == 0 %}
  {{message}} Heute
{% elif delta.days == 1 %}
  {{message}} Morgen
{% elif delta.days == 2 %}
  {{message}} Übermorgen 
{% else %}
 {{message}} In {{ delta.days }} Tagen
{% endif %}

Gruß
Osorkon


Re: iCal Kalendereintrag als Sensor ?

Verfasst: Sa 8. Apr 2023, 13:44
von Undertaker

Funktioniert, vielen Dank.


Re: iCal Kalendereintrag als Sensor ?

Verfasst: Di 11. Apr 2023, 11:37
von pschyrembel258

@Osorkon kannst Du noch ein Beispiel einstellen, wo ich für den jeweiligen Abfall die Tage bis zur nächsten Abholung angezeigt bekomme? Ich habe derzeit einen Sensor, der mir den nächsten Müll anzeigt, allerdings werden bei uns Biomüll und entweder Papier oder Restmüll am gleichen Tag abgeholt. Dann wird nur der erste Eintrag im Kalender angezeigt. Ich bräuchte also 4 Sensoren für den jeweiligen Müll.

Vielen Dank


Re: iCal Kalendereintrag als Sensor ?

Verfasst: Di 11. Apr 2023, 19:56
von Osorkon

@pschyrembel258 wie hast Du den Abfuhrkalendar in Home Assistant integriert?
Über die CALDAV Integration?

In dem Fall kannst Du für jede Müllart einen eigenen Kalender erstellen.

Hier mal ein Bsp. aus der calendar.yaml

Code: Alles auswählen

- platform: caldav
  username: !secret calendar_user
  password: !secret calendar_pass
  url: !secret calendar_url
  days: 14
  custom_calendars:
    - name: "Restmüll"
      calendar: "Abfuhrkalender"
      search: "Restmüll"
    - name: "Bioabfall"
      calendar: "Abfuhrkalender"
      search: "Bioabfall"
    - name: "Gelber Sack"
      calendar: "Abfuhrkalender"
      search: "Gelber Sack"

Gruß
Osorkon