Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik Programmierung mit Eclipse und Remote Debug auf SH

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

    #31
    Hallo firefox,

    ich habe alle 3 Teile installiert. Teil 2 debuggen auf dem Win.Client funktioniert soweit.

    Probleme habe ich mit Teil 3. in smarthome beim Triggern der logic bekomme ich immer die Fehlermeldung:
    "File "/usr/smarthome/logics/logic_develop.py", line 30, in __init__
    pydevd.settrace("192.168.0.81")
    NameError: global name 'pydevd' is not defined"

    ich habe den Ordnerinhalt von pysrc auch auf den raspi kopiert. nach '/usr/local/lib/python3.2/dist-packages'
    Ich habe auch schon versucht den Pfad direkt anzugeben.
    Code:
    import sys
    sys.path.append(r'/usr/smarthome/pyscr') 
    import pydevd
    python version ist 3.2.3 sowol auf dem raspi als auch auf dem win.Client.

    Hat firefox oder sonst jemand eine Ahnung was mir noch fehlt?

    Kommentar


      #32
      hab den Fehler schon gefunden.. jetzt debuggts :-)
      ich musste import pydevd innerhalb der Klasse machen.

      Code:
      #!/usr/bin/env python
      #
      #import pydevd
      import datetime
      #import sys
      #sys.path.append('/usr/smarthome/pysrc') 
      
      
      class Tasterlogik:
          def __init__(self, sh, sourceItem, value):
              import pydevd
              logger.info("Tasterlogik")
              logger.info(sys.version)
              
              self.sh = sh
           
              
              parentItem = sourceItem.return_parent() #kueche.Tasterlogik
              #parentItem = sh.return_item(sh.trigger['source']).return_parent() #kueche.Tasterlogik
              
              progress = self.__get_child_item(sourceItem, "progress")
              pydevd.settrace("192.168.0.81")
      Gruß Ivan

      Kommentar


        #33
        so, die Anleitung ist jetzt auch im Wiki und kann von jedem ggf. editiert werden.

        https://github.com/mknx/smarthome/wi...f-Smarthome.py

        Kommentar


          #34
          Hello Guys.
          I've tried to get this working - but not succesfully.
          I don't get any data in Eclipse when starting in -d mode...

          In the Wiki it says:
          Code:
           
           sudo vim /usr/local/lib/python3.2/dist-packages/pydevd_file_utils.py
          should this path not be

          sudo vim /usr/local/lib/python3.2/dist-packages/pysrc/pydevd_file_utils.py I don't have any file called pydevd_file_utils.py in the other path...

          What can be wrong? The local debugger in wiki step 2 works perfect

          Kommentar


            #35
            Hi,

            there is a little, but important difference: The location of the files are different on your Laptop and the remote target ! This file only has to edited on your remote target !

            Hope this helps.

            Michel

            Kommentar


              #36
              Dank auch von mir für die Anleitung. Habe es auch auf m Mac hinbekommen, wenn auch mit einigen kleinen Holpern.
              Das Debuggen von Logiken funktioniert einwandfrei und ist nachvollziehbar.

              Für komplexere Plugins ist mir der Vorteil eines Livedebuggings noch nicht ganz klar... gibt es irgendwelche Vorteile mal von den Breakpoints abgesehen?
              Was mir auch nicht klar ist.. was bringt Schritt 2 das Definieren von pydev als Interpreter? Bei mir funktioniert das nicht, aber generell klappt sonst alles.

              Kommentar


                #37
                Hallo,

                ich wärme das hier mal auf.

                Wie sieht eine sinnvolle Entwicklungsumgebung für Logiken und Plugins aus?
                Was nutzt ihr bzw mit was habt ihr gute Erfahrungen gemacht?

                Danke Euch.

                Kommentar


                  #38
                  Ich nutze mein Executor Plugin um schnell mal Code zu testen.

                  Kommentar


                    #39
                    Ich schreibe die Logiken im Admin Interface. dort kann ich sie per Knopfdruck neu laden und triggern. Falls ich einen groben Syntax Fehler einbaue, so dass der Code nicht ladbar ist (die Exception steht dann im Log), korrigiere ich den Fehler und Scrolle auf der Liste der Nutzerlogiken ganz nach unten. Da ist die Logik dann als nicht geladen aufgeführt und kann per + Button geladen werden.
                    Viele Grüße
                    Martin

                    There is no cloud. It's only someone else's computer.

                    Kommentar


                      #40
                      Guten Abend,

                      ich würde das Thema gerne nochmal aufgreifen. Mein Ziel ist es, den Logic-Code in Eclipse zu generieren und zu debuggen. An und für sich kann ich einen Code den ich in Smarthome ausführe mit Eclipse über Remotedebugging debuggen. Nur das sh. Objekt kann ich nicht verwenden. Hat hierzu einer eine Idee? Libraries?

                      Kommentar


                        #41
                        Guten Abend,

                        hat keiner hier einen Lösungsansatz. Oder wie macht ihr die Programmierung? Über Webbrowser in SmarthomeNG?

                        Kommentar


                          #42
                          Wie ich schon schrieb, mache ich das meistens mit der Admin GUI. Ab und zu bearbeite ich Logiken auch mit der IDE mit der ich die Core und Plugin Entwicklungen mache, mit Pycharm.
                          Viele Grüße
                          Martin

                          There is no cloud. It's only someone else's computer.

                          Kommentar


                            #43
                            Nur das sh. Objekt kann ich nicht verwenden
                            warum nicht?

                            Kommentar


                              #44
                              warum nicht?
                              Das wenn ich wüsste!
                              Im AdminIF unter der Logik kann ich über sh. meine gewünschten Variablen aufrufen.
                              In Eclipse funktioniert das leider nicht. Ob das überhaupt geht, weiß ich nicht.
                              Ich denke, dass ich hier irgendwo eine Lib oder so noch aufrufen oder einfügen muss.

                              Kommentar


                                #45
                                Das sh Objekt gibt es nur in einer laufenden SmartHomeNG Instanz. Das kann nicht einfach durch „einfügen einer lib“ o.ä. Genutzt werden.

                                Du müsstest innerhalb von Eclipse ein komplettes SmartHomeNG starten. Ein Remote Debugging ist nicht möglich,
                                Viele Grüße
                                Martin

                                There is no cloud. It's only someone else's computer.

                                Kommentar

                                Lädt...
                                X