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

  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Widgets mit javascript erzeugen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Widgets mit javascript erzeugen

Scheduled Pinned Locked Moved Visualisierung
10 Posts 4 Posters 1.5k Views
  • 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.
  • G Offline
    G Offline
    GerdSo
    wrote on last edited by
    #1

    Hallo,

    gibt es Möglichkeiten Widgets per Javascript zu erzeugen, duplizieren oder zu verändern?

    Hintergrund: wenn ich z.B. 15 Heizkörperthermostate habe, dann würde ich gerne die Darstellung und das Verhalten komplett identisch halten wollen und nur an einer Stelle ändern. Letztlich ändert sich dort nur die Position, Beschriftung und die Object.id

    Viele Grüße Gerd.

    1 Reply Last reply
    0
    • Jeeper.atJ Offline
      Jeeper.atJ Offline
      Jeeper.at
      wrote on last edited by
      #2

      Wenn du ein Widget gestaltet hast, brauchst du nur oben auf kopieren flicken. Dann wird es exakt kopiert. Dann nur noch verschieben und ID tauschen. Du kannst auch mehrere auf einmal kopieren.

      1 Reply Last reply
      0
      • G Offline
        G Offline
        GerdSo
        wrote on last edited by
        #3

        > Wenn du ein Widget gestaltet hast, brauchst du nur oben auf kopieren flicken. Dann wird es exakt kopiert. Dann nur noch verschieben und ID tauschen. Du kannst auch mehrere auf einmal kopieren. so mache ich es bisher auch, wenn danach aber eine Änderung durhgeführt werden muss, dann mache ich das x-mal, da wäre es mit einem Programm einfacher, vor Allem wenn z.B. die Darstellung eines einzelnen Heizkörperthermostates aus mehreren Widgets besteht.

        1 Reply Last reply
        0
        • Jeeper.atJ Offline
          Jeeper.atJ Offline
          Jeeper.at
          wrote on last edited by
          #4

          Nehmen wir an du willst bei allen Widgets dieselbe Änderung durchführen. Du kannst dann mittels "Gummiband" (mit gedrückter Maustaste einen Rahmen herumziehen) alle gleichzeitig markieren. Jede Änderung die du dann machst wirkt sich auf alle markierten aus.

          Lg

          Günther

          1 Reply Last reply
          0
          • HomoranH Offline
            HomoranH Offline
            Homoran
            Global Moderator Administrators
            wrote on last edited by
            #5

            Und wenn die Widgets nicht in einer Gruppe liegen, dann mit STRG-Klick statt Gummiband

            So machen ich es immer, wenn ich bei mehreren Widgets ein einheitliches aussehen anlege / verändere.

            Gruß

            Rainer

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Reply Last reply
            0
            • G Offline
              G Offline
              GerdSo
              wrote on last edited by
              #6

              Hallo,

              Danke für die vielen Hinweise. Eure Empfehlungen sind alle korrekt und so mache ich es bisher auch.

              Nehmen wir an ich möchte für die 15 Thermostate jeweils 2 weitere Widgets hinzufügen um weitere Infos anzuzeigen, dann muss ich diese einmalig erzeugen und anpassen, diese danach x-mal kopieren, korrekt ausrichten und anschließend die obj.id ändern.

              Alles kein Hexenwerk, aber meine Frage war ja nicht, wie gehe ich mit Bordmitteln auf der edit-Oberfläche vor, sondern gibt es Möglichkeiten Dinge per Javascript-Programm im Javascript-Adapter zu ändern.

              Viele Grüße Gerd.

              1 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #7

                @GerdSo:

                Hallo,

                Danke für die vielen Hinweise. Eure Empfehlungen sind alle korrekt und so mache ich es bisher auch.

                Nehmen wir an ich möchte für die 15 Thermostate jeweils 2 weitere Widgets hinzufügen um weitere Infos anzuzeigen, dann muss ich diese einmalig erzeugen und anpassen, diese danach x-mal kopieren, korrekt ausrichten und anschließend die obj.id ändern.

                Alles kein Hexenwerk, aber meine Frage war ja nicht, wie gehe ich mit Bordmitteln auf der edit-Oberfläche vor, sondern gibt es Möglichkeiten Dinge per Javascript-Programm im Javascript-Adapter zu ändern.

                Viele Grüße Gerd. `
                Das vis projekt liegt unter …/iobroker-dta/files/vis.0/main/vis-views.json

                Wenn du von json was verstehst, dann kannst du diese Datei modifizieren und es wird gehen.

                Mann kann im javascirpt adapter die Datei so schreiben und lesen:

                https://github.com/ioBroker/ioBroker.ja ... t#readfile

                https://github.com/ioBroker/ioBroker.ja ... #writefile

                readFile('vis.0', 'main/vis-views.json', function (error, data) {
                	var view = JSON.parse(data);
                });
                
                
                1 Reply Last reply
                0
                • G Offline
                  G Offline
                  GerdSo
                  wrote on last edited by
                  #8

                  Hallo Bluefox,

                  nicht ganz was ich gesucht habe aber ist sicherlich eine Möglichkeit. Danke.

                  Viele Grüße Gerd.

                  1 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    GerdSo
                    wrote on last edited by
                    #9

                    Hallo,

                    habe es jetzt ausprobiert und prinzipiell führt der Weg zum gewünschten Ergebnis. Allerdings muss ich teilweise Dinge sehr "komplex" lösen und sehr noch Optimierungsmöglichkeiten, finde aber nicht den Weg um dies zu machen.

                    Folgendes festgestellt:

                    • doku in vis nicht korrekt, da wird auf https://github.com/iobroker/iobroker.vi … /README.md bei dem Link "Online Demos" auf ccu.io verwiesen, das nicht mehr verwendet werden soll

                    • writeFile nicht korrekt beschrieben. Bei mir funktioniert der folgende Aufruf: writeFile('/../vis.0/main/vis-views.json', JSON.stringify(view), function (error) {}), dies passt aber nicht mit der Beschreibung: writeFile (adapter, fileName, bytes, function (error) {}) überein

                    Folgende Fragen sind bei mir in diesem Zusammenhang aufgetaucht:

                    • Gibt es eine Möglichkeit die Werte direkt in vis zu ändern? Über die JSON-Datei funktioniert bei mir nur, in dem ich iobroker neu starte, da ansonsten das JSON nicht neu gelesen wird. Der Vis-Editor schafft es ja auch irgendwie und da muss nur die Runtime neu geladen werden

                    • Gibt es bei der objectId eine Möglichkeit die ID selbst zu manipulieren für das Binding? Hintergrund: Ich habe jetzt die objectId in einem generischen Format in einer Variablen stehen und möchte bei verschiedenen Widgets diese objectId mit z.B ":4.SET_TEMPERATURE" oder ":4.AUTO_MODE" usw. ergänzen. Ich habe gesehen, dass es geht die Werte zu manipulieren/formatieren aber ich möchte die objectId selbst manipulieren. Aktuell subscribe ich auf die ergänzte objectId und speichere den objectId-Wert in einer Variablen, die an ein Widget gebunden ist

                    • Gibt es die Möglichkeit die objectId als Wert aus einer Variablen an ein Widget zu binden? Also wenn ich in javascript eine Variable anlege und diese hat als Wert eine objectId und diese möchte ich jetzt an ein Widget binden, damit dort die Werte der objectId angezeigt werden. Aktuell subscribe ich auf die objectId und speichere den objectId-Wert in einer Variablen, die an ein Widget gebunden ist

                    Viele Grüße Gerd.

                    1 Reply Last reply
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      wrote on last edited by
                      #10

                      @GerdSo:

                      Hallo,

                      habe es jetzt ausprobiert und prinzipiell führt der Weg zum gewünschten Ergebnis. Allerdings muss ich teilweise Dinge sehr "komplex" lösen und sehr noch Optimierungsmöglichkeiten, finde aber nicht den Weg um dies zu machen.

                      Folgendes festgestellt:

                      • doku in vis nicht korrekt, da wird auf https://github.com/iobroker/iobroker.vi … /README.md bei dem Link "Online Demos" auf ccu.io verwiesen, das nicht mehr verwendet werden soll

                      • writeFile nicht korrekt beschrieben. Bei mir funktioniert der folgende Aufruf: writeFile('/../vis.0/main/vis-views.json', JSON.stringify(view), function (error) {}), dies passt aber nicht mit der Beschreibung: writeFile (adapter, fileName, bytes, function (error) {}) überein

                      Folgende Fragen sind bei mir in diesem Zusammenhang aufgetaucht:

                      • Gibt es eine Möglichkeit die Werte direkt in vis zu ändern? Über die JSON-Datei funktioniert bei mir nur, in dem ich iobroker neu starte, da ansonsten das JSON nicht neu gelesen wird. Der Vis-Editor schafft es ja auch irgendwie und da muss nur die Runtime neu geladen werden

                      • Gibt es bei der objectId eine Möglichkeit die ID selbst zu manipulieren für das Binding? Hintergrund: Ich habe jetzt die objectId in einem generischen Format in einer Variablen stehen und möchte bei verschiedenen Widgets diese objectId mit z.B ":4.SET_TEMPERATURE" oder ":4.AUTO_MODE" usw. ergänzen. Ich habe gesehen, dass es geht die Werte zu manipulieren/formatieren aber ich möchte die objectId selbst manipulieren. Aktuell subscribe ich auf die ergänzte objectId und speichere den objectId-Wert in einer Variablen, die an ein Widget gebunden ist

                      • Gibt es die Möglichkeit die objectId als Wert aus einer Variablen an ein Widget zu binden? Also wenn ich in javascript eine Variable anlege und diese hat als Wert eine objectId und diese möchte ich jetzt an ein Widget binden, damit dort die Werte der objectId angezeigt werden. Aktuell subscribe ich auf die objectId und speichere den objectId-Wert in einer Variablen, die an ein Widget gebunden ist

                      Viele Grüße Gerd. `
                      Die erste 2 Punkte habe ich ergänzt. Für weiter Punkte sage ich, dass der Benutzungsfall sehr spezifisch ist, und es geht nicht.

                      Keine sagt, dass es nicht implementiert werden konnte. :lol:

                      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

                      311

                      Online

                      32.4k

                      Users

                      81.4k

                      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