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.
    • Glasfaser
      Glasfaser @GiuseppeS last edited by

      @GiuseppeS

      Mal eben ….. auf die schnelle das Erdgeschoss neu erstellt , wollte kein Rosamunde Pilcher schauen 😊

      Erdgeschoss : 1 x Script (splitHTML ) mit 4 Rollladen

      Oben : Geräteauswahl / Timerauswahl / Timer An-Aus / Timer bearbeiten / DEL
      Unten : Welcher Timer kommt

      1.jpg

      2.jpg

      3.jpg

      Ja … hast recht ist einfacher 👍

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

        @Glasfaser
        Freut mich, wenn ich helfen konnte 👍

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

          @GiuseppeS ,

          ich habe das aktuelle Skript auch getestet und läuft alles soweit. 👍
          Vor allem die Variable "path" macht es jetzt deutlich einfacher, das Skript auf andere Anwendungsfälle zu erweitern. Vielen Dank dafür...

          Weitere Optimierungsideen für das Skript habe ich momentan auch nicht.

          Grüße

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

            Ich habe ein Problem, welches sich auf die Darstellung der Vis Views bezieht.
            Dabei habe ich ein neues Vis-Projekt erstellt und die beiden Views importiert. Weiterhin habe ich die PNG-Datei für den Button an die richtig Stelle hochgeladen. Die Uhula CSS Informationen habe ich per Copy&Paste in den Views in den Reiter CSS kopiert (Kontext "Projekt", nicht "Global").
            Leider ist die Darstellung in der Runtime nicht korrekt. Der Hintergrund ist hell und bietet keinen Kontrast. Die Überschrift "Rolladen Timer Tabelle" wird z.B. gar nicht dargestellt.

            Außerdem: Welches ist der "untere" Edit-Button, dessen Widget-Id ich im Skript hinterlegen muss?

            Vielen Dank!
            ak1

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

              @sigi234
              Der User Glasfaser hatte hier mal was empfohlen. Liegt es daran?
              Ich hatte auf Anhieb die korrekten Darstellungen. Kann es daher nicht nachvollziehen.

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

              @sigi234

              Ändere mal das :

              111111111111111111111111111111111111.JPG

              Der "untere" Edit Button ist nach rechts oben gewandert. Muss ich im Post korrigieren. (bereits korrigiert)

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

                @GiuseppeS
                Danke, das hat schon geholfen. Jetzt muss ich noch herausfinden, warum auf beiden Views die "Bool - Checkbox" Widgets nicht auf auf Bedienung reagieren.

                VG
                ak1

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

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

                  Ich hatte auf Anhieb die korrekten Darstellungen. Kann es daher nicht nachvollziehen.

                  Ist mir auch schon beim erstmal aufgefallen das die Seite teils nicht erkennbar war ,
                  aber bei "CSS Background: keins" Voreinstellung habe ich mir nichts dabei gedacht , da ich sowieso den View an meine Einstellungen angepasst habe und es nicht als ( Fehler ) angesehen habe !!!

                  Warum es bei dir so funktioniert , kann ich mir auch erklären !?

                  "CSS Background: keins"
                  1.JPG

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

                    @ak1

                    Zeig mal bitte ein Screenshot von den Einstellungen des Button .

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

                      @Glasfaser
                      @GiuseppeS

                      Screenshot (4051).png

                      rgba(1, 1, 1, 1) none repeat scroll 0% 0% / auto padding-box border-box

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

                        @ak1
                        Du musst die Widget-Nummer der Bool-Checkboxen im View angeben.
                        1562345621122-bc904607-8af1-4d43-9a4b-9b1865503147-image-resized.png

                        Werde mal bei mir die empfohlenen View Einstellungen testen. Wenn die sich bei mir nicht nachteilig auswirken übernehme ich es.

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

                          @sigi234

                          Danke für den Hinweis , den ich selber nicht brauche !👍

                          Aber es ist merkwürdig , das bei @GiuseppeS es ohne diese Einstellungen geht .

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

                            @Glasfaser
                            Screenshot der Einstellungen des Checkbox Widgets, links neben dem Button, auf dem Haupt-View:

                            Zwischenablage01.jpg

                            Das Objekt "javascript.0.Timer.Devices.Editor.Aktiv" kann ich übrigens nicht entdecken.

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

                              @ak1

                              W00007 eintragen

                              2222222222222222.JPG

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

                                @GiuseppeS
                                Ok, werde ich überprüfen. Unsere Nachrichten haben sich zeitlich überschitten...

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

                                  Besten Dank an euch. Sieht gut aus!

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

                                    Habe die empfohlenen View Einstellungen nun getestet und sehe bei mir keine Auswirkungen / Probleme. Lasse sie nun drin, sodass bei anderen Usern die Darstellungen auf Anhieb passen. Wusste nicht, dass annähernd alle betroffen waren.
                                    Bei mir sind die Auswirkungen der Einstellungen wahrscheinlich deshalb nicht sichtbar, weil ich sowohl für Cards als auch für die Hintergründe Bilder verwende.

                                    Werde nachher ein Update der Views hochladen.

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

                                      @GiuseppeS

                                      Wäre es möglich ein Meldung ( Debug ) einzubauen , wenn eine Schaltzeit erfolgt.

                                      z.B . Datenpunktname vom Enum + Wert =
                                      Meldung : Rollladen Wohnzimmer ( ab )

                                      Ich arbeite gerne mit der Liste von @Mic

                                      1.JPG

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

                                        @Glasfaser
                                        Wäre wohl ziemlich schnell integriert. Soll es tatsächlich mit dem Schlüssel debugLog kombiniert werden oder doch lieber mit stdLog? Bei debugLog hängen auch die States Änderungen für die Bedingungen.
                                        Bei stdLog wäre dann das Setzen / Löschen des Timers sichtbar und hiermit auch die Ausführung. Einverstanden? Bei debugLog wäre es somit auch automatisch mit drin.

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

                                          @GiuseppeS

                                          Boey dreimal von mir durchgelesen und nicht verstanden was du schreibst bzw. meinst 🙄 😢

                                          Nicht eine Zukunftsausgabe sondern eine aktuelle Schaltausgabe wenn der Schedule ( für den Rollladen ) geschaltet hat .

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

                                            @Glasfaser

                                            😆

                                            Ok, kein Thema. Zumindest hatte ich dich richtig verstanden und habe es eben schon integriert. Upload in Post 1 ist aktualisiert.

                                            Wer bereits eine aktuelle Version hat kann auch nur die folgende Funktion "autoScheduler" ersetzen:

                                            (verändert habe ich Zeile 32 bis 35, bezogen auf unteren Code-Ausschnitt)

                                            // schedules werden variabel erstellt; zunächst wird gelöscht und wenn create=true wird neu erstellt
                                            function autoScheduler(TimerJSON, deviceName, timerNr) {
                                                var sollwert, tmpSollwert;
                                                var scheduleNr = (TimerJSON[deviceName][timerNr].DeviceNr * 10) + timerNr;
                                                var create = TimerJSON[deviceName][timerNr].Aktiv;
                                                var cronString = TimerJSON[deviceName][timerNr].Cron;
                                                var objID = TimerJSON[deviceName][timerNr].ObjID;
                                                sollwert = tmpSollwert = TimerJSON[deviceName][timerNr].Sollwert;
                                                // Auswertung der Bedingungen
                                                var conditionState = condEval(TimerJSON[deviceName][timerNr]);
                                                // Timer zunächst immer löschen
                                                (function () {
                                                    if (cronArr[scheduleNr]) {
                                                        if(stdLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" (" + scheduleNr + ") gelöscht!");}
                                                        clearSchedule(cronArr[scheduleNr]); cronArr[scheduleNr] = null;
                                                    }
                                                    else {
                                                        if(debugLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" (" + scheduleNr + ") nicht vorhanden! Kein Löschen notwendig!");}
                                                    }
                                                })();
                                                // Timer neu erstellen falls AKTIV == true
                                                if (create){
                                                    if (conditionState){
                                                        // Verschiedene Mappings aus DropDown zu realen States
                                                        if (sollwert == "An"){sollwert = true}
                                                        else if (sollwert == "Aus"){sollwert = false}
                                                        else if (sollwert == "Auf"){sollwert = 100}
                                                        else if (sollwert == "Ab"){sollwert = 0}
                                                        else (sollwert = parseInt(sollwert));
                                                        if(debugLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" erstellen:");}
                                                        if(stdLog){console.log("Schedule \"" + deviceName + " #" + timerNr + "\": " + scheduleNr + " | " + cronString + " | " + objID + " | " + sollwert);}
                                                        if(stdLog){            
                                                            cronArr[scheduleNr] = schedule(cronString, function(){ setState(objID, sollwert); console.log("Timer: " + deviceName + " (" + tmpSollwert + ")")});
                                                        } else {
                                                            cronArr[scheduleNr] = schedule(cronString, function(){ setState(objID, sollwert); });
                                                        }
                                                    }
                                                    else {
                                                        if(debugLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" (" + scheduleNr + ") nicht erstellt: Bedingung(en) nicht erfüllt!");}
                                                    }
                                                }
                                                return conditionState;
                                            }
                                            

                                            Log-Ausgabe erfolgt wenn entweder die Variable stdLog oder debugLog auf "true" gesetzt ist. (Default: stdLog = true)

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            419
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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