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. Skripten / Logik
  4. Zeitsteuerung geht nicht

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    949

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Zeitsteuerung geht nicht

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 3 Kommentatoren 1.6k Aufrufe
  • Ä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.
  • N Offline
    N Offline
    noxx
    schrieb am zuletzt editiert von
    #3

    Wird doch

    var aktor = getState(idAktor).val;
    

    Und in der if

    if(!aktor) setState(idAktor, true);
    

    Die Zeitfenster sind ja zb wir folgt definiert:

     var morgen = compareTime('05:00', '07:30', 'between');
    

    um 5:00 springt der Aktor aber nicht an. Mache ich einen Script Neustart um 5:01,

    geht der Aktor an.

    Als würde das Script gehen, aber der Cron nicht

    schedule('* * * * *', Zeitschaltung);
    
    1 Antwort Letzte Antwort
    0
    • N Offline
      N Offline
      noxx
      schrieb am zuletzt editiert von
      #4

      Hier mal eingebautem Log.

      Sollte nicht das LOG 3 angezeigt werden, wenn man ausserhalb des

      Zeitfensters ist?

      ! ````
      var idAktor = "hue.0.Philips_hue.Sonoff2.on"/Philips_hue.Sonoff2.on/;
      ! //var minOn = false;
      var temp = getState(idTemp).val;
      var aktor = getState(idAktor).val;
      ! function Zeitschaltung() {
      log("LOG 1: " + idAktor + ": " + aktor);
      var morgen = compareTime('05:00', '06:30', 'between');
      var mittag = compareTime('10:00', '11:30', 'between');
      var nachmittag = compareTime('14:00', '16:30', 'between');
      var abend = compareTime('20:00', '22:00', 'between');
      if(morgen || mittag || nachmittag || abend)
      {
      log("LOG 2: " + idAktor + ": " + aktor);
      if(!aktor) setState(idAktor, true);
      }
      else if(aktor)
      {
      setState(idAktor, false);
      log("LOG 3: " + idAktor + ": " + aktor);
      }
      }
      ! schedule('* * * * *', Zeitschaltung);

      
      

      09:19:26.046 [info] javascript.0 Stop script script.js.common.PoolPumpe
      09:19:26.405 [info] javascript.0 Start javascript script.js.common.PoolPumpe
      09:19:26.406 [info] javascript.0 script.js.common.PoolPumpe: registered 0 subscriptions and 1 schedule
      09:20:00.406 [info] javascript.0 script.js.common.PoolPumpe: LOG 1: hue.0.Philips_hue.Sonoff2.on: false
      09:21:00.398 [info] javascript.0 script.js.common.PoolPumpe: LOG 1: hue.0.Philips_hue.Sonoff2.on: false

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #5

        @noxx:

        kann mir einer sagen, warum das Script nicht läuft? `
        Die Variablen temp und aktor werden nur beim Start des Skriptes gesetzt und dann nicht mehr aktualisiert. Es fehlt

        on({id: idAktor, ack: true}, function(dp) {
            aktor = dp.state.val;
        });
        
        on(idTemp, function(dp) {
            temp = dp.state.val;
        });
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • N Offline
          N Offline
          noxx
          schrieb am zuletzt editiert von
          #6

          Danke, wo muss das hin, an den Anfang?

          Gesendet von meinem GT-I9195 mit Tapatalk

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #7

            @noxx:

            wo muss das hin, an den Anfang? `
            Das ist völlig egal. Ich bevorzuge es am Ende.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • blauholstenB Offline
              blauholstenB Offline
              blauholsten
              Developer
              schrieb am zuletzt editiert von
              #8

              @paul53:

              @noxx:

              kann mir einer sagen, warum das Script nicht läuft? `
              Die Variablen temp und aktor werden nur beim Start des Skriptes gesetzt und dann nicht mehr aktualisiert. Es fehlt

              on({id: idAktor, ack: true}, function(dp) {
                  aktor = dp.state.val;
              });
              
              on(idTemp, function(dp) {
                  temp = dp.state.val;
              });
              ```` `  
              

              Ich schätze deine Skriptkünste sehr, aber ich glaube hier hast du dich vermacht, oder?

              Er lässt ja per schedule triggern.

              Ich hatte ja heute morgen schon geschrieben, das getState der variablen in der Zeitschaltung() nochmal per getState().val abgefragt werden müssen. (Leider nur Handy zur hand gehabt)

              Aus meiner Sicht müsste folgender Code gehen:

              var idTemp = "rflink.0.channels.Cresta_4.TEMP"/*Cresta_ 4 Temperature*/;
              var idAktor = "hue.0.Philips_hue.Sonoff2.on"/*Philips_hue.Sonoff2.on*/;
              
              function Zeitschaltung() {
              
                 var temp = getState(idTemp).val;
                 var aktor = getState(idAktor).val;
              
                 var morgen = compareTime('05:00', '06:30', 'between');
                 var mittag = compareTime('10:00', '11:30', 'between');
                 var nachmittag = compareTime('14:00', '16:30', 'between');
                 var abend = compareTime('20:00', '22:00', 'between');
                 if(morgen || mittag || nachmittag || abend) {
                    if(!aktor) setState(idAktor, true);
                 } else if(aktor) setState(idAktor, false);
              }
              
              schedule('* * * * *', Zeitschaltung);
              

              Entwickler vom: - Viessman Adapter
              - Alarm Adapter

              1 Antwort Letzte Antwort
              0
              • blauholstenB Offline
                blauholstenB Offline
                blauholsten
                Developer
                schrieb am zuletzt editiert von
                #9

                doppelt

                Entwickler vom: - Viessman Adapter
                - Alarm Adapter

                1 Antwort Letzte Antwort
                0
                • N Offline
                  N Offline
                  noxx
                  schrieb am zuletzt editiert von
                  #10

                  seit mir beide was vorraus, ihr versteht was der andere meint :)

                  bisher scheint das von paul53 zu gehen, teste aber nun auch deins.

                  danke

                  gruß

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #11

                    @blauholsten:

                    aber ich glaube hier hast du dich vermacht, oder? `
                    Das glaube ich nicht.
                    @blauholsten:

                    Ich hatte ja heute morgen schon geschrieben, das getState der variablen in der Zeitschaltung() nochmal per getState().val abgefragt werden müssen. `
                    Das müssen sie nicht, wenn die globalen Skriptvariablen (aktor, temp) bei jeder Wertänderung des zugehörigen Datenpunktes aktualisiert werden.

                    Deine Version funktioniert ebenfalls, belastet aber die CPU stärker, da jede Minute 2 getState(id)-Operationen ausgeführt werden.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • blauholstenB Offline
                      blauholstenB Offline
                      blauholsten
                      Developer
                      schrieb am zuletzt editiert von
                      #12

                      @paul53:

                      @blauholsten:

                      aber ich glaube hier hast du dich vermacht, oder? `
                      Das glaube ich nicht.
                      @blauholsten:

                      Ich hatte ja heute morgen schon geschrieben, das getState der variablen in der Zeitschaltung() nochmal per getState().val abgefragt werden müssen. `
                      Das müssen sie nicht, wenn die globalen Skriptvariablen (aktor, temp) bei jeder Wertänderung des zugehörigen Datenpunktes aktualisiert werden.

                      Deine Version funktioniert ebenfalls, belastet aber die CPU stärker, da jede Minute 2 getState(id)-Operationen ausgeführt werden. `

                      Als ich den Rechner aus gemacht habe, ist mir deine Logik auch klar geworden….. :shock:

                      Entwickler vom: - Viessman Adapter
                      - Alarm Adapter

                      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

                      670

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      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