Ankündigung

Einklappen
Keine Ankündigung bisher.

Gleiche GA Mal mit Autotimer, mal ohne

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Gleiche GA Mal mit Autotimer, mal ohne

    Hallo,

    komme gerade nicht weiter: Möchte eine Gruppenadresse abends per USZU und nachts in Abhängigkeit eines anderen items mit autotimer schalten.

    Klappt alles soweit, bis auf den Autotimer. Die Abhängigkeitsschaltung habe ich mit einer kleinen Logik realisiert. Wie bekomme ich den Autotimer nachts hinzu?

    Zwei komplett unterschiedliche items hat nicht geklappt. Die items wurden beide nacheinander ausgeführt. Warum auch immer...

    Vielen Dank,
    Marcel
    Zuletzt geändert von diverms; 24.02.2019, 21:17.

    #2
    Logik und item bitte

    Kommentar


      #3
      Item (hier mit autotimer, der immer gesetzt wird, möchte ihn aber nur in der Zeit wie in der Logik angegeben setzen):
      Code:
        flur_steckdose:
         name: Flur Steckdose
         type: bool
         knx_dpt: 1
         enforce_updates: 'yes'
         knx_listen: 4/4/8
         knx_send: 4/0/2
         knx_init: 4/0/2
         autotimer: sh.eg.licht.flur_steckdose.dauer() = 0
         dauer:
           value: 30
         telegram_message: eg.licht.flur_steckdose [VALUE]
         schaltuhr:
          name: Schaltuhr Flur EG Steckdose
          type: dict
          uzsu_item: eg.licht.flur_steckdose
          cache: True
          visu_acl: rw
      logik.py:
      Code:
      now = datetime.now()
      now_time = now.time()
      
      if now_time >= time(0,00) and now_time <= time(6,00):
          if sh.og.licht.Dachboden() == 1:
              sh.eg.licht.flur_steckdose(1)

      Kommentar


        #4
        Mir stellt sich die Frage, ob du das nicht über deinen Schaltaktor eleganter lösen kannst. Kannst du den nicht so einstellen, dass du die Nachlaufzeit adaptieren kannst? Dann könntest du um Mitternacht diese auf 6 Stunden und um 6 Uhr auf 30 Minuten setzen und neu triggern.

        Ansonsten sollte es möglich sein, das Ganze mit cycle und eval zu managen und auf die Logik zu verzichten. Sowas in die Richtung:
        Code:
        eval: 1 if (sh.now().time() >= datetime.time(0,00) and sh.now().time() <= datetime.time(6,00) and sh.og.licht.Dachboden() == 1) else (1 if sh.self.age() < sh.self.dauer() else 0)
        cycle: 1m
        Hab's nur teils getestet, funzt vielleicht nicht

        Kommentar


          #5
          Funktioniert leider nicht:

          Code:
            flur_steckdose:
             name: Flur Steckdose
             type: bool
             knx_dpt: 1
             knx_listen: 4/4/8
             knx_send: 4/0/2
             knx_init: 4/0/2
             autotimer: sh.eg.licht.flur_steckdose.dauer() = 0
             eval: 1 if (sh.now().time() >= datetime.time(0,00) and sh.now().time() <= datetime.time(6,00) and sh.og.licht.Dachboden() == 1) else (1 if sh.eg.licht.flur_steckdose.age() < float(sh.eg.licht.flur_steckdose.dauer()) else 0)
             cycle: 1m
             dauer:
               value: 20
             telegram_message: eg.licht.flur_steckdose [VALUE]
             schaltuhr:
              name: Schaltuhr Flur EG Steckdose
              type: dict
              uzsu_item: eg.licht.flur_steckdose
              cache: True
              visu_acl: rw
          Log-Ausgabe:
          Code:
          TypeError: unsupported type for timedelta seconds component: str
          2019-02-12  11:56:19 ERROR    eg.licht.flur_steckdose-eval Method eg.licht.flur_steckdose-eval exception: unsupported type for timedelta seconds component: str
          Traceback (most recent call last):
            File "/usr/local/smarthome/lib/scheduler.py", line 519, in _task
              obj(**value)
            File "/usr/local/smarthome/lib/item.py", line 938, in __run_eval
              self.__update(value, caller, source, dest)
            File "/usr/local/smarthome/lib/item.py", line 1075, in __update
              next = self.shtime.now() + datetime.timedelta(seconds=_time)
          TypeError: unsupported type for timedelta seconds component: str
          Zuletzt geändert von diverms; 12.02.2019, 11:56.

          Kommentar


            #6
            Danke für den Hinweis, dass ich es über den Aktor versuchen solle. Darüber hat es geklappt. Besten Dank! :-)

            Kommentar

            Lädt...
            X