Autor Thema: AbfallentsorgungBerlin BSR, ALBA und BerlinRecycling - neue Module  (Gelesen 3355 mal)

Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Hallo Community,
ich habe mich an einem Problem versucht, welches für den Anfang klein genug erschien um die Tiefen von Fhem kennenzulernen.
Ausgangslage:
Ich nutze das Modul ABFALL, welches über einen Baikal-KalenderServer die Termine für die Müllabfuhr in Fhem integriert. Erinnern lasse ich mich dann automatisiert auf meinem favorisierten Weg sobald nächsten Tag Abfuhrtermin ist. Leider bekommt man in Berlin für die WertstoffTonne/GelbeSack nur den nächsten Abholtermin, weshalb ich den normalen Zyklus in den Kalender für ein Jahr vorgetragen habe.
Problem:
Daraus ergibt sich das Problem, dass bei eventuellen Verschiebungen mein Kalender nicht mehr stimmt und ich zu falschen Zeiten herausstelle.
Lösungsansatz:
Ein Modul, welches angelehnt an das Abfall-Modul den nächsten Termin für Wertstoff anzeigt. Auf der Webseite wird man nach einiger Zeit und genauerem hinschauen auf eine API aufmerksam. Diese funktioniert mit Straßen, Postleitzahl und Hausnummer.
Lösung:
Ich habe mein erstes Modul geschrieben und möchte diesen natürlich auch gerne frei zur Verfügung stellen. Für eventuelle Fehler stehe ich natürlich auch offen zur Seite. Bitte bedenkt aber, dass ich dieses Modul in erster Linie zum Kennenlernen implementiert habe.
Lösung2:
Ich habe derweil ein zweites Modul geschrieben. Diesmal direkt bei der BSR. Hier ist jedoch die Angabe der Hausnummer nicht notwendig, da diese durch ein Dropdown bestimmt wird um die Abfuhrstelle eventuelle einfacher anpassen zu können.
Lösung3:
Ich lege noch einen nach. Ich habe ein weiteres Modul für Berlin-Recycling geschrieben und damit nun alle meine Abfälle automatisiert im Abruf.

Über Kommentare und Anregungen würde ich mich sehr freuen - und nun viel Spaß mit diesem kleinen Modul.

Zur Funktionsweise (WerstofftonneBerlin):
define <name> wertstofftonneberlin <plz> <straße>Example: define wertstoff wertstofftonneberlin 12103 RingbahnStraße
BugFix: Modul arbeitet nach Neustart von Fhem nicht selbständig.
update: kleine Anpassungen und Optimierungen
update: Man kann das Modul jetzt manipulieren und den Key für die Adressauflösung selber bestimmen.
update: Define jetzt ohne Hausnummer -> damit können Straßennamen wie Strasse 42 gesucht werden. Dropdowns für Straßennamen und Hausnummern implementiert
update: Version 1 (Commandref überarbeitet)

Zur Funktionsweise (BSRAbfallkalenderBerlin):
define <name> bsrabfallkalender <plz> <straße>Example: define abfuhrtermine bsrabfallkalender 12103 Ringbahn Straße
update: Weihnachtsbäume implementiert
BugFix: Lesen der gesetzten Hausnummer funktioniert eventuell nicht - getKeyValue() wurde von mir falsch implementiert.
Änderung von Codierungen: viele Straßen müssen nun als str. geschriben werden. Dafür werden nun auch Straße 42 gefunden.
update: Version 1 (Commandref überarbeitet)

