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

  • JuMi2006
    antwortet
    Man sollte nach einem pull auch die examples wieder kopieren

    Dafür erhalte ich jetzt das:
    Code:
    2013-09-28 22:10:18,179 ERROR    System       Logic: System, File: system.py, Line: 16, Method: <module>, Exception: 'SmartHome' object has no attribute 'technik' -- 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 16, in <module>
    AttributeError: 'SmartHome' object has no attribute 'technik'

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Mirko,

    hmmm bei mir läuft die Logik seit der Migration so.

    Was steht denn bei Dir in Zeile 33 an Code?

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    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

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Jan,

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

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    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

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    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])

    Einen Kommentar schreiben:


  • mike
    antwortet
    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

    Einen Kommentar schreiben:


  • JNK
    antwortet
    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

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Jan,

    danke ist gefixed.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • JNK
    antwortet
    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

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    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

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    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

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Na dann mach ich mal nen cp meiner Installation und ziehe auf python3 um. Ich will die rrds in der Visu testen

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    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

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X