Abfahrtszeiten der Deutschen Bahn in FHEM anzeigen

Wer oft mit den öffentlichen Verkehrsmitteln unterwegs ist, wird diese Situation kennen. Man steht morgens um 6 Uhr auf, geht zur Bahnhaltestelle um dann festzustellen, dass die Bahn 15min Verspätung hat. Diese 15min hätte man lieber noch im Warmen am Frühstückstisch verbracht. Da liegt es doch nahe, die Abfahrtszeiten mit TabletUI auf seinen Schaltzentralen-Tablet anzeigen zu lassen. In diesem Beitrag erkläre ich euch, wie ihr dafür die Grundlage in FHEM bereitstellt. Mit Hilfe des Moduls DBPlan lassen sich die Abfahrtzeiten von der Infoseite der Deutschen Bahn als Readings laden. Anschließen kann man sich diese mit einer ReadingsGroup in einer Tabelle anzeigen lassen.

InhaltsverzeichnisVorbereitung auf dem Raspberry PiDBPlan als Verbindung zur Infoseite der Deutschen BahnBahnverbindungen in meiner FHEM Live-Demo

Vorbereitung auf dem Raspberry Pi

Für das Modul DBPlan wird das Perl Modul HTML:Table Extract benötigt. Sollte dies noch nicht installiert sein, sollte man dies nun nachinstallieren:

sudo apt-get install libhtml-tableextract-perl

DBPlan als Verbindung zur Infoseite der Deutschen Bahn

Um die Abfahrtszeiten laden zu können, benötigt man das Modul DBPlan. Da dieses Modul noch nicht zur Standardinstallation von FHEM gehört, muss dies manuell nachinstalliert werden:

update all https://raw.githubusercontent.com/jowiemann/DBPlan-for-Fhem/master/controls_dbplan.txt

Anschließend FHEM neu starten:

shutdown restart

Nun lässt sich das Modul „DBPlan“ definieren:

define Bahn_Kronenplatz DBPlan 300

Der Name Bahn_Kronenplatz und das Interval von 300 Sekunden (5 Minuten) kann natürlich angepasst haben. Das Intervall sollte natürlich nicht allzu groß gewählt werden. Ein Intervall von 30 Minuten ist eher konterproduktiv, sollten die Bahnen alle 5 Minuten fahren.

Das „nackte“ Modul gibt leider noch keine Infos preis. Für die Abfahrtszeiten muss man dem Modul noch den Start- und Zielbahnhof mitteilen. Dies geschieht über Attribute:

attr Bahn_Kronenplatz dbplan_station Hübschstraße, Karlsruheattr Bahn_Kronenplatz dbplan_destination Kronenplatz (Fritz-Erler-Str.), Karlsruhe

Hinweis: Das Attribut „dbplan_depature“ wurde zu „dbplan_station“ geändert.

Hierbei ist darauf zu achten, dass der Name der Bahnhöfe auf der Infoseite der Bahn zu finden ist.

Sollten die Haltestellen existieren werden nach einigen Minuten die Abfahrtszeiten als Reading angezeigt.

readingsGroup für die Erstellung eines Abfahrtsmonitors 

Diese Readings sind natürlich nicht gerade sehr anschaulich und für das schnelle Rausfinden einer Verbindung nicht gerade vorteilhaft. Das Erstellen einer readingsGroup schafft da Abhilfe.

define Abfahrtsmonitor readingsGroup < >,<Abfahrt>,<Ankunft>,<Dauer>,<Verspätung (Abfahrt)>,<Verbindung> Bahn_Kronenplatz:plan_departure_1,plan_arrival_1,plan_travel_duration_1,plan_departure_delay_1,plan_connection_1 Bahn_Kronenplatz:plan_departure_2,plan_arrival_2,plan_travel_duration_2,plan_departure_delay_2,plan_connection_2 Bahn_Kronenplatz:plan_departure_3,plan_arrival_3,plan_travel_duration_3,plan_departure_delay_3,plan_connection_3

Den Eintrag „Bahn_Kronenplatz“ entsprechend anpassen. Mit dem Attribut mapping lassen sich noch die Einträge in der ersten Spalte anpassen. Der Name „Bahn_Kronenplatz“ wird durch den etwas hübscheren Eintrag „‚Hübschstraße -> Kronenplatz“ ersetzt.

attr Abfahrtsmonitor mapping {‚Bahn_Kronenplatz‘ => ‚Hübschstraße -> Kronenplatz‘}