Abhängigkeiten (BerlinRecycling):
Das Modul hat leider eine Abhängigkeit, welche von euch manuell aufgelöst werden muss. Um die Formularfelder auf der Webseite dynamisch zu suchen nutzt das Modul den TagParser.pm. Diesen habe ich in die bestehenden perl-Bibliotheken auf einem RPi unter /usr/share/perl5/HTML/TagParser.pm durch einfaches kopieren hinzugefügt. Diese Anmerkung und die passende Quelle zum Download findet sich im Quellcode.
Zur Funktionsweise (BerlinRecycling):
define <name> berlinrecycling <login> <password>Example: define abfuhrtermine berlinrecycling nutzername P@sW0rd
BugFix: Modul arbeitet nicht selbständig - Timer wurde vergessen neu zu setzen.
BugFix: Mai wurde nicht richtig übersetzt.
update: Version 1 (Commandref überarbeitet)
BugFix: Version 2 (Header bei den Anfragen verändert)

Zur Funktionsweise (Cederbaum blaueTonne):
define <name> cederbaumExample: define blauetonne cederbaum
BugFix: Lesen der gesetzten Adresse funktioniert nicht immer - getKeyValue() wurde von mir falsch implementiert.
update: Version 1 (Commandref überarbeitet)
« Letzte Änderung: 31 Mai 2018, 00:23:03 von RomanticBoy83 »
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Antw:AbfallentsorgungBerlin BSR und ALBA - neue Module
« Antwort #1 am: 29 Dezember 2017, 22:52:59 »
Noch immer keine weiteren Nutzer in Berlin - :(
Ich habe nun zusätzlich die Abholung der Weihnachtsbäume von der BSR implementiert.

Offline Gigafix

  • Full Member
  • ***
  • Beiträge: 147
Antw:AbfallentsorgungBerlin BSR und ALBA - neue Module
« Antwort #2 am: 29 Dezember 2017, 23:18:24 »
Die beiden Module sehen ganz interessant aus, gerade bei den verschobenen Terminen an den Feiertagen.
Ich hatte seinerzeit das Problem, das die BSR den Onlinekalender für meinen Standort nicht richtig auf ihrer Website angezeigt hatte. Deshalb hatte ich Dein Modul aus dem Auge verloren...
Werde das jetzt aber mal aktiv beobachten - Danke schon mal.

Viele Grüße sendet
Gigafix
CubieTruck |2x HMLAN | HMUSB | CCU2 | MAX-Cube | nanoCUL | ZWDongle |

Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Antw:AbfallentsorgungBerlin BSR und ALBA - neue Module
« Antwort #3 am: 29 Dezember 2017, 23:25:03 »
Was bedeutet denn nicht richtig angezeigt? Bei mir gibt es nur Hausmüll und Weihnachtsbäume.
Biogut findet er auch an den Hausnummern wo eine Biotonne steht.
Wertstofftonne konnte ich an ganz anderen Adressen leider nur Sporadisch sehen. Auf der Webseite steht aber der Hinweis, dass man auch andere Hausnummern probieren soll um die Abholstelle heraus zu finden.

Offline Gigafix

  • Full Member
  • ***
  • Beiträge: 147
Antw:AbfallentsorgungBerlin BSR und ALBA - neue Module
« Antwort #4 am: 29 Dezember 2017, 23:53:48 »
Nicht richtig angezeigt bedeutete: die BSR hatte in der Übersicht für alle einen falschen Termin stehen, in meinem privaten Account war er aber richtig. Deshalb war der Support der BSR damals auch nicht einsichtig, obwohl ich es mehrfach mit Bildschirmfotos erklärt hatte. Aber egal, es lag in keinem Fall am Modul, und jetzt sehen die Termine auch wieder gut aus nachdem etwas Zeit ins Land gegangen ist.
« Letzte Änderung: 30 Dezember 2017, 06:23:30 von Gigafix »
CubieTruck |2x HMLAN | HMUSB | CCU2 | MAX-Cube | nanoCUL | ZWDongle |

Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Ich habe noch einmal einen nachzulegen - für BerlinRecycling habe ich nun die Webseite durchackert um an das Datum für die nächste Papiertonne zu kommen.

Offline rakete123

  • Jr. Member
  • **
  • Beiträge: 72
Hey, ggf passt das hier nicht ganz, aber kannst du ein Module bauen für Cederbaum?
http://www.cederbaum.de/blaue-tonne/abfuhrkalender/

Das wäre genial ;-)

