FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Tobias am 09 Juli 2014, 09:23:34

Titel: neues Modul zum Import eines Abfallkalenders
Beitrag von: Tobias am 09 Juli 2014, 09:23:34
Hi,
da meine Stadt leider keine ics/iCal-Datei zur Verfügung stellt sondern ausschließlich über Webanwendung, musste ich mir mein persönliches kleines Modul stricken um die Entsorgungstermine der Restmüll-/Altpapier-/Bio- und gelben Tonne in FHEM zu haben.
Dabei vielen Dank an John bei dem ich viel beim KostalPiko-Modul bzgl HTML::Parser abschauen konnte.

ZurZeit wird nur Magdeburg bedient. Dieses Modul kann aber jeder mit ein bissl KnowHow auf seine Stadt umstricken wenn die benötigten Daten auf einer Seite gelistet sind.
Sind es mehrere Seiten mit unterschiedlichen URL´s  muss man mehrere Instanzen des Moduls definieren. (So war es ursprünglich geplant)

Als Beispiel:
http://sab.metageneric.de/app/sab_i_tp/index.php
http://sab.metageneric.de/app/sab_i_tp/index.php?r=getHausnummerInfo&strasse=Torplatz&hausnummer=1&stadtteil_id=1609&dsd_behaelter_value=b120_b240

Per Attribut "TrashCal_Link" wird obiger Link gesetzt und per "TrashCal_Interval" das Intervall mit die Seite neu eingelesen werden soll, Default ist 1h

Ich persönlich lasse mich per Text2Speech einen Tag vorher darauf hinweisen wenn ein Entsorgungstermin ansteht. Dafür gibt es die Readings "NextEvent*"
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: justme1968 am 10 Juli 2014, 11:30:56
sehr schöne idee.

habe gerade bei der avr (müllabfuhr im rhein neckar kreis) nachgefragt. leider gibt es da noch keine geeignete schnittstelle um an maschinenlesbare daten zu kommen. eventuell 2015.

wenn noch mehr daran interesse haben hilft es vielleicht wenn noch mehr anfragen danach kommen.

gruss
  andre
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: Tobias am 10 Juli 2014, 13:44:24
Naja, hier in Magdeburg ist es auch keine "offizielle" Schnittstelle. Deswegen ja das Durchparsen der Webseite.....
Als offizielle Schnittstelle würde ich die Bereitstellung eines ics Files sehen....
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: no_Legend am 10 Juli 2014, 14:06:27
Zitat von: justme1968 am 10 Juli 2014, 11:30:56
sehr schöne idee.

habe gerade bei der avr (müllabfuhr im rhein neckar kreis) nachgefragt. leider gibt es da noch keine geeignete schnittstelle um an maschinenlesbare daten zu kommen. eventuell 2015.

wenn noch mehr daran interesse haben hilft es vielleicht wenn noch mehr anfragen danach kommen.

gruss
  andre

Bin auch aus dem gleichen Kreis.
Ist ja schade.
Wo bekommt den die App für Android/iOS die Daten her?

Gruß Robert
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: justme1968 am 10 Juli 2014, 14:27:46
die it verät nichts. sondern sagt nur das es eventuell 2015 einen zugriff geben könnte.

wenn noch andere nachfragen wird die wahrscheinlichkeit vielleicht größer.

gruss
  andre
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: Rince am 14 Juli 2014, 08:11:34
Ihr habt wenigstens ne Website zum lesen.
Mein zukünftiges Abfallentsorgungsunternehmen generiert einen hübschen Kalender als PDF, wenn man per DropDown Menü die genaue Adresse eingegeben hat.
Aus dem PDF kann man noch nicht mal ein Datum auslesen :(
Nachfragen diesbezüglich bleiben schlicht unbeantwortet :(
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: Tobias am 22 Oktober 2014, 07:08:43
Kann man ein PDF nicht auch im sourcecode lesen? Ist das kein Standard? 
Mein Modul funktioniert problemlos. Frau ist begeistert.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: Deudi am 22 Oktober 2014, 07:23:17
Zitat von: Rince am 14 Juli 2014, 08:11:34
Ihr habt wenigstens ne Website zum lesen.
Mein zukünftiges Abfallentsorgungsunternehmen generiert einen hübschen Kalender als PDF, wenn man per DropDown Menü die genaue Adresse eingegeben hat.
So ist das bei uns auch und daher habe ich die Termine in ein holiday Modul eingetragen. Das muss man i.d.R. nur einmal machen und dann ist auch gut.
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: kaizo am 22 Oktober 2014, 21:52:53
Hallo,

bei uns hat unsere Kommune (Lennestadt/Kreis Olpe) ein Modul gekauft, nachdem ich nachgefragt hatte. Damit ist der Export in ics möglich und diesen habe ich in meinen Kalender (hier Google) importiert. Damit wird das recht flexibel.

Ich habe einfach angefragt, in heutiger Zeit der Smartphones ist ein pdf-Kalender nicht mehr unbedingt zeitgemäß. Ging schnell und unkompliziert. Zumal die Daten eh' vorlagen und daraus ja auch das pdf generiert wird.

Gruß
Kai
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: Rince am 28 Oktober 2014, 22:14:03
ZitatKann man ein PDF nicht auch im sourcecode lesen? Ist das kein Standard?

Hm, mein PDF ist eine Art Kalender, wo das jeweilige Feld mit einer entsprechenden Farbe gekennzeichnet ist.
Ich müsste also die Farbe heraussuchen, dann in der entsprechenden Spalte den Monat und in der Zeile den Tag...

Das erscheint mir schon arg komliziert zu sein. Da dürfte eine Holliday deutlich einfacher sein :)

Vielen Dank für die Antworten :)
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: FHEMAN am 15 Januar 2016, 23:47:00
Hi Tobias,

