NEWS
#Stauerkennung #DieAutobahn
-
Hallo Zusammen,
als ich heute morgen im Stau stand habe ich mich natürlich wieder geärgert!
Ich habe einige Adapter mit verschiedenen API-Keys getestet und manche laufen dann aus und geht wieder nichts mehr.
Dann habe ich mich selber daran gemacht ein Script zu entwickeln. Einen Adapter schreiben kann ich nicht, Respekt an alle die das können.
Aber ich kann mein Script zur Verfügung stellen!
Dabei nehme ich die von uns allen bezahlten und bereitgestellten Daten und vergleiche die Koordinaten der Verkehrsmeldungen mit einem angegeben Bereich.Wenn Jemand daraus einen Adapter machen kann wäre das natürlich super!
Auch eine Erweiterung auf mehrere Bereiche ist leicht umzusetzenHier die Anleitung der Autobahn App API
In meinem Script müsst Ihr unter der Konfiguration:
-
Eure Autobahn angeben (Im Beispiel A45)
-
Eure Telegram instanz angeben (Im Beispiel telegram.0)
-
Eure ChatID angeben (Platzhalter im Script 123456789)
-
Ein Koordinatenrechteck als zu überwachten Bereich erstellen:
** minLat: 50.6181514, // unten
** maxLat: 51.3742993, // oben (bis Lüdenscheid)
** minLon: 7.2582769, // links (bis Hagen/Dortmund)
** maxLon: 8.3822071 // rechts -
Im Aktuellen noch die Zeitfenster definieren
Wenn es geht nutzt bitte die aktuelle Version!
Ein erster Test ging gut, nun zerreißt mein Script in der Luft oder Verbessert es!
Viel Spaß und danke an alle die das Projekt "IOBroker" am Leben halten!
Tante Edit:
Code eingefügt
Beispiellink eingefügt:
https://verkehr.autobahn.de/o/autobahn/A45/services/warning -
-
Auf den ersten Blick wird da nur eine Autobahn berücksichtigt und der Scheduler sind keine 15 Minuten.
Ich lasse mich immer von Google Navigieren, auch, wenn ich die Strecke kenne. Da fließen aktuellere Daten als vom Bund ein. Inkl. Empfehlung drauf bleiben, oder abfahren.
-
Stimmt, der Timer stand noch zum testen auf einer Minute, ist korrigiert. Danke für den Hinwies!
Es wird nicht eine Autobahn überwacht! Es wird sogar nur ein Abschnitt überwacht, das ist noch weniger!
Es steht ja auch da, dass man es leicht erweitern kann, daher verstehe ich die Kritik nicht. Zumindest kommt diese bei mir nicht an.
Wenn ich für den weg zur Arbeit und nach hause gesamt eine Minute meine Route in Maps einstelle sind das über drei h pro Jahr. Und daran denken muss ich auch noch!
Praktischer ist es da schon wenn man einfach eine Nachricht bekommt.Aber wenn ein Navi besser zu deiner Routine passt musst du das Script nicht nutzen.
-
-
Hallo,
vielen Dank für deine Mühe.
Habs zum Testen mal eingerichtet.
Als erstes fällt mir auf, dass ich lieber eine definierten DP mit den Infos beschreiben will.
Hintergrund ist bspw. dass ich mir morgens per Alexa Routine die Verkehrssituation ansagen lasse und dafür einen DP brauche. -
Dann ergänzen, welche Infos da rein sollen weiß ich nicht.
Grundsätzlich zum Triggern per Datenpunkt:
-
Dann ergänzen, welche Infos da rein sollen weiß ich nicht.
Grundsätzlich zum Triggern per Datenpunkt:
Das ist eine gute Idee! Ich habe das mal versucht umzusetzen und noch Schalter eingebaut falls einer einen teil des Scripts nicht benötigt:
Da ich keine Alexa habe kann ich es nicht testen! Somit muss das von jemand anderem verfeinert werden ;-)
Damit die Alexa direkt vorlesen kann ist es ein einfacher Text.
Hier ein Beispieltext Mit zwei Meldungen in einem Bereich:
-
Ich habe noch nie ein if() vor ein on() gesetzt. Immer erst das on() und dann if(), wenn nötig. Den Datenpunkt legt man immer an, bzw. wird der einmalig angelegt, wenn es ihn noch nicht gibt. Ich sehe da noch mehr Optimierungsmöglichkeiten.
-
Ich habe noch nie ein if() vor ein on() gesetzt. Immer erst das on() und dann if(), wenn nötig. Den Datenpunkt legt man immer an, bzw. wird der einmalig angelegt, wenn es ihn noch nicht gibt. Ich sehe da noch mehr Optimierungsmöglichkeiten.
Wenn es dir nichts aus macht dann poste den verbesserten Code einfach!
Für mich reicht ja die Warnung! Ich finde toll dass du dir das so genau anschaust!Falls das Script, oder ein Teil davon, nur einem hilft haben wir alles richtig gemacht also:
Immer her mit den "Optimierungsmöglichkeiten"! -
Ich habe mal ChatGPT und Gemini gebeten, den Code zu optimieren. Die haben zwar hier und da was verbessert, die beiden if() an der falschen Stelle jedoch auch nicht korrigiert.
Somit warten, bis ich am größeren Rechner sitze, jemand anderes mir zuvorkommt, oder selbst noch mal kritisch drüberschauen und korrigieren.
-
Ich habe mal ChatGPT und Gemini gebeten, den Code zu optimieren. Die haben zwar hier und da was verbessert, die beiden if() an der falschen Stelle jedoch auch nicht korrigiert.
Somit warten, bis ich am größeren Rechner sitze, jemand anderes mir zuvorkommt, oder selbst noch mal kritisch drüberschauen und korrigieren.
Der Gedanke ist:
Der Listener "on()" wird nur angelegt, wenn die Bedingung erfüllt ist.
Das heißt: wenn alexaEnabled oder verkehrsstoerungDP auf 0 stehen, existiert der Trigger gar nicht.
Also keine unnötigen Listener im System.
Falls jemand später die Schalter im laufenden Betrieb ändert, wird der Trigger nicht automatisch neu angelegt, weil das if nur beim Start des Skripts ausgewertet wird. Das macht doch kaum einer, oder?Andere Variante:
on({id: idDatenpunkt, change:'any'}, function (dp) { if (alexaEnabled === 1 && verkehrsstoerungDP === 1) { console.log("Alexa Verkehrsroutine aufgerufen"); checkTraffic(); } });Hier wird der Listener immer angelegt, aber er macht nur etwas, wenn die Schalter aktiv sind.
flexibler, weil man die Schalter auch zur Laufzeit ändern kann.
Aber es hängt immer ein Listener am Datenpunkt, auch wenn du ihn eigentlich gar nicht brauchst.Meintest du das?
-
Wenn der Datenpunkt nicht benötigt wird (const verkehrsstoerungDP = 0), wird er nicht angelegt. Ansonsten läge ein toter Datenpunkt herum.
Mir war nicht bewusst was es für Regeln gibt! Bisher war ich der Auffassung: Wer trifft hat recht!
Aber wie gesagt: einfach ändern und posten, dann kann jeder das für sich passende raus suchen und man hat eine Versionierung nach Datum.
Frei nach dem Motto: "Teste mal das script aus Antwort #8!" -
Vielen Dank für die Ergänzugen.
Das mit Alexa war nur ein Besispiel. Der Datenpunkt und die Kommentare im Script sollen keinen Alexa Bezug haben. Ein selbst wählbarer DP der als Wert die Staumeldungen für meinen definierten Bereich enthält reich völlig. Damit kann ich dann umgehen und würde auch die Telegram Integration im JS Adapter erledigen.Ich weiß nicht welche infos in den DP sollen. Seit Testbeginn hatte ich wohl noch keine Störung auf der gewählten AB im gewählten Bereich.
Logmeldungen erscheinen schonmal:javascript.0 2025-12-18 21:00:00.174 info script.js.aaa_Staumelder: Keine Warnungen im definierten Bereich auf A4 javascript.0 2025-12-18 21:00:00.174 info script.js.aaa_Staumelder: Warnung: A4 | Görlitz - Görlitz | Koordinate: 51.19872170096459, 14.960901000619456 | HitsArea: false javascript.0 2025-12-18 21:00:00.174 info script.js.aaa_Staumelder: Warnung: A4 | Kodersdorf - Ludwigsdorf | Koordinate: 51.19872170096459, 14.960901000619456 | HitsArea: false javascript.0 2025-12-18 21:00:00.173 info script.js.aaa_Staumelder: Warnung: A4 | Königshainer Berge - Königshainer Berge | Koordinate: 51.203233847771706, 14.759957057504197 | HitsArea: false javascript.0 2025-12-18 21:00:00.173 info script.js.aaa_Staumelder: Warnung: A4 | Nieder Seifersdorf - Königshainer Berge | Koordinate: 51.2032281716645, 14.760124784338583 | HitsArea: false javascript.0 2025-12-18 21:00:00.172 info script.js.aaa_Staumelder: Warnung: A4 | Willrodaer Forst - Erfurt-Vieselbach | Koordinate: 50.925375315043865, 11.136412592086435 | HitsArea: false javascript.0 2025-12-18 21:00:00.170 info script.js.aaa_Staumelder: Warnung: A4 | Bad Hersfeld - Friedewald | Koordinate: 50.85349478866353, 9.722682387354707 | HitsArea: false javascript.0 2025-12-18 21:00:00.028 info script.js.aaa_Staumelder: Hole Daten von:Sieht plausiebel aus.
Sind die Logdaten alle die verfügbar sind? Interessant wäre die Verzögerung durch das jeweilige Ereignis und evtl. dass man die Richtung differenzieren kann. Hierfür wäre ein Zweiter DP oder generell die Ausgbe als JSON vorstellbar.
-
Bin ich gemeint?
-
Hallo Zusammen,
als ich heute morgen im Stau stand habe ich mich natürlich wieder geärgert!
Ich habe einige Adapter mit verschiedenen API-Keys getestet und manche laufen dann aus und geht wieder nichts mehr.
Dann habe ich mich selber daran gemacht ein Script zu entwickeln. Einen Adapter schreiben kann ich nicht, Respekt an alle die das können.
Aber ich kann mein Script zur Verfügung stellen!
Dabei nehme ich die von uns allen bezahlten und bereitgestellten Daten und vergleiche die Koordinaten der Verkehrsmeldungen mit einem angegeben Bereich.Wenn Jemand daraus einen Adapter machen kann wäre das natürlich super!
Auch eine Erweiterung auf mehrere Bereiche ist leicht umzusetzenHier die Anleitung der Autobahn App API
In meinem Script müsst Ihr unter der Konfiguration:
-
Eure Autobahn angeben (Im Beispiel A45)
-
Eure Telegram instanz angeben (Im Beispiel telegram.0)
-
Eure ChatID angeben (Platzhalter im Script 123456789)
-
Ein Koordinatenrechteck als zu überwachten Bereich erstellen:
** minLat: 50.6181514, // unten
** maxLat: 51.3742993, // oben (bis Lüdenscheid)
** minLon: 7.2582769, // links (bis Hagen/Dortmund)
** maxLon: 8.3822071 // rechts -
Im Aktuellen noch die Zeitfenster definieren
Wenn es geht nutzt bitte die aktuelle Version!
Ein erster Test ging gut, nun zerreißt mein Script in der Luft oder Verbessert es!
Viel Spaß und danke an alle die das Projekt "IOBroker" am Leben halten!
Tante Edit:
Code eingefügt
Beispiellink eingefügt:
https://verkehr.autobahn.de/o/autobahn/A45/services/warning@Hotze sagte in #Stauerkennung #DieAutobahn:
In meinem Script
Wo ist das Script ?
Oder sehe ich es nur nicht. ;-)
-