You are currently viewing Abfallkalender in OpenHAB 3 integrieren.

Abfallkalender in OpenHAB 3 integrieren.

Einführung

In diesem Beitrag zeige ich auf, wie wir einen einfachen Abfallkalender in OpenHAB 3 mittels ical Binding erstellen. Das Endergebnis wird in etwa so aussehen:

Abfallkalender End-Ergebnis
Endergebnis dieses Beitrags.

Ganz unten im Beitrag, habe ich das Video mit der Schritt für Schritt Anleitung hinterlegt.

Binding installieren

Als erstes müsst Ihr euch das icalender Binding installieren. Das ist in meinem Beitrag „Kalender mittels ical einbinden“ genau beschrieben. Um überhaupt Resultate zu erhalten müssen wir in unserem Kalender gewisse Termine erstellen, ich habe mir alle Hauskehricht, Grüngutabfuhr und Karton Termine in meinem Kalender eingetragen, da dies sowieso wiederkehrende Termine sind, war dies schnell erledigt. Ich verwende den Google Kalender aber es funktioniert mit jedem andrem Kalender, der ical unterstützt, auf die gleiche Art.

Things erstellen

Wir beginnen in dem wir ein „Thing“ für die Abfragen erstellen. Ich erstelle nun für jedes Topic das ich Abfragen will ein eigenes Thing, jeweils für Hauskehricht, Grüngutabfuhr und Karton. Dazu navigieren wir auf Thing -> dann auf das Plus Symbol unten Rechts -> danach auf icalendar -> Eintragsfilter.

Eintragsfilter auswählen.
Wir gehen auf Eintragsfilter.

Als Bridge wählen wir natürlich unser icalender Binding und bei den Einstellungen weiter unten geben wir folgende Werte an:

Ergebnis-Maximum:1
Aktualisierungsintervall:15
ZeiteinheitTag
Start0
Ende14
AbrundungTRUE
Text based Filter:Betreff / Titel
Suchausdruck:Hauskehricht/Grüngutabfuhr/Karton
Beim Suchausdruck nur ein Begriff auswählen.

Beim Suchausdruck geben wir den gewünschten Suchausdruck des Termines an. Das heisst, wenn wir die Hauskehrichtstermine in diesem Thing auslesen möchten, muss als Suchbegriff Hauskehricht genommen werden. Diesen Vorgang wiederholen wir für jeden Begriff den wir suchen möchten. Im Ergebnis-Maximum geben wir die Anzahl Resultate an. Mir persönlich reicht das nächste respektive aktuelle Ergebnis vollkommen aus, möchtet Ihr mehr Resultate, dann könnt Ihr diesen Wert hochschrauben. Bei mehr Resultaten hättet Ihr die Möglichkeit z.B. alle Termine des Monats auszulesen und in einem Kalender darzustellen, nur mal so als Beispiel.

Mein Model Übersicht.

Nun wechseln wir in den Reiter „Model“. Ich habe bei mir unter meinem Oberbegriff Zuhause eine Location Namens „Organisatorisches“ erstellt. Das hat Ästhetische Gründe, da ich es gerne aufgeräumt habe. Das selbe habe ich auch mit „Technik“ getan, dass sind für mich solche Oberbegriffe die man gut gebrauchen kann um diese Allgemeinen Komponenten die nicht einem Raum zugeordnet werden können, doch irgendwie sinnvoll zuzuweisen. In diesem erstelle ich mir nun meine Events mittels „Add Equipment from Thing“ und füge alle drei hinzu.

Ich gehe bei jedem Thing in das Datum Item Ergebnisstart und klicke auf „Add Metadata“ und wähle „stateDescription“, unter Pattern füge ich folgenden Code hinzu:

%1$td.%1$tm.%1$tY

Nun erscheint das Datum so wie wir es haben möchten um weiter zu arbeiten.

NTP Binding hinzufügen

In diesem Abschnitt fügen wir das NTP Binding hinzu. Wir wechseln also zu den Einstellungen und unter Bindungs fügen wir mit dem Plus Symbol unten rechts, ein neues hinzu. Wir suchen nach ntp und installieren dieses.

Nun erstellen wir uns unter Things ein NTP Thing, die Werte lasse ich einfach Standard, Ihr könnt natürlich einen beliebigen NTP Server angeben. Nun unter Model Organisatorisches erstellen wir nun die Items. Wir kreieren wieder mittels „Create Equipment from Thing“ die NTP Items. Dies zeigt uns das aktuelle Datum und Zeit an, welches wir dann zum Vergleichen im Widget benutzen können.

Abfallkalender Widget erstellen

Ich habe folgendes Widget bei mir erstellt:

uid: entsorgung
tags: []
props:
  parameterGroups: []
timestamp: Mar 18, 2021, 12:12:24 PM
component: f7-card
config:
  title: ="Abfuhrtermine:"
slots:
  default:
    - component: f7-card-content
      slots:
        default:
          - component: f7-list
            config:
              mediaList: true
            slots:
              default:
                - component: oh-list-item
                  config:
                    title: Hauskehricht
                    icon: f7:trash
                    iconColor: brown
                    badge: '=((items.KalenderHauskehricht_Ergebnisstart.displayState == items.ZeitAktuell_DateTime.displayState) ? "Heute Hauskehricht raus bringen" : false)'
                    badgeColor: ="red"
                    footer: =items.KalenderHauskehricht_Ergebnisstart.displayState
                - component: oh-list-item
                  config:
                    title: Grüngutabfuhr
                    icon: f7:trash
                    iconColor: green
                    badge: '=((items.KalenderGrungutabfuhr_Ergebnisstart.displayState == items.ZeitAktuell_DateTime.displayState) ? "Heute Grüngutabfuhr" : false)'
                    badgeColor: ="red"
                    footer: =items.KalenderGrungutabfuhr_Ergebnisstart.displayState

items.KalenderHauskehricht_Ergebnisstart.displayState und
items.ZeitAktuell_DateTime.displayState mit euren eigenen Werten aktualisieren und abspeichern. Danach könnt Ihr das Widget wie gewohnt auf euren Layout Seiten einbinden.

Video

Fragen könnt Ihr gerne in der Kommentarspalte hinterlassen.

Schreiben Sie einen Kommentar