Neues Modul Verkehrsinfo

Begonnen von martins, 29 Juni 2016, 22:21:38

Vorheriges Thema - Nächstes Thema

martins

Hallo zusammen,

das Modul Verkehrsinfo kann die aktuellen Verkehrsinformationen von verschiedenen Quellen auslesen.
Aktuell werden folgende zwei unterstützt:


Modul Verkehrsinfo
Die Aktuellen Sourcen sind im offizielen Repository von FHEM zufinden.
Desweiteren befindet sich die Dokumentation in der commandref.
Link: http://fhem.de/commandref.html


FHEMWiki
Durch die freundliche Unterstützung von Devender (https://forum.fhem.de/index.php?action=profile;u=20043) gibt es einen Artikel im FHEM Wiki, für weitere Informationen und Beispiele.
Link: http://www.fhemwiki.de/wiki/Staumelder


Tablet UI
Paul79 (https://forum.fhem.de/index.php?action=profile;u=25022) hat sich die Mühe gemacht und ein Widget für Tablet UI geschrieben.
Die Doku wurde ebenfalls in das Wiki aufgenommen. Desweiteren läuft gerade die Aufnahme in das Repository von TabletUI.
Link: (https://github.com/knowthelist/fhem-tablet-ui/pull/185)
Link: http://www.fhemwiki.de/wiki/Staumelder



Wünsche, Anmerkungen, Bug's können und sollen weiter in diesem Thread gestellt werden.

Viel Spaß mit dem Modul und Viele Grüße
martins


Wernieman

Wegen Updatefestigkeit ist es aber besser, die Perl-Module nicht über cpan, sondern über die Distri sich zu besorgen. Also besser:
sudo apt-get install libxml-treebuilder-perl libhtml-treebuilder-xpath-perl
(Angabe ob ich die Richtige Libary rausgesucht habe, ohne gewär)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Devender

#2
Hi!

Super Arbeit!

der Download der Pakete mit dem Link sudo apt-get install libxml-treebuilder-perl libhtml-treebuilder-xpath-perl funktionieren einwandfrei.
Danach habe ich das Modul in meine Installation kopiert und mit einem Reload verfügbar gemacht.

Das was du aktuell in ein Modul gepackt hast, habe ich bisher als HTTPMOD mit Regexfilter bei mir laufen. Funktioniert soweit ganz gut bis auf die Tatsache, dass ich bei mehreren
Meldungen immer nur den ersten Treffer bei meiner Konfiguration finde.
Allerdings bewege ich mich auf regionalen Webseiten. In meinem Fall: http://hessenschau.de/verkehr/index.html
Daher ist das meist nicht so schlimm.

Mit deinem Modul werden alle Meldungen zu einer z.b BAB (A3) als Reading abgelegt. Aktuell ist da viel "Unwichtiges" drin, da es sich bei allen Meldungen um Dauerbaustellen handelt.

Ich lasse mir morgens meine Staumeldungen vorlesen. Da interessieren mich natürlich nur die, die aktuell sind - im Sinne wirklich Stau/Unfall/Sperrung etc.
Durch meine Regionale Abfrage beim hr-Sender bekomme ich auch nur Meldung zum Hessischen A3 Abschnitt.
Man kann auf verkehrsinfo.de auf Bundesland filtern, allerdings ist die Liste der Ergebnisse natürlich noch länger.

Gibt es eine Möglichkeit da noch was zu Filtern?
Kann ich auch eine andere Webseite verwenden oder kann das Modul nur die verkehrsinfo.de korrekt parsen?

Ich bin ein Freund von Modulen  8) aber nach meinen ersten Gehversuchen mit einem Staumodul habe ich mich für die HTTPMOD Richtung entschieden. (Mangels Perl Kenntnissen  :-X ).

Ich freue mich auf Rückmeldung von dir!

Grüße,
Dirk


PS: Noch eine Frage: Bei mehren Abfragen wie A3, A4 A5 etc. müsste ich immer eigene define Einträge erstellen, richtig?
                                        Könnte man das irgendwie noch zusammenhängen in einem define?



FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

martins

Hallo Wernieman,
danke für deinen Hinweis, habe ich so im ersten Post, hinzugefügt.


Hallo Dirk,

viele Dank für deine Rückmeldung.

ZitatGibt es eine Möglichkeit da noch was zu Filtern?
Aktuell gibt es noch keine Möglichkeit zu filtern, aber das hatte ich mir bereits auch schon überlegt, da mich Dauerbaustellen genauso wenig Interessieren ...
Ich wollte aber im ersten Schritt überhaupt etwas Fertig haben, was ich nutzen kann.
Überlegt habe ich mir das ich noch ein Filter Attribut einbaue, in dem man mit einem Trennzeichen getrennte Wörter bzw. Textpassagen angeben kann die man Unterdrücken möchte.

ZitatKann ich auch eine andere Webseite verwenden oder kann das Modul nur die verkehrsinfo.de korrekt parsen?
Das Modul ist ausschließlich auf verkehrsinfo.de/mobil ausgelegt. Hintergrund dafür ist das ich eine Überregional Informationsquelle nutzen wollte.
Ursprünglich wollte ich den RSS-Feed vom ADAC nutzen, bis ich festgestellt habe das dort nicht die Komplette Verkehrsmeldung ausgeliefert wird....

Wenn der Bedarf besteht, kann man eventuell das Modul erweitern und auch für andere Quellen verfügbar machen. Ich sag jetzt mal in meinem Leichtsinn: Vorschläge nehme ich mal an und dann kann ich mal schauen, was möglich ist.

ZitatIch bin ein Freund von Modulen  8) aber nach meinen ersten Gehversuchen mit einem Staumodul habe ich mich für die HTTPMOD Richtung entschieden. (Mangels Perl Kenntnissen  :-X ).
In Perl bin ich schon ein paar Tage länger unterwegs, aber jetzt auch nicht der Guru. Für Fhem war es jetzt das erste Modul welches ich Entwickelt habe.  :)


