Ankündigung

Einklappen
Keine Ankündigung bisher.

erste Logik klappt nicht

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

    erste Logik klappt nicht

    Guten Tag,
    nachdem mein EIB mit Homeserver läuft habe ich eine neue Herausforderung gesucht und mir einen RASP-PI mit smarthome.py installiert. Eingebunden, Adressen vergeben, Item angelegt und das Licht lässt sich schalten. Ganz begeistert.
    Jetzt wollte ich eine erste Logik erstellen, bin aber fürchterlich gescheitert und suche Hilfe. ich habe im Verzeichnis \logics eine Datei mit dem Name
    oeffnung.py angelegt. Darin steht ganz einfach:

    #!/usr/bin/env python
    if sh.licht.wohnen.decke1():
    sh.licht.wohnen.decke2('on')

    dann im etc/logic.con eingetragen
    [TESTAUFBAU]
    filename=oeffnung.py
    watch_item=sh.licht.wohnen.decke1()
    visu_acl=yes

    Server neu gestartet, aber es funktioniert einfach nicht. Was habe ich denn vergessen?
    Über den Aufruf der smartvisu lassen sich beide Adressen auch manuell schalten.
    Kann ich irgendwo ein debugfile sehen, wo es nicht passt?
    Gruß Peter



    never fummel a running system...

    #2
    Hi, Bei dem watch_item muss das sh. vorne und die Klammern hinten weg. Das ist ganz sicher falsch. Ich würde auch statt 'on' eine 1 nehmen (ohne hochkommata). Wobei sein könnte, dass sh.py auch ein on zulässt, da bin ich mir nicht sicher. Gruß Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      Hallo,

      es muss in der logic.conf stehen, nicht in der logic.con.
      Bei watch_item nur licht.wohnen.decke1.

      Es gibt auch ein Debuglog, ich müsste selbst in der Doku nachsehen wo es bei dem Pi-Image ist. Ich verwende es seit geraumer Zeit nicht mehr.

      Bis bald

      Marcus

      Kommentar


        #4
        logic.conf war mein schreibfehler im thread hier. Beides geändert, die 1 hatte ich schon probiert. geht trotzdem nicht. muss man da noch was eintragen oder parametrieren?
        never fummel a running system...

        Kommentar


          #5
          Logfile ist unter var/log bzw. usr/smarthome/var/log

          Kommentar


            #6
            hmm, mein Debuglevel schien zu niedrig zu sein. wie verstellt man denn den?
            Letzter Eintrag von vorgestern. Kann man die Logik denn überhaupt debuggen und kann die oeffnung.py ich manuell anstossen? aus dem Putty geht es jedenfalls nicht, da fehlt das sh objekt.
            never fummel a running system...

            Kommentar


              #7
              Versuch mal

              /usr/local/smarthome/bin/smarthome.py --start
              /usr/local/smarthome/bin/smarthome.py --stop

              und für Debug /usr/local/smarthome/bin/smarthome.py -d

              Kommentar


                #8
                ah, danke, ich sehe dass es schaltet, leider wird es von den ganzen Telegrammen des HS "überlagert"
                aber die Logik greift irgendwie nicht. bin schon ganz verzweifelt.

                2016-03-25 16:31:19,061 DEBUG Main 192.168.178.216:50111 sent '{"cmd":"monitor","items":["licht.wohnen.decke1.s chalten","licht.wohnen.decke2.schalten","licht.ess en.Pendelleuchte.schalten"]}' -- __init__.py:json_parse:270
                2016-03-25 16:31:24,141 DEBUG Main 192.168.178.216:50111 sent '{"cmd":"item","id":"licht.wohnen.decke1.schalte n ","val":"1"}' -- __init__.py:json_parse:270
                2016-03-25 16:31:24,149 DEBUG Main Item licht.wohnen.decke1.schalten = True via Visu 192.168.178.216:50111 None -- item.py:__update:363

                wenn ich das richtig interpretiere müsste doch dann jetzt hier die Logik eingreifen... - oder?

                2016-03-25 16:31:24,156 DEBUG Main knx: 0.0.0 set 1/1/6 to True -- __init__.pyarse_telegram:190
                2016-03-25 16:31:24,261 DEBUG Main knx: 1.1.0 set 0/0/7 to 01 -- __init__.pyarse_telegram:181

                never fummel a running system...

                Kommentar


                  #9
                  Ja, aber sorry, ich denke so kommst Du hier nicht weiter. Bitte nochmal die aktuelle Logik (oeffnung.py?) pasten sowie die logic.conf unter etc.
                  Bitte aber als Code formatieren.
                  Den Hinweis der Änderung für die logic.conf auf
                  Code:
                  watch_item = licht.wohnen.decke1
                  hattest Du schon umgesetzt?

                  Kommentar


                    #10
                    ja, umgesetzt.

                    Hier die oeffnung.py
                    #!/usr/bin/env python
                    if sh.licht.wohnen.decke1():
                    sh.licht.wohnen.decke2(1)

                    [TESTAUFBAU]
                    filename=oeffnung.py
                    watch_item=licht.wohnen.decke1
                    visu_acl=yes

                    any ideas?


                    never fummel a running system...

                    Kommentar


                      #11
                      Sieht eigentlich gut aus... Und die Items passen auch? Schon mal via Putty oä. die CLI aufgerufen (beim Image via sh.cli) und dann ein "up licht.wohnen.decke1=1" bzw. 0 gemacht? Dann checken ob was schaltet und dann das Logfile nach Fehlermeldungen prüfen.

                      Kommentar


                        #12
                        ja, ich kann auch via VSU an und ausschalten, das sind ja dieselben objekte. IM Logfile steht nichts drin. Könnte es ein Installationsfehler sein? Ich hatte die SMARTVISU zuerst oberhalb vom /HTML installiert. Das gesamte Verzeichnis dann aber umbenannt, um es nich löschen zu müssen. Ich verzweifle...
                        never fummel a running system...

                        Kommentar


                          #13
                          Hast Du nun sh.cli schon probiert? Schaltet was?

                          Kommentar


                            #14
                            Zitat von TRex Beitrag anzeigen
                            Guten Tag,

                            #!/usr/bin/env python
                            if sh.licht.wohnen.decke1():
                            sh.licht.wohnen.decke2('on')
                            Hi,

                            Du hast die Befehlszeile unterhalb der If-Prüfung aber schon eingerückt, oder? Ich würde außerdem sh.licht.wohnen.decke1() auf einen konkreten Wert abfragen, also z.B. so:
                            Code:
                            if sh.licht.wohnen.decke1() == True:
                                        sh.licht.wohnen.decke2(True)

                            Kommentar


                              #15
                              Hi Peter,

                              ich fasse mal zusammen: Du kannst den Debuglog sehen, Du kannst per CLI auf die Items zugreifen und auch schalten, nur eben die Logik scheint nicht zu funktionieren?

                              Füge doch mal am Anfang der Logik diese Zeile ein:
                              Code:
                              logger.info('oeffnung.py Logik triggered by {}, source {}, value {}, dest {}'.format(trigger['by'],trigger['source'],trigger['value'],trigger['dest']))
                              Dann sollte Deine Logik wie folgt aussehen:
                              Code:
                              #!/usr/bin/env python
                              
                              logger.info('oeffnung.py Logik triggered by {}, source {}, value {}, dest {}'.format(trigger['by'],trigger['source'],trigger['value'],trigger['dest']))
                              
                              if sh.licht.wohnen.decke1():
                                  sh.licht.wohnen.decke2(1)
                                  logger.info('Licht Decke 2 --> EIN')
                              Jetzt kannst Du im Debug Modus sehen, was passiert und ob Deine Logik überhaupt aufgerufen wird.

                              Gruß,
                              Bernd

                              Kommentar

                              Lädt...
                              X