Die Einträge des Abfahrtsmonitor können natürlich beliebig erweitert werden. Für jede weitere Verbindung muss jedoch ein extra DBPlan definiert werden.

Wie ihr den Abfahrtsmonitor in TabletUI einbindet erfahrt ihr hier.

Bahnverbindungen in meiner FHEM Live-Demo

Möchtest ihr die Bahnverbindungen in FHEM anschauen, so schaut am besten auf meiner FHEM Live-Demo im Raum „Verkehr“ vorbei. Dort findet ihr die hier definierten Devices.

zur FHEM Live-Demo

0 0 vote
Article Rating
Subscribe
Benachrichtige mich zu:
guest
37 Comments
älteste
neuste beste Bewertung
Inline Feedbacks
View all comments
rabe
rabe
4 Jahre her

Die Definition der readingsGroup passt nicht zum Device. Nach dem ich das angepaßt habe sind die Daten im Abfahrtsmonitor erschienen.
Habe das für die Straßenbahnen des rnv probiert, die Daten aus https://wolf-u.li/5545/fhem-abfahrzeiten-des-vrn-verkehrsverbunds-via-httpmod-auslesen/ scheinen besser zu sein (Verspätungen)

rabe
rabe
4 Jahre her
Reply to  Daniel

Jede Lösung hat ihre Vorteile.
Im direkten Vergleich zeigt mir rnv Verspätungen an und die Bahn meint die Straßenbahn ist pünktlich.
Ich werde das mal für den Hauptbahnhof von Heidelberg prüfen.

Sven
Sven
4 Jahre her

Ich nehme morgens immer zu einer bestimmten Zeit den RB (6:08) vom HBF xxx. Nun wäre es cool, wenn ich mittels pushover eine Message erhalten könnte, wenn dieser Zug entweder ausfällt oder zu spät kommt. Könnte mir da jemand ein Beispiel geben ?

Danke und Gruss, Sven

Sven
Sven
4 Jahre her
Reply to  Daniel

Danke für das Beispiel . Werde es mal testen. Allerdings möchte ich nicht zu jeder Verspätungeine Info erhalten ssonder nur für eine bbestimmte Verbindung. Zum Beispiel der RE nach Düsseldorf um 6:08. Informiert möchte ich dann aber schon um 5:30.
Könntest Du mir da noch etwas zu basteln?
Danke

Sven
Sven
4 Jahre her
Reply to  Daniel

Damit sollte ich doch jede Möglichkeit die um 5:00 auftreten könnte, abgearbeitet haben, oder ?

define BahnZuSpaet at *05:00:00 {my $Zug1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_1",0));; my $Zug2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_2",0));; my $Zug3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_3",0));; my $Abfahrt1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_1",0));; my $Abfahrt2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_2",0));; my $Abfahrt3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_3",0));; my $Verspaetung1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_1",0));; my $Verspaetung2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_2",0));; my $Verspaetung3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_3",0));; if((($Zug1 eq "RB") || ($Zug2 eq "RE") || ($Zug3 eq "ERB")) && (($Abfahrt1 in ("05:43","6:08")) || ($Abfahrt2 in ("05:43","6:08")) || ($Abfahrt2 in ("05:43","6:08"))) && (($Verspaetung1 ne "none") || ($Verspaetung2 ne "none") || ($Verspaetung3 ne "none"))){fhem("set PushMessenger msg 'Zugverspätung' 'Die Bahn kommt $Verspaetung1 Minuten zu spät.'")}}

Gruss, Sven

Sven
Sven
4 Jahre her

So sollte ich alle Möglichkeiten, die um 5:00 im Plan stehen könnten, abarbeiten können um den RB beispielsweise abzuklären.

define BahnZuSpaet at *05:00:00 {my $Zug1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_1",0));; my $Zug2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_2",0));; my $Zug3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_3",0));; my $Abfahrt1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_1",0));; my $Abfahrt2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_2",0));; my $Abfahrt3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_3",0));; my $Verspaetung1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_1",0));; my $Verspaetung2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_2",0));; my $Verspaetung3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_3",0));; if(($Zug1 eq "RB") && ($Abfahrt1 in ("5:33","05:43","6:08")) && ($Verspaetung1 ne "none")){fhem("set PushMessenger msg 'Zugverspätung vom $Zug1 um $Abfahrt1' 'Die Bahn kommt $Verspaetung1 Minuten zu spät.'")};; if(($Zug2 eq "RB") && ($Abfahrt2 in ("5:33","05:43","6:08")) && ($Verspaetung2 ne "none")){fhem("set PushMessenger msg 'Zugverspätung vom $Zug2 um $Abfahrt2' 'Die Bahn kommt $Verspaetung2 Minuten zu spät.'")};; if(($Zug3 eq "RB") && ($Abfahrt3 in ("5:33","05:43","6:08")) && ($Verspaetung3 ne "none")){fhem("set PushMessenger msg 'Zugverspätung vom $Zug3 um $Abfahrt3' 'Die Bahn kommt $Verspaetung3 Minuten zu spät.'")}}

