Ankündigung

Einklappen
Keine Ankündigung bisher.

autotimer macht nichts

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

    autotimer macht nichts

    Hallo,

    meinem Garagentor muss ich einen Impuls senden. Das versuche ich so:
    Code:
    [garagentor]
        type=bool
        knx_send=4/5/15
        knx_listen=4/5/15
        knx_dpt=1
      [[auf]]
        type=bool
        knx_send=4/5/16
        knx_dpt=1
        autotimer = 1 = 0
        eval= 1 if (sh.garagentor()) else 0 
        eval_trigger=garagentor
      [[ab]]
        type=bool
        knx_send=4/5/17
        knx_dpt=1
        autotimer = 1 = 0
        eval= 1 if (not sh.garagentor()) else 0     
        eval_trigger=garagentor
    Aus/Ab werden auch gesendet. Aber die Ausgänge werden danach nicht durch den Autotimer wieder auf 0 gesetzt:

    Code:
    2014-04-26 21:39:05,184 DEBUG    Main         Item garagentor = True via KNX 0.0.0 4/5/15 -- item.py:__update:363
    2014-04-26 21:39:05,184 DEBUG    Main         Triggering garagentor.auf - by: KNX source: 0.0.0 dest: 4/5/15 value: {'source': 'garagentor', 'value': True} -- scheduler.py:trigger:162
    2014-04-26 21:39:05,184 DEBUG    Main         Triggering garagentor.ab - by: KNX source: 0.0.0 dest: 4/5/15 value: {'source': 'garagentor', 'value': True} -- scheduler.py:trigger:162
    2014-04-26 21:39:05,184 DEBUG    garagentor.auf Item garagentor.auf = True via Eval garagentor None -- item.py:__update:363
    2014-04-26 21:39:05,185 DEBUG    garagentor.ab Item garagentor.ab = False via Eval garagentor None -- item.py:__update:363
    2014-04-26 21:39:06,500 DEBUG    garagentor.auf-Timer Triggering garagentor.auf-eval - by: Autotimer source: None dest: None value: {'dest': None, 'source': None, 'caller': -- scheduler.py:trigger:162
    2014-04-26 21:39:06,500 DEBUG    garagentor.ab-Timer Triggering garagentor.ab-eval - by: Autotimer source: None dest: None value: {'dest': None, 'source': None, 'caller': -- scheduler.py:trigger:162
    Woran liegt das? Hat jemand eine Idee?

    Gruß,
    Hendrik

    #2
    Mal nur ne Vermutung..... Vieleicht enforce_updates = yes

    Wenn ich eins bei Marcus gelernt habe, und Gott weiß das er es nicht leicht mit mir hatte , ist das eine Logik manchmal doch besser ist, als alles in eval "pressen".

    Kommentar


      #3
      Hi Hendrik,

      klar. Das liegt an Deinem eval. sh.garagentor() ändert sich in dem Betrachtungszeitraum ja nicht, daher ändert sich auch nicht der Wert der Items.

      (eval wird auch bei dem autotimer durchlaufen)

      Frage: Wie kann ich es lösen?
      Antwort: Kleine Logik schreiben.

      Bis bald

      Marcus

      Kommentar


        #4
        Hallo,
        ok, ne Logik bekomme ich schon hin. Ich würd's gerne aber auch verstehen..
        Wenn ich sh.garagentor() setze, wird eval der beiden anderen Items getriggert und eins davon bekommt einen neuen Wert.

        Z.B.
        Startpunkt:
        sh.garagentor.auf=0
        sh.garagentor.ab =0

        sh.garagentor(1) --> sh.garagentor.auf=1, sh.garagentor.ab=0
        Jetzt sollte doch der Autotimer von sh.garagentor.auf laufen und nach einer Sekunde sh.garagentor.auf=0 setzen.

        Neu für mich:
        Jetzt läuft wieder eval durch und setzt das Item wieder auf 1.
        Aber sollte das nicht im Log sichtbar werden?

        Gruß,
        Hendrik

        Kommentar


          #5
          Hallo Hendrik,

          ich hatte mal meine Lösung gepostet:

          https://knx-user-forum.de/smarthome-...rung-html.html

          Sie funktioniert mit eval und autotimer.

          Michel

          Kommentar


            #6
            Danke für den Tipp.
            Meine Frage dazu stelle ich nebenan.

            Würd mich aber dennoch interessieren, wo mein Denkfehler ist.

            Gruß,
            Hendrik

            Kommentar


              #7
              Hi Hendrik,

              Zitat von henfri Beitrag anzeigen
              Neu für mich:
              Jetzt läuft wieder eval durch und setzt das Item wieder auf 1.
              Aber sollte das nicht im Log sichtbar werden?
              nein, es werden ja nur Änderungen protokolliert.
              Der Autotimer versucht den Wert auf 0 zu setzen, dann kommt Dein eval und macht den Versuch kaputt.

              Bis bald

              Marcus

              Kommentar


                #8
                du könntest auch einfach in deinem eval zusätzlich den Status des Items selber abfragen... also in AUF abfragen, ob AUF ungleich 1 ist.
                Mit freundlichen Grüßen
                Niko Will

                Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                Kommentar

                Lädt...
                X