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.
    • sigi234
      sigi234 Forum Testing Most Active @Glasfaser last edited by

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

      @sigi234

      Alles mit dem Logparser .. siehe oben !

      Ja, den habe ich.

      Aber mein nächstes Projekt:

      Überwachung und Steuerung eines Weinkühlschranks.
      Das wird mit dem Timer Super gehen.
      Also, Kühlschrank wird nur zu bestimmten Zeiten und nur wenn die Temperatur unter X Grad fällt eingeschaltet. 😀
      Ich werde da einfach einen Hue Bewegungssensor reinstellen in Kombination mit einer Funksteckdose.

      So ungefähr halt.

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

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

        Ja, den habe ich.

        Ja ... ich weiß das du den hast 😉

        Überwachung und Steuerung eines Weinkühlschranks.

        Geiles Projekt 😂

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

          @sigi234
          Für die Anzeige ausgeführter Timer sollte die Log-Ausgabe genügen. Innerhalb der Tabelle dürfte es eh nur eine vorübergehende Darstellung sein, da Timer sich ja u.U. täglich wiederholen und somit die Darstellung rechtzeitig zurück gesetzt werden müsste.

          @Glasfaser
          Log Variablen ist mit logSuffix ergänzt. Überall wo logPraefix verwendet wird, steht am Ende des Logs noch logSuffix.

          Bzgl. des gewünschten States für die Darstellung der nachträglich erfüllten Timer bin ich noch nicht ganz sicher:
          Dein State wird auf true gesetzt, wenn Timer nachträglich erfüllt werden und setzt sich automatisch zurück. Ok.
          Es könnten allerdings mehrere Timer im Hintergrund schlummern und wenn einer auslöst, dürften eigentlich nicht alle bereinigt werden. Eigentlich müsste dem State statt true/false der Timer-Name mitgegeben werden. Somit könnte explizit dieser Timer aus dem Log bereinigt werden. Dann mit nachgelagertem Skript deinerseits.

          Allgemein bzgl. Log:
          Ich bin der Meinung, dass eine Log-Ausgabe kontinuierlich sein müsste und keine nachträgliche Manipulation eines Logs stattfinden sollte.
          Aber wenn dir ein State iwie weiterhilft mach ich den rein, stört ja nicht.

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

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

            Allgemein bzgl. Log:
            Ich bin der Meinung, dass eine Log-Ausgabe kontinuierlich sein müsste und keine nachträgliche Manipulation eines Logs stattfinden sollte.

            ist ja nur für den Adapter Logparser gedacht !

            1. Man kann auch mit dem Logparser ganz normal danach Filtern , das heißt auch ganz ohne den Zusatz ( aber ohne Log Beeinflussung )

            2. Der Adapter Logpaser bringt aber zusätzlich eine Filterung mit , so das man die Logausgabe manipulieren kann , die ich bei dir im Script nutze .

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

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

              zgl. des gewünschten States für die Darstellung der nachträglich erfüllten Timer bin ich noch nicht ganz sicher:
              Somit könnte explizit dieser Timer aus dem Log bereinigt werden.

              Das geht leider in einem Gesamtlog nicht .. das ein Eintrag gelöscht wird.

              .... stelle es noch zurück , da ich selber damit noch am werkeln bin 🙂

              aber hier kannst du mir noch ein Tip geben !

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

              Problem was ich nicht finde ...
              wenn die Bedingung abgebrochen wird in der Tabelle selber , mit bed oder auf die Zahl Bedingung , das dort auch der Trigger ausgelöst wird .

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

                @Glasfaser
                Lade nachher, wenn ich am PC bin, die aktuelle Version hoch. Dort ist zumindest das mit LogSuffix und Bugfix für die DialogBox drin.

                Wegen dem Abfangen beim Löschen der gemerkten Timer:
                Das einfachste wird es sein wenn du dich an die "Löschfunktion" der gemerkten Timer hängst.

                function resetBackgroundTimers(target){
                ...... 
                } 
                

                Diese Funktion wird aus den beiden Click-Trigger heraus aufgerufen. target ist entweder ="all" (entspricht Überschrift "Bed" ) oder =Gerätename.

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

                  Eine neue Version ist online:

                  Changelog 30.05.2020
                  Betrifft ausschließlich Skript

                  • Bugfix "ErrorMessage" im PopUp (Gelber Streifen beim ersten Start nicht sichtbar)
                  • Neue Variable im Edit-Bereich: logSuffix
                    Kann genutzt werden, um Log-Ausgabe noch flexibler anzupassen (Ist für manuelles Update nicht zwingend neu anzulegen)
                  sigi234 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @GiuseppeS last edited by

                    @GiuseppeS

                    Cool, kannst du reinschreiben ob sich nur das Skript oder auch die Widgets geändert haben?

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

                      @sigi234
                      Hast Recht, ergänze ich noch. Nur Skript hat sich geändert.

                      Edit:
                      Werde es zukünftig bei jedem Update dazu schreiben

                      Glasfaser 1 Reply Last reply Reply Quote 1
                      • Glasfaser
                        Glasfaser @GiuseppeS last edited by

                        @GiuseppeS

                        Danke funktioniert , aber du mußt noch etwas ändern !

                        Ich habe es ja so :

                        var logPraefix = '[Timer] ##{"severity":"", "from":"", "message":"'; // Wenn stdLog = true, kann hiermit die Ausgabe des ausgeführten Timers manipuliert werden
                        var logPraefixend = '"}##'; // Logparser Ende
                        

                        So ist dein Update dazu

                        var logPraefix = "Timer: ";
                        var logSuffix = "";
                        

                        Es kommt eine Fehlermeldung , da du bei dir " drin hast , deshab habe ich bei mir auf ' geändert.
                        Weil das manipulieren ( Logparser ) enthält schon ein ".

                        Also dann so:

                        var logPraefix = 'Timer: ';
                        var logSuffix = '  ';
                        
                        G 1 Reply Last reply Reply Quote 0
                        • G
                          GiuseppeS @Glasfaser last edited by GiuseppeS

                          @Glasfaser
                          Das Skript muss ja allgemeine Gültigkeit haben. Du kannst oben deinen Inhalt verwenden. Es bleibt ja von zukünftigen Updates ausgeschlossen. Ich habe aktuell keine vernünftige Anwendung für die kryptische Zeichenfolge ✌

                          Wenn innerhalb eines Strings das Anführungszeichen genutzt werden soll geht es übrigens mit "
                          Zum Beispiel so

                          var logSuffix = "test)}\" "
                          

                          Edit:
                          Kann im nächsten Update statt " auch ' verwenden. Aber Update kommt dann zusammen mit anderen Punkten, wenn Ideen mitgeteilt werden.

                          Glasfaser 1 Reply Last reply Reply Quote 1
                          • Glasfaser
                            Glasfaser @GiuseppeS last edited by

                            @GiuseppeS

                            Ja .... kein Thema .
                            .. bin ja erstmal eine Ausnahme mit dem Logparser 😁

                            1 Reply Last reply Reply Quote 0
                            • A
                              ak1 last edited by

                              @GiuseppeS Habe ich es richtig verstanden, dass Du demnächst die Views auf Uhulas MDCSS V2 umstellst?

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

                                @ak1
                                Ich will in den kommenden Wochen meine eigene VIS auf MDCSS 2 umstellen. Würde dann den Timer auch auf MDCSS 2 umstellen. Als Download würde ich die letzte Version des Timer mit MDCSS 1 belassen und zusätzlich v2 hochladen. Voraussetzung ist, dass ich mit MDCSS 2 gut klar komme und tatsächlich komplett umsteige.
                                Allerdings: selbst wenn sich meine CSS Version vom Anwender unterscheidet, jeder kann selbst die Widgets schnell überarbeiten. Und an den Widgets gibt es seltener Updates als vom Skript. Zumindest werden, wenn überhaupt, immer nur wenige Widgets überarbeitet/hinzugefügt/gelöscht.

                                1 Reply Last reply Reply Quote 0
                                • A
                                  ak1 last edited by

                                  @GiuseppeS Ja, das macht Sinn. Besten Dank!

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

                                    Hallo zusammen,
                                    ich bin gerade dabei neben den schaltbaren Steckdosen auch für eine schnellere Bearbeitung der Zeiten meine Rollläden mit dem Skript abzubilden. Bisher hat die Steuerung der Rollläden meine CCU mit den entsprechenden Programmen übernommen (Hardware: Somfy RTS Rollläden mit einem nanoCUL433 Stick an der CCU).

                                    Ich muss damit die Kommandos für mehrere Rollläden auch sauber verarbeitet werden eine bzw. besser zwei Sekunden zwischen den einzelnen Befehlen lassen. Sonst verschluckt der CUL das zu schnell gesendete Kommando einfach und der nächste Rollladen mach gar nichts.

                                    Jetzt gibt zwar das Script eine Möglichkeit für ein Zufall her, allerdings nur für Minuten. Jetzt würden 4 Rollläden in einem Raum um mehrere Minuten verzögert zufahren - entsprechend niedrig ist zuhause der WAF.

                                    In der CCU hatte ich in den einzelnen Programmen pro Rollladen einfacheine Verzögerung in Sekunden eingetragen.

                                    Gibt es hier schon Lösungsansätze von anderen Usern? Wie macht ihr das bzw. steuert überhaupt einer auch über einen CUL433 Stick seine Rollläden?

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

                                      @micklafisch
                                      Die Erweiterung um Sekunden würde einige Änderungen und somit umfangreiche Tests mit sich bringen. Unabhängig davon wäre es mal wieder ein Feld mehr im Editor. Ich befürchte, dass schon jetzt manch ein User abgeschreckt wird.

                                      Idee für Workaround, falls du auch Istwerte der Rollläden siehst am Beispiel von drei Rollläden:

                                      Rollladen 1 fährt runter um gewünschte Uhrzeit, dusk + Zufallsminuten.
                                      Rollladen 2 fährt runter um dusk - 59 Minuten (Uhrzeit sollte definitiv vor Rollladen 1 sein), Bedingung: Rollladen 1 muss unten sein, Timer merken aktiv.
                                      Rollladen 3 fährt runter um dusk - 59 Minuten (Uhrzeit sollte definitiv vor Rollladen 1 sein), Bedingung: Rollladen 2 muss unten sein, Timer merken aktiv.

                                      Somit würden die Rollläden alle nacheinander runterfahren und auch in Abhängigkeit voneinander. Wichtig wäre, dass hier die Istwerte der Rollläden in die Aufzählung der Bedingungen mit aufgenommen werden.

                                      Andernfalls müsste ich mir was einfallen lassen...

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

                                        @GiuseppeS
                                        ja das habe ich schon befürchtet, dass es die View weiter "sprengt".

                                        Einen Istwert sehe ich nicht, die Rollläden haben keine Rückantwort. Ich könnte mich noch auf den Datenpunkt der CCU stützen, aber wenn jemand mit der Fernbedienung manuell den Rollladen verfahren hat, merkt das die CCU nicht.

                                        Daher meine Frage wie das andere gelöst haben bzw. ob ich vielleicht der einzige in der Kombination bin.

                                        Eine Idee wäre von mir, das im Skript über eine Variable eine Sekundenzahl definiert wird und eine Variable ob diese beachtet wird (ggf. als Luxusversion in der View änderbar, muss aber nicht). Dann müsste im Skript nur hinterlegt sein, dass vor jedem Kommando bzw. vor jeder Zeitsteuerung diese Sekundenzahl gewartet wird. Eine Art Kommando-Warteschlange nur etwas brachialer.

                                        Vielleicht bin ich aber wirklich mit der Problemstellung auch der einzige, dann lass ich mir etwas einfallen bzw. das ganze weiterhin auf der CCU laufen.

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

                                          @micklafisch
                                          Ich weiß zufällig, dass @K_o_bold auch über 433Mhz steuert und das selbe Problem bemängelt hatte. Jetzt hat er es wohl über die zufälligen Minuten laufen (falls ich noch aktuell informiert bin). Istwerte bekommt er virtuell über berechnete Zeiten nach Steuerung.

                                          Ich kann prüfen, ob ich eine Art timeout integrieren könnte, dass Befehle die zur selben Minute ausgeführt werden müssten, zumindest um 1 oder 2 Sekunden versetzt abgesetzt werden.
                                          Was mit wenig Aufwand möglich ist: eine fixe Verzögerung in Sekunden gemäß Geräte-Position in Tabelle. Zum Beispiel würde Gerät 1 immer um Uhrzeit ab:xy:01 gesteuert werden (Beispiel: 19:34:01). Gerät 2 würde zu Sekunde 02 gesteuert werden usw.
                                          Das wäre ziemlich schnell integriert. Aber "elegant" finde ich die Lösung nicht, nur funktional. Wenn man nicht mehr als 59 Geräte in der Tabelle hat, dürfte es keine Probleme geben. Den Versatz würde ich evtl als Variable oben im Skript hinzufügen.
                                          Werde schauen wie und wann ich es umsetzen kann, tendenziell wird es Richtung Wochenende der Fall sein...

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

                                            @GiuseppeS
                                            gemäß Walther Rathenau Eleganz ist gemeisterte Verschwendung 😊

                                            Spass beiseite, ich verstehe den Antritt es möglichst "sauber" und "intelligent" zu lösen. Allerdings könnte ich mir der Idee Geräte-Tabellenposition + Zeitfaktor X super leben.

                                            Zeitliche Umsetzung eilt selbstverständlich nicht. Ich kann warten und lasse vorerst meine CCU weiterhin die tägliche Arbeit verrichten.

                                            Bereits jetzt ein herzliches Dankeschön für deine Mühen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            785
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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