Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Widgets mit javascript erzeugen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Widgets mit javascript erzeugen

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      GerdSo last edited by

      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 Reply Quote 0
      • Jeeper.at
        Jeeper.at last edited by

        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 Reply Quote 0
        • G
          GerdSo last edited by

          > 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 Reply Quote 0
          • Jeeper.at
            Jeeper.at last edited by

            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 Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              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

              1 Reply Last reply Reply Quote 0
              • G
                GerdSo last edited by

                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 Reply Quote 0
                • Bluefox
                  Bluefox last edited by

                  @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 Reply Quote 0
                  • G
                    GerdSo last edited by

                    Hallo Bluefox,

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

                    Viele Grüße Gerd.

                    1 Reply Last reply Reply Quote 0
                    • G
                      GerdSo last edited by

                      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 Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        @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 Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        494
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        1470
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo