Blockly Beispiel – Erinnerung Mülleimer-Leerung

In diesem Artikel zeige ich Dir, wie ich mir eine Erinnerung für bevorstehende Mülleimer-Leerungen erstellt habe.

Im folgenden Artikel werden wir gemeinsam ein Blockly-Script erstellen, welches überprüft, ob am nächsten Tag eine Mülleimer-Leerung bevorsteht. Wie Du die einzelnen Leerungstermine in ioBroker bekommst, habe ich Dir bereits in diesem Artikel gezeigt:

Für den Versand der Benachrichtigung verwende ich den Telegram-Adapter. Du kannst hier natürlich auch eine E-Mail versenden oder die Benachrichtigung per Pushover durchführen.

Bevor wir mit dem Script beginnen, schauen wir uns zunächst die Objekte des Adapters TrashSchedule an. Im Ordner next finden wir die Leerungs-Informationen der nächsten Leerung. In den Datenpunkten Daysleft stehen die Tage bis zur nächsten Leerung. Im Datenpunkt Typestext finden wir die Bezeichnung der nächsten Leerung.

Für die Erstellung des Scripts wechseln wir nun in den Bereich Skripte.

Im nächsten Schritt klicken wir auf die Plus-Schaltfläche um ein neues Script zu erstellen. Als Typ wählen wir hier Blockly.

Für das neue Blockly Script müssen wir im nächsten Schritt einen Namen vergeben. Ich habe hier als Name Telegram_TrashNextDay gewählt.

Jetzt können wir mit der Erstellung des Scripts beginnen. Der Startpunkt unseres Scripts ist ein Trigger auf einen Zeitplan. Wir wollen jeden Abend um 19:00 Uhr prüfen, ob für den nächsten Tag eine Leerung ansteht. Als Trigger wählen wir hier den Zeitplan (schedule).

Wir ziehen den Trigger nun auf unser Script und klicken auf die CRON-Definition. Mit der CRON-Definition können wir den genauen Zeitpunkt der Auslösung definieren.

In der Konfiguration des Zeitplans habe ich zunächst Wizard aktiviert. Nun können wir sehr komfortabel den Zeitplan anhand der Zeit sowie dies Zeitraums definieren. Als Uhrzeit habe ich hier 19:00 Uhr gewählt. Der Zeitraum ist täglich an jedem Tag.

Nach dem wir den Zeitplan und somit den Auslöse-Zeitpunkt des Triggers gewählt haben, habe ich im nächsten Schritt ein Falls-Block eingefügt, mit dem ich über eine Wert-Ermittlung den Datenpunkt daysLeft auf 1 Abfrage. Mit dieser Abfrage prüfen wir, ob für den nächsten Tag eine Leerung eingetragen ist. Falls die Bedingung des Falls-Block zutrifft, der Datenpunkt also auf 1 steht, lesen wir im nächsten Schritt noch den Datenpunkt typestext aus und speichern die Zeichenfolge in der Variable TrashName. Abschließend versenden wir die Variable per Telegram.

Alternativ kannst du das komplette Script auch hier herunterladen:

Blockly - Benachrichtigung Mülleimer-Leerung (145 Downloads)

Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

3 Gedanken zu „Blockly Beispiel – Erinnerung Mülleimer-Leerung

  • 28. Dezember 2019 um 17:21
    Permalink

    Hallo, bei mir funktioniert es so nicht. In dem abgefragten Datenpunkt steht ja auch nicht „1“ sondern „1 days“. Ich muss mir den Datenpunkt zuerst als String in eine Variable schreiben und auf den ersten Buchstaben kürzen, bevor ich es so wie oben beschrieben abfragen kann. Bei dir funktioniert es genau wie beschrieben? Finde ich komisch…

    Antwort
    • 28. Dezember 2019 um 18:57
      Permalink

      Hallo Steffen, im Datenpunkt stehen die Tage bis zur Leerung (Datentyp Zahl). Die Maßeinheit ist „days“ für die Anzeige. Wenn Du mal in die Objekt-Definitionen schaust, siehst Du das. Bei mir funktioniert das Script einwandfrei. Was genau funktioniert denn bei Dir nicht? Hast Du mal Ausgaben gemacht?

      Antwort
  • 31. Dezember 2019 um 10:31
    Permalink

    Hallo Matthias, wenn ich dein Script nehme und einen Debug Baustein einfüge kommt kein Eintrag. Wenn ich aber das „days“ am Ende abschneide, funktioniert es. Naja, hauptsache es funktioniert 😉 Danke trotzdem für die Idee, wäre ich selber nicht drauf gekommen.

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.