da bin ich ja froh, Magdeburger zu sein - danke für das Modul!
Verstehe ich es richtig, dass im state der nächste Termin angezeigt wird? Und hier auch immer nur 1 Termin, auch wenn zwei Abholungen am selben Tag stattfinden?
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: Tobias am 18 Januar 2016, 07:44:25
Ups,
ist mir ja noch nie passiert das ich hier einen Magdeburg treffe ;)
Das Modul habe ich im contrib Ordner auch bereitgestellt.
Bei mir wird pro Tag nur eine Tonne abgeholt. Deswegen wird es  mit 2 Tonnen pro Tag nicht funktionieren, bzw wird nur eine angezeigt im "NextEvent"
Die Daten beinhalten ja nur einen Tag, und keine Uhrzeit, deswegen wäre es quase schwierig bei 2 Abholungen das exakte nextevent herauszubekommen.
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: Prof. Dr. Peter Henning am 18 Januar 2016, 08:38:21
Wenn ich ehrlich bin, halte ich relativ wenig von solchen speziellen Parsern - mag Magdeburg noch so schön sein.

Mein Lösungsvorschlag ist, aus aus Webseiten zunächst die speziellen HTML-Tabellen direkt zu extrahieren, diese dann in sehr einfache generische Daten zu verwandeln, z.B.
<muell>
    <restmuell>
        <termin>Montag, 04. Januar 2016 *</termin>
        <termin>Samstag, 16. Januar 2016 *</termin>
...
        <termin>Donnerstag, 15. Dezember 2016</termin>
        <termin>Freitag, 30. Dezember 2016 *</termin>
    </restmuell>
    <wertstoffmuell>
        <termin>Montag, 11. Januar 2016 *</termin>
        <termin>Freitag, 22. Januar 2016 *</termin>
...
       <termin>Donnerstag, 08. Dezember 2016</termin>
        <termin>Donnerstag, 22. Dezember 2016</termin>
    </wertstoffmuell>
</muell>


Eine solche generische Tabelle lässt sich - auch das ein Vorteil - sogar schnell von Hand erstellen (hat meine Frau innerhalb von 20 Minuten geschafft...)

Mit Hilfe eines kleinen XSL-T Stylesheet lässt sie sich dann problemlos in eine ICS-Datei umwandeln. Wichtig für Euer Problem: Selbstverständlich kann man dem Stylesheet auch sagen, dass am gleichen Tag die Restmülltonne um 7:00 Uhr, die gelbe/blaue/weiße Tonne erst um 15:00 abgeholt wird.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">
    <xsl:template match="/">
        BEGIN:VCALENDAR
        VERSION:2.0
        METHOD:PUBLISH
        PRODID:Prof. Dr. Peter A. Henning
        <xsl:apply-templates select="//restmuell">
            <xsl:with-param name="text">Restmüllabfuhr</xsl:with-param>
        </xsl:apply-templates>
        <xsl:apply-templates select="//wertstoffmuell">
            <xsl:with-param name="text">Wertstoffmüllabfuhr</xsl:with-param>
        </xsl:apply-templates>
        END:VCALENDAR
    </xsl:template>
    <xsl:template match="termin">
        <xsl:param name="text"/>
        <xsl:variable name="r1" select="substring-after(.,', ')"/>
        <xsl:variable name="d" select="substring-before($r1,'. ')"/>
        <xsl:variable name="r2" select="substring-after($r1,'. ')"/>
        <xsl:variable name="m" select="substring-before($r2,' ')"/>
        <xsl:variable name="mm">
            <xsl:choose>
                <xsl:when test="$m='Januar'">01</xsl:when>
                <xsl:when test="$m='Februar'">02</xsl:when>
                <xsl:when test="$m='März'">03</xsl:when>
                <xsl:when test="$m='April'">04</xsl:when>
                <xsl:when test="$m='Mai'">05</xsl:when>
                <xsl:when test="$m='Juni'">06</xsl:when>
                <xsl:when test="$m='Juli'">07</xsl:when>
                <xsl:when test="$m='August'">08</xsl:when>
                <xsl:when test="$m='September'">09</xsl:when>
                <xsl:when test="$m='Oktober'">10</xsl:when>
                <xsl:when test="$m='November'">11</xsl:when>
                <xsl:when test="$m='Dezember'">12</xsl:when>
            </xsl:choose>   
        </xsl:variable>
        BEGIN:VEVENT
        CREATED:20150418T210000Z
        LAST-MODIFIED:220150418T210000Z
        DTSTAMP:20150418T210000Z
        DTSTART;VALUE=DATE:2016<xsl:value-of select="$mm"/><xsl:value-of select="$d"/>T050000Z
        DTEND;VALUE=DATE:2016<xsl:value-of select="$mm"/><xsl:value-of select="$d"/>T160000Z
        SUMMARY:<xsl:value-of select="$text"/>
        TRANSP:TRANSPARENT
        UID:<xsl:text>M_2016</xsl:text><xsl:value-of select="$mm"/><xsl:value-of select="$d"/>
        BEGIN:VALARM
        TRIGGER:-PT12H
        ACTION:DISPLAY
        END:VALARM
        END:VEVENT
    </xsl:template>
