Closed tkraatz closed 10 years ago
Wenn ich das richtig verstehe, muessen die Gateways vorkonfiguriert werden. D.h. aber dann nicht, dass die Datenausgabe sich von der im Beispiel unterscheidet, oder?
Ich fage das nur, da davon die Implementierung abhaengt. Man koennte bspw. eine Plugin-Einstellung verwenden um zu definieren ob die Daten raw sind, oder nochmals weiterverarbeitet werden muessen.
Folgendes kann ich mir vorstellen, was als type
zur Konfiguration angegeben werden kann:
raw
- waere der Standard: die SML-Daten kommen binar anhex
- koennte verwendet werden, wenn die Daten als HEX-Strings kommen (evtl. brauchbar fuer dieses Issue)sm-gateway-com1
- speziell fuer das angegebene Geraet und FormatDie Implementierung wuerde dann so aussehen, dass bei raw
garnichts gemacht wird, bei hex
alle Zeichenfolgen die aus [a-f0-9]
bestehen, herausgeholt werden und von HEX nach Binaer umgewandelt werden, oder bei sm-gateway-com1
genau das angegebene Format auseinander gepfluegt wird und das, was in SML(...)
steht in Binaer umgewandelt wird.
Mein Favourit waere einfach raw
und hex
zu unterstuetzen, da es evtl. flexibler ist und fuer andere Geraete vielleicht auch funktionieren koennte. Allerdings besteht da die Gefahr, dass auch andere Daten die im Datenstrom zu finden sind (wie z.B. boot=... mac=...
) ebenfalls als SML-Daten interpretiert werden wuerde. Vermutlich nicht schlimm, da es keine richtigen SML-Daten sind, aber evtl. etwas unschoen implementiert.
Meinungen? :)
Ich habe gerade eine Anfrage an das Team von Co.Met gestellt, ob die Gateways von denen alle im selben Ausgabeformat senden. Sobald ich die Antwort habe werde ich es euch wissen lassen.
Als Vorgehensweise würde ich den type Ansatz zur Konfiguration bevorzugen. Im Normalfall wissen die Anwender welcher Dateityp benutzt wird (mal abgesehen von mir), außerdem kann man die Readme Datei erweitern wenn weitere Gateways und EHZ hinzukommen.
Ich kann leider nicht beurteilen, ob eine spezielle funktion für das Com1 Gateway, und weitere Geräte, den code zu sehr aufbläht bzw. ihn zu kompliziert macht. Jedoch könnte man so nach und nach mehr Typen direkt in den Code übernehmen, was es komfortabel zum einrichten für den Endanwender macht. Wenn das alles zu kompliziert wird, sollte das Plugin so universelll wie möglich einsetzbar sein. Wenn die nicht SML-Daten ignoriert werden sollte das keinen stören.
Hoffe das ist soweit verständlich :)
Man kann natuerlich auch eine spezielle Implementierung fuer ein Gateway implementieren. Die Frage waere dann, gibt es viele dieser Gateways und unterscheiden die sich und wie kompliziert sind die Daten auszuwerten.
Daher der einfache Ansatz einfach eine "raw" und "hex" Implementierung anzubieten. Evtl. kann man dann, damit das die Benutzer einfacher haben bzw. verstehen, einen Alias verwenden der dann nur auf eine dieser beiden Implementierungen verweist. Z.B. fuer die Einstellung "co-met-com1-gateway", was dann in diesem Fall der Alias waere, wuerde der Verweis auf "hex" im Plugin kodiert. Evtl. gibt es dann auch andere Gateways, die ebenfalls auf "hex" verweisen koennten und dann funktionieren. Bei dieser Implementierung muesste man dann allerdings auch pruefen ob das soweit mit dem Ignorieren von nicht-SML-Daten funktioniert oder ob das zu Problemen kommt.
Ich schau' mal, was ich da machen kann. Natuerlich wuerde mich die Antwort trotzdem interessieren. Falls es da Neuigkeiten gibt, einfach Bescheid sagen.
Hallo, hier die Antwort von Co.Met
Sehr geehrter Herr Kraatz,
die Daten werden bei Zählern mit SML-Protokoll immer im gleichen HEX-Format ausgegeben. Informationen zum Aufbau finden Sie unter "SML Lastenheft".
From socket(508)--> mac=00:08:DC:17:5E:6A
boot=1
fw=02.00
time=1259861433
zpb=DE0000000000000000000000000000SML
From socket(508)--> SML(1B1B1B1B0101010176070083000000EC620062007263010176010107008300A8004F0B06454D4801001D4776AE01016367B60076070083000000ED620062007263070177010B06454D4801001D4776AE017262016500A8260F7B77078181C78203FF0101010104454D480177070100000009FF010101010B06454D4801001D4776AE0177070100010800FF63010001621E52FF56000090C8450177070100020800FF63010001621E52FF56000000007E0177070100010801FF0101621E52FF56000090C8450177070100020801FF0101621E52FF56000000007E0177070100010802FF0101621E52FF56000000000001770701000F0700FF0101621B52FF55000000000177078181C78205FF010101018302B96B647BEEA6EE10453758E3888420655B8540C48BB1C4968F6333DB2B043670BDFFFEF5D4CB35140C579F127D7F22230177070100603202040101010163008D017707010060320206010101010101010163AA120076070083000000EF6200620072630201710163A558000000001B1B1B1B1A03735C)
Es werden also nur Daten von SML-Zählern übertragen.
Mit freundlichen Grüßen
Tim Utfeld
Vielen Dank fuer die Antwort! Jetzt habe ich auch nochmal eine Beispiel-Ausgabe, die komplett ist. Daimt kann ich auch meine Implementierung testen. :)
Ich wuerde gerne die Implementierung basieren auf dem Pull-Request #118 durchfuehren. Daher kann's sein, dass das evtl. noch etwas dauert, bis die Erweiterung fertig ist.
Falls du vorher schonmal testen moechtest, sag' Bescheid, dann kann ich die die angepasste __init__.py
mal zukommen lassen...
Eine erste Implementierung habe ich in einem Branch eingecheckt. Wer moechte, kann sich die README.md
sowie die __init__.py
aus dem plugins/sml
Verzeichnis herauskopieren und testen ob's soweit funktioniert.
Man muesste dann nur noch in der Konfiguration das Device Konfigurieren:
[sml]
class_name = Sml
class_path = plugins.sml
host = ...
port = ...
device = smart-meter-gateway-com-1
Leider habe ich das Geraet nicht zur Verfuegung um das direkt testen zu koennen, aber mit den bereits in diversen Posts enthaltenen Beispiel-Daten konnte ich die Implementierung erfolgreich testen.
Waere schoen, wenn das jemand mit dem Geraet mal testen koennte und mir Bescheid sagen, falls es noch Probleme gibt.
Ich werde mir die Daten nachher ziehen und direkt testen. Rückinfo bekommst du dann direkt
Vielen Dank für die schnelle Anpassung :+1:
Ich habe es sowohl mit dem Device, als auch mit hex probiert. Leider bekommt er keine Verbindung. Fehlermeldung siehe unten. Mit Putty als Raw auf die IP/Port klappt.
2014-06-11 09:59:32,862 ERROR Connections Method Connections exception: 'Sml' object has no attribute '_connection_errorlog' -- scheduler.py:_task:348 Traceback (most recent call last): File "/usr/local/smarthome/plugins/sml/init.py", line 115, in connect self._sock.connect((self.host, self.port)) socket.error: [Errno 115] Die Operation ist jetzt in Bearbeitung
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/smarthome/lib/scheduler.py", line 344, in _task obj() File "/usr/local/smarthome/lib/connection.py", line 84, in check obj.connect() File "/usr/local/smarthome/plugins/sml/init.py", line 120, in connect self._connection_attempts = self._connection_errorlog
Und noch eine FEhlermeldung wenn ich den Port über die Plugin.conf einstelle und nicht im skript selber
Sml: Could not connect to tcp://192.168.0.127:5000: an integer is required -- init.py:connect:119 2014-06-11 10:05:17,235 ERROR Connections Method Connections exception: 'Sml' object has no attribute '_connection_errorlog' -- scheduler.py:_task:348 Traceback (most recent call last): File "/usr/local/smarthome/plugins/sml/init.py", line 115, in connect self._sock.connect((self.host, self.port)) TypeError: an integer is required
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/smarthome/lib/scheduler.py", line 344, in _task obj() File "/usr/local/smarthome/lib/connection.py", line 84, in check obj.connect() File "/usr/local/smarthome/plugins/sml/init.py", line 120, in connect self._connection_attempts = self._connection_errorlog AttributeError: 'Sml' object has no attribute '_connection_errorlog'
Danke fuer's Testen.
Die bieden Sachen sind korrigiert: a) beim connect()
muss der Port als Integer uebergeben werden und b) das Connection-Tracking hat noch nie richtig funktioniert - war auch nur kopiert - und habe ich nun entfernt. Diese Probleme sind zumindest mal behoben.
Allerdings scheint es beim Verbinden ein Problem zu geben: socket.error: [Errno 115] Die Operation ist jetzt in Bearbeitung. Liegt daran, dass ich die Implementierung auf non-blocking umgestellt habe, damit ich alle Daten auslesen kann ohne blockiert zu werden. Das non-blocking gilt allerdings auch fuer den connect()
, was durch diesen Fehler angezeigt werden soll.
Dafuer habe ich auch einen Patch eingecheckt, bei dem der connect()
nun mit einem Timeout gemacht wird und erst danach der Socket in den non-blocking Modus gesetzt wird.
Kannst du das nochmal testen, bitte?
Perfekt!
Ich poste mal das Log... es wird ein wenig unübersichtlich
Code 2014-06-11 14:02:02,440 DEBUG Sml 00d1b100126070000de0000000000000000000000000000001b1b1b1b01010101760505a73cbd62006200726301017601010501e269930b090149534b0003bf28d1010163a9cc00760505a73cbe620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca27d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7b6d0177070100020801ff0101621e52ff5900000000057d7b6d0177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe6240177070100240700ff0101621b520055fffff7230177070100380700ff0101621b520055fffff77601770701004c0700ff0101621b520055fffff7880177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba0101016355e400760505a73cbc6200620072630201710163d02c001b1b1b1b1a006a2a00d1b100126070000de0000000000000000000000000000001b1b1b1b01010101760505a73cbd62006200726301017601010501e269930b090149534b0003bf28d1010163a9cc00760505a73cbe620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca27d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7b6d0177070100020801ff0101621e52ff5900000000057d7b6d0177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe6240177070100240700ff0101621b520055fffff7230177070100380700ff0101621b520055fffff77601770701004c0700ff0101621b520055fffff7880177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba0101016312c400760505a73cbf620062007263020171016363d2001b1b1b1b1a00a97a00d1b100126070000de0000000000000000000000000000001b1b1b1b01010101760505a73cc062006200726301017601010501e269940b090149534b0003bf28d1010163e64d00760505a73cc1620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca37d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7b800177070100020801ff0101621e52ff5900000000057d7b800177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5da0177070100240700ff0101621b520055fffff7110177070100380700ff0101621b520055fffff76501770701004c0700ff0101621b520055fffff7630177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba01010163181700760505a73cc26200620072630201710163c73b001b1b1b1b1a006b6a00d1b100126070000de0000000000000000000000000000001b1b1b1b01010101760505a73cc362006200726301017601010501e269950b090149534b0003bf28d1010163195200760505a73cc4620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca47d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7b930177070100020801ff0101621e52ff5900000000057d7b930177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5e90177070100240700ff0101621b520055fffff7140177070100380700ff0101621b520055fffff76601770701004c0700ff0101621b520055fffff76f0177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba0101016306c700760505a73cc56200620072630201710163219b001b1b1b1b1a004c3a00d1b100126070001de0000000000000000000000000000001b1b1b1b01010101760505a73cc662006200726301017601010501e269960b090149534b0003bf28d1010163187200760505a73cc7620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca57d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7ba60177070100020801ff0101621e52ff5900000000057d7ba60177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5b60177070100240700ff0101621b520055fffff6fa0177070100380700ff0101621b520055fffff73501770701004c0700ff0101621b520055fffff7860177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba01010163bdaf00760505a73cc862006200726302017101634f2c001b1b1b1b1a00d46a00d1b100126070001de0000000000000000000000000000001b1b1b1b01010101760505a73cc962006200726301017601010501e269970b090149534b0003bf28d1010163a2e100760505a73cca620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca67d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7bb90177070100020801ff0101621e52ff5900000000057d7bb90177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5d10177070100240700ff0101621b520055fffff70b0177070100380700ff0101621b520055fffff74f01770701004c0700ff0101621b520055fffff7750177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba01010163d2ea00760505a73ccb6200620072630201710163fcd2001b1b1b1b1a00175a00d1b100126070001de0000000000000000000000000000001b1b1b1b01010101760505a73ccc62006200726301017601010501e269980b090149534b0003bf28d101016379dd00760505a73ccd620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca77d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7bcc0177070100020801ff0101621e52ff5900000000057d7bcc0177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5ca0177070100240700ff0101621b520055fffff70b0177070100380700ff0101621b520055fffff76001770701004c0700ff0101621b520055fffff75f0177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba01010163d84c00760505a73cce620062007263020171016338d9001b1b1b1b1a00157a00d1b100126070001de0000000000000000000000000000001b1b1b1b01010101760505a73ccf62006200726301017601010501e269990b090149534b0003bf28d101016386c200760505a73cd0620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca87d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7bdf0177070100020801ff0101621e52ff5900000000057d7bdf0177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5d10177070100240700ff0101621b520055fffff70c0177070100380700ff0101621b520055fffff76201770701004c0700ff0101621b520055fffff75f0177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba010101634d8500760505a73cd1620062007263020171016331b4001b1b1b1b1a00e04a00d1b100126070001de0000000000000000000000000000001b1b1b1b01010101760505a73cd262006200726301017601010501e2699a0b090149534b0003bf28d10101631cf200760505a73cd3620062007263070177010b090149534b0003bf28d1070100620affff7262016502787ca97d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7bf20177070100020801ff0101621e52ff5900000000057d7bf20177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5c10177070100240700ff0101621b520055fffff70c0177070100380700ff0101621b520055fffff75c01770701004c0700ff0101621b520055fffff75e0177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba0101016390f200760505a73cd46200620072630201710163f5bf001b1b1b1b1a0094fa00d1b100126070001de0000000000000000000000000000001b1b1b1b01010101760505a73cd562006200726301017601010501e2699b0b090149534b0003bf28d10101632f6e00760505a73cd6620062007263070177010b090149534b0003bf28d1070100620affff7262016502787caa7d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7c050177070100020801ff0101621e52ff5900000000057d7c050177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5c90177070100240700ff0101621b520055fffff7070177070100380700ff0101621b520055fffff74e01770701004c0700ff0101621b520055fffff7730177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba01010163378b00760505a73cd762006200726302017101634641001b1b1b1b1a007c5a00d1b100126070001de0000000000000000000000000000001b1b1b1b01010101760505a73cd862006200726301017601010501e2699c0b090149534b0003bf28d10101631eb200760505a73cd9620062007263070177010b090149534b0003bf28d1070100620affff7262016502787cab7d77078181c78203ff010101010449534b0177070100000009ff010101010b090149534b0003bf28d10177070100010800ff65000101a201621e52ff59000000000231ddd10177070100010801ff0101621e52ff59000000000231ddd10177070100010802ff0101621e52ff5900000000000000000177070100020800ff65000101a201621e52ff5900000000057d7c180177070100020801ff0101621e52ff5900000000057d7c180177070100020802ff0101621e52ff5900000000000000000177070100100700ff0101621b520055ffffe5a30177070100240700ff0101621b520055fffff6fa0177070100380700ff0101621b520055fffff74e01770701004c0700ff0101621b520055fffff75a0177078181c78205ff0101010183027d1a6997e2eb8f3fdf96a33eee907e314d6d27140aaffdeecbee0f14937a7cfd2054fd71e63e4a38ee3d87289a5b17ba01010163b22300760505a73cda620062007263020171016328f6001b1b1b1b1a00304 -- init.py:_prepareHex:287 2014-06-11 14:02:02,451 DEBUG Sml Data: 00 d1 b1 00 12 60 70 00 0d e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 b1 b1 b1 b0 10 10 10 17 60 50 5a 73 cb d6 20 06 20 07 26 30 10 17 60 10 10 50 1e 26 99 30 b0 90 14 95 34 b0 00 3b f2 8d 10 10 16 3a 9c c0 07 60 50 5a 73 cb e6 20 06 20 07 26 30 70 17 70 10 b0 90 14 95 34 b0 00 3b f2 8d 10 70 10 06 20 af ff f7 26 20 16 50 27 87 ca 27 d7 70 78 18 1c 78 20 3f f0 10 10 10 10 44 95 34 b0 17 70 70 10 00 00 00 9f f0 10 10 10 10 b0 90 14 95 34 b0 00 3b f2 8d 10 17 70 70 10 00 10 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 00 20 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 57 d7 b6 d0 17 70 70 10 00 20 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 57 d7 b6 d0 17 70 70 10 00 20 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 01 00 70 0f f0 10 16 21 b5 20 05 5f ff fe 62 40 17 70 70 10 02 40 70 0f f0 10 16 21 b5 20 05 5f ff ff 72 30 17 70 70 10 03 80 70 0f f0 10 16 21 b5 20 05 5f ff ff 77 60 17 70 70 10 04 c0 70 0f f0 10 16 21 b5 20 05 5f ff ff 78 80 17 70 78 18 1c 78 20 5f f0 10 10 10 18 30 27 d1 a6 99 7e 2e b8 f3 fd f9 6a 33 ee e9 07 e3 14 d6 d2 71 40 aa ff de ec be e0 f1 49 37 a7 cf d2 05 4f d7 1e 63 e4 a3 8e e3 d8 72 89 a5 b1 7b a0 10 10 16 35 5e 40 07 60 50 5a 73 cb c6 20 06 20 07 26 30 20 17 10 16 3d 02 c0 01 b1 b1 b1 b1 a0 06 a2 a0 0d 1b 10 01 26 07 00 00 de 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b 1b 1b 1b 01 01 01 01 76 05 05 a7 3c bd 62 00 62 00 72 63 01 01 76 01 01 05 01 e2 69 93 0b 09 01 49 53 4b 00 03 bf 28 d1 01 01 63 a9 cc 00 76 05 05 a7 3c be 62 00 62 00 72 63 07 01 77 01 0b 09 01 49 53 4b 00 03 bf 28 d1 07 01 00 62 0a ff ff 72 62 01 65 02 78 7c a2 7d 77 07 81 81 c7 82 03 ff 01 01 01 01 04 49 53 4b 01 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 49 53 4b 00 03 bf 28 d1 01 77 07 01 00 01 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 02 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b 6d 01 77 07 01 00 02 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b 6d 01 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 55 ff ff e6 24 01 77 07 01 00 24 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 23 01 77 07 01 00 38 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 76 01 77 07 01 00 4c 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 88 01 77 07 81 81 c7 82 05 ff 01 01 01 01 83 02 7d 1a 69 97 e2 eb 8f 3f df 96 a3 3e ee 90 7e 31 4d 6d 27 14 0a af fd ee cb ee 0f 14 93 7a 7c fd 20 54 fd 71 e6 3e 4a 38 ee 3d 87 28 9a 5b 17 ba 01 01 01 63 12 c4 00 76 05 05 a7 3c bf 62 00 62 00 72 63 02 01 71 01 63 63 d2 00 1b 1b 1b 1b 1a 00 a9 7a 00 d1 b1 00 12 60 70 00 0d e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 b1 b1 b1 b0 10 10 10 17 60 50 5a 73 cc 06 20 06 20 07 26 30 10 17 60 10 10 50 1e 26 99 40 b0 90 14 95 34 b0 00 3b f2 8d 10 10 16 3e 64 d0 07 60 50 5a 73 cc 16 20 06 20 07 26 30 70 17 70 10 b0 90 14 95 34 b0 00 3b f2 8d 10 70 10 06 20 af ff f7 26 20 16 50 27 87 ca 37 d7 70 78 18 1c 78 20 3f f0 10 10 10 10 44 95 34 b0 17 70 70 10 00 00 00 9f f0 10 10 10 10 b0 90 14 95 34 b0 00 3b f2 8d 10 17 70 70 10 00 10 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 00 20 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 57 d7 b8 00 17 70 70 10 00 20 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 57 d7 b8 00 17 70 70 10 00 20 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 01 00 70 0f f0 10 16 21 b5 20 05 5f ff fe 5d a0 17 70 70 10 02 40 70 0f f0 10 16 21 b5 20 05 5f ff ff 71 10 17 70 70 10 03 80 70 0f f0 10 16 21 b5 20 05 5f ff ff 76 50 17 70 70 10 04 c0 70 0f f0 10 16 21 b5 20 05 5f ff ff 76 30 17 70 78 18 1c 78 20 5f f0 10 10 10 18 30 27 d1 a6 99 7e 2e b8 f3 fd f9 6a 33 ee e9 07 e3 14 d6 d2 71 40 aa ff de ec be e0 f1 49 37 a7 cf d2 05 4f d7 1e 63 e4 a3 8e e3 d8 72 89 a5 b1 7b a0 10 10 16 31 81 70 07 60 50 5a 73 cc 26 20 06 20 07 26 30 20 17 10 16 3c 73 b0 01 b1 b1 b1 b1 a0 06 b6 a0 0d 1b 10 01 26 07 00 00 de 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b 1b 1b 1b 01 01 01 01 76 05 05 a7 3c c3 62 00 62 00 72 63 01 01 76 01 01 05 01 e2 69 95 0b 09 01 49 53 4b 00 03 bf 28 d1 01 01 63 19 52 00 76 05 05 a7 3c c4 62 00 62 00 72 63 07 01 77 01 0b 09 01 49 53 4b 00 03 bf 28 d1 07 01 00 62 0a ff ff 72 62 01 65 02 78 7c a4 7d 77 07 81 81 c7 82 03 ff 01 01 01 01 04 49 53 4b 01 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 49 53 4b 00 03 bf 28 d1 01 77 07 01 00 01 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 02 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b 93 01 77 07 01 00 02 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b 93 01 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 55 ff ff e5 e9 01 77 07 01 00 24 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 14 01 77 07 01 00 38 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 66 01 77 07 01 00 4c 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 6f 01 77 07 81 81 c7 82 05 ff 01 01 01 01 83 02 7d 1a 69 97 e2 eb 8f 3f df 96 a3 3e ee 90 7e 31 4d 6d 27 14 0a af fd ee cb ee 0f 14 93 7a 7c fd 20 54 fd 71 e6 3e 4a 38 ee 3d 87 28 9a 5b 17 ba 01 01 01 63 06 c7 00 76 05 05 a7 3c c5 62 00 62 00 72 63 02 01 71 01 63 21 9b 00 1b 1b 1b 1b 1a 00 4c 3a 00 d1 b1 00 12 60 70 00 1d e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 b1 b1 b1 b0 10 10 10 17 60 50 5a 73 cc 66 20 06 20 07 26 30 10 17 60 10 10 50 1e 26 99 60 b0 90 14 95 34 b0 00 3b f2 8d 10 10 16 31 87 20 07 60 50 5a 73 cc 76 20 06 20 07 26 30 70 17 70 10 b0 90 14 95 34 b0 00 3b f2 8d 10 70 10 06 20 af ff f7 26 20 16 50 27 87 ca 57 d7 70 78 18 1c 78 20 3f f0 10 10 10 10 44 95 34 b0 17 70 70 10 00 00 00 9f f0 10 10 10 10 b0 90 14 95 34 b0 00 3b f2 8d 10 17 70 70 10 00 10 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 00 20 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 57 d7 ba 60 17 70 70 10 00 20 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 57 d7 ba 60 17 70 70 10 00 20 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 01 00 70 0f f0 10 16 21 b5 20 05 5f ff fe 5b 60 17 70 70 10 02 40 70 0f f0 10 16 21 b5 20 05 5f ff ff 6f a0 17 70 70 10 03 80 70 0f f0 10 16 21 b5 20 05 5f ff ff 73 50 17 70 70 10 04 c0 70 0f f0 10 16 21 b5 20 05 5f ff ff 78 60 17 70 78 18 1c 78 20 5f f0 10 10 10 18 30 27 d1 a6 99 7e 2e b8 f3 fd f9 6a 33 ee e9 07 e3 14 d6 d2 71 40 aa ff de ec be e0 f1 49 37 a7 cf d2 05 4f d7 1e 63 e4 a3 8e e3 d8 72 89 a5 b1 7b a0 10 10 16 3b da f0 07 60 50 5a 73 cc 86 20 06 20 07 26 30 20 17 10 16 34 f2 c0 01 b1 b1 b1 b1 a0 0d 46 a0 0d 1b 10 01 26 07 00 01 de 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b 1b 1b 1b 01 01 01 01 76 05 05 a7 3c c9 62 00 62 00 72 63 01 01 76 01 01 05 01 e2 69 97 0b 09 01 49 53 4b 00 03 bf 28 d1 01 01 63 a2 e1 00 76 05 05 a7 3c ca 62 00 62 00 72 63 07 01 77 01 0b 09 01 49 53 4b 00 03 bf 28 d1 07 01 00 62 0a ff ff 72 62 01 65 02 78 7c a6 7d 77 07 81 81 c7 82 03 ff 01 01 01 01 04 49 53 4b 01 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 49 53 4b 00 03 bf 28 d1 01 77 07 01 00 01 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 02 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b b9 01 77 07 01 00 02 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b b9 01 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 55 ff ff e5 d1 01 77 07 01 00 24 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 0b 01 77 07 01 00 38 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 4f 01 77 07 01 00 4c 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 75 01 77 07 81 81 c7 82 05 ff 01 01 01 01 83 02 7d 1a 69 97 e2 eb 8f 3f df 96 a3 3e ee 90 7e 31 4d 6d 27 14 0a af fd ee cb ee 0f 14 93 7a 7c fd 20 54 fd 71 e6 3e 4a 38 ee 3d 87 28 9a 5b 17 ba 01 01 01 63 d2 ea 00 76 05 05 a7 3c cb 62 00 62 00 72 63 02 01 71 01 63 fc d2 00 1b 1b 1b 1b 1a 00 17 5a 00 d1 b1 00 12 60 70 00 1d e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 b1 b1 b1 b0 10 10 10 17 60 50 5a 73 cc c6 20 06 20 07 26 30 10 17 60 10 10 50 1e 26 99 80 b0 90 14 95 34 b0 00 3b f2 8d 10 10 16 37 9d d0 07 60 50 5a 73 cc d6 20 06 20 07 26 30 70 17 70 10 b0 90 14 95 34 b0 00 3b f2 8d 10 70 10 06 20 af ff f7 26 20 16 50 27 87 ca 77 d7 70 78 18 1c 78 20 3f f0 10 10 10 10 44 95 34 b0 17 70 70 10 00 00 00 9f f0 10 10 10 10 b0 90 14 95 34 b0 00 3b f2 8d 10 17 70 70 10 00 10 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 00 20 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 57 d7 bc c0 17 70 70 10 00 20 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 57 d7 bc c0 17 70 70 10 00 20 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 01 00 70 0f f0 10 16 21 b5 20 05 5f ff fe 5c a0 17 70 70 10 02 40 70 0f f0 10 16 21 b5 20 05 5f ff ff 70 b0 17 70 70 10 03 80 70 0f f0 10 16 21 b5 20 05 5f ff ff 76 00 17 70 70 10 04 c0 70 0f f0 10 16 21 b5 20 05 5f ff ff 75 f0 17 70 78 18 1c 78 20 5f f0 10 10 10 18 30 27 d1 a6 99 7e 2e b8 f3 fd f9 6a 33 ee e9 07 e3 14 d6 d2 71 40 aa ff de ec be e0 f1 49 37 a7 cf d2 05 4f d7 1e 63 e4 a3 8e e3 d8 72 89 a5 b1 7b a0 10 10 16 3d 84 c0 07 60 50 5a 73 cc e6 20 06 20 07 26 30 20 17 10 16 33 8d 90 01 b1 b1 b1 b1 a0 01 57 a0 0d 1b 10 01 26 07 00 01 de 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b 1b 1b 1b 01 01 01 01 76 05 05 a7 3c cf 62 00 62 00 72 63 01 01 76 01 01 05 01 e2 69 99 0b 09 01 49 53 4b 00 03 bf 28 d1 01 01 63 86 c2 00 76 05 05 a7 3c d0 62 00 62 00 72 63 07 01 77 01 0b 09 01 49 53 4b 00 03 bf 28 d1 07 01 00 62 0a ff ff 72 62 01 65 02 78 7c a8 7d 77 07 81 81 c7 82 03 ff 01 01 01 01 04 49 53 4b 01 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 49 53 4b 00 03 bf 28 d1 01 77 07 01 00 01 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 02 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b df 01 77 07 01 00 02 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 05 7d 7b df 01 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 55 ff ff e5 d1 01 77 07 01 00 24 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 0c 01 77 07 01 00 38 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 62 01 77 07 01 00 4c 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 5f 01 77 07 81 81 c7 82 05 ff 01 01 01 01 83 02 7d 1a 69 97 e2 eb 8f 3f df 96 a3 3e ee 90 7e 31 4d 6d 27 14 0a af fd ee cb ee 0f 14 93 7a 7c fd 20 54 fd 71 e6 3e 4a 38 ee 3d 87 28 9a 5b 17 ba 01 01 01 63 4d 85 00 76 05 05 a7 3c d1 62 00 62 00 72 63 02 01 71 01 63 31 b4 00 1b 1b 1b 1b 1a 00 e0 4a 00 d1 b1 00 12 60 70 00 1d e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 b1 b1 b1 b0 10 10 10 17 60 50 5a 73 cd 26 20 06 20 07 26 30 10 17 60 10 10 50 1e 26 99 a0 b0 90 14 95 34 b0 00 3b f2 8d 10 10 16 31 cf 20 07 60 50 5a 73 cd 36 20 06 20 07 26 30 70 17 70 10 b0 90 14 95 34 b0 00 3b f2 8d 10 70 10 06 20 af ff f7 26 20 16 50 27 87 ca 97 d7 70 78 18 1c 78 20 3f f0 10 10 10 10 44 95 34 b0 17 70 70 10 00 00 00 9f f0 10 10 10 10 b0 90 14 95 34 b0 00 3b f2 8d 10 17 70 70 10 00 10 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 00 20 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 57 d7 bf 20 17 70 70 10 00 20 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 57 d7 bf 20 17 70 70 10 00 20 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 01 00 70 0f f0 10 16 21 b5 20 05 5f ff fe 5c 10 17 70 70 10 02 40 70 0f f0 10 16 21 b5 20 05 5f ff ff 70 c0 17 70 70 10 03 80 70 0f f0 10 16 21 b5 20 05 5f ff ff 75 c0 17 70 70 10 04 c0 70 0f f0 10 16 21 b5 20 05 5f ff ff 75 e0 17 70 78 18 1c 78 20 5f f0 10 10 10 18 30 27 d1 a6 99 7e 2e b8 f3 fd f9 6a 33 ee e9 07 e3 14 d6 d2 71 40 aa ff de ec be e0 f1 49 37 a7 cf d2 05 4f d7 1e 63 e4 a3 8e e3 d8 72 89 a5 b1 7b a0 10 10 16 39 0f 20 07 60 50 5a 73 cd 46 20 06 20 07 26 30 20 17 10 16 3f 5b f0 01 b1 b1 b1 b1 a0 09 4f a0 0d 1b 10 01 26 07 00 01 de 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b 1b 1b 1b 01 01 01 01 76 05 05 a7 3c d5 62 00 62 00 72 63 01 01 76 01 01 05 01 e2 69 9b 0b 09 01 49 53 4b 00 03 bf 28 d1 01 01 63 2f 6e 00 76 05 05 a7 3c d6 62 00 62 00 72 63 07 01 77 01 0b 09 01 49 53 4b 00 03 bf 28 d1 07 01 00 62 0a ff ff 72 62 01 65 02 78 7c aa 7d 77 07 81 81 c7 82 03 ff 01 01 01 01 04 49 53 4b 01 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 49 53 4b 00 03 bf 28 d1 01 77 07 01 00 01 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 02 31 dd d1 01 77 07 01 00 01 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 02 08 00 ff 65 00 01 01 a2 01 62 1e 52 ff 59 00 00 00 00 05 7d 7c 05 01 77 07 01 00 02 08 01 ff 01 01 62 1e 52 ff 59 00 00 00 00 05 7d 7c 05 01 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 59 00 00 00 00 00 00 00 00 01 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 55 ff ff e5 c9 01 77 07 01 00 24 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 07 01 77 07 01 00 38 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 4e 01 77 07 01 00 4c 07 00 ff 01 01 62 1b 52 00 55 ff ff f7 73 01 77 07 81 81 c7 82 05 ff 01 01 01 01 83 02 7d 1a 69 97 e2 eb 8f 3f df 96 a3 3e ee 90 7e 31 4d 6d 27 14 0a af fd ee cb ee 0f 14 93 7a 7c fd 20 54 fd 71 e6 3e 4a 38 ee 3d 87 28 9a 5b 17 ba 01 01 01 63 37 8b 00 76 05 05 a7 3c d7 62 00 62 00 72 63 02 01 71 01 63 46 41 00 1b 1b 1b 1b 1a 00 7c 5a 00 d1 b1 00 12 60 70 00 1d e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 b1 b1 b1 b0 10 10 10 17 60 50 5a 73 cd 86 20 06 20 07 26 30 10 17 60 10 10 50 1e 26 99 c0 b0 90 14 95 34 b0 00 3b f2 8d 10 10 16 31 eb 20 07 60 50 5a 73 cd 96 20 06 20 07 26 30 70 17 70 10 b0 90 14 95 34 b0 00 3b f2 8d 10 70 10 06 20 af ff f7 26 20 16 50 27 87 ca b7 d7 70 78 18 1c 78 20 3f f0 10 10 10 10 44 95 34 b0 17 70 70 10 00 00 00 9f f0 10 10 10 10 b0 90 14 95 34 b0 00 3b f2 8d 10 17 70 70 10 00 10 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 23 1d dd 10 17 70 70 10 00 10 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 00 20 80 0f f6 50 00 10 1a 20 16 21 e5 2f f5 90 00 00 00 00 57 d7 c1 80 17 70 70 10 00 20 80 1f f0 10 16 21 e5 2f f5 90 00 00 00 00 57 d7 c1 80 17 70 70 10 00 20 80 2f f0 10 16 21 e5 2f f5 90 00 00 00 00 00 00 00 00 17 70 70 10 01 00 70 0f f0 10 16 21 b5 20 05 5f ff fe 5a 30 17 70 70 10 02 40 70 0f f0 10 16 21 b5 20 05 5f ff ff 6f a0 17 70 70 10 03 80 70 0f f0 10 16 21 b5 20 05 5f ff ff 74 e0 17 70 70 10 04 c0 70 0f f0 10 16 21 b5 20 05 5f ff ff 75 a0 17 70 78 18 1c 78 20 5f f0 10 10 10 18 30 27 d1 a6 99 7e 2e b8 f3 fd f9 6a 33 ee e9 07 e3 14 d6 d2 71 40 aa ff de ec be e0 f1 49 37 a7 cf d2 05 4f d7 1e 63 e4 a3 8e e3 d8 72 89 a5 b1 7b a0 10 10 16 3b 22 30 07 60 50 5a 73 cd a6 20 06 20 07 26 30 20 17 10 16 32 8f 60 01 b1 b1 b1 b1 a0 03 04 -- init.py:_parse:188 2014-06-11 14:02:02,454 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'ISK', 'objName': b'\x81\x81\xc7\x82\x03\xff', 'signature': None, 'valueReal': b'ISK', 'obis': '129-129:199.130.3255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,455 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'\t\x01ISK\x00\x03\xbf(\xd1', 'objName': b'\x01\x00\x00\x00\t\xff', 'signature': None, 'valueReal': b'\t\x01ISK\x00\x03\xbf(\xd1', 'obis': '1-0:0.0.9255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,455 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x00\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,456 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x01\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,456 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x01\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:1.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,457 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109677, 'objName': b'\x01\x00\x02\x08\x00\xff', 'signature': None, 'valueReal': 9210967.700000001, 'obis': '1-0:2.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,457 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109677, 'objName': b'\x01\x00\x02\x08\x01\xff', 'signature': None, 'valueReal': 9210967.700000001, 'obis': '1-0:2.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,458 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x02\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:2.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,458 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -6620, 'objName': b'\x01\x00\x10\x07\x00\xff', 'signature': None, 'valueReal': -6620, 'obis': '1-0:16.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,459 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2269, 'objName': b'\x01\x00$\x07\x00\xff', 'signature': None, 'valueReal': -2269, 'obis': '1-0:36.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,459 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2186, 'objName': b'\x01\x008\x07\x00\xff', 'signature': None, 'valueReal': -2186, 'obis': '1-0:56.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,459 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2168, 'objName': b'\x01\x00L\x07\x00\xff', 'signature': None, 'valueReal': -2168, 'obis': '1-0:76.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,460 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'objName': b'\x81\x81\xc7\x82\x05\xff', 'signature': None, 'valueReal': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'obis': '129-129:199.130.5255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,461 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'ISK', 'objName': b'\x81\x81\xc7\x82\x03\xff', 'signature': None, 'valueReal': b'ISK', 'obis': '129-129:199.130.3255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,461 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'\t\x01ISK\x00\x03\xbf(\xd1', 'objName': b'\x01\x00\x00\x00\t\xff', 'signature': None, 'valueReal': b'\t\x01ISK\x00\x03\xbf(\xd1', 'obis': '1-0:0.0.9255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,461 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x00\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,462 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x01\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,462 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x01\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:1.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,463 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109715, 'objName': b'\x01\x00\x02\x08\x00\xff', 'signature': None, 'valueReal': 9210971.5, 'obis': '1-0:2.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,463 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109715, 'objName': b'\x01\x00\x02\x08\x01\xff', 'signature': None, 'valueReal': 9210971.5, 'obis': '1-0:2.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,464 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x02\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:2.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,464 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -6679, 'objName': b'\x01\x00\x10\x07\x00\xff', 'signature': None, 'valueReal': -6679, 'obis': '1-0:16.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,465 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2284, 'objName': b'\x01\x00$\x07\x00\xff', 'signature': None, 'valueReal': -2284, 'obis': '1-0:36.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,465 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2202, 'objName': b'\x01\x008\x07\x00\xff', 'signature': None, 'valueReal': -2202, 'obis': '1-0:56.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,465 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2193, 'objName': b'\x01\x00L\x07\x00\xff', 'signature': None, 'valueReal': -2193, 'obis': '1-0:76.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,466 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'objName': b'\x81\x81\xc7\x82\x05\xff', 'signature': None, 'valueReal': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'obis': '129-129:199.130.5255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,466 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'ISK', 'objName': b'\x81\x81\xc7\x82\x03\xff', 'signature': None, 'valueReal': b'ISK', 'obis': '129-129:199.130.3255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,467 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'\t\x01ISK\x00\x03\xbf(\xd1', 'objName': b'\x01\x00\x00\x00\t\xff', 'signature': None, 'valueReal': b'\t\x01ISK\x00\x03\xbf(\xd1', 'obis': '1-0:0.0.9255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,468 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x00\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,468 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x01\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,468 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x01\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:1.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,469 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109753, 'objName': b'\x01\x00\x02\x08\x00\xff', 'signature': None, 'valueReal': 9210975.3, 'obis': '1-0:2.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,469 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109753, 'objName': b'\x01\x00\x02\x08\x01\xff', 'signature': None, 'valueReal': 9210975.3, 'obis': '1-0:2.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,470 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x02\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:2.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,470 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -6703, 'objName': b'\x01\x00\x10\x07\x00\xff', 'signature': None, 'valueReal': -6703, 'obis': '1-0:16.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,470 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2293, 'objName': b'\x01\x00$\x07\x00\xff', 'signature': None, 'valueReal': -2293, 'obis': '1-0:36.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,471 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2225, 'objName': b'\x01\x008\x07\x00\xff', 'signature': None, 'valueReal': -2225, 'obis': '1-0:56.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,471 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2187, 'objName': b'\x01\x00L\x07\x00\xff', 'signature': None, 'valueReal': -2187, 'obis': '1-0:76.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,472 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'objName': b'\x81\x81\xc7\x82\x05\xff', 'signature': None, 'valueReal': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'obis': '129-129:199.130.5255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,473 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'ISK', 'objName': b'\x81\x81\xc7\x82\x03\xff', 'signature': None, 'valueReal': b'ISK', 'obis': '129-129:199.130.3255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,473 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'\t\x01ISK\x00\x03\xbf(\xd1', 'objName': b'\x01\x00\x00\x00\t\xff', 'signature': None, 'valueReal': b'\t\x01ISK\x00\x03\xbf(\xd1', 'obis': '1-0:0.0.9255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,473 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x00\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,474 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x01\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,474 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x01\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:1.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,475 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109791, 'objName': b'\x01\x00\x02\x08\x00\xff', 'signature': None, 'valueReal': 9210979.1, 'obis': '1-0:2.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,475 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109791, 'objName': b'\x01\x00\x02\x08\x01\xff', 'signature': None, 'valueReal': 9210979.1, 'obis': '1-0:2.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,475 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x02\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:2.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,476 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -6703, 'objName': b'\x01\x00\x10\x07\x00\xff', 'signature': None, 'valueReal': -6703, 'obis': '1-0:16.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,476 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2292, 'objName': b'\x01\x00$\x07\x00\xff', 'signature': None, 'valueReal': -2292, 'obis': '1-0:36.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,477 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2206, 'objName': b'\x01\x008\x07\x00\xff', 'signature': None, 'valueReal': -2206, 'obis': '1-0:56.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,477 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2209, 'objName': b'\x01\x00L\x07\x00\xff', 'signature': None, 'valueReal': -2209, 'obis': '1-0:76.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,478 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'objName': b'\x81\x81\xc7\x82\x05\xff', 'signature': None, 'valueReal': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'obis': '129-129:199.130.5255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,478 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'ISK', 'objName': b'\x81\x81\xc7\x82\x03\xff', 'signature': None, 'valueReal': b'ISK', 'obis': '129-129:199.130.3255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,479 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b'\t\x01ISK\x00\x03\xbf(\xd1', 'objName': b'\x01\x00\x00\x00\t\xff', 'signature': None, 'valueReal': b'\t\x01ISK\x00\x03\xbf(\xd1', 'obis': '1-0:0.0.9255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,479 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x00\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,480 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 36822481, 'objName': b'\x01\x00\x01\x08\x01\xff', 'signature': None, 'valueReal': 3682248.1, 'obis': '1-0:1.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,480 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x01\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:1.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,480 DEBUG Sml Entry {'status': 65954, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109829, 'objName': b'\x01\x00\x02\x08\x00\xff', 'signature': None, 'valueReal': 9210982.9, 'obis': '1-0:2.8.0255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,481 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 92109829, 'objName': b'\x01\x00\x02\x08\x01\xff', 'signature': None, 'valueReal': 9210982.9, 'obis': '1-0:2.8.1255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,481 DEBUG Sml Entry {'status': None, 'scaler': -1, 'unitName': 'Wh', 'valTime': None, 'value': 0, 'objName': b'\x01\x00\x02\x08\x02\xff', 'signature': None, 'valueReal': 0.0, 'obis': '1-0:2.8.2255', 'unit': 30} -- init.py:_parse:212 2014-06-11 14:02:02,482 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -6711, 'objName': b'\x01\x00\x10\x07\x00\xff', 'signature': None, 'valueReal': -6711, 'obis': '1-0:16.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,482 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2297, 'objName': b'\x01\x00$\x07\x00\xff', 'signature': None, 'valueReal': -2297, 'obis': '1-0:36.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,483 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2226, 'objName': b'\x01\x008\x07\x00\xff', 'signature': None, 'valueReal': -2226, 'obis': '1-0:56.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,483 DEBUG Sml Entry {'status': None, 'scaler': 0, 'unitName': 'W', 'valTime': None, 'value': -2189, 'objName': b'\x01\x00L\x07\x00\xff', 'signature': None, 'valueReal': -2189, 'obis': '1-0:76.7.0255', 'unit': 27} -- init.py:_parse:212 2014-06-11 14:02:02,484 DEBUG Sml Entry {'status': None, 'scaler': None, 'unitName': None, 'valTime': None, 'value': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'objName': b'\x81\x81\xc7\x82\x05\xff', 'signature': None, 'valueReal': b"}\x1ai\x97\xe2\xeb\x8f?\xdf\x96\xa3>\xee\x90~1Mm'\x14\n\xaf\xfd\xee\xcb\xee\x0f\x14\x93z|\xfd T\xfdq\xe6>J8\xee=\x87(\x9a[\x17\xba\x01", 'obis': '129-129:199.130.5*255', 'unit': None} -- init.py:_parse:212 2014-06-11 14:02:02,484 DEBUG Sml Item power.home.Wirkleistung_L2 = -2226 via Logic None None -- item.py:update:363 2014-06-11 14:02:02,485 DEBUG Sml Item power.home.Wirkleistung_L3 = -2189 via Logic None None -- item.py:update:363 2014-06-11 14:02:02,486 DEBUG Sml Item power.home.Wirkleistung = -6711 via Logic None None -- item.py:update:363 2014-06-11 14:02:02,486 DEBUG Sml Item power.home.Bezug = 3682248.1 via Logic None None -- item.py:__update:363 2014-06-11 14:02:02,487 DEBUG Sml Item power.home.Wirkleistung_L1 = -2297 via Logic None None -- item.py:update:363 2014-06-11 14:02:02,488 DEBUG Sml Item power.home.Eingespeist = 9210982.9 via Logic None None -- item.py:__update:363
Ich kann mich nur bedanken....so hätte ich das in Monaten nicht hinbekommen. Ich hoffe dein Einsatz ist auch für andere Anwender hilfreich...
Kein Problem - ich hoffe auch, dass es fuer andere hilfreich sein wird. Das ist eigenltich der Sinn dahinter ;-) Vielleicht kannst du das Issue noch in dem knx-user-forum-Thread verlinken, damit andere auch diese Stelle finden koennen...
Zu den Daten: ich sehe da einige Zahlen, die negativ sind. Ist das soweit korrekt, oder werden da Daten evtl. doch noch falsch interpretiert?
Die Daten sind korrekt. Die PV Anlage ist aktiv, das gibt eine negative Wirkleistung auf den Phasen ;-)
Ich verlinke das Issue hiermit und würde dich bitten das auch ins Develop zu mergen wenn möglich. Nochmal danke!
btw. welchen Usernamen hast du im KNX Forum ?
Prima, dann funktioniert's soweit. Im Forum habe ich mich nicht angemeldet und mergen kann ich das nicht in den develop-Branch - muss Marcus machen.
Btw. finde ich es besser das Issue so lange offen zu lassen, bis das gemerged wurde. Aktuell ist das nicht behoben, sondern liegt nur in meinem privaten Branch. Sobald das gemerged wurde kann man das Issue dann schliessen.
Ich erstelle dann noch einen weiteren Pull-Request dafuer.
Ich habe dafuer den Pull-Request #120 erstellt.
The Plugin is able to use also IP Gateways, but unfortenately not Gateways which are sending some Code before the sml and also send hex code to be transfered into binary (sml) data first.
Das SML-Plugin kommt mit diesen Daten nicht klar, da es ausschliesslich nur die SML-Daten behandeln kann - und dann auch nicht als Hex, sondern als Binary.
Ich habe den Schriftverkehr aus dem Pull Request angehängt:
Zum IP Gateway Problem: Wenn ich mir die Daten aus dem Log anschaue, dann sind das nicht direkt die SML-Binaer-Daten, sondern das, was im Kommentar auch noch davor drin steht.
Im Kommentar steht das hier als Beispiel, was zurueck geliefert wird:
mac=xx:Xx:Xx:xx:xx:Xx boot=1 fw=02.00 time=1259913803 zpb=DE0000000000000000000000000000004 SML(1B1B1B1B010101017605058AC...1B1A00C817)
Genau das, kommt auch ueber das Netzwerk an das SML-Plugin. Wenn ich die geloggten Hex-Daten in Binary umwandle, komme ich zu diesen String:
'mac=00:08:DC:1C:B0:10\r\nboot=1\r\nfw=02.00\r\ntime=1259913888\r\nzpb=DE0000000000000000000000000000004\r\n\x17SML(1B1B1B1B010101017605058AC6F862006200726301017601010501D8ECFC0B090149534B0003BF28D10101636C93007605058AC6F9620062007263070177010B090149534B0003BF28D1070100620AFFFF72620165026C729A7D77078181C78203FF010101010449534B0177070100000009FF010101010B090149534B0003BF28D10177070100010800FF65000101A201621E52FF5900000000022BDF1B0177070100010801FF0101621E52FF5900000000022BDF1B0177070100010802FF0101621E52FF5900000000000000'
Und dort stehen dann letztendlich die SML-Daten (siehe SML(...)) als Hex-Daten nochmal drin. Das SML-Plugin kommt mit diesen Daten nicht klar, da es ausschliesslich nur die SML-Daten behandeln kann - und dann auch nicht als Hex, sondern als Binary.
Wenn man das zum Laufen bekommen moechte, muesste man die SML-Daten aus den Daten, die vom IP Gateway geliefert werden herausparsen und in Binary-Daten umwandeln und das dem SML-Plugin bereitstellen. Vielleicht bekommt man eine Loesung mit socat und einem Shell-Skript hin - ist aber etwas aufwaendiger, wenn man nicht weiss, wie's geht.
Ich koennte mir auch vorstellen, das Plugin so zu erweitern, dass es mit diesen Daten klar kommt. Dann muesste man bei der Plugin-Konfiguration noch angeben, um welches Gateway es sich handelt. Je nach Typ werden dann entsprechend die SML-Daten aufbereitet. Dafuer muesste ich aber wissen, wie das IP-Gateway funktioniert:
Alternativ koennte das Plugin auch versuchen herauszufinden, welchen Typ es von Gateway denn ist. In diesem Fall koennte man z.B. nach SML( suchen und dann entsprechend die Daten auslesen...
Hallo,
vielen Dank für die genaue Erklärung des Problems und dem aufzeigen der Möglichkeiten Daten aus dem Gateway zu erhalten. Da es sich bei dem Gateway um ein Co-Met Com1 Gateway handelt welches anscheinend häufiger benutzt wird macht das einbinden in das Plugin schon sinn :) Ausserdem habe ich mit Skripting im Linuxbereich weniger erfahrung als ihr Cracks.
Gruß Tobias