Danke

mfg
Marcel
Fibaro Switches, Motion, Wallplug
FS20 S6A, TC8
Homematic Heating
Hue, Fritz DECT, Harmony

Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Weil du so nett gefragt hast und es nicht viel Aufwand ist, habe ich dir ein Modul geschrieben.
PS: Das ginge auch mit HTTPMOD und ein wenig Regex eigentlich schon.

Offline rakete123

  • Jr. Member
  • **
  • Beiträge: 72
Weil du so nett gefragt hast und es nicht viel Aufwand ist, habe ich dir ein Modul geschrieben.
PS: Das ginge auch mit HTTPMOD und ein wenig Regex eigentlich schon.

Hey cool danke dir! Die Adresse habe ich mir set address gesetzt, aber beim update passiert nichts außer das im state "wait on select address" steht.
Verbose 5 vom update:
2018.03.26 15:46:25 5: [updateCederbaum]
2018.03.26 15:46:25 5: [requestCederbaum]http://www.cederbaum.de/blaue-tonne/abfuhrkalender/
Fibaro Switches, Motion, Wallplug
FS20 S6A, TC8
Homematic Heating
Hue, Fritz DECT, Harmony

Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Die Adressen sind vorgegeben in einem Dropdown. Welche hast du denn ausgewählt? Vielleicht hab' ich irgendwo ein Sonderzeichen über sehen.

Offline rakete123

  • Jr. Member
  • **
  • Beiträge: 72
Antw:AbfallentsorgungBerlin BSR, ALBA und BerlinRecycling - neue Module
« Antwort #10 am: 27 März 2018, 16:54:39 »
Ja das mit dem Dropdown klappt auch. Ich hab mehrere probiert, z.b. "Abtstr."
Fibaro Switches, Motion, Wallplug
FS20 S6A, TC8
Homematic Heating
Hue, Fritz DECT, Harmony

Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Antw:AbfallentsorgungBerlin BSR, ALBA und BerlinRecycling - neue Module
« Antwort #11 am: 27 März 2018, 19:38:07 »
Ich habe das jetzt einmal getestet. Verbose=5 sollte so aussehen:
2018.03.27 19:32:01 5: [updateCederbaum]
2018.03.27 19:32:01 5: [requestCederbaum]http://www.cederbaum.de/blaue-tonne/abfuhrkalender/
2018.03.27 19:32:01 5: Termin kommt in Frage: 20.04.2018
2018.03.27 19:32:01 5: Termin vergangen: 23.02.2018
2018.03.27 19:32:01 5: Termin vergangen: 23.03.2018
2018.03.27 19:32:01 5: Termin kommt in Frage: 18.05.2018
2018.03.27 19:32:01 5: 1524182400
Das Problem kann nur an einer Stelle liegen. Geh mal in den Quellcode und nimm die Zeile 152 wieder auf (Raute entfernen).
#Log3($name,5,"[requestedJSON]".$json);Anschließend speichern und in fhem den Befehl (reload 57_cederbaum.pm) ausführen. Der Log sollte jetzt das gesamte Datenobjekt enthalten, welches man sich auch auf der Webseite im Quellcode ansehen kann.
Ich vermute mal, dass das JSON nicht gefunden wird auf der Webseite. Die Frage ist nur weshalb ist es bei mir vorhanden???

PROBLEM gelöst: Ich habe einen Fehler in der Implementierung gefunden. Die neue Datei ist oben im Anhang zu finden.
« Letzte Änderung: 27 März 2018, 20:09:28 von RomanticBoy83 »

Offline rakete123

  • Jr. Member
  • **
  • Beiträge: 72