Sollte ich doch nur die Verspätungen mir anzeigen lassen, die um 5:00 im Plan stehen, brächte ich doch dann nur auf Verspaetung1,2 oder 3 abfragen und Abfahrt und Zug außen vor lassen, richtig ?

Gruss, Sven

Sven
Sven
4 Jahre her

noch eine Anfängerfrage… wenn ich das Ganze rund um die uhr beobachten möchte, brauch ich doch nur define BahnZuSpaet at *05:00:00 {my $Zug1=(Rea... ohne at Angabe schreiben ?

 

Sven
Sven
4 Jahre her

Bekomme keine pushinfo, obwohl um 11:00 im delay Verspätungen +5 bzw. +0 gewesen sind.

define BahnZuSpaet at *11:05:00 {\
 my $Zug1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_1",0));;\
 my $Zug2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_2",0));;\
 my $Zug3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_3",0));;\
 my $Abfahrt1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_1",0));;\
 my $Abfahrt2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_2",0));;\
 my $Abfahrt3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_3",0));;\
 my $Verspaetung1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_1",0));;\
 my $Verspaetung2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_2",0));;\
 my $Verspaetung3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_3",0));;\
 if !($we) {\
  if(($Abfahrt1 in ("05:33","05:43","6:08")) && ($Verspaetung1 ne "none")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug1 um $Abfahrt1' 'Die Bahn kommt $Verspaetung1 Minuten zu spät.'");;\
  }\
  elseif(($Abfahrt2 in ("05:33","05:43","6:08")) && ($Verspaetung2 ne "none")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug2 um $Abfahrt2' 'Die Bahn kommt $Verspaetung2 Minuten zu spät.'");;\
  }\
  elseif(($Abfahrt3 in ("05:33","05:43","6:08")) && ($Verspaetung3 ne "none")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug3 um $Abfahrt3' 'Die Bahn kommt $Verspaetung3 Minuten zu spät.'");;\
  }\ 
 }\
}
attr BahnZuSpaet room Auskunft

Sven
Sven
4 Jahre her

Die Sache mit den Zeiten hatte ich für den Test auch angepasst. Dein notify Beispiel ging aber auch nicht, selbst wenn ich bei beiden Varianten nur auf Verspätung abfrage.

Die Frage die sich mir nun aber stellt ist, warum eine Abfrage auf $Verspaetung3 ne "one" funktioniert, wo in den Readings none steht.

Sven
Sven
4 Jahre her

So, jetzt bin ich einen Schritt weiter.

define HBF_Duesseldorf_Oberhausen_ToLate_W notify HBF_Duesseldorf_Oberhausen {\
 my $Zug1=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_connection_1",0));;\
 my $Zug2=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_connection_2",0));;\
 my $Zug3=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_connection_3",0));;\
 my $Abfahrt1=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_departure_1",0));;\
 my $Abfahrt2=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_departure_2",0));;\
 my $Abfahrt3=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_departure_3",0));;\
 my $Verspaetung1=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_departure_delay_1",0));;\
 my $Verspaetung2=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_departure_delay_2",0));;\
 my $Verspaetung3=(ReadingsVal("HBF_Duesseldorf_Oberhausen","plan_departure_delay_3",0));;\
 #if !($we) {\
  if(($Verspaetung1 ne "none") || ($Verspaetung1 ne "+0")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug1 um $Abfahrt1' 'Die Bahn kommt $Verspaetung1 Minuten zu spät.'");;\
  }\
  if(($Verspaetung2 ne "none") || ($Verspaetung2 ne "+0")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug2 um $Abfahrt2' 'Die Bahn kommt $Verspaetung2 Minuten zu spät.'");;\
  }\
  if(($Verspaetung3 ne "none") || ($Verspaetung3 ne "+0")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug3 um $Abfahrt3' 'Die Bahn kommt $Verspaetung3 Minuten zu spät.'");;\
  }\
 #}\
}
attr HBF_Duesseldorf_Oberhausen_ToLate_W room Auskunft

