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*"
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
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....
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
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
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 :(
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
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.
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
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 :)
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?
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.
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
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
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?
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=...
@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
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