Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Entwicklung
  4. [Frage] WEB-Instanz/-Schnittstelle in eigenem Adapter?

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    11
    1
    288

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    775

[Frage] WEB-Instanz/-Schnittstelle in eigenem Adapter?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
7 Beiträge 4 Kommentatoren 1.8k 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.
  • AlCalzoneA Offline
    AlCalzoneA Offline
    AlCalzone
    Developer
    schrieb am zuletzt editiert von
    #1

    Ich habe eine NodeJS-Anwendung die einen eigenen HTTP-Server bereitstellt und so verschiedene Ansichten/Einstellungen ermöglicht. In Zukunft würde ich die gerne in einen ioBroker-Adapter migrieren, um wie in den Admin-Tabs auf SocketIO setzen zu können.

    Da gibt es ja schon ioBroker.web, das auch LetsEncrypt, integrierten SocketIO etc. unterstützt. Kann ich darauf irgendwie aufbauen mit einer Schnittstelle, sodass ich nur noch die Hintergrundlogik implementieren muss?

    Simple-API scheint das Tandem aus HTTP-Server und Extra-Logik auch irgendwie zu machen. Nur ist mir mangels Doku (oder war ich blind) nicht 100% klar, was hier an Schnittstellen existiert, und wie viel vom Server ich selbst programmieren muss.

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

    1 Antwort Letzte Antwort
    0
    • carsten04C Online
      carsten04C Online
      carsten04
      Developer
      schrieb am zuletzt editiert von
      #2

      Wenn Du schon einen http-Server laufen hast (z.B. node.js + für etwas mehr Komfort vielleicht Express), dann kannst Du den Code einfach in den Adapter (z.B. in main.js) mit aufnehmen (z.B. für eine REST-API). Wenn es Dir um bidirektionale-Kommunikation via Sockets geht, dann ist ein guter Einstieg das Beispiel beim socketio-Adapter. Den solltest Du immer laufen haben, wenn Du Änderungen von Datenpunkten Realtime mitbekommen möchtest, um diese z.B. in Deinem Web-FE immer aktuell anzuzeigen, oder wenn Du Datenpunkte selber im FE ändern möchtest, um Aktionen im iobroker auszulösen (Szenen, Skripte oder was auch immer). Welche Funktionen der Socket dann serverside zur Verfügung stellt, findest Du in der Datei:

      https://github.com/ioBroker/ioBroker.so … /socket.js

      Hier insbesondere alles was mit socket.on('… anfängt. Clientseitig kannst Du dann wie im Beispiel gezeigt conn.js einbinden. Hier sind dann schon eine ganze menge Funktionen vordefiniert, die Du nutzen kannst. Im ersten Augenblick ist die Anzahl der Funktionen ziemlich erschlagend, weswegen Du clientseitig auch ersteimal zum "reinkommen" ganz easy anfangen kannst.

      In dem Quellcode-Schnipsel habe ich mal reingeschrieben, wie Du z.B. starten könntest (verdeutlicht nur das Prinzip):

      War das in etwa das was Du wissen wolltest? Ansonsten noch einmal genauer beschreiben.

      Grüße

      Carsten

      1 Antwort Letzte Antwort
      0
      • apollon77A Offline
        apollon77A Offline
        apollon77
        schrieb am zuletzt editiert von
        #3

        Also der Simply-API-Adapter als Beispiel macht das so …

        Ich bin immer noch nicht 100% durchgestiegen, aber grob was ich gefunden habe:

        In io-package.json gibt es in "common":

                "webExtension":             "lib/simpleapi.js",
        
        

        Das verweist auf eine Klasse die die echte Logik enthält.

        Der Konstruktor bekommt einige Parameter:

        SimpleAPI(server, webSettings, adapter, instanceSettings, app) {
        

        Und der letzte ist nur gesetzt wenn das ganze im web-Adapter eingebunden ist und dafür gibts dann Sondercode der das behandelt.

        adapter.log.info('Install extension on /' + that.namespace + '/');
                    that.app.use('/' + that.namespace + '/', function (req, res, next) {
                        that.restApi.call(that, req, res);
                    });
        

        So als Ansatz vllt mal ein erster Schritt zum ausprobieren.

        Vllt kann ja @Bluefox noch was dazu sagen :-)

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

          Zuzüglich zu simple-api, kann man noch iobroker.proxy https://github.com/ioBroker/ioBroker.proxy

          anschauen.

          1 Antwort Letzte Antwort
          0
          • AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von
            #5

            @carsten04:

            War das in etwa das was Du wissen wolltest? Ansonsten noch einmal genauer beschreiben. `
            Nicht so ganz. Die einzelnen Bestandteile sind mir bekannt. Ebenfalls wollte ich vermeiden, selbst den Server zu starten und eine externe Socket.IO-Instanz zu verwenden. Mit dem Web-Adapter geht ja irgendwie alles in einem, und auch noch HTTPS.

            @apollon77:

            "webExtension":             "lib/simpleapi.js",
            ```` `  
            

            Das sorgt also dafür, dass der Web-Adapter einen HTTPS-Server für meinen Adapter bereitstellt? Muss ich noch irgendwas für die socketio-Instanz machen?

            @Bluefox:

            iobroker.proxy https://github.com/ioBroker/ioBroker.proxy

            anschauen. `
            Danke, da schau ich mal rein.

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

            1 Antwort Letzte Antwort
            0
            • apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #6

              Das zusammen mit dem genannten Code gibt an unter welcher URL dann dein Code erreichbar ist (Route ) und gibt den request weiter. So habe ich es verstanden.

              Eigentlich schreibe das nach nem "Web Extension Adapter Template" ;-)

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              1 Antwort Letzte Antwort
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                schrieb am zuletzt editiert von
                #7

                @AlCalzone:

                @carsten04:

                War das in etwa das was Du wissen wolltest? Ansonsten noch einmal genauer beschreiben. `
                Nicht so ganz. Die einzelnen Bestandteile sind mir bekannt. Ebenfalls wollte ich vermeiden, selbst den Server zu starten und eine externe Socket.IO-Instanz zu verwenden. Mit dem Web-Adapter geht ja irgendwie alles in einem, und auch noch HTTPS.

                @apollon77:

                "webExtension":             "lib/simpleapi.js",
                ```` `  
                

                Das sorgt also dafür, dass der Web-Adapter einen HTTPS-Server für meinen Adapter bereitstellt? Muss ich noch irgendwas für die socketio-Instanz machen?

                @Bluefox:

                iobroker.proxy https://github.com/ioBroker/ioBroker.proxy

                anschauen. Danke, da schau ich mal rein.
                Socket.io ist schon da. Allerdings es werden natürlich nur die Befehle unterstützt die schon vorprogrammiert sind. Aber falls irgendwas fehlt, das kann man nachbauen.

                1 Antwort Letzte Antwort
                0

                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                Registrieren Anmelden
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                525

                Online

                32.9k

                Benutzer

                83.0k

                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