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. Visualisierung
  4. eigene Visualisierung per socket.io

NEWS

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

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

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

eigene Visualisierung per socket.io

Geplant Angeheftet Gesperrt Verschoben Visualisierung
9 Beiträge 2 Kommentatoren 991 Aufrufe 3 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.
  • ice987I Offline
    ice987I Offline
    ice987
    schrieb am zuletzt editiert von
    #1

    @flohohoho
    @rewenode

    wie Ihr hier beschrieben habt, gibt es offenbar die Möglichkeit, eine eigene Visualisierung ohne vis zu erstellen.

    wie sieht ein solches Setup aus?

    Grüsse

    husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

    R 1 Antwort Letzte Antwort
    0
    • ice987I ice987

      @flohohoho
      @rewenode

      wie Ihr hier beschrieben habt, gibt es offenbar die Möglichkeit, eine eigene Visualisierung ohne vis zu erstellen.

      wie sieht ein solches Setup aus?

      Grüsse

      R Offline
      R Offline
      rewenode
      schrieb am zuletzt editiert von
      #2

      @ice987 Also einfach ausgedrückt, indem du eine eigene Website erstellst und für den Zugriff auf die Daten des ioBroker den socket.io Adapter nutzt.
      Dann stehen dir alle Möglichkeiten zur Verfügung, die VIS auch nutzt.
      Ist auf Github ganz gut beschrieben. Da gibt es auch ein Beispiel im example Ordner.
      Sofern du direkt eine site bauen willst, solltest du die conn.js direkt nutzen können.
      Komplizierter wird es, wenn du den Adapter nicht direkt in einer site nutzen willst, wie in meinen Fall, da habe ich die Verbindung für ein externes Node-Red (also nicht den eingebauten node-red Adapter) genutzt.
      In so einem Fall musst du die conn.js an vielen Stellen umschreiben oder besser gleich neu machen, weil die an (gefühlt) 1000 Stellen davon ausgeht, dass die im Browser läuft.
      Ist aber auch kein Hexenwerk.

      Gruß Reiner

      ice987I 1 Antwort Letzte Antwort
      0
      • R rewenode

        @ice987 Also einfach ausgedrückt, indem du eine eigene Website erstellst und für den Zugriff auf die Daten des ioBroker den socket.io Adapter nutzt.
        Dann stehen dir alle Möglichkeiten zur Verfügung, die VIS auch nutzt.
        Ist auf Github ganz gut beschrieben. Da gibt es auch ein Beispiel im example Ordner.
        Sofern du direkt eine site bauen willst, solltest du die conn.js direkt nutzen können.
        Komplizierter wird es, wenn du den Adapter nicht direkt in einer site nutzen willst, wie in meinen Fall, da habe ich die Verbindung für ein externes Node-Red (also nicht den eingebauten node-red Adapter) genutzt.
        In so einem Fall musst du die conn.js an vielen Stellen umschreiben oder besser gleich neu machen, weil die an (gefühlt) 1000 Stellen davon ausgeht, dass die im Browser läuft.
        Ist aber auch kein Hexenwerk.

        Gruß Reiner

        ice987I Offline
        ice987I Offline
        ice987
        schrieb am zuletzt editiert von
        #3

        @rewenode

        wohin werden die Dateien der eigenen Seite bzw. die conn.js und index.htm gespeichert?

        husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

        R 1 Antwort Letzte Antwort
        0
        • ice987I ice987

          @rewenode

          wohin werden die Dateien der eigenen Seite bzw. die conn.js und index.htm gespeichert?

          R Offline
          R Offline
          rewenode
          schrieb am zuletzt editiert von
          #4

          @ice987 Also ich muss gestehen, Frontend-Entwicklung gehört leider nicht zu meinen Kernkompetenzen :disappointed: Und ich will (und kann) hier nicht mit meinem Halbwissen glänzen.
          Aber ganz allgemein kommt das i.d.R. in ein entsprechendes Verzeichnis auf dem Webserver (http static) und die index.html referenziert dann darauf:
          Hängt halt davon ab, wie/wo du deine Website hostest/entwickelst.

          In der index.html musst du dann die entsprechenden anpassen

          <head>
              <!-- Replace "localhost" with real IP address of controller, if default port changed, correct it too -->
              <script type="text/javascript" src="http://localhost:8084/socket.io/socket.io.js"></script>
              <script type="text/javascript" src="conn.js"></script>
          </head>
          

          Aber wie gesagt, vlt hat jemand ja mal eine Minimal-site gemacht, die er zur Verfügung stellt.

          Gruß
          Reiner

          1 Antwort Letzte Antwort
          0
          • ice987I Offline
            ice987I Offline
            ice987
            schrieb am zuletzt editiert von
            #5

            wenn jemand eine funktionierende "Minimalkonfiguration" bereitstellen könnte (ggf. reichen auch Infos, wie dies zu bewerkstelligen ist) würde mich mich freuen

            husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

            1 Antwort Letzte Antwort
            0
            • ice987I Offline
              ice987I Offline
              ice987
              schrieb am zuletzt editiert von ice987
              #6

              könnte mir ggf. jemand weiterhelfen? wie kann ich nun den Datenpunkt test1 abonnieren?

              auf Basis von dieser (nun modifizierten) Datei kann ich mir die Objekte anzeigen lassen:

              <!doctype html>
              <html>
              <head>
                  <!-- Replace "localhost" with real IP address of controller, if default port changed, correct it too -->
                  <script type="text/javascript" src="https://192.xxx.x.xxx:8084/socket.io/socket.io.js"></script>
                  <script type="text/javascript" src="conn.js"></script>
              </head>
              <body>
              
              <!--
                  Check the browser console!
              -->
              
              <script type="text/javascript">
                  servConn.namespace   = 'mobile.0';
                  servConn._useStorage = false;
              
                  // var states = {};
                  servConn.init({
                      name:          'mobile.0',  // optional - default 'vis.0'
                      connLink:      'https://192.xxx.x.xxx:8084',  // optional URL of the socket.io adapter
                      socketSession: ''           // optional - used by authentication
                  }, {
                      onConnChange: function (isConnected) {
                          if (isConnected) {
                              console.log('connected');
                              /*
                              servConn.getStates(function (err, _states) {
                                  var count = 0;
                                  for (var id in _states) {
                                      count++;
                                  }
                                  console.log('Received ' + count + ' states.');
                                  states = _states;
                              });
                              */
                              servConn.getStates("0_userdata.0.test.test1", (error, states) => {
                                  document.getElementById("test1").innerHTML = states["0_userdata.0.test.test1"].val;
                              });
                          } else {
                              console.log('disconnected');
                          }
                      },
                      onRefresh: function () {
                          window.location.reload();
                      },
                      /*
                      onUpdate: function (id, state) {
                          setTimeout(function () {
                              console.log('NEW VALUE of ' + id + ': ' + JSON.stringify(state));
                              states[id] = state;
                          }, 0);
                      },
                      */
                      onError: function (err) {
                          window.alert(_('Cannot execute %s for %s, because of insufficient permissions', err.command, err.arg), _('Insufficient permissions'), 'alert', 600);
                      }
                  });
              </script>
              
                  Test1:  <b id="test1">unbekannt</b>
              
              </body>
              </html>
              

              Wie kann ich nun nur diesen Datenpunkt test1 abonnieren, damit dieser automatisch aktualisiert wird?

              husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

              R 1 Antwort Letzte Antwort
              0
              • ice987I ice987

                könnte mir ggf. jemand weiterhelfen? wie kann ich nun den Datenpunkt test1 abonnieren?

                auf Basis von dieser (nun modifizierten) Datei kann ich mir die Objekte anzeigen lassen:

                <!doctype html>
                <html>
                <head>
                    <!-- Replace "localhost" with real IP address of controller, if default port changed, correct it too -->
                    <script type="text/javascript" src="https://192.xxx.x.xxx:8084/socket.io/socket.io.js"></script>
                    <script type="text/javascript" src="conn.js"></script>
                </head>
                <body>
                
                <!--
                    Check the browser console!
                -->
                
                <script type="text/javascript">
                    servConn.namespace   = 'mobile.0';
                    servConn._useStorage = false;
                
                    // var states = {};
                    servConn.init({
                        name:          'mobile.0',  // optional - default 'vis.0'
                        connLink:      'https://192.xxx.x.xxx:8084',  // optional URL of the socket.io adapter
                        socketSession: ''           // optional - used by authentication
                    }, {
                        onConnChange: function (isConnected) {
                            if (isConnected) {
                                console.log('connected');
                                /*
                                servConn.getStates(function (err, _states) {
                                    var count = 0;
                                    for (var id in _states) {
                                        count++;
                                    }
                                    console.log('Received ' + count + ' states.');
                                    states = _states;
                                });
                                */
                                servConn.getStates("0_userdata.0.test.test1", (error, states) => {
                                    document.getElementById("test1").innerHTML = states["0_userdata.0.test.test1"].val;
                                });
                            } else {
                                console.log('disconnected');
                            }
                        },
                        onRefresh: function () {
                            window.location.reload();
                        },
                        /*
                        onUpdate: function (id, state) {
                            setTimeout(function () {
                                console.log('NEW VALUE of ' + id + ': ' + JSON.stringify(state));
                                states[id] = state;
                            }, 0);
                        },
                        */
                        onError: function (err) {
                            window.alert(_('Cannot execute %s for %s, because of insufficient permissions', err.command, err.arg), _('Insufficient permissions'), 'alert', 600);
                        }
                    });
                </script>
                
                    Test1:  <b id="test1">unbekannt</b>
                
                </body>
                </html>
                

                Wie kann ich nun nur diesen Datenpunkt test1 abonnieren, damit dieser automatisch aktualisiert wird?

                R Offline
                R Offline
                rewenode
                schrieb am zuletzt editiert von
                #7

                @ice987 Das machst du mit 'subscribe'
                Siehe hier

                Gruß
                Reiner

                ice987I 1 Antwort Letzte Antwort
                0
                • R rewenode

                  @ice987 Das machst du mit 'subscribe'
                  Siehe hier

                  Gruß
                  Reiner

                  ice987I Offline
                  ice987I Offline
                  ice987
                  schrieb am zuletzt editiert von ice987
                  #8

                  @rewenode
                  Vielen Dank für dein Feedback. Wie kann ich dann nur den einen Datenpunkt abonnieren? aktuell holt er mir immer tausende Datenpunkte...

                  husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

                  ice987I 1 Antwort Letzte Antwort
                  0
                  • ice987I ice987

                    @rewenode
                    Vielen Dank für dein Feedback. Wie kann ich dann nur den einen Datenpunkt abonnieren? aktuell holt er mir immer tausende Datenpunkte...

                    ice987I Offline
                    ice987I Offline
                    ice987
                    schrieb am zuletzt editiert von
                    #9

                    @ice987

                    _autoSubscribe : false
                    

                    war die Lösung

                    husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

                    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

                    622

                    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