Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme bei erster logic

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

    Probleme bei erster logic

    Hallo,

    bin grad dabei meine erste Logic auszuprobieren; einfache LED an und ausschalten, funktioniert soweit ganz gut: folgende gpio.py funktioniert
    Code:
    #!/usr/bin/env python
    #gpio.py logics
    import time
    import RPi.GPIO as GPIO
    
    GPIO.setup(11, GPIO.OUT)
    
    while 1:
        GPIO.output(11, True)
        # Warte 1000 ms
            time.sleep(1)
        GPIO.output(11, False)
        # Warte 1000 ms
            time.sleep(1)
    jetzt will ich das ganze mal an ein item (Schalterzustand) koppeln und da kommt folgende Fehlermeldung:

    admin@smarthome:/usr/smarthome$ sudo python /usr/smarthome/logics/gpio.py
    Traceback (most recent call last):
    File "/usr/smarthome/logics/gpio.py", line 13, in <module>
    if sh.second.WC_OG.toggle_b:
    NameError: name 'sh' is not defined

    ich benutze euer 2.7er image auf einem raspberry
    gpio.py
    Code:
    #!/usr/bin/env python
    #gpio.py logics
    import time
    import RPi.GPIO as GPIO
    
    GPIO.setup(11, GPIO.OUT)
    if sh.second.WC_OG.toggle_b():
        #logger.info("LED Ein")
        GPIO.output(11, False)
        
    
    if not sh.second.WC_OG.toggle_b():
        #logger.info("LED Aus")
        GPIO.output(11, True)
    smartvisu.conf
    Code:
    [second]
        [[office_martin]]
        [[WC_OG]]
            name = WC Obergeschoss
            sv_page = room
            sv_img = scene_bath.png
            [[[toggle_b]]]
            name = Licht WC toggle
    
                type = bool
                visu_acl = rw
               knx_dpt = 1
                knx_init = 1/3/200
                knx_send = 1/3/200
    Das heißt, ich kann nichts von sh.py referenzieren.
    Auch ein neustart von sh.py in smartcontrol hilft nicht.

    ich bin schon länger hier im forum auf der suche und hab bis jetzt noch nichts ähnliches gefunden, was auf mein problem schließen lässt.

    By the way: kann mir jemand sagen, wie ich auf einem anderen raspberry mit sh.py und smartvisu im gleichen netzwerk die GPIO' s schalten kann (codebeispiel oder Anregungen wären super ).
    Habe nämlich in zukunft vor, insgesamt 4 raspberries im haus simultan laufen zu haben (einer davon hängt am knx busankoppler; bis jetzt kann ich schon von einem raspberry ohne busankoppler gruppenadressen in smartvisu schalten;
    ich will gerne auf verschiedenen raspberries relais schalten und würde daher gerne per logic andere gpio ports auf den unterschiedliche pi's schalten/nutzen).

    Danke im Voraus für eure Unterstützung. Und Hut ab vor eurer Leistung bei dem ganzen Projekt

    #2
    Hi,

    Du kannst die Logik nicht per Kommandozeile aufrufen, sondern von sh.py aus über die logic.conf, wie in der Anleitung beschrieben.

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      ok, hab ich das richtig verstanden:

      wenn in der logic.conf folgendes steht
      Code:
      [test_gpio]
      
          filename = gpio.py
          watch_item = second.WC_OG.toggle_b
      dann sh.py über smartcontrol neu gestartet wird, sollte, wenn ich das WC licht schalte das led mit angesteuert werden ?

      Kommentar


        #4
        habs jetzt so ausprobiert wie gerade beschrieben.

        sh.py debug zeigt folgendes problem

        Code:
        cheduler.py:_task:334
        Traceback (most recent call last):
          File "/usr/smarthome/lib/scheduler.py", line 327, in _task
            exec(obj.bytecode)
          File "/usr/smarthome/logics/gpio.py", line 4, in <module>
            import RPi.GPIO as GPIO
        ImportError: No module named RPi.GPIO
        2014-06-26 22:59:21,183 DEBUG    Main         knx: 1.1.11 set 1/3/200 to False -- __init__.py:parse_telegram:190
        2014-06-26 22:59:25,395 DEBUG    Main         knx: 0.0.0 set 1/3/200 to True -- __init__.py:parse_telegram:190
        2014-06-26 22:59:25,402 DEBUG    Main         Item second.WC_OG.light = True via KNX 0.0.0 1/3/200 -- item.py:__update:363
        2014-06-26 22:59:25,410 DEBUG    Main         Item second.WC_OG.toggle_b = True via KNX 0.0.0 1/3/200 -- item.py:__update:363
        2014-06-26 22:59:25,417 DEBUG    Main         Triggering test_gpio - by: Item source: second.WC_OG.toggle_b dest: None value: True -- scheduler.py:trigger:162
        2014-06-26 22:59:25,427 ERROR    test_gpio    Logic: test_gpio, File: /usr/smarthome/logics/gpio.py, Line: 4, Method: <module>, Exception: No module named RPi.GPIO -- scheduler.py:_task:334
        Traceback (most recent call last):
          File "/usr/smarthome/lib/scheduler.py", line 327, in _task
            exec(obj.bytecode)
          File "/usr/smarthome/logics/gpio.py", line 4, in <module>
            import RPi.GPIO as GPIO
        ImportError: No module named RPi.GPIO
        warum kennt er auf einmal das RPi.GPIO nicht? Wenn ich die gpio.conf
        Code:
        #!/usr/bin/env [URL="http://redaktion.knx-user-forum.de/lexikon/python/"]python[/URL] #gpio.[URL="http://redaktion.knx-user-forum.de/lexikon/py/"]py[/URL] logics [URL="http://redaktion.knx-user-forum.de/lexikon/import/"]import[/URL] time [URL="http://redaktion.knx-user-forum.de/lexikon/import/"]import[/URL] RPi.GPIO as GPIO  GPIO.setup(11, GPIO.OUT)  while 1:     GPIO.output(11, True)     # Warte 1000 [URL="http://redaktion.knx-user-forum.de/lexikon/ms/"]ms[/URL]         time.sleep(1)     GPIO.output(11, False)     # Warte 1000 [URL="http://redaktion.knx-user-forum.de/lexikon/ms/"]ms[/URL]         time.sleep(1)
        manuell im terminal aufrufe kennt er RPi.GPIO??

        übrigens, hab das RPi.GPIO so installiert:

        Code:
        admin@smarthome:~$ wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.1.0.tar.gz
        
        admin@smarthome:~$ wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.1.0.tar.gz
        --2014-06-24 19:24:02--  http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.1.0.tar.gz
        Resolving pypi.python.org (pypi.python.org)... 23.235.43.175
        Connecting to pypi.python.org (pypi.python.org)|23.235.43.175|:80... connected.
        HTTP request sent, awaiting response... 301 Moved Permanently
        Location: https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.1.0.tar.gz [following]
        --2014-06-24 19:24:02--  https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.1.0.tar.gz
        Connecting to pypi.python.org (pypi.python.org)|23.235.43.175|:443... connected.
        HTTP request sent, awaiting response... 200 OK
        Length: 7931 (7.7K) [application/octet-stream]
        Saving to: `RPi.GPIO-0.1.0.tar.gz'
        
        100%[=============================================>] 7,931       --.-K/s   in 0.003s
        
        2014-06-24 19:24:08 (2.89 MB/s) - `RPi.GPIO-0.1.0.tar.gz' saved [7931/7931]
        
        admin@smarthome:~$ tar zxf RPi.GPIO-0.1.0.tar.gz
        admin@smarthome:~$ cd RPi.GPIO-0.1.0
        admin@smarthome:~/RPi.GPIO-0.1.0$ sudo python setup.py install
        [sudo] password for admin:
        running install
        Checking .pth file support in /usr/local/lib/python2.7/dist-packages/
        /usr/bin/python -E -c pass
        TEST PASSED: /usr/local/lib/python2.7/dist-packages/ appears to support .pth files
        running bdist_egg
        running egg_info
        writing RPi.GPIO.egg-info/PKG-INFO
        writing top-level names to RPi.GPIO.egg-info/top_level.txt
        writing dependency_links to RPi.GPIO.egg-info/dependency_links.txt
        reading manifest file 'RPi.GPIO.egg-info/SOURCES.txt'
        reading manifest template 'MANIFEST.in'
        writing manifest file 'RPi.GPIO.egg-info/SOURCES.txt'
        installing library code to build/bdist.linux-armv6l/egg
        running install_lib
        running build_py
        creating build
        creating build/lib.linux-armv6l-2.7
        creating build/lib.linux-armv6l-2.7/RPi
        copying RPi/__init__.py -> build/lib.linux-armv6l-2.7/RPi
        creating build/lib.linux-armv6l-2.7/RPi/GPIO
        copying RPi/GPIO/__init__.py -> build/lib.linux-armv6l-2.7/RPi/GPIO
        creating build/bdist.linux-armv6l
        creating build/bdist.linux-armv6l/egg
        creating build/bdist.linux-armv6l/egg/RPi
        creating build/bdist.linux-armv6l/egg/RPi/GPIO
        copying build/lib.linux-armv6l-2.7/RPi/GPIO/__init__.py -> build/bdist.linux-armv6l/egg/RPi/GPIO
        copying build/lib.linux-armv6l-2.7/RPi/__init__.py -> build/bdist.linux-armv6l/egg/RPi
        byte-compiling build/bdist.linux-armv6l/egg/RPi/GPIO/__init__.py to __init__.pyc
        byte-compiling build/bdist.linux-armv6l/egg/RPi/__init__.py to __init__.pyc
        creating build/bdist.linux-armv6l/egg/EGG-INFO
        copying RPi.GPIO.egg-info/PKG-INFO -> build/bdist.linux-armv6l/egg/EGG-INFO
        copying RPi.GPIO.egg-info/SOURCES.txt -> build/bdist.linux-armv6l/egg/EGG-INFO
        copying RPi.GPIO.egg-info/dependency_links.txt -> build/bdist.linux-armv6l/egg/EGG-INFO
        copying RPi.GPIO.egg-info/top_level.txt -> build/bdist.linux-armv6l/egg/EGG-INFO
        zip_safe flag not set; analyzing archive contents...
        creating dist
        creating 'dist/RPi.GPIO-0.1.0-py2.7.egg' and adding 'build/bdist.linux-armv6l/egg' to it
        removing 'build/bdist.linux-armv6l/egg' (and everything under it)
        Processing RPi.GPIO-0.1.0-py2.7.egg
        removing '/usr/local/lib/python2.7/dist-packages/RPi.GPIO-0.1.0-py2.7.egg' (and everything under it)
        creating /usr/local/lib/python2.7/dist-packages/RPi.GPIO-0.1.0-py2.7.egg
        Extracting RPi.GPIO-0.1.0-py2.7.egg to /usr/local/lib/python2.7/dist-packages
        RPi.GPIO 0.1.0 is already the active version in easy-install.pth
        
        Installed /usr/local/lib/python2.7/dist-packages/RPi.GPIO-0.1.0-py2.7.egg
        Processing dependencies for RPi.GPIO==0.1.0
        Finished processing dependencies for RPi.GPIO==0.1.0
        jemand vielleicht eine idee, wo es klemmt?

        Kommentar


          #5
          smarthome.py nutzt python 3.2.
          Du hast die lib für python2.7 installiert und somit ist sie unter 3.2 nicht verfügbar.

          Kommentar


            #6
            Hi,

            da kann ich leider nicht mehr helfen...

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #7
              alles klar, danke vorerst für eure hilfe. ich werde versuchen, irgendwo die lib für python 3.2 aufzutreiben und zu installieren

              Kommentar


                #8
                kann mir vielleicht bei dieser Problematik wer behilflich sein?

                By the way: kann mir jemand sagen, wie ich auf einem anderen raspberry mit sh.py und smartvisu im gleichen netzwerk die GPIO' s schalten kann (codebeispiel oder Anregungen wären super ).
                Habe nämlich in zukunft vor, insgesamt 4 raspberries im haus simultan laufen zu haben (einer davon hängt am knx busankoppler; bis jetzt kann ich schon von einem raspberry ohne busankoppler gruppenadressen in smartvisu schalten;
                ich will gerne auf verschiedenen raspberries relais schalten und würde daher gerne per logic andere gpio ports auf den unterschiedliche pi's schalten/nutzen).
                gibt es in python eine einfache möglichkeit, peripherie/gpio von anderen rpi's im netzwerk zu steuern, sprich zieh pin 11 von IP10.0.0.2 auf Masse?

                Kommentar


                  #9
                  Hi,

                  nur so als Idee: Man kann einen eibd so parametrisieren, dass er auf nen anderen hört (über IP). Die ohne KNX-Anbindung können dann auf den eibd mit KNX-Anbindung hören. Dann verhält sich jeder RPi gleich.

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Network Plugin mit UDP/TCP Telegrammen

                    EDIT: wenn du die GPIOs über KNX schalten willst wäre die Variante von Waldemar natürlich zu bevorzugen
                    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


                      #11
                      @waldemar: Danke.
                      Als ich die Frage geschrieben habe hatte ich schon spekuliert, dass es ja so wie du geschrieben hast funktionieren muss.

                      einen kleinen Tipp von euch bräuchte ich noch:
                      Debug Log:
                      Code:
                      2014-06-27 20:53:36,542 ERROR    test_gpio    Logic: test_gpio, File: /usr/smarthome/logics/gpio.py, Line: 9, Method: <module>, Exception: No access to /dev/mem.  Try running as root! -- scheduler.py:_task:334
                      Traceback (most recent call last):
                        File "/usr/smarthome/lib/scheduler.py", line 327, in _task
                          exec(obj.bytecode)
                        File "/usr/smarthome/logics/gpio.py", line 9, in <module>
                          GPIO.setup(11, GPIO.OUT)
                      RuntimeError: No access to /dev/mem.  Try running as root!
                      ich will als admin und nicht als root am Raspy arbeiten und hatte bis jetzt auch wenig probleme damit. kann ich die logic.conf bzw. gpio.py irgendwie mit sudo ausführen (oder muss ich smarthome.py als sudo starten??), ohne permanent als root zu arbeiten?
                      Sorry, bin ziemlicher linux neuling.

                      Danke im Voraus für eueren ausgezeichnetten Support!

                      Kommentar


                        #12
                        Hallo,
                        Zitat von susi1508 Beitrag anzeigen
                        kann ich die logic.conf bzw. gpio.py irgendwie mit sudo ausführen (oder muss ich smarthome.py als sudo starten??), ohne permanent als root zu arbeiten?
                        Sorry, bin ziemlicher linux neuling.
                        In Deinem Fall muss SH.py als root laufen (über z.B. sudo)

                        bis bald

                        Marcus

                        Kommentar

                        Lädt...
                        X