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. HTML Widget

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

HTML Widget

Geplant Angeheftet Gesperrt Verschoben Visualisierung
9 Beiträge 3 Kommentatoren 462 Aufrufe 4 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.
  • F Offline
    F Offline
    fichte_112
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich möchte von wetterlabs.de ein Wetter Widget in meine Visualisierung einbinden. Dazu habe ich ein Basic-HTML-Widget in VIS-2 erstellt und folgenden Code unter Allgemein HTML eingefügt.

    <div id="idf70d230eabb36" a='{"t":"a","v":"1.2","lang":"de","locs":[],"ssot":"c","sics":"ds","cbkg":"#FFFFFF","cfnt":"#000000","cprb":"#1976D2","cprf":"#FFFFFF"}'><a href="https://wetterlabs.de/widget/">Wetter widget html für Homepage</a> von wetterlabs.de</div><script async src="https://static1.wetterlabs.de/widgetjs/?id=idf70d230eabb36"></script>
    

    leider funktioniert das nicht.
    Was mache ich falsch?

    OliverIOO 1 Antwort Letzte Antwort
    0
    • F fichte_112

      Hallo,
      ich möchte von wetterlabs.de ein Wetter Widget in meine Visualisierung einbinden. Dazu habe ich ein Basic-HTML-Widget in VIS-2 erstellt und folgenden Code unter Allgemein HTML eingefügt.

      <div id="idf70d230eabb36" a='{"t":"a","v":"1.2","lang":"de","locs":[],"ssot":"c","sics":"ds","cbkg":"#FFFFFF","cfnt":"#000000","cprb":"#1976D2","cprf":"#FFFFFF"}'><a href="https://wetterlabs.de/widget/">Wetter widget html für Homepage</a> von wetterlabs.de</div><script async src="https://static1.wetterlabs.de/widgetjs/?id=idf70d230eabb36"></script>
      

      leider funktioniert das nicht.
      Was mache ich falsch?

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      @fichte_112 sagte in HTML Widget:

      du machst da nix falsch.
      das hat etwas mit dem binding zu tun.
      in deinem widget ist ein javascript datei enthalten die dynamisch nachgeladen wird. diese datei jagt vis2 durch den binding interpreter.
      da in hochkomprimierten javascript konstrukte vorkommen die wie bindings aussehen, macht vis2 damit etwas, was dann das skript letztendlich zerstört

      ich habe das skript reformatiert. so funktioniert es dann.
      trage das folgende in dein html widget ein
      da das skript sonst immer dynamisch nachgeladen wird, können die jederzeit änderungen vornehmen, die du jetzt nicht mehr mitbekommst.
      wenn das widget mal nicht mehr funktioniert muss man den vorgang wiederholen.
      zum umformatieren nutze ich notepad++ mit der JSON erweiterun. dort dann einfach Format auswählen.

      <div id="idf70d230eabb36" a='{"t":"a","v":"1.2","lang":"de","locs":[],"ssot":"c","sics":"ds","cbkg":"#FFFFFF","cfnt":"#000000","cprb":"#1976D2","cprf":"#FFFFFF"}'><a href="https://wetterlabs.de/widget/">Wetter widget html für Homepage</a> von wetterlabs.de</div>
      <script>
      
      function sendGetRequest(url, callback, widgetId) {
          var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
          request.onreadystatechange = function () {
              if (request.readyState === XMLHttpRequest.DONE && request.status === 200) {
                  callback(widgetId, request.responseText)
              }
          };
          request.open('GET', url);
          request.send()
      }
      function sendPostRequest(url, callback, params, widgetId) {
          var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
          request.onreadystatechange = function () {
              if (request.readyState === XMLHttpRequest.DONE && request.status === 200) {
                  callback(request.responseText, widgetId)
              }
          };
          request.open('POST', url, !0);
          request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
          request.send(params)
      }
      function updateWidgetsContent(data, id) {
          data = JSON.parse(data);
          if (data.hasOwnProperty("html")) {
              document.getElementById(id).innerHTML = data.html
          }
          if (data.hasOwnProperty("class")) {
              document.getElementById(id).className = data["class"]
          }
          if (data.hasOwnProperty("js")) {
              var script = document.createElement('script');
              script.type = "text/javascript";
              script.async = !1;
              script.text = data.js;
              document.head.appendChild(script)
          }
          if (data.hasOwnProperty("error_code")) {
              document.getElementById(id).innerHTML = '';
              console.log('https://static1.wetterlabs.de / Error: ' + data.error_msg + ' (Error code ' + data.error_code + ')')
          }
      }
      function getWidgetData(widgetId, i) {
          var widgetParams = getWidgetParams(widgetId);
          widgetParams.i = i;
          var a = JSON.stringify(widgetParams);
          var h = document.getElementById(widgetId).innerHTML;
          var params = 'a=' + encodeURIComponent(a) + '&h=' + encodeURIComponent(h) + '&id=' + widgetId + '&task=widget';
          sendPostRequest('https://static1.wetterlabs.de/api/', updateWidgetsContent, params, widgetId)
      }
      function loadWidget(widgetId) {
          var widgetParams = getWidgetParams(widgetId);
          if (widgetParams.loc !== undefined) {
              sendGetRequest('https://api.ipify.org/', getWidgetData, widgetId)
          } else {
              getWidgetData(widgetId, null)
          }
      }
      function getWidgetParams(widgetId) {
          return JSON.parse(document.getElementById(widgetId).getAttribute("a"))
      }
      
      debugger;
      loadWidget('idf70d230eabb36');
      
      </script>
      

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      F 1 Antwort Letzte Antwort
      1
      • OliverIOO OliverIO

        @fichte_112 sagte in HTML Widget:

        du machst da nix falsch.
        das hat etwas mit dem binding zu tun.
        in deinem widget ist ein javascript datei enthalten die dynamisch nachgeladen wird. diese datei jagt vis2 durch den binding interpreter.
        da in hochkomprimierten javascript konstrukte vorkommen die wie bindings aussehen, macht vis2 damit etwas, was dann das skript letztendlich zerstört

        ich habe das skript reformatiert. so funktioniert es dann.
        trage das folgende in dein html widget ein
        da das skript sonst immer dynamisch nachgeladen wird, können die jederzeit änderungen vornehmen, die du jetzt nicht mehr mitbekommst.
        wenn das widget mal nicht mehr funktioniert muss man den vorgang wiederholen.
        zum umformatieren nutze ich notepad++ mit der JSON erweiterun. dort dann einfach Format auswählen.

        <div id="idf70d230eabb36" a='{"t":"a","v":"1.2","lang":"de","locs":[],"ssot":"c","sics":"ds","cbkg":"#FFFFFF","cfnt":"#000000","cprb":"#1976D2","cprf":"#FFFFFF"}'><a href="https://wetterlabs.de/widget/">Wetter widget html für Homepage</a> von wetterlabs.de</div>
        <script>
        
        function sendGetRequest(url, callback, widgetId) {
            var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
            request.onreadystatechange = function () {
                if (request.readyState === XMLHttpRequest.DONE && request.status === 200) {
                    callback(widgetId, request.responseText)
                }
            };
            request.open('GET', url);
            request.send()
        }
        function sendPostRequest(url, callback, params, widgetId) {
            var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
            request.onreadystatechange = function () {
                if (request.readyState === XMLHttpRequest.DONE && request.status === 200) {
                    callback(request.responseText, widgetId)
                }
            };
            request.open('POST', url, !0);
            request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            request.send(params)
        }
        function updateWidgetsContent(data, id) {
            data = JSON.parse(data);
            if (data.hasOwnProperty("html")) {
                document.getElementById(id).innerHTML = data.html
            }
            if (data.hasOwnProperty("class")) {
                document.getElementById(id).className = data["class"]
            }
            if (data.hasOwnProperty("js")) {
                var script = document.createElement('script');
                script.type = "text/javascript";
                script.async = !1;
                script.text = data.js;
                document.head.appendChild(script)
            }
            if (data.hasOwnProperty("error_code")) {
                document.getElementById(id).innerHTML = '';
                console.log('https://static1.wetterlabs.de / Error: ' + data.error_msg + ' (Error code ' + data.error_code + ')')
            }
        }
        function getWidgetData(widgetId, i) {
            var widgetParams = getWidgetParams(widgetId);
            widgetParams.i = i;
            var a = JSON.stringify(widgetParams);
            var h = document.getElementById(widgetId).innerHTML;
            var params = 'a=' + encodeURIComponent(a) + '&h=' + encodeURIComponent(h) + '&id=' + widgetId + '&task=widget';
            sendPostRequest('https://static1.wetterlabs.de/api/', updateWidgetsContent, params, widgetId)
        }
        function loadWidget(widgetId) {
            var widgetParams = getWidgetParams(widgetId);
            if (widgetParams.loc !== undefined) {
                sendGetRequest('https://api.ipify.org/', getWidgetData, widgetId)
            } else {
                getWidgetData(widgetId, null)
            }
        }
        function getWidgetParams(widgetId) {
            return JSON.parse(document.getElementById(widgetId).getAttribute("a"))
        }
        
        debugger;
        loadWidget('idf70d230eabb36');
        
        </script>
        
        F Offline
        F Offline
        fichte_112
        schrieb am zuletzt editiert von
        #3

        @oliverio
        Vielen Dank für die schnelle Antwort.
        Leider Funktioniert der Code nicht.

        Screenshot 2025-08-01 192425.png

        Das ist die Ausgabe

        OliverIOO 1 Antwort Letzte Antwort
        0
        • F fichte_112

          @oliverio
          Vielen Dank für die schnelle Antwort.
          Leider Funktioniert der Code nicht.

          Screenshot 2025-08-01 192425.png

          Das ist die Ausgabe

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #4

          @fichte_112

          das funktioniert nur in der runtime

          0cd1beeb-cc0a-4c84-ab19-0055e9ebcef0-image.png

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          F 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @fichte_112

            das funktioniert nur in der runtime

            0cd1beeb-cc0a-4c84-ab19-0055e9ebcef0-image.png

            F Offline
            F Offline
            fichte_112
            schrieb am zuletzt editiert von
            #5

            @oliverio
            Vielen Dank. Es funktioniert.

            kannst du mir bitte das Konvertieren mit Notepad++ genauer erklären.
            Ich habe es mit dem Plugin JSON Viewer versucht. Dabei kommt folgende Fehlermeldung.

            Screenshot 2025-08-01 193401.png

            OliverIOO 1 Antwort Letzte Antwort
            0
            • skvarelS Online
              skvarelS Online
              skvarel
              Developer
              schrieb am zuletzt editiert von skvarel
              #6

              Ich hatte das gleiche Problem bei einem anderen Wetter-Dienst.

              Meine Lösung (Quick & Dirty) .. ich habe den Code mit dem Wetter-Widget in eine leere html-Datei geschrieben und sie mit dem Dateimanager in den VIS2-Ordner geladen.

              Die html-Datei rufe ich wiederum mit einem iFrame Widget in der VIS auf ;)

              So brauchte ich den Code nicht reformatieren.

              2518163b-5b72-4514-a02e-2f9d81c53f04-image.png

              Wird dann sogar im Editor angezeigt

              0c4ef5e4-ee16-4201-84c2-b5c3d34b6138-image.png

              #TeamInventwo
              • Autodarts by inventwo
              • FoxESS Cloud by inventwo
              • vis-inventwo & vis-2-widgets-inventwo
              • vis-icontwo & vis-2-widgets-icontwo

              F 1 Antwort Letzte Antwort
              0
              • skvarelS skvarel

                Ich hatte das gleiche Problem bei einem anderen Wetter-Dienst.

                Meine Lösung (Quick & Dirty) .. ich habe den Code mit dem Wetter-Widget in eine leere html-Datei geschrieben und sie mit dem Dateimanager in den VIS2-Ordner geladen.

                Die html-Datei rufe ich wiederum mit einem iFrame Widget in der VIS auf ;)

                So brauchte ich den Code nicht reformatieren.

                2518163b-5b72-4514-a02e-2f9d81c53f04-image.png

                Wird dann sogar im Editor angezeigt

                0c4ef5e4-ee16-4201-84c2-b5c3d34b6138-image.png

                F Offline
                F Offline
                fichte_112
                schrieb am zuletzt editiert von
                #7

                @skvarel vielen Dank, das werde ich testen.

                1 Antwort Letzte Antwort
                0
                • F fichte_112

                  @oliverio
                  Vielen Dank. Es funktioniert.

                  kannst du mir bitte das Konvertieren mit Notepad++ genauer erklären.
                  Ich habe es mit dem Plugin JSON Viewer versucht. Dabei kommt folgende Fehlermeldung.

                  Screenshot 2025-08-01 193401.png

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #8

                  @fichte_112

                  nein.
                  der ursprung ist ja html, welches ein skript tag enthält. dort ist ein link zum skript enthalten, welches der browser normalerweise dynamisch nachlädt

                  https://static1.wetterlabs.de/widgetjs/?id=idf70d230eabb36

                  diesen skripttag kopiert man aus dem widget code und trägt ihn im browser ein. dann erscheint das eigentliche javascript.
                  das kopiert man und fügt es in notepad++ hinzu
                  und wählt das Menü JS Format aus
                  4cb821f3-2665-4fed-bd00-df80245af4cb-image.png

                  mit dem jsviewer habe ich es auch probiert, da meldet er aber auch bei javascript einen fehler.

                  das ursprüngliche scripttag passt du an und entfernst die zusätzlichen angaben

                  <script async src="https://static1.wetterlabs.de/widgetjs/?id=idf70d230eabb36"></script>
                  
                  <script>
                  
                  </script>
                  

                  und fügst das formatierte javascript da dazwischen ein.
                  fertig

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  F 1 Antwort Letzte Antwort
                  1
                  • OliverIOO OliverIO

                    @fichte_112

                    nein.
                    der ursprung ist ja html, welches ein skript tag enthält. dort ist ein link zum skript enthalten, welches der browser normalerweise dynamisch nachlädt

                    https://static1.wetterlabs.de/widgetjs/?id=idf70d230eabb36

                    diesen skripttag kopiert man aus dem widget code und trägt ihn im browser ein. dann erscheint das eigentliche javascript.
                    das kopiert man und fügt es in notepad++ hinzu
                    und wählt das Menü JS Format aus
                    4cb821f3-2665-4fed-bd00-df80245af4cb-image.png

                    mit dem jsviewer habe ich es auch probiert, da meldet er aber auch bei javascript einen fehler.

                    das ursprüngliche scripttag passt du an und entfernst die zusätzlichen angaben

                    <script async src="https://static1.wetterlabs.de/widgetjs/?id=idf70d230eabb36"></script>
                    
                    <script>
                    
                    </script>
                    

                    und fügst das formatierte javascript da dazwischen ein.
                    fertig

                    F Offline
                    F Offline
                    fichte_112
                    schrieb am zuletzt editiert von
                    #9

                    @oliverio vielen Dank

                    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

                    748

                    Online

                    32.6k

                    Benutzer

                    82.2k

                    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