</xsl:stylesheet>


LG

pah
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: FHEMAN am 30 Mai 2016, 21:25:30
Hi Tobias,

ich habe Dein Modul seit einigen Wochen im Einsatz - und es funktioniert ziemlich gut - meistens :)
Wegen der Problematik des mehrfachen Abholens pro Tag habe ich mir eine Funktion, geschrieben, die ich täglich nachts per AT um 02:02 Uhr triggere. Dazu lese ich das Reading "NextEvent Tstamp" aus. Hierbei kam es nun ab und zu vor, dass dieser Timestamp falsch und inkl. Uhrzeit ausgelesen wird.

bspw. 1466983685.50984 anstelle von 1464645600

Demnach liegt das Datum in ferner Zukunft, die Mülltonnen bleiben stehen, und meine Liebste nimmt mein Smarthome nicht mehr ernst ;)

Außerdem ist mir aufgefallen, dass unser schöner Abfallwebdienst manchmal down ist. In dem Fall bleibt das o.g. Reading leer. Ich habe darauf reagiert, in dem ich dann alle vorhanden {MUELLEIMER}_Tstamp Datumswerte auslese, sortiere und den letzten nehme.
Hier mal mein Code
my $NextEventDateTimestamp = ReadingsVal("Abfallkalender", "NextEvent Tstamp", -1);
Log 1, "DEBUG Abfallkalender";
if (!$NextEventDateTimestamp) {
Log 1, "DEBUG Abfallkalender: ! NextEventDateTimestamp";
my @NextEventdates;
push @NextEventdates, ReadingsVal("Abfallkalender", "Altpapier_Tstamp", -1);
push @NextEventdates, ReadingsVal("Abfallkalender", "Bioabfall_Tstamp", -1);
push @NextEventdates, ReadingsVal("Abfallkalender", "Gelbe Tonne_Tstamp", -1);
push @NextEventdates, ReadingsVal("Abfallkalender", "Restabfall_Tstamp", -1);
@NextEventdates = sort @NextEventdates;
$NextEventDateTimestamp = $NextEventdates[0];
Log 1, "DEBUG Abfallkalender: NextEventDateTimestamp $NextEventDateTimestamp";
}


Hast Du eine Idee, woran das mit dem merkwürdigen Timestamp Wert liegen könnte?

Schöne Grüße
Ronny
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: FHEMAN am 31 Dezember 2016, 14:49:52
Moin moin,

funktioniert der Abfallkalender noch bei Euch? Heute wurde die gelbe Tonne nicht gemeldet - und beim Check auf http://sab.metageneric.de/... sieht es für mich aus aus, als hätten die Jungs mit den URL Parametern gespielt?
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: FHEMAN am 08 November 2017, 20:44:02
Argh, die letzten Male haben uns die Nachbartonnen an den Müll erinnern müssen ;)
Grund, die Jungs haben umgestellt auf http(s)://sab.ssl.metageneric.de/app/sab_i_tp/index.php?r=getHausnummerInfo&strasse=...
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: no_Legend am 09 November 2017, 08:44:20
@justme1968

Es gibt für unseren Kreis nun auch einen ICS Download.
Leider scheint das ganze aber nur auf meinem Iphone zu gehen.
Im Chrome wird nix angezeigt.

Gruß Robert
Titel: Antw:neues Modul zum Import eines Abfallkalenders
Beitrag von: justme1968 am 09 November 2017, 10:32:33
hallo robert,

sorry. hatte den thread aus den augen verloren. ich war damals noch einige male mit der avr in kontakt und irgendwann gab es dann die möglichkeit in der iOS avr app den ical calender runter zu laden. Ich muss zwar jedes jahr wieder suchen wie genau aber das hat jetzt drei jahre recht gut funktioniert.

gruss
  andre