#define HBF_Duesseldorf_Oberhausen_ToLate_W_notify_ein at *13:30:00 attr HBF_Duesseldorf_Oberhausen_ToLate_W disable 0
#define HBF_Duesseldorf_Oberhausen_ToLate_W_notify_aus at *15:30:00 attr HBF_Duesseldorf_Oberhausen_ToLate_W disable 1

Über das define erhalte ich nun die Pushnachrichten, allerdings auch die none und +0. Kurioser Weise sogar Nachrichten mit dem Wortlaut „Zugverspätung vom none um none‚ ‚Die Bahn kommt none Minuten zu spät.“

Dieser part klappt aber irgendwie gar nicht.

define HBF_Duesseldorf_Oberhausen_ToLate_W_notify_ein at *13:30:00 attr HBF_Duesseldorf_Oberhausen_ToLate_W disable 0
define HBF_Duesseldorf_Oberhausen_ToLate_W_notify_aus at *15:30:00 attr HBF_Duesseldorf_Oberhausen_ToLate_W disable 1

Gruss, Sven

Sven
Sven
4 Jahre her
Reply to  Daniel

Moin Daniel,

mit dem && hätte ich bei negativ Abfrage auch selbst drauf kommen können. Das war wohl auch der Grund warum ich Text mit None bekommen habe. Das define mit disable habe ich nochmal über die Kommandozeile eingefügt (wofür stehen dort die Optionen wie periodic, timespec oder so ähnlich ?) und der Push klappt jetzt. ABER… ich bekomme zu einer Verbindung mal 8, mal 11 oder sogar 14 Pushnachrichten. Auch wenn fhem es gut mit mir meint, aber eine Info sollte doch reichen ;o) Hast Du eventuell noch eine Idee, warum ich zu einer notify selbiger Uhrzeit x Mal eine Message erhalte ?

Sven
Sven
4 Jahre her

Irgendwie passen die Klammern am Ende nicht, oder ?!

define NotifyAUS at +00:01:00 attr HBF_Duesseldorf_Oberhausen_ToLate_W_notify_ein disable 0;; attr HBF_Duesseldorf_Oberhausen_ToLate_W_notify_ein disable 1")}} oder soll das in den Fhem-Befehl?

Ich rufe das define mit einer Zeitspanne auf.

define HBF_Duesseldorf_Oberhausen_ToLate_W_notify_ein at *14:00:00 attr HBF_Duesseldorf_Oberhausen_ToLate_W disable 0
define HBF_Duesseldorf_Oberhausen_ToLate_W_notify_aus at *15:00:00 attr HBF_Duesseldorf_Oberhausen_ToLate_W disable 1

Kolidiert Deine 1 Minutenspanne damit nicht ?

 

 

Sven
Sven
4 Jahre her

Hier mal der komplette Code.

