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 goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [Vorlage] Variable Zeitsteuerung mit VIS Editor

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

      @sigi234
      Du hast doch eine Aufzählung, worin alle Rollläden drin stehen.
      Jetzt muss eine neue Aufzählung erstellt werden. Kannst du nennen wie du magst. Hier sollten Objekte/States rein kommen, die als Bedingung für die spätere Ausführung der Timer genutzt werden sollen.
      Hast du Türkontakte? Die wären z.B. sinnvoll.
      Den Namen der neuen Aufzählung gibst du oben im Script an. So wie du es mit den Rollläden auch gemacht hattest.

      Wenn noch etwas unklar ist, bitte genau beschreiben was unklar ist.

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

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

        Du hast doch eine Aufzählung, worin alle Rollläden drin stehen.

        Nimm ja die Funktion Licht (Hue).......egal, ich mache alles mal neu.

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

          @sigi234
          Die Aufzählung "Licht" ist bei dir für das, was du steuern möchtest.

          Du musst im Skript ein paar Zeilen darunter noch eine weitere Aufzählung angeben. Bei mir heißt die "timerconditions". Diese Aufzählung ist für die Bedingungen, die man Hinterlegen kann.

          Im ersten Post steht auch nochmal alles beschrieben.

          1 Reply Last reply Reply Quote 0
          • K
            K_o_bold last edited by

            @GiuseppeS ,

            vielen Dank für das Bereitstellen deines Timers. Da steckt eine Menge Arbeit dahinter, wenn man die Menge an Codezeilen und die VIS Views genauer betrachtet.
            Das ist nicht selbstverständlich, dass jemand sowas einfach so bereit stellt. Tolle Arbeit und sehr professionell gelöst.!

            Ich habe die aktuellste Version getestet und bin genauso vorgegangen, wie du es im ersten Poste beschrieben hast. Es funktioniert alles einwandfrei.
            Eine Bedingung habe ich für meine Terrassentüre ( Xiaomi Türsensor ) auch erfolgreich getestet. Ich kann die Probleme, die Glasfaser hatte nicht nachvollziehen.

            Wenn ich mir noch was wünschen würde, dann zusätzlich einen Offset in Sekunden definieren zu können.
            Ich möchte z.B. meine Rollläden im 5 s Takt nacheinander schalten können.

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

              @K_o_bold
              Danke für deine Tests. Falls dir noch was auffallen sollte, einfach melden.

              Werde schauen, dass ich folgende Punkte zeitnah integrieren kann:

              • Offset mit 5s, 10s, 15s usw.
              • Reihenfolge der Geräte in Tabelle über Reihenfolge in "javascript.0.Timer.Devices.Editor.DropDownDevice" editierbar.
                Wenn Reihenfolge für Dropdown geändert wird, dann ändert sich auch die Reihenfolge in der Tabelle. Werde dafür das Dropdown-State eine Ebene höher ziehen (nicht unter "Editor").
              Glasfaser 1 Reply Last reply Reply Quote 0
              • Glasfaser
                Glasfaser @GiuseppeS last edited by

                @GiuseppeS
                (So... Urlaub leider zu Ende .)

                Habe dein neues Skript auf meine Bedürfnisse geändert.

                Sieht sehr gut aus !!
                Alle Bedingungen / Simulationen habe ich wie schon oben Beschrieben genauso auf dein neues überarbeitetes Skript angewandt und es läuft wie es sein soll.
                Deine neu eingesetzt Debug Option habe ich mal für mich aktiviert.
                Im Log werden auch alle Bedingungen / Schedule protokolliert..

                Ich werde es dann mal einige Tage einen Dauertest unterziehen .😉

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

                  @Glasfaser
                  Willkommen zurück aus dem Urlaub. Viel Spaß beim Testen. Wenn dir was auffällt, einfach Bescheid geben. Lass den Debug-Switch an, bis du sicher bist dass alles läuft. Betrifft zwar aktuell nur eine Ausgabe (werde bei der nächsten Version weitere als debug drin haben) aber die wäre wichtig für deine letzten Fehlerfällen.

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

                    Habe heute ein kleines Update erstellt:

                    Die Reihenfolge der Timer innerhalb der Tabelle kann nun über das folgende DropDown State verändert werden:

                    javascript.0.Timer.Devices.DropDownDevice

                    203c440a-2a48-41db-a854-b785b5f55c23-image.png

                    Bitte achtet dabei, dass die Semikolons weiterhin korrekt gesetzt sind:
                    z.B. wird aus

                    "Schlafz.;Balkon_Li;Balkon_Re;Esstisch;Kueche;Bad;Kinderz."

                    dann

                    "Schlafz.;Balkon_Li;Balkon_Re;Esstisch;Kueche;Kinderz.;Bad"

                    Somit sind die letzten beiden Einträge vertauscht. Die Einträge in dieser Liste dienen nicht dazu, die Namen innerhalb der Tabelle zu ändern!

                    Dieser State bestand eigentlich im Unterordner Editor, aber ich habe ihn eine Ebene höher geholt, damit es leichter zu finden ist.
                    Bitte beachten, dass die Verlinkung innerhalb der VIS angepasst werden muss, wenn nun das Skript geupdated wird:

                    778c4c78-2c47-47ef-aec0-6e6d16dff0fc-image.png

                    Wer ein Ordnungs-Fanatiker ist, kann genau das alte State im Unterordner "Editor" löschen. Dieser hat keine Funktion mehr:
                    javascript.0.Timer.Devices.Editor.DropDownDevice

                    Nicht jedermann ist ein Fan von Log-Ausgaben, die können nun komplett abgestellt werden (stdLog und debugLog auf false setzen).

                    Offene Punkte für zukünftige Updates:
                    • Ausführung des nächsten Timers in Objekt ausgeben. Objekt kann dann individuell in der VIS ausgegeben werden.
                    • 5s, 10s, 15s und 30s als mögliche Offsets rein nehmen, zusätzlich zu den Minuten

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

                      @GiuseppeS
                      Die Testwoche ist noch nicht ganz rum ⏳ , aber ich kann dir jetzt schon mitteilen das alle Bedingungen berücksichtigt wurden 😳 , also alles Top. 👍

                      Habe gerade nebenbei dein neues Script getestet . Alles OK , aber für mich erstmal kein Update Wert 😎 😜

                      Stehe gerade auf dem Schlau , was meinst Du mit: Ausführung des nächsten Timers in Objekt ausgeben. Objekt kann dann individuell in der VIS ausgegeben werden.

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

                        @Glasfaser
                        Freut mich, dass alles weiterhin gut funktioniert. Wer weiß was letztes Mal schief gelaufen war.

                        Dadurch, dass du alle Geräte unterteilt hast, ziehst du wirklich keinen Nutzen aus diesem Update.

                        Ausgabe des nächsten Timers:
                        Wenn es aktuell 15 Uhr ist, wird geschaut wann ab dem aktuellen Zeitpunkt der nächste Timer greift.
                        Dann würde im Objekt z.B. stehen:
                        "18:57 Uhr Rollo_Bad" oder wenn nichts mehr am selben Tag stattfindet :
                        "Mo 9:38 Uhr Rollo_Kueche"

                        Vorschläge willkommen 😉
                        (war eine Anfrage von @K_o_bold )

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

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

                          @Glasfaser
                          …….> Ausgabe des nächsten Timers:
                          Wenn es aktuell 15 Uhr ist, wird geschaut wann ab dem aktuellen Zeitpunkt der nächste Timer greift.
                          Dann würde im Objekt z.B. stehen:
                          "18:57 Uhr Rollo_Bad" oder wenn nichts mehr am selben Tag stattfindet :
                          "Mo 9:38 Uhr Rollo_Kueche"
                          …………………………...

                          Aber erst nach dem Schedule nach 15:10 Uhr 😛 (Astro / recalc)
                          wird geschaut wann ab dem aktuellen Zeitpunkt der nächste Timer greift.

                          // Astro-Zeiten werden täglich aktualisiert, anschließend neu Berechnung der Timer
                          schedule('5 15 * * *', setAstro);
                          schedule('10 15 * * *', recalc);
                          
                          1 Reply Last reply Reply Quote 1
                          • K
                            K_o_bold @GiuseppeS last edited by

                            @GiuseppeS , vielen Dank für die Berücksichtigung meiner Vorschläge..
                            Läuft alles wie gewünscht 🙂 Ich bin begeistert...
                            Reihenfolge ändern über das neue Objekt ist eine super Sache...

                            arteck 1 Reply Last reply Reply Quote 1
                            • arteck
                              arteck Developer Most Active @K_o_bold last edited by

                              @GiuseppeS hast du eine Einstellung für ein Helligkeitsensor den man übersteuern kann ??

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

                                @arteck
                                Was genau ist mit "übersteuern" gemeint?
                                Wenn du das Steuern eines Rollladen in Abhängigkeit eines Lichtsensors meinst, ist aktuell z.B. folgendes möglich:
                                Der Lichtsensor wird in die Aufzählung für die Bedingungen gesetzt.
                                Der Rollladen wird auf eine bestimmte Uhrzeit für das Öffnen eingestellt und zusätzlich z.B. die Bedingung "Lichtsensor < 200".
                                Dann wird der Rollladen nur geöffnet, wenn der Lichtsensor zur gewählten Uhrzeit kleiner 200 ist.

                                Oder willst du mit "übersteuern" ein Triggern des Öffnen/Schließen Befehls unabhängig von der Uhrzeit erreichen?

                                arteck 1 Reply Last reply Reply Quote 0
                                • arteck
                                  arteck Developer Most Active @GiuseppeS last edited by arteck

                                  @GiuseppeS ja so ähnlich... der Sensor meldt Licht>300 (Rollo würde auf gehen) aber da es Wochenende ist und ich ausschlafen will übersteure ich diesen mit einer Uhrzeit... erst ab 10 Uhr hoch.. oder im Urlaub (Urlaubsmodus)

                                  das gleiche andersrum Lichtsensor < 50 ..Rolo würde zu gehen aber da ich in den Garten mir die Beleuchtung anschauen will lasse ich die Rollos erst um 2 Uhr nachts runnter..

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

                                    @arteck
                                    Grundsätzlich sind diese Timer möglich.
                                    Die Timer, die morgens das Hochfahren zu einer menschenunwürdigen Uhrzeit während des Urlaubs veranlassen würden, werden mit der Bedingung "Urlaubsmodus == false" ergänzt. Wenn du Urlaub hast und den Schalter auf True setzt, wird dieser Timer nicht ausgeführt.

                                    Draußen die Beleuchtung bewundern und nicht ausgeschlossen werden, wäre auch über Bedingungen beim abendlichen Timer möglich. Da kommt es einfach drauf an, wie bei dir festgestellt wird, dass du draußen bist. Aber die verwendeten Sensoren, egal welche, können als Bedingung eingerichtet werden. Beliebt ist es Sensoren an der Terrassentür zu nutzen (z.B. "Tuer_isOpen" == false).

                                    Es sind aktuell bis zu 3 Bedingungen möglich. Theoretisch hätte ich auch mehr integrieren können, aber das Popup zum Editieren ist leider in der Höhe nicht absolut dynamisch umsetzbar. Wollte daher ungern den Platz für 5 oder mehr Timer vorhalten.

                                    Edit:
                                    zusätzliche Schalter wie "Urlaubsmodus" o.ä. sind nicht im Lieferumfang enthalten 😉
                                    Das kann jeder individuell für sich lösen/integrieren wie er mag.

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      K_o_bold last edited by

                                      @GiuseppeS ,

                                      bei mir läuft dein Skript seit ein paar Wochen problemlos. 🙂
                                      Jetzt bin ich am überlegen, das Skript auch parallel für andere Geräte zu verwenden.
                                      Mit eigener Vis und eigenen Aufzählungen.
                                      Z.B. für den Staubsauger oder für Lampen-Timer.

                                      Wie kann ich das im Skript am besten lösen? Ich bin leider noch nicht so fit mit JS.

                                      Über Hilfe bei der Umsetzung wäre ich sehr dankbar 😉

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

                                        @K_o_bold
                                        Hi, grundsätzlich müssten alle Pfade von den IDs angepasst werden.

                                        Bedeutet:

                                        • Skript kopieren und bei den IDs ".Devices." durch z.B. ".Lichter." ersetzen.
                                        • In VIS beide Views unter neuem Namen importieren. Hierbei würde ich empfehlen, vor dem Import der Textdatei ebenfalls ".Devices." durch ".Lichter." zu ersetzen.

                                        Theoretisch dürfte es funktionieren wenn ich nichts vergessen habe. Ich selbst habe es noch nicht durchgeführt.

                                        Ich wäre allerdings für Ideen offen, wie eine Bearbeitung von mehreren Tabellen durchgeführt werden könnte.

                                        Was machbar wäre:
                                        Die hinterlegte Aufzählung für die Geräte ist ein Array, d.h. es könnten mehrere Aufzählungen hinterlegt werden.
                                        Für jede Aufzählung würde eine neue HTML generiert werden.
                                        Bearbeitung der Timer würde immer über selbe Buttons und PopUp erfolgen. Darstellung wäre in x Tabellen unterteilt.

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

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

                                          @K_o_bold
                                          Hi, grundsätzlich müssten alle Pfade von den IDs angepasst werden.

                                          Bedeutet:

                                          • Skript kopieren und bei den IDs ".Devices." durch z.B. ".Lichter." ersetzen.
                                          • In VIS beide Views unter neuem Namen importieren. Hierbei würde ich empfehlen, vor dem Import der Textdatei ebenfalls ".Devices." durch ".Lichter." zu ersetzen.

                                          Theoretisch dürfte es funktionieren wenn ich nichts vergessen habe. Ich selbst habe es noch nicht durchgeführt.

                                          Da hast du nichts vergessen , das klappt genau so ... 👍

                                          Ich habe meine 8 Rollladentimer so aufgebaut ,
                                          dann kann man auch die 3 möglichen Bedingungen erweitern :
                                          function.timercondition.1 für Terrrassentür
                                          function.timercondition.2 für Kinderzimmer
                                          usw..

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

                                            @GiuseppeS

                                            danke für deine schnelle Anwort.
                                            In meinem Fall geht es zunächst nur um den Staubsauger 😉
                                            Da erscheint mir das ändern des Skripts für das eine Gerät "Staubsauger" doch etwas zu äufwändig.
                                            @Glasfaser ,
                                            Die IDs ".devices." sind gefühlt 100 mal vorhanden. d.h. ich müsste das händisch durchführen, oder gibt es eine Möglichkeit alle auf einmal zu ersetzen?

                                            Wie bist du dabei vorgegangen?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            938
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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