Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Bahnalarm/Bahnmonitor - Mein erster eigener Adapter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Bahnalarm/Bahnmonitor - Mein erster eigener Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
14 Beiträge 6 Kommentatoren 3.5k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • htreckslerH Offline
    htreckslerH Offline
    htrecksler
    Forum Testing
    schrieb am zuletzt editiert von
    #1

    115_bahnalarm_vis.gif Nach langer "rumprobiererei" und vielen, teilweise verzweifelten "Try & error" Versuchen kann ich heute (nicht ganz ohne Stolz) meinen ersten eigenen Adapter vorstellen.

    Langzeittests hat er noch nicht durchlaufen, aber die ersten Ergebnisse stimmen mich positiv.

    Aber nun ein wenig zur Motivation und zu der Funktionalität des Adapters.

    Eines noch vorab, geplant war einen Adapter "myhouse" zu entwickeln, daher auch der Adaptername. Als eine von mehreren Funktionalitäten sollte darin auch der Bahnalarm/Bahnmonitor enthalten sein. Weiter waren/sind eine Heizungsteuerung, Rollladensteuerung, Lichtsteuerung und Anbindung Bose Soundtouch geplant. Mal sehen ob ich mich dazu noch aufraffen kann.

    <u>Motivation</u>

    Meine Frau und ich sind Bahnpendler. Wir Pendeln täglich mit der Deutschen Bahn zur Arbeit und nutzen dabei in aller Regel morgens immer die gleiche Verbindung.

    Da die Bahn zwar in der Regel pünktlich ist, es aber nichts blöderes gibt als morgens am Bahnsteig zu stehen und die Durchsage zu hören "Der Zug fährt heute vorraussichtlich 10 Minuten später",

    Wir nutzen seit einigen Jahren die App DB Navigator auf einem Androiden. Vor kurzen fühlte sich die Bahn aber befleissigt Ihre App zu modernisieren und hat bei der Gelegenheit gleich mal das schöne Widget "gekillt" (wer weiß, vielleicht kommt es ja noch mal wieder).

    Der erste Schritt war ein Javascript welches morgens die aktuelle Verspätung für eben diese eine Verbindung ermittelt und auch dem Tablet angezeigt hat. Da ich gerne "probiere" habe ich mir gedacht, ein guter Anlass einen eigenen Adapter zu beginnen.

    <u>Was soll der Bahnalarm können?</u>

    Der große Vorteil eines Adapters gegenüber eines Scripts sind die Möglichkeiten der Einstellung über die Adapterkonfiguration.

    Es sollen möglichst die kommenden 3 Verbindungen mit den jeweiligen Verspätungen ermittelt werden. Diese Werte sollen in eigenen Datenpunkten abgelegt und somit über VIS zu visualisieren sein.

    Es soll eine Standardverbindung "markierbar" sein.

    Die erforderlichen Parameter sollen einstellbar und jederzeit an zentraler Stelle änderbar sein.

    Der Aktualisierungsintervall soll einstellbar sein.

    Es soll über VIS zu starten und zu stoppen sein.

    kurzfristige Ermittlung soll jederzeit (auch bei nicht laufenden Adapter) möglich sein.

    <u>Welche Einstellungen/Konfiguration ist vorhanden?</u>

    Da die Ermittlung über das Parsen einer Webseite realisiert werden musste (eine API der deutschen Bahn gibt es meines Wissens nicht) müssen die Parameter zum "Zusammenbau" der URL einstellbar sein. Dafür gibt es in der Konfig 4 Parameterfelder.

    Weiter soll generell einstellbar sein ob der Adapter "aktiv" ist. (Wobei "aktiv" bedeutet, dass Werte ermittelt werden) der Adapter selber muss immer laufen.

    Der Startbahnhof und der Zielbahnhof ist zu hinterlegen und kann jederzeit in der Adapterkonfig geändert werden.

    Eine "Standardverbindung" (meine reguläre Verbindung um morgens zur Arbeit zu gelangen) ist zu hinterlegen.

    Der Updateinterval (wie oft werden die Werte geholt) ist einstellbar.

    <u>Welche Datenpunkte werden ermittelt?</u>

    Abfahrt 1-3 (also die nächsten 3 fahrplanmäßigen Abfahrtszeiten im Format [hh:mm]

    Ankunft 1-3 (ebenfalls im Format [hh:mm]

    Verspätung 1-3 (normale Verspätung < 5 Minuten als Text z. B. [+3] oder [+0]

    Verspätung viel 1-3 (alles was über 5 Minuten hinaus geht)

    Verspätung der "Standardverbindung" (wenn diese in den 3 Zeiten enthalten ist)

    und noch ein paar technische Datenpunkte die zur Aktualisierung bzw. Initialisierung benötigt werden.

    <u>Was ist noch offen/geplant?</u>

    Die Index.html muss noch "aufgehübscht" werden. Derzeit ist sie lieblos "zusammengezimmert" was auch meinen mangelnden HTML-Fähigkeiten geschuldet ist.

    Einbau der Möglichkeit den Adapter zu einer bestimmten Uhrzeit zu aktivieren (also das Daten sammeln beginnen - laufen muss der Adapter immer) und zu deaktivieren. (z. B. Starte morgens um 06:00 Uhr bis 07:00 Uhr, danach schalte dich wieder inaktiv)

    usw… mir wird schon noch was einfallen.

    Wie gesagt. es handelt sich um einen lokalen Adapter. Um die Veröffentlichung muss ich mich noch kümmern, da fehlt mir noch jegliche Kenntnis und da werde ich auch sicher noch Hilfe von dem ein oder anderen benötigen.

    Wie gesagt, eigentlich war das ganze als Spielerei angefangen, einfach mal probieren wie einfach das entwickeln eines Adapters ist.

    Fazit: Ja, es ist einfach wenn man (gerade als Anfänger) viel Zeit hat und sich nicht scheut zu probieren (und zu klauen).

    Edit: Das schwierigste an der ganzen Javascript-Entwicklerei sind die dusseligen asychronen Programmdurchläufe. Da hol ich mir mühseelig die Daten zusammen nur um dann festzustellen das der Code schon mal weitergelaufen ist und ihm irgendwann auffällt: Ups, ich hab ja meine Daten unterwegs vergessen - da lass ich den Adapter doch gleich mal mit Code 8 abstürzen und ich schweiß ein unmotiviertes "undefined" ins log. Das hat mich die meiste Zeit gekostet. Und dann versuch mal mit der dusseligen Forumssuche was passendes zu finden. Zum Glück hatte ruhr70 die gleichen Probleme :D :D

    Gruss Hermann

    ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Herzlichen Glückwunsch zum eigenen Adapter. Das motiviert mich, vielleicht doch selbst mal einen ganz einfachen zu basteln.

      Mit ist nur aufgefallen, dass deine ID zum Teil Leerzeichen enthalten. Das würde ich in unterstriche ändern.

      Gruß

      Pix

      Gesendet von meinem iPhone mit Tapatalk

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        Wow!!!

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

          Super!

          1 Antwort Letzte Antwort
          0
          • htreckslerH Offline
            htreckslerH Offline
            htrecksler
            Forum Testing
            schrieb am zuletzt editiert von
            #5

            > Mit ist nur aufgefallen, dass deine ID zum Teil Leerzeichen enthalten. Das würde ich in unterstriche ändern.

            Spricht da wirklich etwas dagegen? Dann ersetze ich natürlich, aber selbst in Windows dürfen Ordner und Dateinamen jetzt Blank enthalten.
            4746_x1.jpg

            Gruss Hermann

            ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

            1 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #6

              @htrecksler:

              > Mit ist nur aufgefallen, dass deine ID zum Teil Leerzeichen enthalten. Das würde ich in unterstriche ändern.

              Spricht da wirklich etwas dagegen? Dann ersetze ich natürlich, aber selbst in Windows dürfen Ordner und Dateinamen jetzt Blank enthalten. `
              Ich würde auch empfehlen Lehrzeichen zu entfernen.

              Windows ist nämlich mehr als 20 Jahre alt. Nach 19 Jahre wird ioBroker auch Lehrzeichen unterstützen. :lol:
              1187_iobroker.2018-01-08.log
              1187_iobroker.2018-01-07.log

              1 Antwort Letzte Antwort
              0
              • P Offline
                P Offline
                pix
                schrieb am zuletzt editiert von
                #7

                Ich dachte da an Url-Aufrufe. Man weiß ja nie, wan man das mal braucht.

                Gesendet von meinem iPhone mit Tapatalk

                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                1 Antwort Letzte Antwort
                0
                • htreckslerH Offline
                  htreckslerH Offline
                  htrecksler
                  Forum Testing
                  schrieb am zuletzt editiert von
                  #8

                  Dann mache ich mich mal wieder an die Arbeit.

                  Eine generelle Frage hätte ich aber noch.

                  Eigentlich sollte das ja ein Adapter mit mehreren Funktionen werden (Heizungssteuerung, Licht, Bose etc.)

                  Macht es Sinn das in einem Adapter abzubilden oder lieber für jede Funktion einen.

                  Nachteil bei nur einem Adapter, wenn der mal steht, dann steht alles.

                  Ich weiß aber nicht wie belastend ein Adapter für den Rechner ist.

                  Vielleicht hat jemand einen Tipp?

                  Gruss Hermann

                  ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                  1 Antwort Letzte Antwort
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    schrieb am zuletzt editiert von
                    #9

                    Für jedes eigenständige Thema sollte meiner Meinung nach ein eigener Adapter geschrieben werden.

                    Adapter: Fritzbox, Unify Circuit
                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                    1 Antwort Letzte Antwort
                    0
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #10

                      Die Idee von iobroker ist eben, dass für jeden Adapter ein eigener Prozess läuft. Vorteil ist, dass alle anderen weiterlaufen, wenn es mit einem Probleme gibt.

                      HQ hat irgendwo mal erwähnt, wie groß so ein footprint eines Adapters in etwa ist.

                      Der limitierende Faktor wird dann auch irgendwann das RAM.

                      Ich hatte bei der Bezeichnung myhome schon geahnt, dass da mehr geplant ist.

                      Aber was spricht dagegen mehrere Adapter zu bauen? Allein wegen der Übersicht für die Funktionen.

                      So benötige ich z.b. keine Bahn info, habe Fußbodenheizung und besitze kein Bose. Aber ein Licht-Adapter (wofür auch immer) wäre vielleicht etwas. Bei anderen kann das Ähnlichkeit aber mit anderen Prioritäten sein.

                      Gruß

                      Rainer

                      Gesendet von meinem LIFETAB_S785X mit Tapatalk

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      0
                      • htreckslerH Offline
                        htreckslerH Offline
                        htrecksler
                        Forum Testing
                        schrieb am zuletzt editiert von
                        #11

                        meine Tendenz geht auch zu einzelnen Adaptern.

                        Ich glaube, ich mache diesen neu und benenne ihn dabei um. Dann kann ich mich auch gleich an die Änderung der ID's machen.

                        Dann kann ich ja mal schauen wie sich die Last auf dem System verändert wenn ich einzelne Adapter zuschalte.

                        Eine Frage hab ich allerdings doch noch:

                        Wenn ich mir die Konfigurationsseite des Beispieladapters ansehe, so sind da die Felder Test1 und Test2 mit Werten vorbelegt. Wo sind diese Daten gespeichert? Zunächst hatte ich die io.package.json im Verdacht. Die hab ich dann um meine Felder erweitert und Vorgabewerte eingetragen, aber das führte nicht zum Erfolg.

                        Gruss Hermann

                        ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                        1 Antwort Letzte Antwort
                        0
                        • BluefoxB Offline
                          BluefoxB Offline
                          Bluefox
                          schrieb am zuletzt editiert von
                          #12

                          @htrecksler:

                          meine Tendenz geht auch zu einzelnen Adaptern.

                          Ich glaube, ich mache diesen neu und benenne ihn dabei um. Dann kann ich mich auch gleich an die Änderung der ID's machen.

                          Dann kann ich ja mal schauen wie sich die Last auf dem System verändert wenn ich einzelne Adapter zuschalte.

                          Eine Frage hab ich allerdings doch noch:

                          Wenn ich mir die Konfigurationsseite des Beispieladapters ansehe, so sind da die Felder Test1 und Test2 mit Werten vorbelegt. Wo sind diese Daten gespeichert? Zunächst hatte ich die io.package.json im Verdacht. Die hab ich dann um meine Felder erweitert und Vorgabewerte eingetragen, aber das führte nicht zum Erfolg. `
                          Ich wollte auch schreiben, dass 5 einzelne Adapter ist besser als ein globaler.

                          Aber die Leute haben das hier schon längst sich geäußert.

                          1 Antwort Letzte Antwort
                          0
                          • BluefoxB Offline
                            BluefoxB Offline
                            Bluefox
                            schrieb am zuletzt editiert von
                            #13

                            > Wenn ich mir die Konfigurationsseite des Beispieladapters ansehe, so sind da die Felder Test1 und Test2 mit Werten vorbelegt. Wo sind diese Daten gespeichert? Zunächst hatte ich die io.package.json im Verdacht. Die hab ich dann um meine Felder erweitert und Vorgabewerte eingetragen, aber das führte nicht zum Erfolg.
                            Die Felder sind in system.adapter.ADAPTERNAME.0 Objekt gespeichert.

                            Falls man die Adapterinstanz deinstalliert, dann sind die Datenpunkte immer noch in "system.adapter.ADAPTERNAME" (Achtung ohne 0) gespeichert.

                            Um die neue Datenpunkte hinzufügen mache ich eins von beides:

                            • "iobroker del ADAPTERNAME". Achtung Adapter wird aus node_modules/iobroker.ADAPTERNAME gelöscht. Die Änderungen können verloren gehen. Dann Adapter wieder reinkopieren und "iobroker add ADAPTERNAME" schreiben.

                            • Instanz löschen: "iobroker del ADAPTERNAME.0". Und Dann manuell das Objekt "system.adapter.ADAPTERNAME" löschen. Und "iobroker add ADAPTERNAME" schreiben.

                            1 Antwort Letzte Antwort
                            0
                            • T Offline
                              T Offline
                              thiel
                              schrieb am zuletzt editiert von
                              #14

                              Hallo :)

                              gibt es den Adapter schon zum Installieren ?

                              1 Antwort Letzte Antwort
                              0
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate
                              FAQ Cloud / IOT
                              HowTo: Node.js-Update
                              HowTo: Backup/Restore
                              Downloads
                              BLOG

                              582

                              Online

                              32.7k

                              Benutzer

                              82.4k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe