98_DBPlan.pm: Fahrplaninformation der DB

Begonnen von JoWiemann, 08 April 2015, 18:57:14

Vorheriges Thema - Nächstes Thema

Amenophis86

Lass doch ein Notify oder DOIF auf das Reading lauschen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Thoffi1978

Wie kann ich das senden der Readings erstellen?
Ich habe folgendes Versucht:
([travel_note_2] ne "none") (set Torsten_WA send $NAME.': '.$EVENT) DOELSE (set Torsten_WA send alles gut)
Da wird lt. LOG was gesendet, es kommt aber nichts an.

Hoffi

Amenophis86

Fangen wir mal vorne an: travel_note_2 ist doch das Reading und nicht das Device, oder?

Und wo kommt denn der Inhalt der Variable $NAME her?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

JoWiemann

Wird durch Fhem Core generiert.



Grüße Jörg

Gesendet von iPad mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Thoffi1978

Hallo,
ja travel Note ist das Reading.
$NAME ist ein Copy & Paste aus einem anderen Notify.

Notify habe ich noch nicht so oft gebaut. Mit Hilfe von "Anderen" verstehe ich das einzelne Notify zum Schluss auch, doch auf anhieb das zu basteln, das klappt bei mir noch nicht ganz.

([travel_note_2] ne "none") heißt doch, wenn was anderes als "none" steht, dann schicke (set Torsten_WA send...

Vielen Dank
Hoffi

Amenophis86

Also ich bin ein großer Fan von DOIF, das ist hier nicht jeder, aber das muss ja auch jeder selbst entscheiden. Da es bei dir wohl noch eher an den Grundkenntnissen von DOIF bzw Notify scheitert, würde ich dir empfehlen nochmal die CommandRef zu den beiden zu lesen. Die DOIF Ref ist relativ umfangreich, weil es auch ein mächtiges Tool ist. Aber du solltest insbesondere einen Augenmerk auf den Unterschied zwischen Device Trigger und Reading Trigger lesen, weil diese anders geschrieben werden müssen. Daher kann es in deinem Fall schon mal nicht klappen.

1. Du willst ein Reading Triggern, welches du aber als Device eingebunden hast
2. Du willst eine Variable übertragen, die nirgendwo ihren Wert herbekommen kann bei diesem Trigger (wenn ich das richtig sehe)
3. Deine Bedinung -> ne "none" <- ist richtig definiert, aber scheitert halt an der Falschen Definition auf was ne "none" lauschen soll.

Hoffe ich konnte dir damit helfen, ohne direkt die Lösung zu sagen. Bin der Meinung, dass man Leute eher in die richtige Richtung stoßen muss, weil einfach nur mit Copy & Paste arbeiten endet da, wo du gerade bist. Lieber ein bisschen mehr nachlesen und Verständnisfragen haben, als einfach nur einen Copy Paste haben und nicht verstehen, was man macht und dann auch nicht funktioniert :)

Mal abgesehen davon, dass wir uns immer weiter vom DB Info wegbewegen, weil wir über ein Notify bzw DOIF Problem reden. Schau mal in den entsprechenden Foren/Unterforen hier rein. Da findest du auch viele Erklärungen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

cbl

Ich habe zwei Devices gemäß dieser Anleitung angelegt: https://waschto.eu/abfahrtszeiten-der-deutschen-bahn-in-fhem-anzeigen

Das Device vom Typ DBPlan holt auch genau wie erwartet im richtigen Intervall die Daten ab und packt mir die drei Verbindungen in die passenden Readings.

Im Abfahrtsplan, also der readingsgroup, hingegen sehe ich zwar nach der Titelzeile drei Zeilen. Die zeigen aber anstelle von Zeiten nur "none" an.

define Bahn_Staaken_Spandau DBPlan 600
attr Bahn_Staaken_Spandau alias Verbindungen Staaken nach Berlin-Spandau
attr Bahn_Staaken_Spandau dbplan_departure Berlin-Staaken
attr Bahn_Staaken_Spandau dbplan_destination Berlin-Spandau

define Abfahrtsmonitor.Staaken readingsGroup < >,<Abfahrt>,<Ankunft>,<Dauer>,<Verspätung (Abfahrt)>,<Verbindung> Bahn_Staaken_Spandau:departure_1,arrival_1,travel_duration_1,departure_delay_1,connection_1 Bahn_Staaken_Spandau:departure_2,arrival_2,travel_duration_2,departure_delay_2,connection_2 Bahn_Staaken_Spandau:departure_3,arrival_3,travel_duration_3,departure_delay_3,connection_3
attr Abfahrtsmonitor.Staaken alias Abfahrtsplan Staaken
attr Abfahrtsmonitor.Staaken mapping {'Bahn_Staaken_Spandau' => 'Berlin-Staaken -> Berlin-Spandau'}


