Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Vorlage] Variable Zeitsteuerung mit VIS Editor

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Vorlage] Variable Zeitsteuerung mit VIS Editor

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      K_o_bold @micklafisch last edited by

      @micklafisch ,

      wie @GiuseppeS erwähnte habe ich eine ähnliche Konstellation. 433 mhz und keine Rückmeldung über die Zustände, also der Istwert ist erstmal unbekannt.
      Um den Istwert zu bekommen musst du wissen wie lange der Verfahrweg von 0 bis 100 % dauert.
      Dann kannst du den Istwert in einem Skript berechnen und in einem Datenpunkt ablegen.
      Damit das ganze dann auch mit Fernbedienung klappt, habe ich die manuellen 433 mhz Fernbedienungen durch Zigbee Taster ersetzt.
      Wenn du Fragen dazu hast, kannst du dich gerne melden, bzw. kann ich dir auch mal das Skript schicken.
      Das Rollladenskript habe ich übrigens auch mit großer Hilfe von giuseppe umgesetzt.
      Vielen Dank nochmal an dieser Stelle 😉

      Über die minütliche Zeitsteuerung von Giuseppes Skript bin ich auch gestolpert und habe mich mittlerweile daran gewöhnt dass die Rollläden im Minutentakt fahren.
      Ich finde es sogar besser, denn ich habe 9 Rollläden und wenn sie alle gleichzeitig laufen, ist es dann doch etwas unangenehm laut.

      M 1 Reply Last reply Reply Quote 0
      • M
        micklafisch @K_o_bold last edited by

        @K_o_bold
        danke für deine Informationen. Läuft die gemessene Zeitmethode nicht irgendwann aus dem Ruder oder wie kalibrierst du die Rollläden?

        Die minütlichen Abstände hatte ich versuchsweise 1 Woche bei mir am laufen, aber aufgrund mangelnden Zuspruchs der Hausherrin wieder verworfen.

        Wenn @GiuseppeS wie von ihm vorgeschlagen die Verzögerung reinbastelt ist es perfekt für mich.

        G 1 Reply Last reply Reply Quote 0
        • G
          GiuseppeS @micklafisch last edited by

          @micklafisch
          Bzgl der Verzögerung hatte ich es gestern schon getestet. Muss noch eine Kleinigkeit anpassen (Log auch um x Sekunden verzögern, sonst verwirrend).
          Außerdem muss ich noch testen, ob die Verzögerung funktioniert, wenn Timer im Hintergrund mit nachträglich erfüllten Bedingungen auch verzögert gesetzt werden. Heute Abend oder morgen Abend wird es fertig sein.

          Zur Zeitmessung von K_o_bold:
          Er hat eine Zeit X gemessen, die der Rollladen von 0 auf 100 benötigt. Anhand dessen kann die aktuelle Position interpoliert werden, wenn der Rollladen mittendrin per Befehl (zigbee Taster) gestoppt wird.
          Wenn der Rollladen gestartet wird und nicht über ein Befehl mittendrin gestoppt wird und die zuvor gemessene Zeit X (oder Rest von X, falls von mittendrin gestartet) überschritten wird, muss der Rollladen an einer Endposition sein und die berechnete/angezeigte Position wird auf 0 bzw 100 gesetzt. Vorhandene Rechenfehler der Position, werden hiermit eliminiert. Nur wenn öfter z.B. von Position 30 und 70 und wieder zurück gefahren wird würden die Differenzen der angezeigten und der realen Position voneinander abweichen. Einfluss hat z.B.: Zeitdifferenz zwischen Sendebefehl an Rollladen und tatsächliches Verfahren des Rollladen.

          M 1 Reply Last reply Reply Quote 0
          • G
            GiuseppeS last edited by GiuseppeS

            Habe eine neue Version hochgeladen; hier ist eine neue Variable integriert, über die eine zeitversetzte Steuerung möglich ist.

            Wie zuletzt immer gehandhabt: Wer diese Funktion nicht benötigt, braucht oben im Variablen-Bereich keine Variablen zu ergänzen.

            Beim Testen der neuen Funktion mit dem Versatz ist mir ein Bug aufgefallen:
            Wenn mehrere Timer gemerkt werden, werden im Nachgang nicht alle Timer sofort ausgelöst, wenn die Bedingungen nachträglich erfüllt werden. Ich bin noch nicht dahintergekommen welche Umstände dazu führen, aber ich konnte es reproduzieren als ich 4 Timer zur selben Uhrzeit mit nicht-erfüllten Bedingungen in den Hintegrund "geschoben" habe.

            Bug ist nicht durch die neue Funktion entstanden, muss wohl schon länger so sein, daher habe ich jetzt trotzdem die neue Version hochgeladen 🤷‍♂️


            Changelog 17.06.2020 (Skript)

            • Steuerung der Geräte mit Versatz möglich. Neue (optionale) Variable "sendWithOffset"
            M 1 Reply Last reply Reply Quote 0
            • M
              micklafisch @GiuseppeS last edited by

              @GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

              @micklafisch
              Wenn der Rollladen gestartet wird und nicht über ein Befehl mittendrin gestoppt wird und die zuvor gemessene Zeit X (oder Rest von X, falls von mittendrin gestartet) überschritten wird, muss der Rollladen an einer Endposition sein und die berechnete/angezeigte Position wird auf 0 bzw 100 gesetzt. Vorhandene Rechenfehler der Position, werden hiermit eliminiert.

              Das hört sich in der Tat interessant an. Bisher hatte ich mit den 0 - 50 und 100% Stellungen gelebt, wobei die 50% Stellung bei Somy die fest eingespeicherte "my" Position ist. Alles was dann manuell mitten drin gestoppt wurde wurde in der VIS falsch dargestellt.

              Die neue Version mit der Verzögerung werde ich vermutlich am Wochenende testen und dann bereichten wie es läuft.

              1 Reply Last reply Reply Quote 0
              • M
                micklafisch @GiuseppeS last edited by

                @GiuseppeS
                ich habe glaube ich noch einen Fehler gefunden:

                Ich habe bei den Rollläden die Sortierung der Gruppe über "DropDownDevice" geändert und das Skript danach neu gestartet. Jetzt werden die Rollläden korrekt sortiert angezeigt, wenn ich aber ein einzelnen Rollladen auswähle, dann sind die angezeigten Parameter nicht die des aktuellen Rollladens sondern für den der zuvor in der Liste der DropDownDevice stand.

                Ein Video sagt mehr als tausend Worte:

                Anzeigefehler ausgewählter Rollladen.gif

                Da ich mich erst jetzt wieder tiefer mit dem Skript beschäftige und auch jetzt erst dadurch die Sortierung der Rollläden angepasst habe, kann ich nicht sagen seit wann der Fehler ist.

                Glasfaser G 2 Replies Last reply Reply Quote 0
                • Glasfaser
                  Glasfaser @micklafisch last edited by

                  @micklafisch sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

                  und das Skript danach neu gestartet.

                  starte mal dein komplettes System mal neu ... und was ist dann !?

                  1 Reply Last reply Reply Quote 0
                  • G
                    GiuseppeS @micklafisch last edited by

                    @micklafisch
                    Den Fehler kann ich bei mir nicht reproduzieren. Filtert wie gewünscht...

                    Wie Glasfaser meinte, System mal komplett neu starten. Hatten schon die seltsamsten Probleme.
                    Ich werde übrigens auch nochmal schauen, ob mein Bug mit System Neustart noch existiert. Daran hatte ich nämlich auch nicht gedacht.

                    Wenn das mit dem Filtern bei dir weiterhin fehlerhaft ist, muss ich mal prüfen ob es mit deinen ":" in den Namen zusammenhängen kann. Sonderzeichen sind selten eine gute Idee 😉

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      micklafisch @GiuseppeS last edited by

                      @GiuseppeS @Glasfaser
                      ein Neustart meines ioBroker Containers hat nichts gebracht, der Fehler ist weiterhin. Jetzt habe ich in einem zweiten Skript welches parallel läuft (andere Geräte/Aufzählungen) und auch die Filterung bisher funktionierte einmal die Sortierung in dem entsprechenden DropDownDevice geändert und siehe da ich hab den Fehler auch da. Der Doppelpunkt kommt von der CCU (CUx Device), da ich damals beim Einrichten dem Rat gefolgt bin jedem Geräte-Kanal auch die Kanalnummer im Namen mitzugeben um die Übersicht zu behalten.

                      Ich hab den Namen der Kanäle einmal händisch angepasst und den Doppelpunkt in ioBroker entfernt, das wird aber wieder überschrieben wenn die CCU die Daten synchronisiert.

                      Komischerweise funktionierte die Filterung im zweiten Enum bisher problemlos, bis ich die Sortierung geändert habe. Als würde das manuelle anpassen der Sortierung etwas an der Schreibweise der Daten ändern 😕

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        GiuseppeS @micklafisch last edited by GiuseppeS

                        @micklafisch
                        Das war der goldene Hinweis! Habe das Skript zweimal laufen (auch unterschiedliche Geräte), einmal original und einmal umsortiert. Und bei der umsortierten Tabelle habe ich auch den Fehler.
                        Die Reihenfolge aus dem Dropdown stimmt funktional anscheinend mit der original Reihenfolge der Tabelle überein, auch wenn die Geräte Reihenfolge geändert wurde.
                        Dieser Fehler kann nicht besonders kompliziert sein, werde ich mir am Wochenende anschauen und korrigieren.

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          micklafisch @GiuseppeS last edited by

                          @GiuseppeS
                          Puhhh dann bin ich fast schon froh dass ich nicht alleine bin. Dachte schon ich muss alle meine Geräte in der CCU umbenennen und in ioBroker alles anpassen 😵

                          Aber gut wenn du den Fehler nun auch nachstellen kannst. Ich warte erstmal mit der Umbenennerei.

                          Zum testen stehe ich gerne bereit

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            GiuseppeS @micklafisch last edited by

                            @micklafisch
                            Selbst wenn das einen Einfluss gehabt hätte, könnte man es sicherlich anders lösen anstatt zig Merkmale umzubenennen. Wenn du bisher keine Nebenwirkungen wegen der Namen hattest, wird es schon ok sein.

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

                              Update ist hochgeladen:

                              Changelog 20.06.2020 (Skript)

                              • Bugfix: Bei Tabellen mit modifizierter Reihenfolge funktioniert nun auch die Filterung korrekt!
                              • State "javascript.0.Timer.AtHomeSimul.TableJSON" gelöscht, wurde schon länger nicht benötigt.

                              Habe eben auch gesucht, woher der Bug mit den gemerkten Timern herrührt, aber kann noch keine Ursache ausmachen. Muss mich damit weiter beschäftigen...

                              M sigi234 2 Replies Last reply Reply Quote 0
                              • M
                                micklafisch @GiuseppeS last edited by

                                @GiuseppeS
                                Sortierung funktioniert einwandfrei, sehr geil.

                                Danke!

                                1 Reply Last reply Reply Quote 0
                                • sigi234
                                  sigi234 Forum Testing Most Active @GiuseppeS last edited by

                                  @GiuseppeS

                                  Hallo, bei mir steht immer NULL da?

                                  Screenshot (102).png

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    GiuseppeS @sigi234 last edited by

                                    @sigi234
                                    Hmm, dachte, dass es mit der letzten Änderung nicht mehr passiert.
                                    Gib mal im State "javascript.0.Timer.Devices.ErrorMsg" etwas ein und lösche es wieder nach wenigen Sekunden.

                                    Muss das nachher testen.

                                    sigi234 1 Reply Last reply Reply Quote 0
                                    • sigi234
                                      sigi234 Forum Testing Most Active @GiuseppeS last edited by sigi234

                                      @GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

                                      @sigi234
                                      Hmm, dachte, dass es mit der letzten Änderung nicht mehr passiert.
                                      Gib mal im State "javascript.0.Timer.Devices.ErrorMsg" etwas ein und lösche es wieder nach wenigen Sekunden.

                                      Muss das nachher testen.

                                      Geht jetzt.

                                      Frage, sehe ich das Richtig das ich für jede Funktion (var deviceEnum = "enum.functions.blinds";) eine Vis und ein Skript anlegen muss?

                                      Glasfaser 1 Reply Last reply Reply Quote 0
                                      • smartboart
                                        smartboart last edited by smartboart

                                        Hallo, coole Sache....Bin gerade am ausprobieren und habe folgende Meldungen im log, sobad ich auf löschen oder add drücke...
                                        Ansosnten funktionert es soweit bei mir...

                                        			
                                        host.ioBroker-RasPi4	2020-06-29 12:30:00.070	info	instance system.adapter.daswetter.0 started with pid 14115
                                        javascript.1	2020-06-29 12:25:09.421	error	(21153) at processImmediate (internal/timers.js:456:21)
                                        javascript.1	2020-06-29 12:25:09.421	error	(21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                                        javascript.1	2020-06-29 12:25:09.420	error	(21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25)
                                        javascript.1	2020-06-29 12:25:09.420	error	(21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38)
                                        javascript.1	2020-06-29 12:25:09.420	error	(21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:834:26)
                                        javascript.1	2020-06-29 12:25:09.419	error	(21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19)
                                        javascript.1	2020-06-29 12:25:09.419	error	(21153) at Function.keys (<anonymous>:null:null)
                                        javascript.1	2020-06-29 12:25:09.418	error	(21153) Error in callback: TypeError: Cannot convert undefined or null to object
                                        javascript.1	2020-06-29 12:24:59.005	error	(21153) at processImmediate (internal/timers.js:456:21)
                                        javascript.1	2020-06-29 12:24:59.004	error	(21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                                        javascript.1	2020-06-29 12:24:59.004	error	(21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25)
                                        javascript.1	2020-06-29 12:24:59.004	error	(21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38)
                                        javascript.1	2020-06-29 12:24:59.003	error	(21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:927:22)
                                        javascript.1	2020-06-29 12:24:59.003	error	(21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19)
                                        javascript.1	2020-06-29 12:24:59.002	error	(21153) at Function.keys (<anonymous>:null:null)
                                        javascript.1	2020-06-29 12:24:59.002	error	(21153) Error in callback: TypeError: Cannot convert undefined or null to object
                                        javascript.1	2020-06-29 12:24:57.737	error	(21153) at processImmediate (internal/timers.js:456:21)
                                        javascript.1	2020-06-29 12:24:57.736	error	(21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                                        javascript.1	2020-06-29 12:24:57.736	error	(21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25)
                                        javascript.1	2020-06-29 12:24:57.735	error	(21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38)
                                        javascript.1	2020-06-29 12:24:57.735	error	(21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:927:22)
                                        javascript.1	2020-06-29 12:24:57.734	error	(21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19)
                                        javascript.1	2020-06-29 12:24:57.734	error	(21153) at Function.keys (<anonymous>:null:null)
                                        javascript.1	2020-06-29 12:24:57.733	error	(21153) Error in callback: TypeError: Cannot convert undefined or null to object
                                        javascript.1	2020-06-29 12:24:56.091	error	(21153) at processImmediate (internal/timers.js:456:21)
                                        javascript.1	2020-06-29 12:24:56.091	error	(21153) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                                        javascript.1	2020-06-29 12:24:56.090	error	(21153) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25)
                                        javascript.1	2020-06-29 12:24:56.090	error	(21153) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38)
                                        javascript.1	2020-06-29 12:24:56.089	error	(21153) at Object.<anonymous> (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:927:22)
                                        javascript.1	2020-06-29 12:24:56.088	error	(21153) at length (script.js.common.Zeitsteuerung.Variable_Zeitsteuerung_Vis:207:19)
                                        javascript.1	2020-06-29 12:24:56.087	error	(21153) at Function.keys (<anonymous>:null:null)
                                        javascript.1	2020-06-29 12:24:56.086	error	(21153) Error in callback: TypeError: Cannot convert undefined or null to object
                                        
                                        Glasfaser G 2 Replies Last reply Reply Quote 0
                                        • Glasfaser
                                          Glasfaser @smartboart last edited by

                                          @smartboart

                                          Error in callback: TypeError: Cannot convert undefined or null to object

                                          https://forum.iobroker.net/topic/23346/vorlage-variable-zeitsteuerung-mit-vis-editor/126

                                          smartboart 1 Reply Last reply Reply Quote 0
                                          • G
                                            GiuseppeS @smartboart last edited by

                                            @smartboart
                                            Wenn ich es richtig sehe, hast du das Skript mit Javascript Instanz 1 gestartet, oder? Bitte ausschließlich mit Instanz 0 nutzen. Habe es im Skript nicht dynamisch programmiert. Falls der ausdrückliche Wunsch besteht, kann ich es auch dynamisch einrichten. Allerdings würden die Zuordnungen im Editor dann auch nicht mehr passen.

                                            smartboart 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            978
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            47
                                            919
                                            195200
                                            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