Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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
    252

  • 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)

Scheduled Pinned Locked Moved ioBroker Allgemein
simple-api
7 Posts 2 Posters 461 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • binaryaddictB Offline
    binaryaddictB Offline
    binaryaddict
    wrote on last edited by 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 Reply Last reply
    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
      wrote on last edited by 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 Reply Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by
            #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 Reply Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by
                #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 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

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

                550

                Online

                32.7k

                Users

                82.5k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe