Ankündigung

Einklappen
Keine Ankündigung bisher.

SML Plugin worker threads

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

    SML Plugin worker threads

    Hallo zusammen,

    nachdem das SML Plugin nun auch mit den IP Gateways funktioniert hatte ich Smarthome.py längere Zeit laufen. Nun hat sich gezeigt, dass nach einiger Zeit (mal 1 Stunde, mal 24 Stunden) das SML Plugin bis zu xx Threads aufmacht, welche aber nicht abgearbeitet werden. Im Debug Log steht, dass der Scheduler fleissig weiter terminiert, aber diese threads nie abgeschlossen werden.

    Um das zu beenden hilft nur ein kill von Smarthome.py.

    Ich habe mal das Log angehängt
    zusammenfassung :

    -bis 17:24 läuft alles gut....
    -dann nach dem cycle von 180 sec um 17:27 kommt keine meldung, aber der scheduler läuft weiter.
    - um 24 Uhr gibt es schon 130 threads die nicht abgearbeitet werden


    Code:
    2014-06-13 17:24:46,195 DEBUG    Sml          cycle takes 0.07559704780578613 seconds -- __init__.py:_refresh:178
    2014-06-13 17:24:46,629 DEBUG    Scheduler    Sml next time: 2014-06-13 17:27:46+02:00 -- scheduler.py:_next_time:289
    2014-06-13 17:24:50,625 DEBUG    Main         knx: 1.2.102 set 2/1/1 to 22.32 -- __init__.py:parse_telegram:190
    2014-06-13 17:24:50,626 DEBUG    Main         Item EG.Flur.Temp = 22.32 via KNX 1.2.102 2/1/1 -- item.py:__update:363
    2014-06-13 17:25:06,738 DEBUG    Main         knx: 1.1.102 set 2/2/1 to 22.74 -- __init__.py:parse_telegram:190
    2014-06-13 17:25:09,891 DEBUG    Main         knx: 1.2.106 set 2/1/2 to 24.34 -- __init__.py:parse_telegram:190
    2014-06-13 17:25:09,891 DEBUG    Main         Item EG.Wohnzimmer.Temp = 24.34 via KNX 1.2.106 2/1/2 -- item.py:__update:363
    2014-06-13 17:25:14,662 DEBUG    Main         knx: 1.1.107 set 4/2/2 to 2c81 -- __init__.py:parse_telegram:181
    2014-06-13 17:25:14,751 DEBUG    Main         knx: 1.1.254 set 1/7/2 to 01 -- __init__.py:parse_telegram:181
    2014-06-13 17:25:16,843 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 45966000 -- __init__.py:parse_telegram:181
    2014-06-13 17:25:16,898 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 45840800 -- __init__.py:parse_telegram:181
    2014-06-13 17:25:16,953 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 45635000 -- __init__.py:parse_telegram:181
    2014-06-13 17:25:17,413 DEBUG    Kostala      set analog_4 = 0.00 -- __init__.py:_refresh:61
    2014-06-13 17:25:17,414 DEBUG    Kostala      set analog_1 = 6.02 -- __init__.py:_refresh:61
    2014-06-13 17:25:17,414 DEBUG    Kostala      set analog_3 = 0.00 -- __init__.py:_refresh:61
    2014-06-13 17:25:17,414 DEBUG    Kostala      set analog_2 = 0.00 -- __init__.py:_refresh:61
    2014-06-13 17:25:17,415 DEBUG    Kostala      Item PV.analog1 = 6.02 via Kostala None None -- item.py:__update:363
    2014-06-13 17:25:17,415 DEBUG    Kostala      cycle takes 0.03553009033203125 seconds -- __init__.py:_refresh:72
    2014-06-13 17:25:17,884 DEBUG    Scheduler    Kostala next time: 2014-06-13 17:26:17+02:00 -- scheduler.py:_next_time:289
    2014-06-13 17:25:31,964 DEBUG    Main         knx: 1.1.101 set 0/2/21 to 0000 -- __init__.py:parse_telegram:181
    2014-06-13 17:25:50,515 DEBUG    Main         knx: 1.2.102 set 2/1/1 to 22.3 -- __init__.py:parse_telegram:190
    2014-06-13 17:25:50,516 DEBUG    Main         Item EG.Flur.Temp = 22.3 via KNX 1.2.102 2/1/1 -- item.py:__update:363
    2014-06-13 17:26:05,906 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 455b0000 -- __init__.py:parse_telegram:181
    2014-06-13 17:26:05,960 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 4552b000 -- __init__.py:parse_telegram:181
    2014-06-13 17:26:06,015 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 454a7000 -- __init__.py:parse_telegram:181
    2014-06-13 17:26:09,956 DEBUG    Main         WebSocketHandler: closing socket 94.221.73.190:56407 -- connection.py:close:303
    2014-06-13 17:26:14,553 DEBUG    Main         knx: 1.1.107 set 4/2/2 to 2c7e -- __init__.py:parse_telegram:181
    2014-06-13 17:26:14,658 DEBUG    Main         knx: 1.1.254 set 1/7/2 to 01 -- __init__.py:parse_telegram:181
    2014-06-13 17:26:17,444 DEBUG    Kostala      set analog_4 = 0.01 -- __init__.py:_refresh:61
    2014-06-13 17:26:17,444 DEBUG    Kostala      set analog_1 = 6.05 -- __init__.py:_refresh:61
    2014-06-13 17:26:17,445 DEBUG    Kostala      set analog_3 = 0.00 -- __init__.py:_refresh:61
    2014-06-13 17:26:17,445 DEBUG    Kostala      set analog_2 = 0.00 -- __init__.py:_refresh:61
    2014-06-13 17:26:17,445 DEBUG    Kostala      Item PV.analog1 = 6.05 via Kostala None None -- item.py:__update:363
    2014-06-13 17:26:17,446 DEBUG    Kostala      Item PV.analog4 = 0.01 via Kostala None None -- item.py:__update:363
    2014-06-13 17:26:17,446 DEBUG    Kostala      cycle takes 0.05979180335998535 seconds -- __init__.py:_refresh:72
    2014-06-13 17:26:17,491 DEBUG    Kostal       set status = Einspeisen MPP -- __init__.py:_refresh:94
    2014-06-13 17:26:17,491 DEBUG    Kostal       set string2_ampere = 7.46 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,491 DEBUG    Kostal       set l3_watt = 1743 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,491 DEBUG    Kostal       set l2_volt = 225 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,491 DEBUG    Kostal       set power_day = 35.31 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set string3_ampere = 1.68 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set power_current = 5214 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set l1_volt = 226 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set power_total = 12346 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set string1_volt = 325 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set l2_watt = 1732 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set l3_volt = 224 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set string1_ampere = 7.52 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set l1_watt = 1739 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set string2_volt = 330 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,492 DEBUG    Kostal       set string3_volt = 413 -- __init__.py:_refresh:94
    2014-06-13 17:26:17,493 DEBUG    Kostal       Item PV.current = 5214 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,493 DEBUG    Kostal       Item PV.day = 35.31 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,494 DEBUG    Kostal       Item PV.l1w = 1739 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,494 DEBUG    Kostal       Item PV.l2w = 1732 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,495 DEBUG    Kostal       Item PV.l3v = 224 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,495 DEBUG    Kostal       Item PV.l3w = 1743 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,496 DEBUG    Kostal       Item PV.string1_volt = 325 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,496 DEBUG    Kostal       Item PV.string1_ampere = 7.52 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,497 DEBUG    Kostal       Item PV.string2_volt = 330 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,497 DEBUG    Kostal       Item PV.string2_ampere = 7.46 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,498 DEBUG    Kostal       Item PV.string3_volt = 413 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,498 DEBUG    Kostal       Item PV.string3_ampere = 1.68 via Kostal None None -- item.py:__update:363
    2014-06-13 17:26:17,498 DEBUG    Kostal       cycle takes 0.11139512062072754 seconds -- __init__.py:_refresh:105
    2014-06-13 17:26:17,890 DEBUG    Scheduler    Kostala next time: 2014-06-13 17:27:17+02:00 -- scheduler.py:_next_time:289
    2014-06-13 17:26:17,891 DEBUG    Scheduler    Kostal next time: 2014-06-13 17:28:17+02:00 -- scheduler.py:_next_time:289
    2014-06-13 17:26:34,526 DEBUG    Scheduler    1w-disc next time: 2014-06-13 17:36:34+02:00 -- scheduler.py:_next_time:289
    2014-06-13 17:26:44,125 DEBUG    env_stat     Item env.core.memory = 22994944 via Logic None None -- item.py:__update:363
    2014-06-13 17:26:44,633 DEBUG    Scheduler    env_stat next time: 2014-06-13 17:31:44+02:00 -- scheduler.py:_next_time:289
    2014-06-13 17:26:50,404 DEBUG    Main         knx: 1.2.102 set 2/1/1 to 22.3 -- __init__.py:parse_telegram:190
    2014-06-13 17:27:03,912 DEBUG    Main         knx: 1.2.101 set 2/1/0 to 23.06 -- __init__.py:parse_telegram:190
    2014-06-13 17:27:03,912 DEBUG    Main         Item EG.Esszimmer.Temp = 23.06 via KNX 1.2.101 2/1/0 -- item.py:__update:363
    2014-06-13 17:27:06,513 DEBUG    Main         knx: 1.1.102 set 2/2/1 to 22.72 -- __init__.py:parse_telegram:190
    2014-06-13 17:27:06,513 DEBUG    Main         Item OG.Schlafen.Temp = 22.72 via KNX 1.1.102 2/2/1 -- item.py:__update:363
    2014-06-13 17:27:11,385 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 457ff000 -- __init__.py:parse_telegram:181
    2014-06-13 17:27:11,440 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 459ab800 -- __init__.py:parse_telegram:181
    2014-06-13 17:27:11,495 DEBUG    Main         knx: 1.1.254 set 6/7/0 to 45b55800 -- __init__.py:parse_telegram:181
    2014-06-13 17:27:14,445 DEBUG    Main         knx: 1.1.107 set 4/2/2 to 2c01 -- __init__.py:parse_telegram:181
    2014-06-13 17:27:14,529 DEBUG    Main         knx: 1.1.254 set 1/7/2 to 01 -- __init__.py:parse_telegram:181
    2014-06-13 17:27:17,196 DEBUG    Main         knx: 1.1.106 set 2/2/3 to 24.76 -- __init__.py:parse_telegram:190
    2014-06-13 17:27:17,196 DEBUG    Main         Item OG.Kinderzimmer.Temp = 24.76 via KNX 1.1.106 2/2/3 -- item.py:__update:363
    2014-06-13 17:27:17,431 DEBUG    Kostala      set analog_4 = 0.00 -- __init__.py:_refresh:61
    2014-06-13 17:27:17,431 DEBUG    Kostala      set analog_1 = 6.06 -- __init__.py:_refresh:61
    2014-06-13 17:27:17,431 DEBUG    Kostala      set analog_3 = 0.00 -- __init__.py:_refresh:61
    2014-06-13 17:27:17,431 DEBUG    Kostala      set analog_2 = 0.01 -- __init__.py:_refresh:61
    2014-06-13 17:27:17,432 DEBUG    Kostala      Item PV.analog1 = 6.06 via Kostala None None -- item.py:__update:363
    2014-06-13 17:27:17,432 DEBUG    Kostala      Item PV.analog2 = 0.01 via Kostala None None -- item.py:__update:363
    2014-06-13 17:27:17,432 DEBUG    Kostala      Item PV.analog4 = 0.0 via Kostala None None -- item.py:__update:363
    2014-06-13 17:27:17,433 DEBUG    Kostala      cycle takes 0.03521013259887695 seconds -- __init__.py:_refresh:72
    2014-06-13 17:27:17,901 DEBUG    Scheduler    Kostala next time: 2014-06-13 17:28:17+02:00 -- scheduler.py:_next_time:289
    2014-06-13 17:27:46,670 DEBUG    Scheduler    Sml next time: 2014-06-13 17:30:46+02:00 -- scheduler.py:_next_time:289
    xxxxx
    2014-06-13 23:59:33,494 ERROR    Scheduler    Needing more worker threads than the specified maximum of 20! -- scheduler.py:run:104
    2014-06-13 23:59:33,495 INFO     Scheduler    Threads: ow: 1, Sml: 130, Main: 1, Scheduler: 1 -- scheduler.py:run:108
    2014-06-13 23:59:34,412 INFO     Scheduler    Adding worker thread. Total: 131 -- scheduler.py:_add_worker:301
    2014-06-13 23:59:34,413 INFO     Scheduler    Threads: ow: 1, Thread-131: 1, Sml: 130, Main: 1, Scheduler: 1 -- scheduler.py:_add_worker:305
    2014-06-13 23:59:39,899 DEBUG    Kostal       set status = Aus -- __init__.py:_refresh:94
    2014-06-13 23:59:39,900 DEBUG    Kostal       set power_day = 38.82 -- __init__.py:_refresh:94
    Danke für eure Rückmeldung

    #2
    Hallo,

    da scheint es einen Bug/Deadlock im SML Plugin zu geben.

    Mach doch ein github issue auf, dann nimmt sich der Plugin-Author dessen bestimmt an.

    Bis bald

    Marcus

    Kommentar


      #3
      erledigt, danke für die Rückmeldung

      https://github.com/mknx/smarthome/issues/122

      Kommentar


        #4
        Hallo,
        ich habe den Yport von Volkszähler.. und wollte das SML Plugin endlich mal angehen.
        nun bekomme ich die Daten direkt aus dem Netzwerk, genauso wie dieses Smart Metering Gateway. Das gleiche macht auch dieser Yport im Prizip..
        Was muss ich denn nun in der plugin.conf einstellen um das direkt zu testen ?

        plugin.conf
        Code:
        [sml]
          class_name = Sml
          class_path = plugins.sml
          #serialport = /dev/ttyUSB0
          host = 192.168.178.30
          port = 7970
          device = smart-meter-gateway-com-1
        ergibt nur ein
        Code:
        smarthome@ibbgateway:/usr/local/smarthome/plugins$ python /usr/local/smarthome/plugins/sml/__init__.py
        Traceback (most recent call last):
          File "/usr/local/smarthome/plugins/sml/__init__.py", line 26, in <module>
            import serial
        ImportError: No module named serial
        www.knx-Hausblog.de

        Kommentar


          #5
          ok.. Line 26 mal auskommentiert..
          Code:
          2015-12-07 22:19:09,758 DEBUG    Sml          Data: ec cc cb cc fc cc c0 cc c8 bb cb 2c 45 c8 ad fb bb bd eb c1 bc cb bb bc ff fc ff cf ff ac fc fa cf cc fc cf fc fa cf ff f0 1f 26 7f 8c fb cf df fc fc cf cc da fb ff ff fc ff f0 f0 f0 f0 f0 ff ff df b0 f0 fb 0f ff fb df df cf df dc ff df cc fd fd cf d0 f0 fc 02 03 f6 8c 9f cf ce bd ef fc ff ce cc fd cf bc fd ff ff cf ff fc ff cf fc cf fc cf fc ff ff cf ff ff ff fc ff fc fc ef f2 45 f8 fa fd ff cf ff df eb de fd cf ff fd ef ec fe fc ff fe fe ff fc fc df ff ff 0f -- __init__.py:_parse:204
          2015-12-07 22:19:09,781 DEBUG    Sml          cycle takes 0.36760520935058594 seconds -- __init__.py:_refresh:194
          Das sind schon mal irgendwelche Daten..... mit denen ich nix anfangen kann..Könnt ihr mir weiter helfen ?
          www.knx-Hausblog.de

          Kommentar

          Lädt...
          X