Wo steckt mein Fehler in der Readingsgroup?

Gruß
Christian

Hans Franz

Schau dir 'mal die Readings deiner DBPlan-Devices an. Deine readingsGroup-Definition geht imo von einer alten Version von DBPlan aus.
Also plan_ bzw. travel_ vor die Readingnamen in der readingsGroup ergänzen.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

cbl

Gmpf! Danke für's Augenöffnen.
Ich habe gestern zu lange darauf geschaut, um das Offensichtliche zu übersehen. Es funktioniert jetzt natürlich nach der Korrektur.

androsch

Hallo Jörg,

benutze Dein Modul, passt auch soweit alles, auch wenn ich einen komischen Fehler bei Verwendung meines Heimat-Bahnhofes hatte, aber sonst ok.

Leider müllt mir aber dein Modul mein Logfile zu und zwar egal welchen Loglevel ich dem Modul via dbplan-remote-loglevel mitgebe, im Modul selbst steht immer loglevel 4 und er generiert auch ständig solche Meldungen im Log:

2016.07.12 18:06:17 1: http://reiseauskunft.bahn.de/bin/query.exe/dox?S=Kempten(Allgäu)Hbf&Z=Tübingen+Hbf&start=1&rt=1&tariffClass=2&;: HTTP response code 200
2016.07.12 18:06:17 1: HttpUtils http://reiseauskunft.bahn.de/bin/query.exe/dox?S=Kempten(Allgäu)Hbf&Z=Tübingen+Hbf&start=1&rt=1&tariffClass=2&;: Got data, length: 6855
2016.07.12 18:06:17 3: DBPlan (DBTuebingen) - DBPlan_Parse_Timetable: readings filled with: none
2016.07.12 18:06:17 3: DBPlan (DBTuebingen) - DBPlan_Parse_Timetable: successfully identified
2016.07.12 18:06:17 3: DBPlan (DBTuebingen) - DBPlan_Parse_Timetable: connection plans read successfully
2016.07.12 18:06:17 3: DBPlan (DBTuebingen) - Timetable-Headers: An Leer Dauer Preis

Ich habe die Intervallzeit schon hochgesetzt und im .pm Modul den Loglevel von Hand auf 0 gesetzt, egal, es hilft nix.

Was kann ich noch tun?

Andreas
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

JoWiemann

Hallo,

wenn ich das Attribut verbose auf 2 setze, reduziert sich mein Log.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

androsch

Hallo Jörg,

global oder in deinem Modul?

Danke
Andreas
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

JoWiemann

Hallo Andreas,

im Modul.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

androsch

Mensch, klar, ich habe das immer auf das attr remote-loglevel bezogen, da fiel mir das normale verbose gar nicht mehr auf, Danke und sorry für das dicke Brett :-)
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

lion#

Hallo, erstmal vielen Dank für dieses super Modul!

Leider funktioniert die Abfrage bei mir nicht ganz richtig.
Ich habe eine Verbindung eingerichtet für die Strecke Stuttgart Hbf -> Bruchsal mit Abfahrtzeit 07:00. Leider ignoriert die Abfrage die erste verfügbare Verbindung um 07:11 Uhr.  Dafür wird die zweite Verbindung als erste angezeigt und als dritte Verbindung wird "none" ausgegeben.
Gibt es hierfür eine Begründung oder liegt ein Fehler vor?

Mein Eintrag in der fhem.cfg sieht wie folgt aus:
define Bahn_Bruchsal DBPlan 300
attr Bahn_Bruchsal dbplan-travel-time 07:00
attr Bahn_Bruchsal dbplan_departure Stuttgart Hbf
attr Bahn_Bruchsal dbplan_destination Bruchsal
attr Bahn_Bruchsal room Bahn


Als Rückmeldung bekommt das Modul die folgenden Abfahrzeiten der nächsten 3 Verbindungen:
plan_departure_1: 07:14
plan_departure_2: 07:22
plan_departure_3: none

Das direkte Aufrufen der URL bei der Bahn gibt das richtige Erebenis aus (s. Anhang):  http://reiseauskunft.bahn.de/bin/query.exe/dox?S=Stuttgart+Hbf&Z=Bruchsal&start=1&rt=1&time=07:00&timesel=depart&

In meiner Anzeige in Tablet-UI erhalte ich als Rückmeldung für die dritte Verbindung: none none Später (s. 2. Anhang)

Kann mir jemand weiterhelfen?

Vielen Dank!