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

  • callidomus
    antwortet
    Hallo,

    ich habe folgende Änderungen, auf Basis der Anregung aus https://knx-user-forum.de/347544-post14.html, vorgenommen.

    • age() = Alter des aktuellen Wertes, also seit der letzten Änderung in Sekunden
    • prev_age() = Alter des vorherigen Wertes, also seit der vorletzten Änderung in Sekunden
    • last_change() = Zeitpunkt der letzten Änderung des Wertes als datetime
    • prev_change() = Zeitpunkt der vorletzten Änderung des Wertes als datetime
    • last_update() = Zeitpunkt der letzten Aktualisierung des Wertes (includiert Änderungen) als datetime


    Weiterhin gibt es zwei neue Zeit-Methoden in tools:
    • sh.tools.dt2ts(dt) konvertiert ein datetime in ein Unix Timestamp
    • sh.tools.dt2js(dt) konvertiert ein datetime in ein JavaScript Timestamp (Sekunden & Millisekunden)


    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Ronny,

    nein, das habe ich noch nie gesehen. Diese Fetzen langen aber auch nicht um irgendwie den Kontext zu erahnen.

    Immer wieder gerne referiert:
    https://knx-user-forum.de/smarthome-...rbehebung.html

    Ich brauche mehr Informationen.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • stromie
    antwortet
    Dummy- im Logfile

    Hi zusammen

    ich habe folgenden Eintrag im Logfile gefunden

    Code:
    2013-10-17 02:03:06 ERROR    Dummy-9      Unhandled exception: 'utf-8' codec can't decode byte 0xdf in position 2717: invalid continuation byte
    <class 'UnicodeDecodeError'>
      File "/usr/lib/python3.2/threading.py", line 713, in _bootstrap
        self._bootstrap_inner()
      File "/usr/lib/python3.2/threading.py", line 753, in _bootstrap_inner
        (self.name, _format_exc()))
      File "/usr/lib/python3.2/traceback.py", line 269, in format_exc
        format_exception(etype, value, tb, limit, chain))
      File "/usr/lib/python3.2/traceback.py", line 186, in format_exception
        list.extend(format_tb(tb, limit))
      File "/usr/lib/python3.2/traceback.py", line 75, in format_tb
        return format_list(extract_tb(tb, limit))
      File "/usr/lib/python3.2/traceback.py", line 100, in extract_tb
        line = linecache.getline(filename, lineno, f.f_globals)
      File "/usr/lib/python3.2/linecache.py", line 15, in getline
        lines = getlines(filename, module_globals)
      File "/usr/lib/python3.2/linecache.py", line 41, in getlines
        return updatecache(filename, module_globals)
      File "/usr/lib/python3.2/linecache.py", line 132, in updatecache
        lines = fp.readlines()
      File "/usr/lib/python3.2/codecs.py", line 300, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    
    2013-10-17 02:03:23 INFO     system       Threads (8): idle: 4, Main: 1, system: 1, Scheduler: 1, Dummy-9: 1
    und zum Mittag

    Code:
    2013-10-17 12:34:47 ERROR    Dummy-12     Unhandled exception: 'utf-8' codec can't decode byte 0xdf in position 2717: invalid continuation byte
    <class 'UnicodeDecodeError'>
      File "/usr/lib/python3.2/threading.py", line 713, in _bootstrap
        self._bootstrap_inner()
      File "/usr/lib/python3.2/threading.py", line 753, in _bootstrap_inner
        (self.name, _format_exc()))
      File "/usr/lib/python3.2/traceback.py", line 269, in format_exc
        format_exception(etype, value, tb, limit, chain))
      File "/usr/lib/python3.2/traceback.py", line 186, in format_exception
        list.extend(format_tb(tb, limit))
      File "/usr/lib/python3.2/traceback.py", line 75, in format_tb
        return format_list(extract_tb(tb, limit))
      File "/usr/lib/python3.2/traceback.py", line 100, in extract_tb
        line = linecache.getline(filename, lineno, f.f_globals)
      File "/usr/lib/python3.2/linecache.py", line 15, in getline
        lines = getlines(filename, module_globals)
      File "/usr/lib/python3.2/linecache.py", line 41, in getlines
        return updatecache(filename, module_globals)
      File "/usr/lib/python3.2/linecache.py", line 132, in updatecache
        lines = fp.readlines()
      File "/usr/lib/python3.2/codecs.py", line 300, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    
    2013-10-17 12:34:49 INFO     system       Threads (8): Dummy-12: 1, system: 1, idle: 2, Scheduler: 1, dimplex: 1, Main: 1, Dummy-9: 1
    sonst läuft alles normal

    jemand schon mal gehabt ?

    System ist ein Debian auf einen Cubi

    Grüße Stromie

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Jan,

    Zitat von JNK Beitrag anzeigen
    Ich mache immer in einem Konsolen-Fenster

    Code:
    tail -f /usr/local/smarthome/var/log/smarthome.log
    die meisten Leute kürzen die Debug-Logs nicht auf den letzten Start, sondern posten oder schicken mir das komplette Log. z.T. mit mehreren k Zeilen.
    Deswegen habe ich das Verhalten leicht geändert. Wenn es im Debug-Modus gestartet wird, dann wird das Logfile rotiert. Deswegen klappt das '-f' nicht mehr.

    Vllt. hilft Dir aber der Alias den ich verwende (und auch ins nächste Image packe):

    Code:
    alias sh.log="tail -F /usr/smarthome/var/log/smarthome.log | sed \
        -e '/WARNING\|ERROR\|CRITICAL\|FAIL/s/WARNING\|ERROR\|CRITICAL\|FAIL/\x1b[91m&\x1b[0m/i' \
        -e '/PASS/s/PASS/\x1b[92m&\x1b[0m/i'"
    Das '-F' funktioniert.

    Das mit dem age gehe ich gleich an. Sorry dafür.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • mike
    antwortet
    Hallo,

    beim "Refactoring lib.item" wurde die Methode "fade" entfernt. Gibt es dafür einen Ersatz? Ich habe diese Methode in einigen Logiken verwendet.

    Grüße
    Mike

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von JNK Beitrag anzeigen
    Hallo Marcus,

    danke erstmal. Jetzt hakts noch hier:

    Code:
    AttributeError: 'Item' object has no attribute 'age'
    https://knx-user-forum.de/347386-post7.html - ist etwas unglücklich dass age() auch im develop ohne Vorwarnung entfällt.

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Hallo Marcus,

    noch einer:

    Ich mache immer in einem Konsolen-Fenster

    Code:
    tail -f /usr/local/smarthome/var/log/smarthome.log
    was total praktisch ist. Wenn ich dann sh.py neustarte, ist bis vor kurzem alles gut gewesen und ich konnte den kompletten Startup beobachten. Seit gestern ist aber:

    Code:
    2013-10-17 08:34:17,542 INFO     Main         SmartHome.py stopped -- smarthome.py:stop:395
    Init SmartHome.py 0.9
    und dann kommt nix mehr.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Hallo Marcus,

    danke erstmal. Jetzt hakts noch hier:

    Code:
    2013-10-17 08:21:27,422 ERROR    heizung      Logic: heizung, File: /usr/local/smarthome/logics/heizung.py, Line: 35, Method: <module>, Exception: 'Item' object has no attribute 'age' -- scheduler.py:_task:334
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/scheduler.py", line 327, in _task
        exec(obj.bytecode)
      File "/usr/local/smarthome/logics/heizung.py", line 35, in <module>
        elif ((sh.technik.heizung.temperatur.vorlauf() < (vl_soll - hysterese)) and (sh.technik.heizung.pumpe.age()>600) and (not sh.technik.heizung.brenner())):
    AttributeError: 'Item' object has no attribute 'age'
    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Mike,

    Zitat von mike Beitrag anzeigen
    im Log gibt es eben keine Meldung.
    das bezweifle ich. Ich Debug-Log steht mit Sicherheit drin wer blockiert.
    Die Logmeldung fängt mit "Threads: " an.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Danke Jan, ist gefixed.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • mike
    antwortet
    Hi Marcus,

    Zitat von mknx Beitrag anzeigen
    So ganz ohne Log und Version ist das schwer.
    im Log gibt es eben keine Meldung.
    Version war c00d99b4b88a0583fc4bd47bbbd47bc9440010ed. Ich habe dann auf c78648598999c1b59672130e6a54002cbabf3f3e rebased, dort trat das Problem auch auf. Nach einem Rebase auf 35c2b62e5dcd02a6a222b26fa4087ccb2378a561 läuft es jetzt seit einer halbe Stunde ohne erneute Blockade.

    Da das bei anderen nicht Auftritt, muss es wohl an irgendetwas speziellen bei mir liegen... Ich schaue mir das Morgen mal näher an.

    Interessant wäre ein Tipp, wie man herausbekommt, wer da blockiert. Also quasi wer als letzter aus der Queue entnommen wurde (falls das Single-Threaded läuft).

    Grüße
    Mike

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Code:
    [szene]
        [[nacht]]
            type = scene
            knx_dpt = 1
            knx_send = 0/4/1
            knx_listen = 0/4/1
            visu = yes
            enforce_updates = on
        [[rollladen]]
            type = scene
            knx_dpt = 1
            knx_send = 0/4/150
            knx_listen = 0/4/150
            visu =yes
            enforce_updates = on
    Code:
    2013-10-16 19:57:06,723 ERROR    Main         Item szene.nacht: value  does not match type scene. -- item.py:__init__:228
    2013-10-16 19:57:06,725 ERROR    Main         Item szene.nacht: problem creating: () -- item.py:__init__:195
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/item.py", line 226, in __init__
        self._value = self.__cast(self._value)
      File "/usr/local/smarthome/lib/item.py", line 80, in _cast_scene
        return int(value)
    ValueError: invalid literal for int() with base 10: ''
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/item.py", line 193, in __init__
        child = Item(smarthome, self, child_path, value)
      File "/usr/local/smarthome/lib/item.py", line 229, in __init__
        raise ValueError
    ValueError
    und

    Code:
    2013-10-16 19:57:06,867 DEBUG    Main         Logic: notify -- logic.py:__init__:44
    2013-10-16 19:57:06,882 ERROR    Main         Unhandled exception: 'Item' object has no attribute 'add_logic_trigger'
    <class 'AttributeError'>
      File "/usr/local/smarthome/bin/smarthome.py", line 663, in <module>
        sh.start()
      File "/usr/local/smarthome/bin/smarthome.py", line 351, in start
        self._logics = lib.logic.Logics(self, self._logic_conf, self._env_logic_conf)
      File "/usr/local/smarthome/lib/logic.py", line 71, in __init__
        item.add_logic_trigger(logic)
     -- smarthome.py:_excepthook:513
    und das KNX-Plugin connected, macht aber nix.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Jan,

    ich habe gerade eine Version eingecheckt die den Bug beheben sollte.

    Ich werde das heute Abend noch testen.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Mike,

    ja. Irgend etwas blockiert. So ganz ohne Log und Version ist das schwer.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • mike
    antwortet
    Hallo,

    hat jemand einen schnellen Tipp was es sein kann, wenn die Run-Queue nicht mehr abgearbeitet wird?
    Bei mir werden alle Aufträge eingestellt, aber nicht abgearbeitet. Es gibt keine Fehlermeldung.

    Code:
    >>> sh.scheduler._runq.qsize()
    290
    >>> sh.scheduler._runq.qsize()
    292
    >>> sh.scheduler._runq.qsize()
    298
    >>> sh.scheduler._runq.qsize()
    346
    Grüße
    Mike

    Einen Kommentar schreiben:

Lädt...
X