Ankündigung

Einklappen
Keine Ankündigung bisher.

Anfängerlogik

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

    Anfängerlogik

    Hallo zusammen

    Ich wollte mal eine einfache Logik bauen, da ich noch ein Anfänger bin. Die Logik soll einfach sein damit ich die Zusammenhänge leichter verstehe, wenn ich einen Taster drücke soll ein Licht ein/ausschalten.

    meine smartvisu.conf

    Code:
    [allgemein]
    [[treppe]]
                   [[[testschalter]]]
    		name = testschalter
                	type = bool
    		visu = yes
               	visu_acl = rw
                	knx_dpt = 1
               	knx_listen = 3/2/1
    
    		[[[testaktor]]]
    		name = licht2og
                	type = bool
    		visu = yes
               	visu_acl = rw
                	knx_dpt = 1
               	knx_send = 3/2/0
    		knx_init = 3/2/0
    meine logic.conf:

    Code:
    [test]
    	filename = test.py
    	watch_item = allgemein.treppe.testschalter
    	visu_acl = yes
    meine test.py datei

    Code:
    #!usr/bin/env python
    
    if (sh.allgemein.treppe.testschalter()=1):
    	sh.allgemein.treppe.testaktor(1)
    
    elseif (sh.allgemein.treppe.testschalter()=0): 
    	sh.allgemein.treppe.testaktor(0)
    Wo liegt der Fehler? Kann mir jemand bitte helfen.

    #2
    Bin zwar (sicher) nicht der ausgemachte Logikspezialist da selbst noch Anfänger, aber mir fallen folgende Dinge auf:

    1.) Ob Du richtig eingerückt hast kann ich im Post jetzt nicht erkennen, also bitte prüfen. (Künftig am Besten mit "Code einfügen" in den Text einbinden)
    2.) bei meinen if Anweisungen habe ich keine Klammern um die Anweisung direkt nach dem if.
    3.) Ich habe zwischen neben dem = immer Leerzeichen.

    Ich würde es also so probieren. (Natürlich ohne Gewähr, siehe Eingang)
    Code:
    if sh.allgemein.treppe.testschalter() = 1:
        sh.allgemein.treppe.testaktor(1)
    elseif sh.allgemein.treppe.testschalter() = 0: 
        sh.allgemein.treppe.testaktor(0)
    Probiers mal, vielleicht klappt es ja

    Grüße
    Sven

    Kommentar


      #3
      Hallo Patrick,

      das ist kein richtiges Python. Schaue Dir doch mal ein Python-Tutorial an.

      elseif gibt es nicht. => elif
      Mit = ist eine Zuweisung und bei der Bedingung falsch. Es muss dort == lauten, für einen Vergleich.

      Bis bald

      Marcus

      Kommentar


        #4
        Danke vielmal habe den Code nun angepasst und es funktioniert so.

        Code:
        #!usr/bin/env python
        
        if sh.allgemein.treppe.testschalter() == 1:
        	sh.allgemein.treppe.testaktor(1)
        
        elif sh.allgemein.treppe.testschalter() == 0:
        	sh.allgemein.treppe.testaktor(0)
        Gruäss Patrick

        Kommentar

        Lädt...
        X