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. Günstigste Architektur Simple API (hochfrequente Requests)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    249

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

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

Günstigste Architektur Simple API (hochfrequente Requests)

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
simple-api
7 Beiträge 2 Kommentatoren 461 Aufrufe 2 Watching
  • Ä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.
  • binaryaddictB Offline
    binaryaddictB Offline
    binaryaddict
    schrieb am zuletzt editiert von binaryaddict
    #1

    Servus zusammen,

    Ich habe mir ein Webfrontent gebaut, mit dem ich den Status verschiedener Gewerke aufbereite. Aktuell frage ich asynchron (je nach Gewerk zwischen 1 - 5 Sekunden) verschiedene Datenpunkt-Gruppen (ganze Datenpunkte via pattern) ab. Das Frontent selber läuft auf meinem Webserver und ist mit PHP umgesetzt. Der Webserver schickt Requests an meinen Pi im Heimnetz. Das lässt meinen Pi manchmal recht heiß laufen, wenn ich gerade entsprechend große Gewerke anzeige die jede Sekunde aktualisiert werden.

    Ich würde das gern ein wenig optimieren, und habe aktuell zwei Ideen:

    Alternative 1: Ich überwache per Blockly-Script jede relevante Datenpunkt-Gruppe und schreibe bei einer Änderung ein Flag. Nun würde ich in meiner Frequenz nur das Flag lesen, und ggf. bei Änderung die Datenpunkte wie gehabt.

    Alternative 2: Ich frage nicht mehr ganze Datenpunkte ab, sondern nur noch Plain-Values mit expliziten Datenpunkt-Bezeichnern. Damit müsste ich die Konfiguration und Logik auf dem Webserver etwas aufblähen, aber dieser ist potenter als der Pi.

    Welche Ansätze habt Ihr für die Simple API umgesetzt, bzw. welche Ansätze fallen Euch ein? Kann jemand von Euch meine beiden Alternativen bewerten, welche sinniger bzw. performanter und Pi-schonender ist?

    Besten Dank im Voraus.

    AlCalzoneA 1 Antwort Letzte Antwort
    0
    • binaryaddictB binaryaddict

      Servus zusammen,

      Ich habe mir ein Webfrontent gebaut, mit dem ich den Status verschiedener Gewerke aufbereite. Aktuell frage ich asynchron (je nach Gewerk zwischen 1 - 5 Sekunden) verschiedene Datenpunkt-Gruppen (ganze Datenpunkte via pattern) ab. Das Frontent selber läuft auf meinem Webserver und ist mit PHP umgesetzt. Der Webserver schickt Requests an meinen Pi im Heimnetz. Das lässt meinen Pi manchmal recht heiß laufen, wenn ich gerade entsprechend große Gewerke anzeige die jede Sekunde aktualisiert werden.

      Ich würde das gern ein wenig optimieren, und habe aktuell zwei Ideen:

      Alternative 1: Ich überwache per Blockly-Script jede relevante Datenpunkt-Gruppe und schreibe bei einer Änderung ein Flag. Nun würde ich in meiner Frequenz nur das Flag lesen, und ggf. bei Änderung die Datenpunkte wie gehabt.

      Alternative 2: Ich frage nicht mehr ganze Datenpunkte ab, sondern nur noch Plain-Values mit expliziten Datenpunkt-Bezeichnern. Damit müsste ich die Konfiguration und Logik auf dem Webserver etwas aufblähen, aber dieser ist potenter als der Pi.

      Welche Ansätze habt Ihr für die Simple API umgesetzt, bzw. welche Ansätze fallen Euch ein? Kann jemand von Euch meine beiden Alternativen bewerten, welche sinniger bzw. performanter und Pi-schonender ist?

      Besten Dank im Voraus.

      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von AlCalzone
      #2

      @binaryaddict Sinnvoller wäre eine dauerhafte Verbindung basierend auf socket.io, wo nicht (unnötig) gepollt wird. Da kannst du auf mehrere Patterns subscriben, eingangs einmal die Werte lesen, und dir bei Änderungen die neuen Werte schicken lassen (so wie in ioBroker Skripten auch).

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      binaryaddictB 1 Antwort Letzte Antwort
      0
      • AlCalzoneA AlCalzone

        @binaryaddict Sinnvoller wäre eine dauerhafte Verbindung basierend auf socket.io, wo nicht (unnötig) gepollt wird. Da kannst du auf mehrere Patterns subscriben, eingangs einmal die Werte lesen, und dir bei Änderungen die neuen Werte schicken lassen (so wie in ioBroker Skripten auch).

        binaryaddictB Offline
        binaryaddictB Offline
        binaryaddict
        schrieb am zuletzt editiert von
        #3

        @alcalzone said in Günstigste Architektur Simple API (hochfrequente Requests):

        @binaryaddict Sinnvoller wäre eine dauerhafte Verbindung basierend auf socket.io, wo nicht (unnötig) gepollt wird. Da kannst du auf mehrere Patterns subscriben, eingangs einmal die Werte lesen, und dir bei Änderungen die neuen Werte schicken lassen (so wie in ioBroker Skripten auch).

        Danke für den Tipp. Hast Du hierzu ein paar weiterführende Links auf etwaige Referenzimplementierungen zur Hand? Was muss ich ioBroker-seitig tun, um eine eingehende Verbindung bereitzustellen? socket.io scheint kein eigenständiger Adapter zu sein. Steht der Serverteil ioBroker-seitig von Haus aus zur Verfügung?

        AlCalzoneA 1 Antwort Letzte Antwort
        0
        • binaryaddictB binaryaddict

          @alcalzone said in Günstigste Architektur Simple API (hochfrequente Requests):

          @binaryaddict Sinnvoller wäre eine dauerhafte Verbindung basierend auf socket.io, wo nicht (unnötig) gepollt wird. Da kannst du auf mehrere Patterns subscriben, eingangs einmal die Werte lesen, und dir bei Änderungen die neuen Werte schicken lassen (so wie in ioBroker Skripten auch).

          Danke für den Tipp. Hast Du hierzu ein paar weiterführende Links auf etwaige Referenzimplementierungen zur Hand? Was muss ich ioBroker-seitig tun, um eine eingehende Verbindung bereitzustellen? socket.io scheint kein eigenständiger Adapter zu sein. Steht der Serverteil ioBroker-seitig von Haus aus zur Verfügung?

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          @binaryaddict sagte in Günstigste Architektur Simple API (hochfrequente Requests):

          socket.io scheint kein eigenständiger Adapter zu sein

          Doch, klick mal auf den Link in meinem vorherigen Post :)
          Alternativ hat der web-Adapter auch socket.io an Bord.

          Zur Referenzimplementierung könnte folgender Thread etwas helfen:
          https://forum.iobroker.net/topic/52798/solved-benutze-socket-io-adapter-in-react-app

          Mit PHP ist das allerdings etwas komplizierter, da wirst du nicht umhin kommen, https://github.com/ioBroker/socket-client/ mehr oder weniger zu portieren. Der interessante Teil steckt in Connection.ts, wo die Methoden zum Datenzugriff implementiert sind.

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          binaryaddictB 1 Antwort Letzte Antwort
          1
          • AlCalzoneA AlCalzone

            @binaryaddict sagte in Günstigste Architektur Simple API (hochfrequente Requests):

            socket.io scheint kein eigenständiger Adapter zu sein

            Doch, klick mal auf den Link in meinem vorherigen Post :)
            Alternativ hat der web-Adapter auch socket.io an Bord.

            Zur Referenzimplementierung könnte folgender Thread etwas helfen:
            https://forum.iobroker.net/topic/52798/solved-benutze-socket-io-adapter-in-react-app

            Mit PHP ist das allerdings etwas komplizierter, da wirst du nicht umhin kommen, https://github.com/ioBroker/socket-client/ mehr oder weniger zu portieren. Der interessante Teil steckt in Connection.ts, wo die Methoden zum Datenzugriff implementiert sind.

            binaryaddictB Offline
            binaryaddictB Offline
            binaryaddict
            schrieb am zuletzt editiert von
            #5

            @alcalzone said in Günstigste Architektur Simple API (hochfrequente Requests):

            @binaryaddict sagte in Günstigste Architektur Simple API (hochfrequente Requests):

            socket.io scheint kein eigenständiger Adapter zu sein

            Doch, klick mal auf den Link in meinem vorherigen Post :)
            Alternativ hat der web-Adapter auch socket.io an Bord.

            Zur Referenzimplementierung könnte folgender Thread etwas helfen:
            https://forum.iobroker.net/topic/52798/solved-benutze-socket-io-adapter-in-react-app

            Mit PHP ist das allerdings etwas komplizierter, da wirst du nicht umhin kommen, https://github.com/ioBroker/socket-client/ mehr oder weniger zu portieren. Der interessante Teil steckt in Connection.ts, wo die Methoden zum Datenzugriff implementiert sind.

            Den hab ich mir schon angeschaut. Ich war verwirrt, weil ich socket.io bei den Adaptern zwar mit der Suche finde, jedoch nicht installieren kann. Installiert scheint er aber auch nicht zu sein, zumindest seh ich ihn nicht bei meinen Instanzen.

            Mit einer Beispieldatei konnte ich schon eine Verbindung herstellen (die läuft scheinbar über den web-Adapter). Da gibt es aber noch vieeeeele Feinheiten zu erforschen :D Beispielsweise ist mir aktuell noch rätselhaft, wie man das vernünftig absichert. Weil ich letztenendes JS mit der Config und Authentifizierung ausliefern muss, die ja im Klartext lesbar ist. Aber ich wühl mich mal durch.

            Besten Dank für die weiteren Links!

            AlCalzoneA 1 Antwort Letzte Antwort
            0
            • binaryaddictB binaryaddict

              @alcalzone said in Günstigste Architektur Simple API (hochfrequente Requests):

              @binaryaddict sagte in Günstigste Architektur Simple API (hochfrequente Requests):

              socket.io scheint kein eigenständiger Adapter zu sein

              Doch, klick mal auf den Link in meinem vorherigen Post :)
              Alternativ hat der web-Adapter auch socket.io an Bord.

              Zur Referenzimplementierung könnte folgender Thread etwas helfen:
              https://forum.iobroker.net/topic/52798/solved-benutze-socket-io-adapter-in-react-app

              Mit PHP ist das allerdings etwas komplizierter, da wirst du nicht umhin kommen, https://github.com/ioBroker/socket-client/ mehr oder weniger zu portieren. Der interessante Teil steckt in Connection.ts, wo die Methoden zum Datenzugriff implementiert sind.

              Den hab ich mir schon angeschaut. Ich war verwirrt, weil ich socket.io bei den Adaptern zwar mit der Suche finde, jedoch nicht installieren kann. Installiert scheint er aber auch nicht zu sein, zumindest seh ich ihn nicht bei meinen Instanzen.

              Mit einer Beispieldatei konnte ich schon eine Verbindung herstellen (die läuft scheinbar über den web-Adapter). Da gibt es aber noch vieeeeele Feinheiten zu erforschen :D Beispielsweise ist mir aktuell noch rätselhaft, wie man das vernünftig absichert. Weil ich letztenendes JS mit der Config und Authentifizierung ausliefern muss, die ja im Klartext lesbar ist. Aber ich wühl mich mal durch.

              Besten Dank für die weiteren Links!

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #6

              @binaryaddict sagte in Günstigste Architektur Simple API (hochfrequente Requests):

              jedoch nicht installieren kann. Installiert scheint er aber auch nicht zu sein, zumindest seh ich ihn nicht bei meinen Instanzen.

              Ggf. musst du einfach nur eine Instanz hinzufügen? https://www.iobroker.net/#en/documentation/tutorial/adapter.md?creationofaninstanceofanadapter

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              binaryaddictB 1 Antwort Letzte Antwort
              0
              • AlCalzoneA AlCalzone

                @binaryaddict sagte in Günstigste Architektur Simple API (hochfrequente Requests):

                jedoch nicht installieren kann. Installiert scheint er aber auch nicht zu sein, zumindest seh ich ihn nicht bei meinen Instanzen.

                Ggf. musst du einfach nur eine Instanz hinzufügen? https://www.iobroker.net/#en/documentation/tutorial/adapter.md?creationofaninstanceofanadapter

                binaryaddictB Offline
                binaryaddictB Offline
                binaryaddict
                schrieb am zuletzt editiert von
                #7

                @alcalzone said in Günstigste Architektur Simple API (hochfrequente Requests):

                @binaryaddict sagte in Günstigste Architektur Simple API (hochfrequente Requests):

                jedoch nicht installieren kann. Installiert scheint er aber auch nicht zu sein, zumindest seh ich ihn nicht bei meinen Instanzen.

                Ggf. musst du einfach nur eine Instanz hinzufügen? https://www.iobroker.net/#en/documentation/tutorial/adapter.md?creationofaninstanceofanadapter

                Oh mann, da scheint mein Hirn noch nicht mitaufgestanden zu sein. Oder es hat sich noch nicht an die neue Oberfläche gewöhnt :face_palm:
                Danke für Deine Geduld - nu hab ich eine Instanz. Wobei wahrscheinlich die größere Herausforderung sein wird die Schnittstelle entsprechend zu implementieren.

                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

                445

                Online

                32.7k

                Benutzer

                82.5k

                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