Ankündigung

Einklappen
Keine Ankündigung bisher.

Python 3.2 Migration in develop bzw. 1.0 Release

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

    #16
    Zitat von JuMi2006 Beitrag anzeigen
    War schon besser
    Man soll den Abend ja nicht vor dem nächsten Tage loben:

    Code:
    /usr/local/smarthome/logics# 2to3-3.2 -f iodoms -f all system.py
    ....
    ImportError: No module named fix_iodoms
    Na, was könnte die letzte Meldung bedeuten?

    Tippfehler!

    2to3-3.2 -f idioms -f all meinelogik.py

    Bis bald

    Marcus

    Kommentar


      #17
      Da macht man mal nicht copy&paste und schon sowas - mea culpa
      Umgezogen? Ja! ... Fertig? Nein!
      Baustelle 2.0 !

      Kommentar


        #18
        Zitat von mknx Beitrag anzeigen
        Über Tester und Feedback freue ich mich.

        EDIT: Ein Backup vor dem Update ist angebracht...

        Also ich hab das ganze über Nacht mit dem RRD-Plugin mal laufen lassen und bin höchst zufrieden. Die Plots werden dargestellt, ich hab sie aber noch nicht auf Richtigkeit überprüft - sah plausibel aus.
        Am Wochenende werde ich das mal in die Produktivität überführen. Warum noch die Warnung, gibt es bekannte Bugs/Fallstricke wo etwas auf die Nase fällt?


        Zum Thema Backup ... im Image ist das ja eine nettes Web-Interface Gimmick. Liegt der Source dazu auf irgendeinem Server ? Diese Backup/Restore Geschichte ist denke ich auch für alle anderen System interessant.

        Gruß Mirko
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #19
          Hi Mirko,

          mir sind momentan keine Bug bekannt. Das mit dem RRD Methoden habe ich bereits geschrieben.
          Die Migration war aber doch mehr Arbeit als gedacht und es sind schon einige Änderungen drin.

          https://github.com/mknx/smarthome/co...c4aeea2214c7eb
          64 changed files with 5,906 additions and 798 deletions.

          Wenn man seine Logiken auf py3 migriert und sich ein gravierender Bug herauskristallisieren würde, den ich nicht ganz schnell fixen kann, dann müsste man seine Logiken wieder auf py2 umstellen. Dafür gibt es aber kein 3to2 Tool.

          Deswegen der Hinweis mit dem Backup.

          Die beiden Skripte für den Pi sind nicht in git. Es sind nur mini-tar Skripte. Den Pi habe ich unter Kontrolle und weis welche Dateien ich sichern muss und wo sie liegen. Das kann ich bei den anderen Installationen nicht erahnen.

          Bis bald

          Marcus

          Kommentar


            #20
            Na dann mach ich mal nen cp meiner Installation und ziehe auf python3 um. Ich will die rrds in der Visu testen
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              #21
              Also erstmal gibt es einen Haufen exceptions. Ich weiß jetzt nicht wo ich anfangen soll

              Status vom Bus lesen beim Start:
              Code:
              2013-09-27 10:55:18,149 DEBUG    Main         1.1.253 read 1/2/21 -- __init__.py:parse_telegram:213
              2013-09-27 10:55:18,159 WARNING  Main         knx: Problem decoding frame from 1.1.201 to 1/2/21 with '00' and DPT 1. Exception: unsupported operand type(s) for &: 'bytearray' and 'int' -- __init__.py:parse_telegram:197
              Code:
              [og]
                  [[flur]]
                      [[[licht_decke]]]
                          [[[[switch]]]]
                              type = bool
                              knx_dpt = 1
                              knx_send = 1/2/20
                              knx_listen = 1/2/21
                              knx_init = 1/2/21
                              visu = yes
              Weiter gehts bei einer logic die vorher nicht bemängelt wurde (2to3-3.2):
              Code:
              2013-09-27 11:00:13,143 WARNING  praesenz     Logic: praesenz, File: praesenz.py, Line: 6, Method: <module>, Exception: 'Item' object has no attribute 'ibutton' -- scheduler.py:_task:288
              Code:
              #/logics/praesenz.py
              #!/usr/bin/env python
              # Schaltet die globale Praesenz 0/7/0 wenn ein iButton (0/7/1,2,3,4,5) angemeldet ist.
              
              #Letzte Statusaenderung auf FALSE vor mehr als 4 Minuten
              if sh.ow.ibutton.last_change() <= sh.now() - datetime.timedelta(seconds=240) and sh.ow.ibutton() == False:
                  #setzt den Stauts Praesenz (ow.praesenz) gleich mit dem iButton Status (ow.ibutton) -> FALSE / Abwesend
                  sh.ow.praesenz(sh.ow.ibutton())
                  logger.info('Alle iButtons abgemeldet')
              
              #Letzte Statusaenderung auf FALSE vor weniger als 5 Minuten
              else:
                  if sh.ow.ibutton() == False:
                      # ruf diese Logik in 5 Minuten noch einmal auf
                      logic.trigger(dt=sh.now() + datetime.timedelta(seconds=300))
                      logger.info('Recall')
              
              #Letzte Statusaenderung auf TRUE    
              if sh.ow.ibutton() == True:
                  #setzt den Stauts Praesenz (ow.praesenz) gleich mit dem iButton Status (ow.ibutton) -> TRUE / Anwesend
                  sh.ow.praesenz(sh.ow.ibutton())
                  logger.info('Ein iButton angemeldet')
              Die system.py mag auch nach 2to3-3.2 nicht:
              Code:
              2013-09-27 11:13:13,128 WARNING  System       Logic: System, File: system.py, Line: 33, Method: <module>, Exception: unorderable types: type() < type() -- scheduler.py:_task:288
              OneWire:
              Code:
              2013-09-27 11:22:57,115 DEBUG    1w-sen       ow.EG_Gaeste_WC_RL = 22.75 via 1-Wire /bus.0/28.6E2C64040000/temperature10 -- item.py:_update:251
              2013-09-27 11:22:57,119 ERROR    1w-sen       Problem running <bound method KNX.update_item of <plugins.knx.KNX connected 127.0.0.1:6720 at 0x9be42ac>>: ord() expected string of length 1, but int found -- item.py:_update:262
              Könnte ich noch ewig fortführen...Squeezebox, ebus machen auch Probleme ... was kann ich da vergessen haben?
              Auf jeden Fall sind "-" und Leerzeichen im Item-Namen nun definitiv verboten und müssen ersetzt werden.

              Soweit von der Front

              Init SmartHome.py 0.9-189-gec7e85e+
              2013-09-27 11:26:35,035 INFO Main Start SmartHome.py 0.9-189-gec7e85e+ -- smarthome.py:__init__:249
              2013-09-27 11:26:35,036 DEBUG Main Python 3.2.3 -- smarthome.py:__init__:250
              Umgezogen? Ja! ... Fertig? Nein!
              Baustelle 2.0 !

              Kommentar


                #22
                Hi Mirko,

                erst einmal Danke für das Feedback.

                Ist fast alles gefixed. Bitte git pull durchführen. Den letzten Fehler konnte ich momentan nicht lokalisieren.

                Bzgl. Deiner Logik probier mal

                if sh.ow.ibutton.age() < 240:


                Du kannst mir auch einfach (per Mail) das komplette Debug-Log schicken, dann fixe ich die Bugs.

                Danke

                Marcus

                Kommentar


                  #23
                  Ich hab eim Angebot:

                  Code:
                  2013-09-27 18:05:15,042 DEBUG    heizung      False -- heizung.py:<module>:20
                  2013-09-27 18:05:15,048 DEBUG    heizung      technik.heizung.temperatur.vorlauf.soll = 10.0 via Logic None -- item.py:_update:251
                  2013-09-27 18:05:15,059 ERROR    heizung      technik.heizung.temperatur.vorlauf.soll problem running <bound method KNX.update_item of <plugins.knx.KNX connected 192.168.0.51:6720 at 0x680c10>> ord() expected string of length 1, but int found -- item.py:_update:262
                  Traceback (most recent call last):
                    File "/usr/local/smarthome/lib/item.py", line 260, in _update
                      update_plugin(self, caller, source, dest)
                    File "/usr/local/smarthome/plugins/knx/__init__.py", line 333, in update_item
                      self.groupwrite(ga, item(), item.conf['knx_dpt'])
                    File "/usr/local/smarthome/plugins/knx/__init__.py", line 83, in groupwrite
                      self._send(pkt)
                    File "/usr/local/smarthome/plugins/knx/__init__.py", line 62, in _send
                      send = bytearray(len(data).to_bytes(2, byteorder='big'))
                    File "/usr/local/smarthome/plugins/knx/dpts.py", line 110, in en7
                      yield ord(c)
                  TypeError: ord() expected string of length 1, but int found
                  2013-09-27 18:05:15,108 DEBUG    heizung      Triggering heizung - by: Item source: technik.heizung.temperatur.vorlauf.soll dest: None value: 10.0 -- scheduler.py:trigger:123
                  2013-09-27 18:05:15,118 DEBUG    heizung      False -- heizung.py:<module>:20
                  2013-09-27 18:05:15,252 DEBUG    Scheduler    heizung next time: 2013-09-27 18:10:15+02:00 -- scheduler.py:_next_time:245
                  Gruss,

                  der Jan
                  KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

                  Kommentar


                    #24
                    Hi Jan,

                    danke ist gefixed.

                    Bis bald

                    Marcus

                    Kommentar


                      #25
                      Danke. Die system.py geht auch nicht mehr, nach 2to3 ergibt sich bei mir:

                      Code:
                      2013-09-28 09:33:48,712 ERROR    system       Logic: system, File: system.py, Line: 33, Method: <module>, Exception: unorderable types: type() < type() -- scheduler.py:_task:288
                      Traceback (most recent call last):
                        File "/usr/local/smarthome/lib/scheduler.py", line 281, in _task
                          exec(obj.bytecode)
                        File "system.py", line 33, in <module>
                      TypeError: unorderable types: type() < type()
                      und da steht:

                      Code:
                      (32) # sort by refcount
                      (33) pairs = sorted([(x[1], x[0]) for x in list(d.items())])
                      (34) pairs.reverse()
                      Gruss,

                      der Jan
                      KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

                      Kommentar


                        #26
                        Hallo,

                        ich habe jetzt auch mal wieder auf den aktuellen develop Stand "rebased".

                        Beim Fritzbox und Hue - Plugin fehlt noch das untabbify.

                        Allgemein hatte ich Probleme mit Umlauten. Daher habe ich
                        Code:
                        export LANG=de_DE.utf8
                        gesetzt.

                        Grüße
                        Mike

                        Kommentar


                          #27
                          Damit es nicht verloren geht

                          Code:
                          2013-09-28 14:44:48,286 INFO  sh.con  Squeezebox: connected to 127.0.0.1:9090 -- my_asynchat.py:connect:69
                          error: uncaptured python exception, closing channel <plugins.squeezebox.Squeezebox connected 127.0.0.1:9090 at 0x9d138cc> (<class 'TypeError'>:expected an object with the buffer interface [/usr/lib/python3.2/asyncore.py|readwrite|108] [/usr/lib/python3.2/asyncore.py|handle_read_event|449] [/usr/lib/python3.2/asynchat.py|handle_read|170])
                          Umgezogen? Ja! ... Fertig? Nein!
                          Baustelle 2.0 !

                          Kommentar


                            #28
                            Hallo Mike,

                            Zitat von mike Beitrag anzeigen
                            Beim Fritzbox und Hue - Plugin fehlt noch das untabbify.
                            was meinst Du damit? Im Hue-Plugin waren noch ein paar Tabs, die habe ich gerade entfernt. Beim Fritzbox-Plugin habe ich keine gesehen.

                            Bis bald

                            Marcus

                            Kommentar


                              #29
                              Hi Jan,

                              ich habe in develop die examples/logics/system.py aktualisiert.

                              Bis bald

                              Marcus

                              Kommentar


                                #30
                                Schmeißt aber immer noch eine exception:

                                Code:
                                2013-09-28 20:00:58,119 ERROR    System       Logic: System, File: system.py, Line: 33, Method: <module>, Exception: unorderable types: type() < type() -- scheduler.py:_task:288
                                Traceback (most recent call last):
                                  File "/usr/local/smarthome_py3/lib/scheduler.py", line 281, in _task
                                    exec(obj.bytecode)
                                  File "system.py", line 33, in <module>
                                TypeError: unorderable types: type() < type()
                                git log sagt aber ich bin aktuell: git log
                                commit 4b567a2009acd939585ebbf1ab9263682285bd60
                                Umgezogen? Ja! ... Fertig? Nein!
                                Baustelle 2.0 !

                                Kommentar

                                Lädt...
                                X