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

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Variable Zeitsteuerung mit VIS Editor

    This topic has been deleted. Only users with topic management privileges can see it.
    • sigi234
      sigi234 Forum Testing Most Active @Pittini last edited by

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

      ich schau mir mal Deins an und Du schaust mal in meins rein, dann reden wir nochmal würd ich sagen.

      Und daraus entsteht ein wunderbarer Adapter.😀

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

        @Pittini
        Ich schaue mir deine Umsetzung mal genauer an, dann reden wir nochmal 😉
        Dass die programmatische Umsetzung unterschiedlich ist, unterschreibe ich sofort. Hatte mit diesem Timer meine ersten Schritte in Richtung Programmierung + JavaScript gemacht. Mir würde es bei dem merge eher um funktionelle Inhalte gehen. Wie es im Hintergrund abläuft, wäre egal.

        Was mir noch einfällt: mic hat mittlerweile einen Adapter entwickelt, der glaube auch Timer beinhaltet. Finde den gerade nicht auf die schnelle. Aber da war wohl die VIS noch außen vor.

        P 1 Reply Last reply Reply Quote 0
        • P
          Pittini Developer @GiuseppeS last edited by

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

          Was mir noch einfällt: mic hat mittlerweile einen Adapter entwickelt, der glaube auch Timer beinhaltet. Finde den gerade nicht auf die schnelle. Aber da war wohl die VIS noch außen vor.

          Ja, Du meinst sicher SmartControl. Das Ding ist als eierlegende Wollmilchsau konzipiert und nicht mal ich blick noch bei der Konfig durch, weis ned ob des was für Anfänger wär. Meine Skripte sind vom Konzept her so dass, wenn man sich an die Anleitung hält, das auchn Einsteiger bewältigen kann, dafür sind se auch gemacht. Ich hab mir Dein Skript jetzt mal genauer angesehen und glaube nicht das wir das gemixt bekommen, sollten wir imho auch nicht.
          Dein Skript hat nen anderen Ansatz glaub ich und wir haben recht unterschiedliche Programmierstile (ich bin was proggen angeht ein Dinosaurier, als ich anfing gabs sowas wie oop noch nicht, deswegen mach ich alles mit Arrays etc.). DEin Skript kann mehr als meines, dafür ist meines imho leichter zu installieren. Finde ich nicht schlecht, so haben Einsteiger schnell was laufen und wer mehr braucht kann ja dann zu Deinem Skript wechseln, den Ansatz mit kenntlichmachen der Ziele via Aufzählung haben wir ja gleich.

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

            Hallo zusammen,

            hat jemand von euch die Zeitsteuerung mit angelegten Alias in Betrieb? Bei mir geht immer mal wieder ein 433Mhz Baumarkt Zwischenstecker kaputt, jetzt wo die Weihnachtsdeko wieder raus kommt hab ich nach 10 Monaten im Speicher rumliegen wieder eine die nicht mehr geht.

            Um das in Zukunft einfacher zu halten wollte ich mich mit der Alias Funktion bzw. dem Adapter beschäftigen. Leider wird der Aliasname im Timerskript nicht richtig ausgelesen und nur mit [object Object] ausgegeben:

            e1aff8f8-c847-4a76-aab1-dde6cff7c59e-grafik.png

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

              @micklafisch
              An sich ist das Zielgerät nicht wichtig. Es ist nur relevant, dass in der verwendeten Aufzählung ausschließlich States verwendet werden, keine darüber liegenden Gruppen.
              Um sicher zu gehen, ob alles richtig ist, kannst du vom ioBroker Objektbaum ein Screenshot machen, worin die 433Mhz Stecker zu sehen sind.

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

                @micklafisch
                Was mir gerade noch einfällt: verwende für einen Teil meiner Rollläden auch die Alias Funktion. Funktioniert einwandfrei.

                1 Reply Last reply Reply Quote 0
                • B
                  boehmgui last edited by

                  Moin zusammen,
                  echt ein toles Skript! Für meine Steckdoesen läuft es einwandfrei.
                  Ich möcht nun eine zweite Instanz für meine Rolläden adaptieren. Die Steuerung ist hier leider nicht ganz so einfach., da ich keine %-Werte angeben kann, sondern nur "UP/DOWN", wobei der Wert aber nur kurzzeitig anstehen darf und wieder auf "" gesetzt werden muss.

                  Nun habe ich mir in dem Skript einen Wolf gesucht (JS ist nicht so ganz meine Welt), wo denn die eigentliche Aktion ausgeführt, i.e. der DatenPunkt gesetzt wird. Ich müsste dort dort irgendwie eine Callback Funktion einbauen, die den DP verzögert wieder auf "" setzt.

                  So habe ich das ggw. in meinen Skript, welches ich durch die Variable Zeitsteuereung ersetzten möchte

                  setStateDelayed(shutter[i], "DOWN", delay, false, function (){
                          log(shutter[i] + "DOWN");
                          setStateDelayed(shutter[i], "", 1000);
                          });
                  

                  Kann mir da bitte jemand den Weg weisen?

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

                    @GiuseppeS
                    Danke für den Hinweis, genau das war das Problem.

                    Wenn ich bei der Alias Erzeugung eine Aufzählung mit angebe, dann fügt der Adapter den channel mitsamt state ein und nicht nur den state. Habe den channel aus der Aufzählung entfernt und den state manuell rein, schon klappt das ganze auch. Danke!

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

                      @boehmgui
                      Freut mich, dass du das Skript gleich mehrfach nutzen möchtest 😉
                      UP & DOWN kannst du hoffentlich dank der erweiterten github Anleitung selbstständig definieren, ansonsten einfach hier nachfragen.
                      Zum Punkt, dass die Vorgaben nur kurzzeitig anliegen dürfen:
                      Ich würde dueses Skript gar nicht ändern und ein weiteres Skript anlegen. Dort würde ich es wie folgt umsetzen.

                      • Trigger über alle Rollläden
                      • wenn Trigger Wert ungleich "", dann setze Trigger ID auf "" nach 1000 ms

                      Der riesige Vorteil: das funktioniert global, d.h. auch wenn über weitere Skripte deine Rollläden gesteuert werden. Außerdem kannst du so weitere Updates des Skripts einfach über copy/paste hochziehen ohne individuelle Anpassungen nachzutragen.
                      Falls du die Vorgehensweise gut findest, aber bei der Umsetzung Unterstützung benötigst, einfach fragen.

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

                        Jetzt habe ich leider ein neues Problem. Obwohl ich am parallel laufenden Timerskript für meine Rollläden nichts geändert habe kommen nach einem Neustart folgende Fehler im Log:

                        javascript.0	2020-11-30 12:21:41.683	error	(636) at processTimers (internal/timers.js:492:7)
                        javascript.0	2020-11-30 12:21:41.683	error	(636) at listOnTimeout (internal/timers.js:549:17)
                        javascript.0	2020-11-30 12:21:41.682	error	(636) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2024:34)
                        javascript.0	2020-11-30 12:21:41.682	error	(636) at Object.main (script.js.common.Zeitschaltuhren_Rollos:1833:49)
                        javascript.0	2020-11-30 12:21:41.682	error	(636) at Array.forEach (<anonymous>)
                        javascript.0	2020-11-30 12:21:41.681	error	(636) at script.js.common.Zeitschaltuhren_Rollos:1842:71
                        javascript.0	2020-11-30 12:21:41.681	error	(636) Error in callback: TypeError: Cannot read property 'common' of null
                        javascript.0	2020-11-30 12:21:41.675	warn	(636) Object "undefined" does not exist
                        javascript.0	2020-11-30 12:21:40.154	info	(636) script.js.common.Zeitschaltuhren_Rollos: registered 0 subscriptions and 0 schedules
                        javascript.0	2020-11-30 12:21:40.072	info	(636) Start javascript script.js.common.Zeitschaltuhren_Rollos
                        

                        Bisher hatte ich nur am Steckdosen Timer mit den Alias Namen experimentiert. Dort kommt nach einem Neustart auch kein Fehler 🤷‍♂️

                        Nachtrag: Habe bei beiden die Version 1.2.0 im Einsatz.

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

                          @GiuseppeS
                          uuuhhhh, warum denke ich eigentlich immer so kmpliziert?
                          Danke für den Denkanstoß - das bekomme ich hin 🙂

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

                            @micklafisch
                            Hmm, ich kann anhand der Fehlerzeilen nichts in Bezug auf "common" finden. Hast du oben im Skript Teile raus gelöscht?
                            Ansonsten, wegen dem Fehler "common": stimmen noch die Namen der oben verwendeten Aufzählungen?

                            Bin gleich wieder an der Arbeit, daher werde ich erst heute Abend weiter unterstützen können.

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

                              @GiuseppeS
                              ich habe jetzt zur Sicherheit das alte Skript abgeschaltet und ein neues erstellt und deine aktuelle Vorlage reinkopiert. Dazu habe ich dann nur die wichtigsten Variablen geändert (Aufzählung, Pfad, Logging etc) - das Skript ist sonst unverändert. Die Fehlercodezeilen sind jetzt andere:

                              javascript.0	2020-11-30 13:08:22.725	error	(636) at processTimers (internal/timers.js:492:7)
                              javascript.0	2020-11-30 13:08:22.725	error	(636) at listOnTimeout (internal/timers.js:549:17)
                              javascript.0	2020-11-30 13:08:22.725	error	(636) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2024:34)
                              javascript.0	2020-11-30 13:08:22.724	error	(636) at Object.main (script.js.common.Zeitschaltuhren_Rollos:1614:49)
                              javascript.0	2020-11-30 13:08:22.724	error	(636) at Array.forEach (<anonymous>)
                              javascript.0	2020-11-30 13:08:22.724	error	(636) at script.js.common.Zeitschaltuhren_Rollos:1623:71
                              javascript.0	2020-11-30 13:08:22.723	error	(636) Error in callback: TypeError: Cannot read property 'common' of null
                              javascript.0	2020-11-30 13:08:22.718	warn	(636) Object "undefined" does not exist
                              javascript.0	2020-11-30 13:08:21.208	info	(636) script.js.common.Zeitschaltuhren_Rollos: registered 0 subscriptions and 0 schedules
                              javascript.0	2020-11-30 13:08:21.168	info	(636) Start javascript script.js.common.Zeitschaltuhren_Rollos
                              javascript.0	2020-11-30 13:08:20.906	info	(636) Stop script script.js.common.Zeitschaltuhren_Rollos
                              

                              Die Aufzählung stimmt noch, ich hatte lediglich mal die Sortierung über den State "DropDownDevice" geändert. Wenn du weitere Infos brauchst, sag bescheid.

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

                                @micklafisch
                                Hast du auch die Aufzählung deiner Bedingungen kontrolliert? Dort steigt das Skript aus.

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

                                  @GiuseppeS
                                  ja hab ich. Da ist der Standardeintrag drin:
                                  465ba518-f730-47b6-9476-cfc1c0a70e3e-grafik.png

                                  Diese Aufzählung sieht so aus:

                                  9762c423-b552-471b-87a0-a958985a55b4-grafik.png

                                  Das komische ist, das zweite Skript mit den Steckdosen zieht ebenfalls auf die gleiche Aufzählung ab und erzeugt keine Fehler. Darf da nur ein Skript auf eine Aufzählung zugreifen?

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

                                    @GiuseppeS
                                    hier die Dateien zum Debug von mir
                                    Rolloskript.txt
                                    timerJSON.txt

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

                                      Sorry @micklafisch dass du unfreiwillig Beta-Tester wurdest.

                                      Bitte die Zeilen von 1622 bis 1632 löschen. Zeilenangaben sind am unteren Screenshot angelehnt.

                                      Es hat sich mit dem letzten Update ein Bug eingeschlichen. Bitte vorerst nicht auf v1.2.0 updaten!
                                      Ein Update mit Bugfix v1.2.1 liefer ich heute Abend.

                                      Diese neuen Code Zeilen sind "nur" relevant, wenn sich IDs in den Aufzählungen ändern aber die Namen beibehalten werden.

                                      Aber hier stimmt im Code was nicht mit den Zuordnungen. Muss ich nachher am PC austesten. Wieso bei mir kein Fehler auftritt, ist mir noch unklar.

                                      Hier der betroffene Bereich zu den angegebenen Zeilen:
                                      Screenshot_20201130-183829.jpg

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

                                        @GiuseppeS
                                        Läuft jetzt erstmal wieder mit deinem Workaround.

                                        Ich hab kein Problem auf den einen oder anderen Fehler zu stoßen. Immerhin hilfst du immer prompt und supportest dein eigenes Produkt auch hervorragend (inkl. Fehlererklärung, was nicht immer selbstverständlich ist).

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

                                          Neues Update ist online: https://github.com/gsicilia82/Timer_iobroker

                                          Changelog v1.2.1 30.11.2020 (Skript)

                                          • Bugfix: Updates der IDs von Bedingungen funktioniert nun ohne Fehlermeldung
                                            • Wenn gleichnamige Ersetzungen in der Aufzählung für Bedingungen oder für die Zielgeräte stattfinden, dann werden in allen Skript- und JSON-Elementen die neuen State-IDs übernommen
                                          • Lange String Passagen durch Backtick Strings ersetzt (Code besser zu lesen)
                                          B 1 Reply Last reply Reply Quote 0
                                          • B
                                            boehmgui @GiuseppeS last edited by

                                            Moin zusammen,
                                            ich habe zwei Fragen bzgl. "Timer merken".

                                            • Meine Rolläden sollen bei "sunset" -+ radom 5 Minuten herunterfahren. Als Bedingung habe ich noch dass bestimmte Steckdosen ausgeschaltet sein müssen (Weihnachstbeleuchtung am Fenster).
                                              Die Steckdosen gehen um 21:00 aus. Ich habe beobachtet, dass die Rolläden einige Minuten später zu gingen. Wirkt sich der offset dann noch aus oder braucht es eine Zeit, bis erkannt wird, dass die Bedingungen nun erfüllt sind?

                                            • In der Doku steht dass der Timner aus dem Speicher gelöscht wird wenn das Ziel-Gerät unabhängig vom Timer geschaltet wurde. Bedeutet das, dass der Zieldatenpunkt gemonitored wird? Wir der timer dann bei jedweder Zustandsänderung gelöscht?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            537
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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