AT: Müllabfuhr GVU Gemeinden in Niederösterreich (fast alle)

Der zugehörige Support Thread im loxforum

https://www.loxforum.com/forum/faqs-tutorials-howto-s/259360-müllkalender-für-alle-gemeinden-in-niederösterreich

Disclaimer

  • das ganze funktioniert nur solange die Webseite vom GVU nicht angepasst wird

  • da der GVU jetzt sehr stark die Skarabäus App promotet, kann diese Lösung durchaus ein Ablaufdatum haben

  • ich habe noch keine Ahnung was mit Jahreswechsel passiert - doch die habe ich nun  die Daten für das neue Jahr wurden erst mit dem 2. Jänner zur Verfügung gestellt. Bis dahin keine Daten im Kalender.

  • geht leider nicht für alle Gemeinden in Niederösterreich

Basics

Ich habe mal beim GVU St. Pölten angefragt, ob es eine API gibt, bei der man Müllabfurtermine abfragen kann.

Leider habe ich nie eine sinnvolle Antwort bekommen, aber ich habe das hier gefunden

https://www.umweltverbaende.at/?portal=abfallverband&vb=&kat=12

Diesen letzten Link brauchen wir, da bekommen wir die Abholtermine her.

Wichtig: aus dem Link den Jahr Parmeter entfernen also aus

  • https://stpoeltenland.umweltverbaende.at/?gem_nr=31921&jahr=2020&portal=verband&vb=pl&kat=32

wird dann

Diesen letzten Link - ohne Jahr - den verwenden wir nun.
Natürlich unseren eigenen, nicht den vom Beispiel



Einschränkung - nicht alle Gemeinden verwenden den Standard Kalender! Dann geht es ev. nicht!

So sieht das Resultat aus



Und so sieht der Flow aus

Weiter geht es mit Beschreibung und Details um das auch selber umzusetzen.

Selektion der Elemente

Mit dem Selektor div class="tunterlegt" kann man gut auf die Termine zugreifen, liefert immer mehrere zukünftige Termine und zwar direkt die interessanten Werte.



<div class="tunterlegt"> MO   20.07.2020   Mehrpersonenhaushalt: Restmüll </div> <div class="tunterlegt"> MI   29.07.2020   Biotonne </div> <div class="tunterlegt"> DI   04.08.2020   Altpapier </div> <div class="tunterlegt"> MI   05.08.2020   Biotonne </div> <div class="tunterlegt"> MO   10.08.2020   Gelber Sack </div> <div class="tunterlegt"> MI   12.08.2020   Biotonne </div> <div class="tunterlegt"> MO   17.08.2020   Mehrpersonenhaushalt: Restmüll </div> <div class="tunterlegt"> MO   17.08.2020   Einpersonenhaushalt: Restmüll </div> <div class="tunterlegt"> MI   26.08.2020   Biotonne </div> <div class="tunterlegt"> MI   09.09.2020   Biotonne </div> <div class="tunterlegt"> MO   14.09.2020   Mehrpersonenhaushalt: Restmüll </div> <div class="tunterlegt"> MI   16.09.2020   Altpapier </div> <div class="tunterlegt"> MO   21.09.2020   Gelber Sack </div> <div class="tunterlegt"> MI   23.09.2020   Biotonne </div> <div class="tunterlegt"> MI   07.10.2020   Biotonne </div> <div class="tunterlegt"> MO   12.10.2020   Mehrpersonenhaushalt: Restmüll </div> <div class="tunterlegt"> MO   12.10.2020   Einpersonenhaushalt: Restmüll </div> <div class="tunterlegt"> MI   21.10.2020   Biotonne </div> <div class="tunterlegt"> MI   28.10.2020   Altpapier </div> <div class="tunterlegt"> MO   02.11.2020   Gelber Sack </div> <div class="tunterlegt"> MI   04.11.2020   Biotonne </div> <div class="tunterlegt"> MO   09.11.2020   Mehrpersonenhaushalt: Restmüll </div> <div class="tunterlegt"> MI   18.11.2020   Biotonne </div>





Werte in Node Red selektieren

Nun wollen wir uns mal die class="tunterlegt" Werte in Node Red holen um sie weiter zu nutzen.

Die Details dazu einfach in den entsprechenden Nodes nachsehen, die Node Namen sagen schon worum es geht.

Der Flow

Der Flow verwendet folgende Contribs, die sollte man zuerst installieren

  • node-red-contrib-loxone - das war ja klar 

  • node-red-dashboard - für das GUI

  • node-red-node-ui-table - für die Tabellenansicht

  • node-red-contrib-iconv - für die ISO nach UTF Konvertierung

Das ist der Node Red Flow, den muss man in Node Red Importieren → flows.json

Folgendes ist an die eigenen Bedürfnisse anzupassen

  • die Gemeindenummer gem_nr in der GVU Abfrage

  • In der Funktion Table Data werden die benötigten Daten extrahiert und aufbereitet für die Tabellendarstellung
    Hier muss man ev. anpassen, z.B. habe ich keine Biotonne und keinen Einpersonenhaushalt, deshalb werden diese Daten nicht verwendet (geskippt)

  • In der Funktion Data for Loxone werden die Daten für Loxone aufbereitet, auch hier muss man ev. anpassen.

  • Und beim Node Miniserver muss man natürlich die eigen IP und den eigenen Port für den Virtuellen UDP Eingang eingeben.

Die Daten an den MS - Aufbau

Die Daten werden wie folgt gesendet 

  • RM:2 AP:12 GS:16

Also immer ein 2-Zeichen Kürzel mit Doppelpunkt für den Müllkontainer und dann eine Zahl für die Tage wie lange es noch dauert

Eine Negative Zahl bedeutet einen Fehler, es sind keine Daten vorhanden.

Die Abfrage im UDP Eingang ist dann z.B. für das Altpapier: \iAP:\i\v

Virtueller UDP Eingang in Loxone

Das sieht bei mir so aus



Und hier die Befehlserkennung für das Altpapier

Darstellung über Status Baustein

Und so ist der Statusbaustein konfiguriert

Die Müllcontainer Icons sind von hier: Symbole und Icons - klein - danke an @Mil@n dafür.