Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik startet nicht wegen Item-Abfrage eines bestimmten Items

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

    Logik startet nicht wegen Item-Abfrage eines bestimmten Items

    Hallo zusammen,

    wir ihr euch denken könnt habe ich ein Problem...

    Ich habe eine Logik aufgebaut die auf ein Item nennen wir es A reagiert. Wenn ich die Logik dann mit z.B. Item B = 1 versehe, klappt das problemlos. Sogar Item A = 1 funktioniert.
    Wenn ich aber jetzt von Item A den aktuellen Wert erfrage, z.B. für eine if-Anweisung oder eine while-Schleife, dann startet die Logik nicht (bzw. bringt kein Ergebnis). Egal auf welches Item ich ändere.
    Hier die Codeschnipsel dazu:

    Item Bewegungsmelder.unten (diverseitems.conf):
    Code:
    [Bewegungsmelder]
      [[unten]]
        type = bool
        knx_dpt = 1
        knx_init = 1/5/0
        knx_cache = 1/5/0
        history = true
        visu_acl = rw
        enforce_updates = yes
    Die Eigenschaften von Item A (1/5/0) siehe Bild (Schalten -- 1.001)

    So funktioniert es, wie programmiert (Bewegungsmelderunten.py - Variante 1):
    Code:
    #logic Bewegungsmelderunten.py
    sh.eg.Flur.Licht.schalten(1)
    So funktioniert es nicht, egal welchen Wert 1/5/0 hat (Bewegungsmelderunten.py - Variante 2):
    Code:
    #logic Bewegungsmelderunten.py
    if Bewegungsmelder.unten() = 1:
      sh.eg.Flur.Licht.schalten(1)


    Der Vollständigkeit halber auch noch die logic.conf:
    Code:
    [Bewegungsmelderunten]
    filename = Bewegungsmelderunten.py
    watch_item = Bewegungsmelder.unten
    Ich habe vorher schonmal eine andere Logik erstellt, die ähnlich arbeitet. Diese funktioniert tadellos. Der einzige Unterschied ist der Datentyp - bei der funktionierenden Logik ist das ein Temperaturwert.

    Hat jemand eine Idee oder das Wissen, woran es hier liegen kann? Ich weiß aktuell nicht, was ich noch ausprobieren soll oder wo ich noch suchen soll (Internet). In der Log wird keine Fehler rein geschrieben, wenn es ausgeführt werden müsste.

    Wenn ihr weitere Infos braucht einfach fragen...
    Vielen Dank schon einmal für eure Hilfe.

    Grüße
    Johannes
    You do not have permission to view this gallery.
    This gallery has 1 photos.

    #2
    Fehlt da nicht ein '=' ?

    Kommentar


      #3
      Kann es sein, das Du bereits beim Start einen Parse-Fehler im Debuglog übersehen hast? Es sollte mich wundern, wenn Du mit 'if Bewegungsmelder.unten()' keinen Fehler bekommst.
      Probier mal:
      Code:
      if sh.Bewegungsmelder.unten():
          sh.eg.Flur.Licht.schalten(1)

      Kommentar


        #4
        Hallo bmx.
        Danke!
        Du hast bei beidem Recht...
        Das würde ja bedeuten, dass, wenn ich mit der if-Abfrage "if sh.Bewegungsmelder.unten():" den Item-Wert = 1 abfrage und wenn ich den Item-Wert = 0 abfragen wollte "if not sh.Bewegungsmelder.unten():" schreiben müsste. Richtig?

        Grüße
        Johannes

        Kommentar


          #5
          ja

          Kommentar


            #6
            Danke!

            Kommentar

            Lädt...
            X