Antw:AbfallentsorgungBerlin BSR, ALBA und BerlinRecycling - neue Module
« Antwort #12 am: 02 April 2018, 13:59:42 »
Sorry für die späte Antwort. Feiertage kamen dazwischen. Jetzt läuft es, danke!

mfg
Marcel
Fibaro Switches, Motion, Wallplug
FS20 S6A, TC8
Homematic Heating
Hue, Fritz DECT, Harmony

Offline castor.srs

  • New Member
  • *
  • Beiträge: 4
Antw:AbfallentsorgungBerlin BSR, ALBA und BerlinRecycling - neue Module
« Antwort #13 am: 05 April 2018, 14:20:50 »
Moin RomanticBoy,

vielen Dank für die drei Module. Das Modul BSRAbfallkalender funktioniert für die Nachbarstraße prima und zeugt genau das an, was man wissen muss. Mit ungewöhnlichen Straßennamen wie "Straße 42" (+ Hausnr. x) zeigt gibt er aber state="wrong_address" aus. In Deinem Modul scheint aus "...straße" die Kurzform "...str." zu werden. An welcher Stelle kann ich das für mich abstellen?

Beim Modul wertstofftonneberlin gibt er auch bei "normalen" Straßennamen wrong adress als state aus. Ich habe es auch mit Deiner Beispiel-define-Anweisung zur Ringbahn Straße 96-97 versucht - mit demselben Ergebnis. Wie finde ich heraus, woran der Fehler bei mir liegt?

Besten Dank vorab und liebe Grüße


Offline RomanticBoy83

  • Full Member
  • ***
  • Beiträge: 108
Antw:AbfallentsorgungBerlin BSR, ALBA und BerlinRecycling - neue Module
« Antwort #14 am: 05 April 2018, 19:31:56 »
Ich schau mal nach. Ich gebe die Eingabe einfach an die Webseite weitet. Dort erhalte ich eine Auswahl, welche hoffentlich nur noch eine Möglichkeit hat. Versuche mal eine eindeutige Eingabe auf der Webseite der BSR zu finden. Das Modul versucht genau das und über nimmt die gefundene.

Ich habe etwas an der Codierung bei bsr_abfallkalender geändert. Getestet habe ich Straße 42 in 13127 PankowFür die Wertstofftonne finde ich auf die Schnelle keinen Ansatz. Da versagt einfach mal die Webseite (Angabe ohne Hausnummer steht dort) -> eventuell haben die ein problem und erkennen diese Angabe genau so.


Lösungsansatz:
Ich habe eine Lösung auch für Wertstofftonne gefunden: Auf der Webseite sieht man das nicht, aber man bekommt bei Eingabe von str 13127 ALLE. Diese Straße im Objekt geliefert, könnte man mit Fhem dann die richtige Straße suchen und zur weiteren Verarbeitung bringen. Das war jedoch mein erster Gehversuch in Fhem. Ich müsste dafür mehr Logik reinbringen und wie bei der BSR dann eine Auswahl erstellen. Werde ich auf meine Todoliste bringen und das Modul bei Gelegenheit umschreiben!

Bis dahin: Habe ich eine Möglichkeit geschaffen, dass man den "adreskey" manipulieren kann. Es gibt jetzt ein set in welchen man eine 7stellige Nummer eintippen kann.
Herausfinden kann man diese Nummer nur mit dem Debugger des Browsers.
  • Öffnet den Debugger auf der Webseite mit [F12].
  • Gebt als Straße [str] ein und die Postleitzahl
  • führt jetzt die Suche aus
  • Ihr erhaltet jetzt nur eine Straße zur Auswahl
  • In der Antwort im Debugger [api-abfuhr.php?str=str&plz=13127&step=1] seht ihr jedoch im JSON-Format alle verfügbaren Straße
  • ich habe dann einen jsonviewer über google bemüht um straße 42 zu suchen und mir den adrkey zu notieren
« Letzte Änderung: 05 April 2018, 21:49:25 von RomanticBoy83 »