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. [gelöst] Basic HTML Widget JS Funktion

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
    913

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Basic HTML Widget JS Funktion

Geplant Angeheftet Gesperrt Verschoben Visualisierung
13 Beiträge 2 Kommentatoren 657 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.
  • L Offline
    L Offline
    LubuBroker
    schrieb am zuletzt editiert von LubuBroker
    #1

    Hallo zusammen
    Ich möchte ein einfaches Pumpensymbol (Kreis mit einem Dreieck), das die Füllfarbe ändert, wenn die Pumpe läuft.
    Ich habe nichts passendes für mich gefunden, und habe stattdessen einfach ein HTML Widget genommen.

    Wieso habe ich z.B. kein SVG Shape genommen und für den Kreis und das Dreieck eine Gruppe gemacht werdet Ihr euch vielleicht fragen. Ich möchte, das das Symbol automatisch anhand der Bildschirmauflösung skaliert. Das heisst, das dann die Leitung auch immer in der Mitte der Pumpe ist. Und das Dreieck immer in der Mitte des Dreieck.

    Da ich mich nicht so auskenne habe ich zugegebener maßen ChatGPT gefragt.
    Ich hatte dann ungefähr diesen Code bekommen

    <div style="width:100%; aspect-ratio: 1 / 1;">
      <svg viewBox="0 0 100 100" width="100%" height="100%" preserveAspectRatio="xMidYMid meet">
        <!-- Kreis -->
        <circle id="statusCircle" cx="50" cy="50" r="49"
          fill="gray"
          stroke="black"
          stroke-width="3" />
    
        <!-- Zentriertes Dreieck -->
        <polygon 
          points="50,2 10,74 90,74" 
          fill="none"
          stroke="black"
          stroke-width="3"
        />
      </svg>
    </div>
    
    <script>
      // Dein Datenpunkt
      const datapoint = {alias.0.Heizung.Speicherladepumpe.Schaltbefehl};
    
      // Farbe ändern je nach Wert
      function updateCircleColor(value) {
        const color = value ? "green" : "gray";
        document.getElementById("statusCircle").setAttribute("fill", color);
      }
    
      // Startwert lesen
      vis.binds.basic.getValue(datapoint, function (val) {
        updateCircleColor(val);
      });
    
      // Auf Änderungen reagieren
      vis.states.bind(datapoint + ".val", function (e, newVal) {
        updateCircleColor(newVal);
      });
    </script>
    

    Ich habe Ihn bereits ein wenig angepasst, damit es für mich passen würde.
    Leider funktioniert das mit der Füllfarbe aber nicht.
    Anscheinend funktionieren keine JS funktionen im HTML Widget.

    Ich habe es dan noch so Probiert

    <div style="width:100%; aspect-ratio: 1 / 1;">
      <svg viewBox="0 0 100 100" width="100%" height="100%" preserveAspectRatio="xMidYMid meet">
        <!-- Kreis -->
        <circle id="statusCircle" cx="50" cy="50" r="49"
          fill={Wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true? "green":"grey"}
          stroke="black"
          stroke-width="3" />
    
        <!-- Zentriertes Dreieck -->
        <polygon 
          points="50,2 10,74 90,74" 
          fill="none"
          stroke="black"
          stroke-width="3"
        />
      </svg>
    </div>
    
    

    Da ist der Kreis dann aber einfach Schwarz
    Was funktioniert ist, wenn ich direkt einen Datenpunkt mit dem Füllfarbentext hineinschreibe.
    Aber ich möchte eigentlich umgehen dafür extra wieder zusätzliche datenpunkte anzulegen.

    Hat vielleicht jemand einen Tipp für mich.

    Vilen Dank

    M 1 Antwort Letzte Antwort
    0
    • L LubuBroker

      Hallo zusammen
      Ich möchte ein einfaches Pumpensymbol (Kreis mit einem Dreieck), das die Füllfarbe ändert, wenn die Pumpe läuft.
      Ich habe nichts passendes für mich gefunden, und habe stattdessen einfach ein HTML Widget genommen.

      Wieso habe ich z.B. kein SVG Shape genommen und für den Kreis und das Dreieck eine Gruppe gemacht werdet Ihr euch vielleicht fragen. Ich möchte, das das Symbol automatisch anhand der Bildschirmauflösung skaliert. Das heisst, das dann die Leitung auch immer in der Mitte der Pumpe ist. Und das Dreieck immer in der Mitte des Dreieck.

      Da ich mich nicht so auskenne habe ich zugegebener maßen ChatGPT gefragt.
      Ich hatte dann ungefähr diesen Code bekommen

      <div style="width:100%; aspect-ratio: 1 / 1;">
        <svg viewBox="0 0 100 100" width="100%" height="100%" preserveAspectRatio="xMidYMid meet">
          <!-- Kreis -->
          <circle id="statusCircle" cx="50" cy="50" r="49"
            fill="gray"
            stroke="black"
            stroke-width="3" />
      
          <!-- Zentriertes Dreieck -->
          <polygon 
            points="50,2 10,74 90,74" 
            fill="none"
            stroke="black"
            stroke-width="3"
          />
        </svg>
      </div>
      
      <script>
        // Dein Datenpunkt
        const datapoint = {alias.0.Heizung.Speicherladepumpe.Schaltbefehl};
      
        // Farbe ändern je nach Wert
        function updateCircleColor(value) {
          const color = value ? "green" : "gray";
          document.getElementById("statusCircle").setAttribute("fill", color);
        }
      
        // Startwert lesen
        vis.binds.basic.getValue(datapoint, function (val) {
          updateCircleColor(val);
        });
      
        // Auf Änderungen reagieren
        vis.states.bind(datapoint + ".val", function (e, newVal) {
          updateCircleColor(newVal);
        });
      </script>
      

      Ich habe Ihn bereits ein wenig angepasst, damit es für mich passen würde.
      Leider funktioniert das mit der Füllfarbe aber nicht.
      Anscheinend funktionieren keine JS funktionen im HTML Widget.

      Ich habe es dan noch so Probiert

      <div style="width:100%; aspect-ratio: 1 / 1;">
        <svg viewBox="0 0 100 100" width="100%" height="100%" preserveAspectRatio="xMidYMid meet">
          <!-- Kreis -->
          <circle id="statusCircle" cx="50" cy="50" r="49"
            fill={Wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true? "green":"grey"}
            stroke="black"
            stroke-width="3" />
      
          <!-- Zentriertes Dreieck -->
          <polygon 
            points="50,2 10,74 90,74" 
            fill="none"
            stroke="black"
            stroke-width="3"
          />
        </svg>
      </div>
      
      

      Da ist der Kreis dann aber einfach Schwarz
      Was funktioniert ist, wenn ich direkt einen Datenpunkt mit dem Füllfarbentext hineinschreibe.
      Aber ich möchte eigentlich umgehen dafür extra wieder zusätzliche datenpunkte anzulegen.

      Hat vielleicht jemand einen Tipp für mich.

      Vilen Dank

      M Online
      M Online
      MCU
      schrieb am zuletzt editiert von
      #2

      @lububroker sagte in Basic HTML Widget JS Funktion:

      fill={Wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true? "green":"grey"}

      Nicht Wert sondern wert?

      fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true? "green":"grey"}
      

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      L 1 Antwort Letzte Antwort
      0
      • M MCU

        @lububroker sagte in Basic HTML Widget JS Funktion:

        fill={Wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true? "green":"grey"}

        Nicht Wert sondern wert?

        fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true? "green":"grey"}
        
        L Offline
        L Offline
        LubuBroker
        schrieb am zuletzt editiert von LubuBroker
        #3

        @mcu Ach ja das war ein Fehler.
        Jetzt ist es so, das es grau angezeigt wird.
        Aber bei True wird es immer noch nicht grün

        Mit 1 statt true habe ich es auch schon probiert

        M 1 Antwort Letzte Antwort
        0
        • L LubuBroker

          @mcu Ach ja das war ein Fehler.
          Jetzt ist es so, das es grau angezeigt wird.
          Aber bei True wird es immer noch nicht grün

          Mit 1 statt true habe ich es auch schon probiert

          M Online
          M Online
          MCU
          schrieb am zuletzt editiert von MCU
          #4

          @lububroker

          wert == "true"
          
          fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert=="true" ? "green":"grey"}
          

          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

          L 1 Antwort Letzte Antwort
          0
          • M MCU

            @lububroker

            wert == "true"
            
            fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert=="true" ? "green":"grey"}
            
            L Offline
            L Offline
            LubuBroker
            schrieb am zuletzt editiert von
            #5

            @mcu sagte in Basic HTML Widget JS Funktion:

            wert == "true"

            Nein bleibt leider Grau

            M 1 Antwort Letzte Antwort
            0
            • L LubuBroker

              @mcu sagte in Basic HTML Widget JS Funktion:

              wert == "true"

              Nein bleibt leider Grau

              M Online
              M Online
              MCU
              schrieb am zuletzt editiert von
              #6

              @lububroker vis oder vis2

              NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
              Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

              L 1 Antwort Letzte Antwort
              0
              • M MCU

                @lububroker vis oder vis2

                L Offline
                L Offline
                LubuBroker
                schrieb am zuletzt editiert von
                #7

                @mcu Vis 2

                M 1 Antwort Letzte Antwort
                0
                • L LubuBroker

                  @mcu Vis 2

                  M Online
                  M Online
                  MCU
                  schrieb am zuletzt editiert von MCU
                  #8

                  @lububroker Da funktioniert es mit

                  fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true ? "green":"grey"}
                  

                  46a08ffc-ed24-4c9e-ba54-4cd5c2c8a639-image.png
                  a6f43ae0-a8be-4123-936b-626a8fa8a293-image.png
                  Welchen Type hat der DP?
                  e833f9cf-7273-4556-945e-3640fe24e8e7-image.png

                  NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                  Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                  L 1 Antwort Letzte Antwort
                  0
                  • M MCU

                    @lububroker Da funktioniert es mit

                    fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true ? "green":"grey"}
                    

                    46a08ffc-ed24-4c9e-ba54-4cd5c2c8a639-image.png
                    a6f43ae0-a8be-4123-936b-626a8fa8a293-image.png
                    Welchen Type hat der DP?
                    e833f9cf-7273-4556-945e-3640fe24e8e7-image.png

                    L Offline
                    L Offline
                    LubuBroker
                    schrieb am zuletzt editiert von LubuBroker
                    #9

                    @mcu sagte in Basic HTML Widget JS Funktion:

                    fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true ? "green":"grey"}

                    Boolean
                    habe es jetzt nochmals so eingefügt. Aber es funktioniert nicht.

                    Das ist der Datenpunkt

                    {
                      "type": "state",
                      "common": {
                        "name": "Schalten",
                        "role": "switch",
                        "type": "boolean",
                        "read": true,
                        "write": true,
                        "alias": {
                          "id": {
                            "read": "openknx.0.Aussenbereich.Verbraucher.Bewässerung_Pumpe_Status",
                            "write": "openknx.0.Aussenbereich.Verbraucher.Bewässerung_Pumpe_Schalten"
                          }
                        }
                      },
                      "_id": "alias.0.Garten.Bewaesserung.Pumpe.Schalten",
                      "native": {},
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1744870870221,
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "file": 1632,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    
                    M 1 Antwort Letzte Antwort
                    0
                    • L LubuBroker

                      @mcu sagte in Basic HTML Widget JS Funktion:

                      fill={wert:alias.0.Heizung.Speicherladepumpe.Schaltbefehl; wert==true ? "green":"grey"}

                      Boolean
                      habe es jetzt nochmals so eingefügt. Aber es funktioniert nicht.

                      Das ist der Datenpunkt

                      {
                        "type": "state",
                        "common": {
                          "name": "Schalten",
                          "role": "switch",
                          "type": "boolean",
                          "read": true,
                          "write": true,
                          "alias": {
                            "id": {
                              "read": "openknx.0.Aussenbereich.Verbraucher.Bewässerung_Pumpe_Status",
                              "write": "openknx.0.Aussenbereich.Verbraucher.Bewässerung_Pumpe_Schalten"
                            }
                          }
                        },
                        "_id": "alias.0.Garten.Bewaesserung.Pumpe.Schalten",
                        "native": {},
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1744870870221,
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "file": 1632,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        }
                      }
                      
                      M Online
                      M Online
                      MCU
                      schrieb am zuletzt editiert von
                      #10

                      @lububroker Zeig mal bitte die Objektdaten vom DP
                      a5d3c2e8-0b4a-4b95-9313-6349f211aae1-image.png

                      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                      M 1 Antwort Letzte Antwort
                      0
                      • M MCU

                        @lububroker Zeig mal bitte die Objektdaten vom DP
                        a5d3c2e8-0b4a-4b95-9313-6349f211aae1-image.png

                        M Online
                        M Online
                        MCU
                        schrieb am zuletzt editiert von MCU
                        #11

                        @LubuBroker

                        alias.0.Heizung.Speicherladepumpe.Schaltbefehl /* ist ja auch nicht der DP */
                        
                        
                        // alias.0.Garten.Bewaesserung.Pumpe.Schalten
                        // -> also
                        fill={wert:alias.0.Garten.Bewaesserung.Pumpe.Schalten; wert==true ? "green":"grey"}
                        

                        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                        L 1 Antwort Letzte Antwort
                        0
                        • M MCU

                          @LubuBroker

                          alias.0.Heizung.Speicherladepumpe.Schaltbefehl /* ist ja auch nicht der DP */
                          
                          
                          // alias.0.Garten.Bewaesserung.Pumpe.Schalten
                          // -> also
                          fill={wert:alias.0.Garten.Bewaesserung.Pumpe.Schalten; wert==true ? "green":"grey"}
                          
                          L Offline
                          L Offline
                          LubuBroker
                          schrieb am zuletzt editiert von
                          #12

                          @mcu Ou man
                          Das ist ja peinlich :face_with_rolling_eyes:
                          Die Speicherladepumpe kann ich nicht beschreiben.
                          Drum habe ich mal die zisternenpumpe genommen. Aber im anderen HTML Objekt nicht getauscht.

                          Funktioniert.
                          Vielen Dank

                          M 1 Antwort Letzte Antwort
                          0
                          • L LubuBroker

                            @mcu Ou man
                            Das ist ja peinlich :face_with_rolling_eyes:
                            Die Speicherladepumpe kann ich nicht beschreiben.
                            Drum habe ich mal die zisternenpumpe genommen. Aber im anderen HTML Objekt nicht getauscht.

                            Funktioniert.
                            Vielen Dank

                            M Online
                            M Online
                            MCU
                            schrieb am zuletzt editiert von
                            #13

                            @lububroker Muss Dir nicht peinlich sein. Passiert jedem Mal. Ok, dann als gelöst im ersten Post setzen.

                            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                            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

                            526

                            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