define HBF_Oberhausen_Duesseldorf_ToLate_W notify HBF_Oberhausen_Duesseldorf {\
 my $Zug1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_1",0));;\
 my $Zug2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_2",0));;\
 my $Zug3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_connection_3",0));;\
 my $Abfahrt1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_1",0));;\
 my $Abfahrt2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_2",0));;\
 my $Abfahrt3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_3",0));;\
 my $Verspaetung1=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_1",0));;\
 my $Verspaetung2=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_2",0));;\
 my $Verspaetung3=(ReadingsVal("HBF_Oberhausen_Duesseldorf","plan_departure_delay_3",0));;\
  if(($Verspaetung1 ne "none") && ($Verspaetung1 ne "+0")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug1 um $Abfahrt1' 'Die Bahn kommt $Verspaetung1 Minuten zu spät.';; define NotifyAUS_4 at +00:01:00 attr HBF_Oberhausen_Duesseldorf_ToLate_W_notify_ein disable 0;; attr HBF_Oberhausen_Duesseldorf_ToLate_W_notify_ein disable 1");;\
  }\
  if(($Verspaetung2 ne "none") && ($Verspaetung2 ne "+0")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug2 um $Abfahrt2' 'Die Bahn kommt $Verspaetung2 Minuten zu spät.';; define NotifyAUS_5 at +00:01:00 attr HBF_Oberhausen_Duesseldorf_ToLate_W_notify_ein disable 0;; attr HBF_Oberhausen_Duesseldorf_ToLate_W_notify_ein disable 1");;\
  }\
  if(($Verspaetung3 ne "none") && ($Verspaetung3 ne "+0")){\
   fhem("set PushMessenger msg 'Zugverspätung vom $Zug3 um $Abfahrt3' 'Die Bahn kommt $Verspaetung3 Minuten zu spät.';; define NotifyAUS_6 at +00:01:00 attr HBF_Oberhausen_Duesseldorf_ToLate_W_notify_ein disable 0;; attr HBF_Oberhausen_Duesseldorf_ToLate_W_notify_ein disable 1");;\
  }\
}
attr HBF_Oberhausen_Duesseldorf_ToLate_W disable 1
attr HBF_Oberhausen_Duesseldorf_ToLate_W room Auskunft

define HBF_Oberhausen_Duesseldorf_ToLate_W_notify_ein_2 at *05:00:00 attr HBF_Oberhausen_Duesseldorf_ToLate_W disable 0
define HBF_Oberhausen_Duesseldorf_ToLate_W_notify_aus_2 at *06:00:00 attr HBF_Oberhausen_Duesseldorf_ToLate_W disable 1

Schreibweise richtig ?

Sven
Sven
4 Jahre her

Bekomme zu jeder Verspätung auch mit dem Code fast 20 Pushover. Selbst wenn ich das notify auf 00:00:01 setze.

Sven
Sven
4 Jahre her

Ich habe es so eingebeben.
Vorher natürlic noch…

define HBF_Oberhausen_Duesseldorf DBPlan 300
attr HBF_Oberhausen_Duesseldorf alias Oberhausen (HBF) nach Düsseldorf (HBF)
attr HBF_Oberhausen_Duesseldorf dbplan_departure Hauptbahnhof, Oberhausen (Rheinland)
attr HBF_Oberhausen_Duesseldorf dbplan_destination Düsseldorf Hbf
attr HBF_Oberhausen_Duesseldorf room Auskunft

Fhem strört sich aber an…

define notifyVerspaetung HBF_Oberhausen_Duesseldorf {fhem("define DELAY at +00:00:10 set Verspaetung on")}

Unknown module HBF_Oberhausen_Duesseldorf

Sven
Sven
4 Jahre her

Hi Daniel,

klappt !!! Keine Wiederholungen.

Das Einzigste was ggf. vom Urheber des dbplan Modules eingebaut werden könnte, wäre die Tatsache, dass öfters bei den Verspätungen Hinweis steht. Schaut man dann in die Reiseauskunft der DB steht dort ein Icon mit der Info Fahrt fällt aus. Wenn man das auslesen könnte, wäre es toll und würde (so wie heute) den Weg zum Bahnhof um jene Uhrzeit ersparen.

Gruss, Sven

Kussel
Kussel
3 Jahre her

Hallo Daniel,

bin noch Anfänger deshalb meine Bitte an Dich. Ich bin so vorgegangen wie du oben beschrieben hast. Bin erstmal auf DBPlan gegangen und geschaut ob es meinen Bahnhof gibt und siehe da es gibt Ihn ( Hirschberg-Leutershausen) ….dann geschaut ob es den Zielbahnhof gibt!! auch diesen gibt es (Schriesheim).

Dann habe ich

define Bahn_OEG_Leu DBPlan 300

eingegeben…..

dann wollte ich unter den attr das attribut dbplan_departure suchen..leider gibt es das bei mir dann nicht 🙁

Was mache ich falsch?

Gruss

Timo
Timo
3 Jahre her
Reply to  Kussel

Wurde zu dbplan_station abgeändert.

Sven
Sven
3 Jahre her

Wie kann ich denn die plan_connection so einschränken, dass mir nur bestimmte Züge wie S, RBV, ERB angezeigt werden und solche ie ICE oder none nicht ?

Sven
Sven
3 Jahre her
Reply to  Daniel

Klappt.
Ich habe zudem in fhem mit dem kopierten Code einen Style für die Verspätung eingebaut.

attr Abfahrtsmonitor valueStyle { if($DEVICE =~ "HBF_*" && $READING =~ "departure_delay_?" && $VALUE == "+0" ) { 'style="color:green"' }elsif ( $DEVICE =~ "HBF_*" && $READING =~ "departure_delay_?" && $VALUE != "+0") { 'style="color:red"'} }

wie bekomme ich diesen valueStyle aber nun in html implementiert, so dass ich bei Verspätungen die Farbe ändere bzw. ich bestimmte Texte, die über das Reading kommen (Aktuelle Alternative) in einen kürzeren Text umwandeln kann ?

Gruss, Sven