Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik ausschalten

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

    Logik ausschalten

    Hallo,

    ich habe ein kleines Problem,

    ich habe mir eine Logik geschrieben, die mir meine Abendbeleuchtung einschaltet, wenn es im Raum dunkel wird.
    Dieses mache ich, da der Bewegungsmelder der normalerweise das Licht anschaltet, durch mein TV gesperrt wird.
    Wenn es nun jedoch zu Hell in dem Raum ist, würde es nicht angehen wenn es langsam dunkler wird.

    Nun kommt es aber vor, dass ich diese Logik ausschalten möchte. Dazu habe ich ein Item angelegt:
    Item:
    Code:
    [[[[auto_light3]]]]        
                        type = bool
                        visu_acl = rw
                        cache = True
    Logik:
    Code:
    if sh.EG.living.presence.value() <= 30 and sh.EG.living.socket.television.on_off() == True and sh.EG.living.presence.auto_light3() == True:
            sh.EG.living.light.ceiling_light3(1)
    
    if sh.EG.living.presence.value() >= 280 and sh.EG.living.presence.auto_light3() == True and sh.EG.living.light.ceiling_light1() == False and sh.EG.living.light.ceiling_light2() ==False:
            sh.EG.living.light.ceiling_light3(0)
    Trigger:
    Code:
    [living]
        filename = living.py    
       cycle = 60

    Nun kommt es jedoch vor, dass die Logik ausgeführt wird, obwohl ich über einen Basic.flip den Item EG.living.presence.auto_light3() auf False setzte.

    Was mache ich falsch ?

    Gruß Manuel

    #2
    Hallo Manuel,

    die Logik wird alle 60 Sekunde ausgeführt weil Du cycle verwendest...

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo Marcus,

      das die Logik ausgeführt ist zwar richtig aber da die Logik nicht erfüllt ist, dürfte das Licht nicht eingeschaltet werden.
      oder verstehe ich das falsch.
      Ich vergleiche die Helligkeit mit einem Wert schaue ob der Fernseher läuft und ob das Item Auto Living on/off ist.

      Gruß Manuel

      Kommentar


        #4
        Schon mal über sh.cli geschaut ob der Flip auch wirklich das Item setzt? Von der Syntax her sieht IMHO alles i.O. aus.

        Kommentar


          #5
          Hallo Manuel,

          ich übersetze mal die Bedingung in deutsch:
          if sh.EG.living.presence.value() <= 30 and sh.EG.living.socket.television.on_off() == True and sh.EG.living.presence.auto_light3() == True: sh.EG.living.light.ceiling_light3(1) Wenn Präsenzwert kleinergleich 30 und der Fernseher an und Autolight an ist, dann mache das Licht an.

          Ist die Bedingung nicht erfüllt? Was sagt das Log dazu?

          P.S. die Logik kann und besteht hier aus mehr als aus einer Bedingung.

          Bis bald

          Marcus

          Kommentar


            #6
            Hallo Marcus,

            ich habe gerade festgestellt, dass sich der Wert des Items (sh.EG.living.presence.auto_light3) nicht ändert wenn dieser per Visu geschaltet wird.

            Das Item sieht so aus:

            Code:
            [EG]
                [[living]]
                    [[[light]]]
                        [[[[ceiling_light1]]]]
                            type = bool
                            visu_acl = rw
                            knx_dpt = 1
                            knx_listen = 6/1/1
                            knx_send = 6/1/0
                            knx_init = 6/1/1
                            
                        [[[[ceiling_light2]]]]
                            type = bool
                            visu_acl = rw
                            knx_dpt = 1
                            knx_listen = 6/1/3
                            knx_send = 6/1/2
                            knx_init = 6/1/3
                        
                        [[[[ceiling_light3]]]]
                            type = bool
                            visu_acl = rw
                            knx_dpt = 1
                            knx_listen = 6/3/1
                            knx_send = 6/3/0
                            knx_init = 6/3/1
                        
                    [[[presence]]]
                        type = bool
                        visu_acl = rw
                        knx_dpt = 1
                        knx_listen = 6/1/7
                        knx_listen = 6/3/5
                        knx_send = 6/1/7
                        cache = True
                        [[[[value]]]]
                            type = num
                            visu_acl = rw
                            knx_dpt = 9
                            knx_listen = 6/1/8
                        [[[[auto_light3]]]]        
                                type = bool
                                visu_acl = rw
                                cache = True
            Alle anderen Items funktionieren.

            Gruß Manuel

            Kommentar


              #7

              knx_dpt = ??

              Kommentar


                #8
                Ist der knx_dpt zwingend erforderlich? Es ist nur als "Zustandsspeicher" gedacht.
                Aber ich werde es auch gleich mal testen. Gruß und danke

                Kommentar


                  #9
                  So habe es getestet. Das war es leider nicht

                  Kommentar


                    #10
                    Hi Manuel,

                    Du hast natürlich recht, knx_dpt ist nur notwendig, wenn das Item irgendwas mit KNX zu tun hat. Ist hier aber nicht der Fall.
                    Aber Du machst es auch schwer, Dir zu helfen... sh.py hat ein log, da drin steht sehr genau, was die smartvisu anfordert und was sh.py damit macht. Da kannst Du selber nachschauen oder dieses hier posten, falls Du mit dem Inhalt nicht klar kommst. Wahrscheinlich wird man darin sehen, dass das Widget, das Dein Item ansteuern soll, dieses Item gar nicht anspricht. Das könnte man wiederum sehen, wenn Du den entsprechenden smartvisu-Teil gepostet hättest...

                    Da es am Item nicht liegt, würde ich Tippen, dass Du beim Widget einen Tippfehler hast.

                    Gruß, Waldemar
                    OpenKNX www.openknx.de

                    Kommentar


                      #11
                      Hallo,

                      danke für eure Hilfen. Leider bin ich erst heute wieder dazu gekommen mich damit weiter zu beschäftigen.
                      Meine Eintrag in der Visu sieht so aus:

                      Code:
                      Automatik{{ basic.switch('auto_light3', 'EG.living.presence.auto_light3', icon1~'light_light.png', icon0~'light_light.png') }}&lt;br/&gt;
                      Hier dazu der Log-Eintrag.

                      Code:
                      2015-07-05 16:14:37,981 DEBUG    Main         192.168.6.202:49292 sent '{"cmd":"item","id":"EG.living.presence.auto_light3","val":"1"}' -- __init__.py:json_parse:270
                      2015-07-05 16:14:37,988 DEBUG    Main         Item EG.living.presence.auto_light3 = True via Visu 192.168.6.202:49292 None -- item.py:__update:363
                      2015-07-05 16:14:38,833 DEBUG    Main         192.168.6.202:49292 sent '{"cmd":"item","id":"EG.living.presence.auto_light3","val":"0"}' -- __init__.py:json_parse:270
                      2015-07-05 16:14:38,840 DEBUG    Main         Item EG.living.presence.auto_light3 = False via Visu 192.168.6.202:49292 None -- item.py:__update:363
                      Im Anhang habe ich den gesamten Log angehängt.

                      Danke für Eure Hilfe.

                      Gruß Manuel
                      Angehängte Dateien

                      Kommentar


                        #12
                        Hallo Manuel,

                        da lag ich wohl falsch, das Item scheint von der Visu verändert zu werden, also kein Tippfehler. Nach dem Log wird das Item einmal auf True und einmal auf False gesetzt. Jetzt frage ich mich, wie Du festgestellt hast, dass das Item nicht verändert wird? Hast Du das cli plugin benutzt?
                        Derzeit sehe ich nicht, weshalb Deine Logik nicht läuft - Aber nach dem Log würde ich nicht sagen, dass das Item nicht gesetzt wird.
                        Schau Dir doch mal alle Werte im cli an, die für die Logik relevant sind, da muss man doch hinter kommen...

                        Gruß, Waldemar


                        OpenKNX www.openknx.de

                        Kommentar


                          #13
                          Hallo Waldemar,

                          ja, ich schaue es mir im Cli-Plugin an (smarthome.py -i) und dort mit sh.EG.living.presence.auto_light3()

                          Dort ändert sich jedoch nicht der Wert

                          Gruß und danke Manuel

                          Kommentar


                            #14
                            Hi Manuel,

                            smarthome.py -i ist der interaktive Modus, nicht das cli-plugin. Hattest Du smarthome.py gestoppt, bevor Du smarhome.py -i gestartet hast? Ich bin mir nämlich nicht sicher, ob man eine laufende Instanz mit -i überhaupt nutzen kann. Wenn Du smarthome.py -i zusätzlich zu der normalen smarthome.py Instanz gestartet hast, würde ich das Ergebnis erstmal anzweifeln.

                            Also mit anderen Worten:
                            Code:
                            smarthome.py -s
                            smarthome.py -i
                            sh.EG.living.presence.auto_light3()
                            Damit kannst Du checken, ob das Item gesetzt wird oder nicht - ich tippe auf ja. Alternativ kannst Du mal das echte cli-plugin aktivieren (ganz normal in der plugin.conf), dann kannst Du nämlich sicher sein, dass dessen ausgaben aus der aktiven smarthome.py Instanz kommen.

                            Gruß,
                            Waldemar
                            OpenKNX www.openknx.de

                            Kommentar


                              #15
                              Hallo Waldemar,

                              ich habe es gerade getestet. Aber es gibt keine Veränderung. Was meinst mit
                              Alternativ kannst Du mal das echte cli-plugin aktivieren
                              Ich habe den Cli so aktiviert :
                              Code:
                              [cli]
                                  class_name = CLI
                                  class_path = plugins.cli
                                  ip = 192.168.6.200
                                  update = True
                              Was muss ich denn noch machen.

                              Danke für die Hilfe.

                              Gruß Manuel

                              Kommentar

                              Lädt...
                              X