ZitatPS: Noch eine Frage: Bei mehren Abfragen wie A3, A4 A5 etc. müsste ich immer eigene define Einträge erstellen, richtig?
Richtig!

ZitatKönnte man das irgendwie noch zusammenhängen in einem define?
Aktuell ist dies nicht möglich. Du könntest aber den gleichen Effekt mit einer ReadingsGroup erzielen.


Ich hoffe ich konnte erst einmal alle Fragen beantworten.

Viele Grüße
Martin



VB90

Hi, danke für deine Arbeit.

Ich habe die Perl-Module installiert und lege mein Device so an:
define VerkehrsInfo_A4 Verkehrsinfo http://www.verkehrsinfo.de/index.php?country=1&street=A4&UIN= 3600

Sofort im Anschluss ist mein FHEM nicht mehr erreichbar.

Mal sehen, ich teste mal noch ein bischen rum

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

martins

Hallo VB90,

du hast leider die Falsche URL benutzt zum Konfigurieren, die richtige lautet:  https://www.verkehrsinfo.de/mobil

Für die A4 ist es folgender Link: https://www.verkehrsinfo.de/mobil/mobileList.php?street=A4&lat=&lon=
define VerkehrsInfo_A4 Verkehrsinfo https://www.verkehrsinfo.de/mobil/mobileList.php?street=A4&lat=&lon= 3600

Das FHEM nicht mehr erreichbar ist, hm ... Eigentlich habe ich es getestet wenn falsche URLs angegeben werden, das dies nicht passiert ... schau ich mir nochmal an.

vg

VB90

mein Fehler.
Mit der richtigen URL funktioniert es nun. Danke

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Devender

Hi!

kann ich bestätigen mit der falschen URL bleibt FHEM mit folgender Meldung komplett hängen:
Can't call method "as_trimmed_text" on an undefined value at ./FHEM/98_Verkehrsinfo.pm line 124.

grüsse,
Dirk
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

Timmy.m

Habe gerade dein Modul installiert. Sieht sehr gut aus, danke.

Zitat von: martins am 03 Juli 2016, 01:55:40
Überlegt habe ich mir das ich noch ein Filter Attribut einbaue, in dem man mit einem Trennzeichen getrennte Wörter bzw. Textpassagen angeben kann die man Unterdrücken möchte.

