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

donate donate
  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.7k

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

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

[Vorlage] Variable Zeitsteuerung mit VIS Editor

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vistemplate
919 Beiträge 47 Kommentatoren 281.4k 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.
  • G GiuseppeS

    @Glasfaser
    Vllt versteh ich dich falsch, aber in der Aufzählung für die Bedingungen können beliebig viele States hinterlegt sein. Bei mir sind es bestimmt 10 oder mehr. Es sind nur 3 Stück gleichzeitig in einem Timer nutzbar, hier ist die selbst erlegte Einschränkung. Natürlich hat es auch Vorteile, für bestimmte Timer nur bestimmte Bedingungen anzugeben und nicht alle. Bedingung "HaustuerIsOpen" macht z.B. wenig Sinn bei Timer für die Terrasse aber dafür ist der Rest einfacher.
    Mit geht's nur darum, dass es bei dir eine bewusste Entscheidung ist tatsächlich 8 Skripte zu nutzen und nicht weil etwas unklar war.

    GlasfaserG Offline
    GlasfaserG Offline
    Glasfaser
    schrieb am zuletzt editiert von
    #182

    @GiuseppeS

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

    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 :+1:

    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

    G 1 Antwort Letzte Antwort
    0
    • GlasfaserG Glasfaser

      @GiuseppeS

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

      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 :+1:

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

      @Glasfaser
      Freut mich, wenn ich helfen konnte :+1:

      1 Antwort Letzte Antwort
      0
      • K Offline
        K Offline
        K_o_bold
        schrieb am zuletzt editiert von
        #184

        @GiuseppeS ,

        ich habe das aktuelle Skript auch getestet und läuft alles soweit. :+1:
        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 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          ak1
          schrieb am zuletzt editiert von
          #185

          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 Antwort Letzte Antwort
          0
          • GlasfaserG Glasfaser

            @sigi234

            Ändere mal das :

            111111111111111111111111111111111111.JPG

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

            @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)

            GlasfaserG 1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              ak1
              schrieb am zuletzt editiert von
              #187

              @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

              GlasfaserG G 2 Antworten Letzte Antwort
              0
              • G 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)

                GlasfaserG Offline
                GlasfaserG Offline
                Glasfaser
                schrieb am zuletzt editiert von
                #188

                @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

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                sigi234S 1 Antwort Letzte Antwort
                0
                • A ak1

                  @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

                  GlasfaserG Offline
                  GlasfaserG Offline
                  Glasfaser
                  schrieb am zuletzt editiert von
                  #189

                  @ak1

                  Zeig mal bitte ein Screenshot von den Einstellungen des Button .

                  Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                  1 Antwort Letzte Antwort
                  0
                  • GlasfaserG Glasfaser

                    @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

                    sigi234S Online
                    sigi234S Online
                    sigi234
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #190

                    @Glasfaser
                    @GiuseppeS

                    Screenshot (4051).png

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

                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Immer Daten sichern!

                    GlasfaserG 1 Antwort Letzte Antwort
                    0
                    • A ak1

                      @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

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

                      @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 Antwort Letzte Antwort
                      0
                      • sigi234S sigi234

                        @Glasfaser
                        @GiuseppeS

                        Screenshot (4051).png

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

                        GlasfaserG Offline
                        GlasfaserG Offline
                        Glasfaser
                        schrieb am zuletzt editiert von
                        #192

                        @sigi234

                        Danke für den Hinweis , den ich selber nicht brauche !:+1:

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

                        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                        1 Antwort Letzte Antwort
                        0
                        • A Offline
                          A Offline
                          ak1
                          schrieb am zuletzt editiert von
                          #193

                          @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.

                          GlasfaserG 1 Antwort Letzte Antwort
                          0
                          • A ak1

                            @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.

                            GlasfaserG Offline
                            GlasfaserG Offline
                            Glasfaser
                            schrieb am zuletzt editiert von Glasfaser
                            #194

                            @ak1

                            W00007 eintragen

                            2222222222222222.JPG

                            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              ak1
                              schrieb am zuletzt editiert von
                              #195

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

                              1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                ak1
                                schrieb am zuletzt editiert von
                                #196

                                Besten Dank an euch. Sieht gut aus!

                                1 Antwort Letzte Antwort
                                0
                                • G Offline
                                  G Offline
                                  GiuseppeS
                                  schrieb am zuletzt editiert von GiuseppeS
                                  #197

                                  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.

                                  GlasfaserG 1 Antwort Letzte Antwort
                                  0
                                  • G 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.

                                    GlasfaserG Offline
                                    GlasfaserG Offline
                                    Glasfaser
                                    schrieb am zuletzt editiert von
                                    #198

                                    @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

                                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                    G 1 Antwort Letzte Antwort
                                    0
                                    • GlasfaserG Glasfaser

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

                                      @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.

                                      GlasfaserG 1 Antwort Letzte Antwort
                                      0
                                      • G GiuseppeS

                                        @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.

                                        GlasfaserG Offline
                                        GlasfaserG Offline
                                        Glasfaser
                                        schrieb am zuletzt editiert von Glasfaser
                                        #200

                                        @GiuseppeS

                                        Boey dreimal von mir durchgelesen und nicht verstanden was du schreibst bzw. meinst :face_with_rolling_eyes: :cry:

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

                                        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                        G 1 Antwort Letzte Antwort
                                        0
                                        • GlasfaserG Glasfaser

                                          @GiuseppeS

                                          Boey dreimal von mir durchgelesen und nicht verstanden was du schreibst bzw. meinst :face_with_rolling_eyes: :cry:

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

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

                                          @Glasfaser

                                          :laughing:

                                          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)

                                          GlasfaserG 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          599

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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