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

  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [Vorlage] Variable Zeitsteuerung mit VIS Editor

NEWS

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

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

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

[Vorlage] Variable Zeitsteuerung mit VIS Editor

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vistemplate
919 Beiträge 47 Kommentatoren 279.2k Aufrufe 75 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.
  • M micklafisch

    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 Offline
    G Offline
    GiuseppeS
    schrieb am zuletzt editiert von
    #844

    @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 Antwort Letzte Antwort
    1
    • M micklafisch

      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 Offline
      G Offline
      GiuseppeS
      schrieb am zuletzt editiert von
      #845

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

      1 Antwort Letzte Antwort
      0
      • B Offline
        B Offline
        boehmgui
        schrieb am zuletzt editiert von
        #846

        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 Antwort Letzte Antwort
        0
        • G GiuseppeS

          @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 Offline
          M Offline
          micklafisch
          schrieb am zuletzt editiert von
          #847

          @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 Antwort Letzte Antwort
          1
          • B boehmgui

            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 Offline
            G Offline
            GiuseppeS
            schrieb am zuletzt editiert von GiuseppeS
            #848

            @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 Antwort Letzte Antwort
            0
            • M Offline
              M Offline
              micklafisch
              schrieb am zuletzt editiert von micklafisch
              #849

              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 :man-shrugging:

              Nachtrag: Habe bei beiden die Version 1.2.0 im Einsatz.

              G 1 Antwort Letzte Antwort
              0
              • G 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 Offline
                B Offline
                boehmgui
                schrieb am zuletzt editiert von
                #850

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

                1 Antwort Letzte Antwort
                1
                • M 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 :man-shrugging:

                  Nachtrag: Habe bei beiden die Version 1.2.0 im Einsatz.

                  G Offline
                  G Offline
                  GiuseppeS
                  schrieb am zuletzt editiert von GiuseppeS
                  #851

                  @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 Antwort Letzte Antwort
                  0
                  • G 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 Offline
                    M Offline
                    micklafisch
                    schrieb am zuletzt editiert von
                    #852

                    @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 Antwort Letzte Antwort
                    0
                    • M micklafisch

                      @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 Offline
                      G Offline
                      GiuseppeS
                      schrieb am zuletzt editiert von
                      #853

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

                      M 2 Antworten Letzte Antwort
                      0
                      • G GiuseppeS

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

                        M Offline
                        M Offline
                        micklafisch
                        schrieb am zuletzt editiert von
                        #854

                        @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 Antwort Letzte Antwort
                        0
                        • G GiuseppeS

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

                          M Offline
                          M Offline
                          micklafisch
                          schrieb am zuletzt editiert von
                          #855

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

                          G 1 Antwort Letzte Antwort
                          0
                          • M micklafisch

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

                            G Offline
                            G Offline
                            GiuseppeS
                            schrieb am zuletzt editiert von GiuseppeS
                            #856

                            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 Antwort Letzte Antwort
                            0
                            • G 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 Offline
                              M Offline
                              micklafisch
                              schrieb am zuletzt editiert von
                              #857

                              @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 Antwort Letzte Antwort
                              0
                              • G Offline
                                G Offline
                                GiuseppeS
                                schrieb am zuletzt editiert von
                                #858

                                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 Antwort Letzte Antwort
                                0
                                • G GiuseppeS

                                  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 Offline
                                  B Offline
                                  boehmgui
                                  schrieb am zuletzt editiert von
                                  #859

                                  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 Antwort Letzte Antwort
                                  0
                                  • B boehmgui

                                    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 Offline
                                    G Offline
                                    GiuseppeS
                                    schrieb am zuletzt editiert von GiuseppeS
                                    #860

                                    @boehmgui

                                    Zu Punkt 1)
                                    Die veränderten Bedingungen werden sofort registriert. Müsste auf der Tabelle auch direkt sichtbar sein (zumindest wenn dann alle Bedingungen true oder false sind). Random wird bei gemerkten Timer auch angewendet. Dieses Verhalten kann über die Variable

                                    var bgTimerWithRandom
                                    

                                    deaktiviert (= false) werden.

                                    Punkt 2)
                                    Zielgerät wird tatsächlich überwacht. Wenn sich der Zustand vom Zielgerät ändert, wird ein im Hintergrund befindlicher Timer gelöscht. Ab diesem Zeitpunkt gibt es den Timer nicht mehr im Hintergrund. Weitere Zustandsänderungen des Zielgeräts haben somit keinen weiteren Einfluss auf die Timer.

                                    jpgorganizerJ 1 Antwort Letzte Antwort
                                    0
                                    • G GiuseppeS

                                      @boehmgui

                                      Zu Punkt 1)
                                      Die veränderten Bedingungen werden sofort registriert. Müsste auf der Tabelle auch direkt sichtbar sein (zumindest wenn dann alle Bedingungen true oder false sind). Random wird bei gemerkten Timer auch angewendet. Dieses Verhalten kann über die Variable

                                      var bgTimerWithRandom
                                      

                                      deaktiviert (= false) werden.

                                      Punkt 2)
                                      Zielgerät wird tatsächlich überwacht. Wenn sich der Zustand vom Zielgerät ändert, wird ein im Hintergrund befindlicher Timer gelöscht. Ab diesem Zeitpunkt gibt es den Timer nicht mehr im Hintergrund. Weitere Zustandsänderungen des Zielgeräts haben somit keinen weiteren Einfluss auf die Timer.

                                      jpgorganizerJ Offline
                                      jpgorganizerJ Offline
                                      jpgorganizer
                                      schrieb am zuletzt editiert von
                                      #861

                                      Hi, ich versuche gerade diese Zeitsteuerung für MDCSS2 umzustricken. Das geht ansich ganz easy und ist vergleichsweise schnell erledigt.

                                      Nur ich habe dann festgestellt, dass die Haupttabelle auf einem Handy im Hochformat mir nicht gefällt. Deshalb habe ich auch noch zusätzlich begonnen mir hier was anderes einfallen zu lassen (wenn es denn mal soweit ist, dann bekommst du / ihr das).

                                      Nun habe ich ein Problem mit der Aktualisierung der Tabelle, wenn ich einen Timer aktiviere bzw. deaktiviere. Im TimerJSON wird die Aktualisierung eingetragen, nur in TableHTML kommt es nicht an. Bei der Ursachenforschung bin ich auf die Funktion toggleActivation gestossen. Darin steht in Zeile 884 ein setState("....TimerJSON", ... , true) , also mit ack=true.

                                      53ed9146-b425-43ba-882e-51acb30633bb-grafik.png

                                      Es gibt einen on-Handler für den State TimerJSON, aus dem heraus dann auch TableHTML aktualisiert wird. Nur dieser Handler reagiert nur bei ack=false.

                                      5ad92dda-3a77-4cce-a74f-4b16316b2168-grafik.png

                                      @GiuseppeS
                                      Deshalb die Frage: was spricht dagegen, den setState in Zeile 884 mit ack=false zu setzen? Kannst du noch sagen, warum du ein ack=true verwendet hast?

                                      Auf den ersten Test funktioniert es bei mir gut. Aber welche Stolperfalle habe ich mir dadurch eingebaut?

                                      VG jpgorganizer

                                      PS: Zeilennummern sind aus der aktuellen Version v1.2.1 30.11.2020 von github (gestern von dort geholt)

                                      Bitte keine Fragen per PN, die gehören ins Forum!

                                      ioBroker
                                      smartgarden Adapter für GARDENA smart system
                                      Plattform: Raspberry Pi OS Linux 12 (bookworm), Node.js: v18.18.2, NPM: 9.8.1

                                      G 1 Antwort Letzte Antwort
                                      0
                                      • jpgorganizerJ jpgorganizer

                                        Hi, ich versuche gerade diese Zeitsteuerung für MDCSS2 umzustricken. Das geht ansich ganz easy und ist vergleichsweise schnell erledigt.

                                        Nur ich habe dann festgestellt, dass die Haupttabelle auf einem Handy im Hochformat mir nicht gefällt. Deshalb habe ich auch noch zusätzlich begonnen mir hier was anderes einfallen zu lassen (wenn es denn mal soweit ist, dann bekommst du / ihr das).

                                        Nun habe ich ein Problem mit der Aktualisierung der Tabelle, wenn ich einen Timer aktiviere bzw. deaktiviere. Im TimerJSON wird die Aktualisierung eingetragen, nur in TableHTML kommt es nicht an. Bei der Ursachenforschung bin ich auf die Funktion toggleActivation gestossen. Darin steht in Zeile 884 ein setState("....TimerJSON", ... , true) , also mit ack=true.

                                        53ed9146-b425-43ba-882e-51acb30633bb-grafik.png

                                        Es gibt einen on-Handler für den State TimerJSON, aus dem heraus dann auch TableHTML aktualisiert wird. Nur dieser Handler reagiert nur bei ack=false.

                                        5ad92dda-3a77-4cce-a74f-4b16316b2168-grafik.png

                                        @GiuseppeS
                                        Deshalb die Frage: was spricht dagegen, den setState in Zeile 884 mit ack=false zu setzen? Kannst du noch sagen, warum du ein ack=true verwendet hast?

                                        Auf den ersten Test funktioniert es bei mir gut. Aber welche Stolperfalle habe ich mir dadurch eingebaut?

                                        VG jpgorganizer

                                        PS: Zeilennummern sind aus der aktuellen Version v1.2.1 30.11.2020 von github (gestern von dort geholt)

                                        G Offline
                                        G Offline
                                        GiuseppeS
                                        schrieb am zuletzt editiert von GiuseppeS
                                        #862

                                        @jpgorganizer
                                        Erstmal mein Respekt, dass du dich in diesem Skript-Dschungel zurechtfindest. Ist alles andere als vorbildlich programmiert.

                                        Zum Problem:
                                        Wenn Du in der Tabelle einen Timer togglest, dann wird es innerhalb der Tabelle verarbeitet, d.h. ohne dass das html im State aktualisiert wird. Aber dennoch soll das JSON aktualisiert werden, schließlich muss alles noch passen wenn das Skript neu gestartet wird.
                                        Grund:
                                        Wenn durch ein Toggle das json angepasst wird und dies ein neues html generieren würde, dann würde die vollständige Tabelle neu gerendert werden und somit die Scroll-Position verloren gehen. Nur deshalb funktioniert aktuell das Togglen geschmeidig ohne Sprünge der Scroll-Position.

                                        Wenn bei dir das Togglen nicht mehr funktioniert, musst du innerhalb des html Codes die Funktion prüfen, ob diese weiter korrekt angesprochen wird und auch der Rückgabewert passt.

                                        Was genau passt du denn bzgl der mobilen Ansicht an? Evtl könnte ich es allgemein übernehmen.

                                        jpgorganizerJ 1 Antwort Letzte Antwort
                                        0
                                        • G GiuseppeS

                                          @jpgorganizer
                                          Erstmal mein Respekt, dass du dich in diesem Skript-Dschungel zurechtfindest. Ist alles andere als vorbildlich programmiert.

                                          Zum Problem:
                                          Wenn Du in der Tabelle einen Timer togglest, dann wird es innerhalb der Tabelle verarbeitet, d.h. ohne dass das html im State aktualisiert wird. Aber dennoch soll das JSON aktualisiert werden, schließlich muss alles noch passen wenn das Skript neu gestartet wird.
                                          Grund:
                                          Wenn durch ein Toggle das json angepasst wird und dies ein neues html generieren würde, dann würde die vollständige Tabelle neu gerendert werden und somit die Scroll-Position verloren gehen. Nur deshalb funktioniert aktuell das Togglen geschmeidig ohne Sprünge der Scroll-Position.

                                          Wenn bei dir das Togglen nicht mehr funktioniert, musst du innerhalb des html Codes die Funktion prüfen, ob diese weiter korrekt angesprochen wird und auch der Rückgabewert passt.

                                          Was genau passt du denn bzgl der mobilen Ansicht an? Evtl könnte ich es allgemein übernehmen.

                                          jpgorganizerJ Offline
                                          jpgorganizerJ Offline
                                          jpgorganizer
                                          schrieb am zuletzt editiert von
                                          #863

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

                                          und somit die Scroll-Position verloren gehen.

                                          aha, das hatte ich schon bemerkt, aber nicht begriffen, dass das sonst nicht der Fall war :-) Danke

                                          Meine Änderungen bekommst du in ein paar Tagen. Schau dir mal diese Demo hier von @Uhula an.

                                          https://github.com/Uhula/ioBroker-Material-Design-Style/blob/master/templates/MduiLogInstances/MduiLogInstances_Listview_Black.gif

                                          Ich versuche die Hauptansicht so oder zumindest so ähnlich zu machen. Dann kann ich das auf einem Handy im Hoch- und Querformat besser darstellen - zumindest glaube ich das derzeit.

                                          VG jpgorganizer

                                          Bitte keine Fragen per PN, die gehören ins Forum!

                                          ioBroker
                                          smartgarden Adapter für GARDENA smart system
                                          Plattform: Raspberry Pi OS Linux 12 (bookworm), Node.js: v18.18.2, NPM: 9.8.1

                                          G 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

                                          372

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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