Ich würde gerne nur die Autobahnausfahrten anzeigen lassen, die mich interessieren. Ich bräuchte also einen Filter, der zum beispiel nur die Ausfahrten (10) (11) (12) und (13) ausgibt, sofern vorhanden.

Grüße Tim
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

martins

Hallo zusammen,

das Problem mit dem Link habe ich jetzt behoben, ab sofort wird geprüft, das auch wirklich die mobile Seite verwendet wird, ansonsten lässt sich kein define durchführen.

Desweiteren haben mich die Anregungen von Dirk und Timmy zwecks dem Filtern keine Ruhe gelassen.
Es gibt jetzt zwei Filterattribute, eins für den Exclude und ein weiteres für den Include.

@Dirk, für dich wäre das z.B.  folgender Befehl:
attr <device> filter_exclude dauerbaustelle

@Timmy, und für dich z.B.:
attr <device> filter_include Ausfahrt \(10\)|Ausfahrt \(11\)
je nach dem wie es in der Verkehrsmeldung steht musst du dies noch entsprechend anpassen.


Die neue Version inkl. Dokumentation über die Verwendung der Attribute habe ich im ersten Post aktualisiert. (Die Commandref wurde auch aktualisiert).

Viel Spaß beim testen  :)

Timmy.m

Cool, danke für die schnelle Reaktion. Habe den Filter aktiviert, jetzt ist mal alles leer, weil auch kein Ergebnis passt. Super, sieht schon mal gut aus.
DANKE

Grüße Tim
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

androsch



Zitat von: martins am 04 Juli 2016, 02:28:09

Die neue Version inkl. Dokumentation über die Verwendung der Attribute habe ich im ersten Post aktualisiert. (Die Commandref wurde auch aktualisiert).

Viel Spaß beim testen  :)

Läuft bei mir inkl. Filter einwandfrei, saubere Arbeit und Danke!

Gesendet von meinem K00L mit Tapatalk

RaspberryPi3+ | RaspberryPi2+ | Pine64 | FHEM 5.9
HomeMatic | MAX!-Heizkörper | FS20-Steckdosen | nanoCul433 | Max-nanoCul | nanoCUL868 | HM-UART | AMAD | diverse Dienste+TabletUIs | 433MHz-Temperatursensoren | FritzBox7490 und 7412 | KODI und MPD | sonstiger Kleinkram

Devender

Sauber!

Der Exclude funktioniert. Statt 11 Meldungen habe ich jetzt nur 2.
Allerdings habe ich in den Filter anstelle von "dauerbaustellen" das Wort "bis" gesetzt.
Damit werden alle Meldung mit blablabla bis " Irgendeindatum" weg gefiltert.

Sowie ich das gesehen habe, sind alle Dauermeldungen eben mit bis und Datum versehen.

Jetzt muss ich mir das mal mit der Readingsgruppe anschauen.  8)

Btw. Ich hatte gestern mal versucht dein Modul so anzupassen, dass ich meinen Link verwenden kann. Allerdings scheitert es schon an den einfachsten Perlstrukturen. In dem Bereich wo der Hash geparst und zerlegt wird. Mit Shell wuesste ich mir zu helfen bei Perl stehe ich auf dem Schlauch  :-\
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

martins

Danke für die Rückmeldungen. :)
Wie gesagt, mit den Filtern muss man eventuell etwas herumspielen, bis man das gewünschte Ergebnis hat, Regex sind ja auch sehr eigen  ;)

@Dirk, gib mir mal ein paar Tage, ich mach mir mal ein paar Gedanken, aber ich denke schon das ich das Modul erweitern kann um die  hessenschau.de/verkehr Quelle.

Devender

Zitat von: martins am 05 Juli 2016, 00:35:21
@Dirk, gib mir mal ein paar Tage, ich mach mir mal ein paar Gedanken, aber ich denke schon das ich das Modul erweitern kann um die  hessenschau.de/verkehr Quelle.

Das wäre der Hammer :-)  ;D
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul