So doch noch geschafft. Probier mal aus und gib Feeedback. Vorzugsweise über Gitter ...
Ankündigung
Einklappen
Keine Ankündigung bisher.
SML Plugin - Datenblock Größenfehler
Einklappen
X
-
bmx
Hallo,
ich teste das smlx2 Plugin mit meinem Zähler Landis&Gyr E220. Logging steht auf DEBUG.
Es kommt zu einer Fehlermeldung:
Code:2019-01-14 21:56:11 DEBUG plugins.sml2.Sml Polling Smartmeter now 2019-01-14 21:56:11 INFO plugins.sml2.Sml Sml: Connected to serial:///dev/ttyUSB_volkszaehler 2019-01-14 21:56:11 DEBUG plugins.sml2.Sml connected, try to query 2019-01-14 21:56:11 DEBUG plugins.sml2.Sml start read 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Read 1024 bytes 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Start sequence marker bytearray(b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01') found 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml End sequence marker found 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml packet size is 260 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml 2 fill bytes 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml checksum is 34175 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml buffer length is 274 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml buffer is bytearray(b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01v\x05\x02\xdd\xa3\xfbb\x00b\x00rc\x01\x01v\x01\x07\xff\xff\xff\xff\xff\xff\x05\x00\xf4\x8b\xfe\x0b\n\x01LGZ\x00\x02\x8c\x0fLrb\x01e\x00\xf4\x8f\xb5\x01cL\x91\x00v\x05\x02\xdd\xa3\xfcb\x00b\x00rc\x07\x01w\x07\xff\xff\xff\xff\xff\xff\x0b\n\x01LGZ\x00\x02\x8c\x0fL\x07\x01\x00b\n\xff\xffrb\x01e\x00\xf4\x8f\xb5uw\x07\x01\x00`2\x01\x01\x01\x01\x01\x01\x04LGZ\x01w\x07\x01\x00`\x01\x00\xff\x01\x01\x01\x01\x0b\n\x01LGZ\x00\x02\x8c\x0fL\x01w\x07\x01\x00\x01\x08\x00\xffe\x00\x1c\x01\x04rb\x01e\x00\xf4\x8f\xb5b\x1eR\xffi\x00\x00\x00\x00\x01\x0e\x96*\x01w\x07\x01\x00\x02\x08\x00\xff\x01rb\x01e\x00\xf4\x8f\xb5b\x1eR\xffi\x00\x00\x00\x00\x00\x00\x00\x00\x01w\x07\x01\x00\x10\x07\x00\xff\x01\x01b\x1bR\x00Y\x00\x00\x00\x00\x00\x00\x01\x99\x01\x01\x01c\xb5\xeb\x00v\x05\x02\xdd\xa3\xfdb\x00b\x00rc\x02\x01q\x01c\xbc]\x00\x00\x00\x1b\x1b\x1b\x1b\x1a\x02') 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml calculated checksum is 0x857f, given crc is 0x857f 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Checksum was ok, now parse the data_package 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Data: 76 05 02 dd a3 fb 62 00 62 00 72 63 01 01 76 01 07 ff ff ff ff ff ff 05 00 f4 8b fe 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 72 62 01 65 00 f4 8f b5 01 63 4c 91 00 76 05 02 dd a3 fc 62 00 62 00 72 63 07 01 77 07 ff ff ff ff ff ff 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 07 01 00 62 0a ff ff 72 62 01 65 00 f4 8f b5 75 77 07 01 00 60 32 01 01 01 01 01 01 04 4c 47 5a 01 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 01 77 07 01 00 01 08 00 ff 65 00 1c 01 04 72 62 01 65 00 f4 8f b5 62 1e 52 ff 69 00 00 00 00 01 0e 96 2a 01 77 07 01 00 02 08 00 ff 01 72 62 01 65 00 f4 8f b5 62 1e 52 ff 69 00 00 00 00 00 00 00 00 01 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 59 00 00 00 00 00 00 01 99 01 01 01 63 b5 eb 00 76 05 02 dd a3 fd 62 00 62 00 72 63 02 01 71 01 63 bc 5d 00 00 00 2019-01-14 21:56:14 WARNING plugins.sml2.Sml Can not parse entity at position 118, byte 52: unsupported operand type(s) for ** or pow(): 'int' and 'list': 77 07 ff ff ff ff ff ff 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 07 01 00 62 0a ff ff 72 62 01 65 00 f4 8f b5 75 77 07 01 00 60 32 01 01 01 01 01 01 04 4c 47 5a 01 77 07 01 00 60 01 00 ff 01 01 01 01... 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:1.8.0*255', 'scaler': -1, 'valTime': [None, 16027573], 'signature': None, 'status': 1835268, 'value': 17733162, 'unitName': 'Wh', 'unit': 30, 'valueReal': 1773316.2000000002, 'objName': b'\x01\x00\x01\x08\x00\xff'} 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:96.1.0*255', 'scaler': None, 'valTime': None, 'signature': None, 'status': None, 'value': b'\n\x01LGZ\x00\x02\x8c\x0fL', 'unitName': None, 'unit': None, 'valueReal': b'\n\x01LGZ\x00\x02\x8c\x0fL', 'objName': b'\x01\x00`\x01\x00\xff'} 2019-01-14 21:56:14 INFO stromzaehler.bezug.energie-eval Update item: stromzaehler.bezug.energie, item has been changed outside this plugin 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:16.7.0*255', 'scaler': 0, 'valTime': None, 'signature': None, 'status': None, 'value': 409, 'unitName': 'W', 'unit': 27, 'valueReal': 409, 'objName': b'\x01\x00\x10\x07\x00\xff'} 2019-01-14 21:56:14 INFO plugins.sml2.Sml Update item: stromzaehler.bezug.leistung, item has been changed outside this plugin 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:2.8.0*255', 'scaler': -1, 'valTime': [None, 16027573], 'signature': None, 'status': None, 'value': 0, 'unitName': 'Wh', 'unit': 30, 'valueReal': 0.0, 'objName': b'\x01\x00\x02\x08\x00\xff'} 2019-01-14 21:56:14 INFO plugins.sml2.Sml Sml: Disconnected! 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml cycle takes 3.3327505588531494 seconds 2019-01-14 21:56:14 DEBUG plugins.sml2.Sml Polling Smartmeter done 2019-01-14 21:58:11 DEBUG plugins.sml2.Sml Polling Smartmeter now 2019-01-14 21:58:11 INFO plugins.sml2.Sml Sml: Connected to serial:///dev/ttyUSB_volkszaehler 2019-01-14 21:58:11 DEBUG plugins.sml2.Sml connected, try to query 2019-01-14 21:58:11 DEBUG plugins.sml2.Sml start read 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Read 1024 bytes 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Start sequence marker bytearray(b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01') found 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml End sequence marker found 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml packet size is 260 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml 2 fill bytes 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml checksum is 18224 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml buffer length is 274 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml buffer is bytearray(b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01v\x05\x02\xdd\xa5cb\x00b\x00rc\x01\x01v\x01\x07\xff\xff\xff\xff\xff\xff\x05\x00\xf4\x8cv\x0b\n\x01LGZ\x00\x02\x8c\x0fLrb\x01e\x00\xf4\x90-\x01c;\xf1\x00v\x05\x02\xdd\xa5db\x00b\x00rc\x07\x01w\x07\xff\xff\xff\xff\xff\xff\x0b\n\x01LGZ\x00\x02\x8c\x0fL\x07\x01\x00b\n\xff\xffrb\x01e\x00\xf4\x90-uw\x07\x01\x00`2\x01\x01\x01\x01\x01\x01\x04LGZ\x01w\x07\x01\x00`\x01\x00\xff\x01\x01\x01\x01\x0b\n\x01LGZ\x00\x02\x8c\x0fL\x01w\x07\x01\x00\x01\x08\x00\xffe\x00\x1c\x01\x04rb\x01e\x00\xf4\x90-b\x1eR\xffi\x00\x00\x00\x00\x01\x0e\x96\xb2\x01w\x07\x01\x00\x02\x08\x00\xff\x01rb\x01e\x00\xf4\x90-b\x1eR\xffi\x00\x00\x00\x00\x00\x00\x00\x00\x01w\x07\x01\x00\x10\x07\x00\xff\x01\x01b\x1bR\x00Y\x00\x00\x00\x00\x00\x00\x01\x97\x01\x01\x01c\xb92\x00v\x05\x02\xdd\xa5eb\x00b\x00rc\x02\x01q\x01c\x85\x05\x00\x00\x00\x1b\x1b\x1b\x1b\x1a\x02') 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml calculated checksum is 0x4730, given crc is 0x4730 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Checksum was ok, now parse the data_package 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Data: 76 05 02 dd a5 63 62 00 62 00 72 63 01 01 76 01 07 ff ff ff ff ff ff 05 00 f4 8c 76 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 72 62 01 65 00 f4 90 2d 01 63 3b f1 00 76 05 02 dd a5 64 62 00 62 00 72 63 07 01 77 07 ff ff ff ff ff ff 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 07 01 00 62 0a ff ff 72 62 01 65 00 f4 90 2d 75 77 07 01 00 60 32 01 01 01 01 01 01 04 4c 47 5a 01 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 01 77 07 01 00 01 08 00 ff 65 00 1c 01 04 72 62 01 65 00 f4 90 2d 62 1e 52 ff 69 00 00 00 00 01 0e 96 b2 01 77 07 01 00 02 08 00 ff 01 72 62 01 65 00 f4 90 2d 62 1e 52 ff 69 00 00 00 00 00 00 00 00 01 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 59 00 00 00 00 00 00 01 97 01 01 01 63 b9 32 00 76 05 02 dd a5 65 62 00 62 00 72 63 02 01 71 01 63 85 05 00 00 00 2019-01-14 21:58:14 WARNING plugins.sml2.Sml Can not parse entity at position 118, byte 52: unsupported operand type(s) for ** or pow(): 'int' and 'list': 77 07 ff ff ff ff ff ff 0b 0a 01 4c 47 5a 00 02 8c 0f 4c 07 01 00 62 0a ff ff 72 62 01 65 00 f4 90 2d 75 77 07 01 00 60 32 01 01 01 01 01 01 04 4c 47 5a 01 77 07 01 00 60 01 00 ff 01 01 01 01... 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:1.8.0*255', 'scaler': -1, 'valTime': [None, 16027693], 'signature': None, 'status': 1835268, 'value': 17733298, 'unitName': 'Wh', 'unit': 30, 'valueReal': 1773329.8, 'objName': b'\x01\x00\x01\x08\x00\xff'} 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:96.1.0*255', 'scaler': None, 'valTime': None, 'signature': None, 'status': None, 'value': b'\n\x01LGZ\x00\x02\x8c\x0fL', 'unitName': None, 'unit': None, 'valueReal': b'\n\x01LGZ\x00\x02\x8c\x0fL', 'objName': b'\x01\x00`\x01\x00\xff'} 2019-01-14 21:58:14 INFO stromzaehler.bezug.energie-eval Update item: stromzaehler.bezug.energie, item has been changed outside this plugin 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:16.7.0*255', 'scaler': 0, 'valTime': None, 'signature': None, 'status': None, 'value': 407, 'unitName': 'W', 'unit': 27, 'valueReal': 407, 'objName': b'\x01\x00\x10\x07\x00\xff'} 2019-01-14 21:58:14 INFO plugins.sml2.Sml Update item: stromzaehler.bezug.leistung, item has been changed outside this plugin 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Entry {'obis': '1-0:2.8.0*255', 'scaler': -1, 'valTime': [None, 16027693], 'signature': None, 'status': None, 'value': 0, 'unitName': 'Wh', 'unit': 30, 'valueReal': 0.0, 'objName': b'\x01\x00\x02\x08\x00\xff'} 2019-01-14 21:58:14 INFO plugins.sml2.Sml Sml: Disconnected! 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml cycle takes 3.5623762607574463 seconds 2019-01-14 21:58:14 DEBUG plugins.sml2.Sml Polling Smartmeter done
Bekommt man den Fehler noch gelöst?
Danke!
Kommentar
-
Servus
Von allen SML Plugin Threads scheint mir der hier am besten zu passen.
Ich hatte bisher einen Pafal Zwei-Richtungs-Zähler, der mit bmx super DLMS Plugin ausgelesen wurde. Ok, der Zähler war doof, aber wenigsten kam 1.8.0 und 2.8.0 raus.
Nach knapp zwei Jahren hat mir mein Stromversorger nun einen Holley DTZ541 eingebaut. So ein doller chinesischer Smart Zähler, der aber jetzt SML spricht.
Auslesen kann ich entweder wie üblich per IR Lesekopf oder über eine RS485 Schnittstelle. Funktioniert prinzipiell beides. Ich konnte per Linux und Windows von beiden Schnittstellen Daten abziehen und die SML Nachrichten händisch dekodieren. SML hab ich jetzt also recht gut drauf
Dabei sind zwei Probleme aufgetaucht, die nach Recherche im Netzt bestätigt sind. Ein unschönes Problem (aber vielleicht harmlos) und ein recht grober Schnitzer.
Zum einen wird die timestamp bei Bezug und Lieferung falsch kodiert:
DTZ541 SML Auszug.png
Die farblich markierten Bytes fehlen komplett, da steht also nur die blanke Timestamp. Relativ harmlos, aber unschön, weil diverse Parser damit anscheinend nicht zurechtkommen.
Das größere Problem ist die Checksum. Die Berechnungsmethode des Zählers ist falsch. Dazu habe ich folgendes gefunden:
SML uses
width=16 poly=0x1021 init=0xffff refin=true refout=true xorout=0xffff check=0x906e residue=0xf0b8 name="CRC-16/IBM-SDLC"
But Holleys DTZ541 uses
width=16 poly=0x1021 init=0x0000 refin=true refout=true xorout=0x0000 check=0x2189 residue=0x0000 name="CRC-16/KERMIT"
Frage 1:, Kann man das von bmx mit dem CRC-Check versehene Plugin ohne große Änderungen - im besten Fall nur ein paar Parameterwerte ändern - überhaupt verwenden? Ich hab mir das mal angesehen, aber dafür reichen meine Kentnisse schlicht nicht.
Frage 2: Ist die falsche timestamp Kodierung überhaupt ein Problem für das Plugin?
Frage 3: Wenn ich den Plugin Code richtig interpretiere, werden NUR Obis Codes die mit FF enden ausgewertet, richtig? Der Zähler liefert aber z.B. auch die interessanten historischen Verbrauchswerte, wie 1-0:1.8.0*96 Historischer Verbrauchswert 1 Tag usw.
Frage 4: Kann man das SMLX Plugin auch standalone, also ohne shng, von der Kommandozeile aus testen? Beim DLMS Plugin geht das prima und ist sehr hilfreich.
Frage 5: Der Zähler sendet unaufgefordert JEDE SEKUNDE eine Nachricht. Das Plugin muss/soll ja nicht jede Sekunde eine Nachricht parsen. Ich hoffe, es verschluckt sich nur nicht.
Frage 6: Der Puffer des Plugins ist standardmäßig 1024 Bytes glaube ich. Meine kompletten Nachrichten sind aber schon fast so lang. Ich vermute, ich müsste den Puffer mindestens doppelt so groß wie eine komplette Nachricht lang ist machen, damit sicher eine ganze im Puffer steht. Oder habe ich da einen Denkfehler?
Danke schon mal,
Martin
Kommentar
-
Zitat von Sipple Beitrag anzeigenZum einen wird die timestamp bei Bezug und Lieferung falsch kodiert:
Zitat von Sipple Beitrag anzeigenDas größere Problem ist die Checksum. Die Berechnungsmethode des Zählers ist falsch. Dazu habe ich folgendes gefunden:
Ich habe das mit einem CRC Tool im Netz testen können und es stimmt. CRC-16/KERMIT wird verwendet.
Frage 1:, Kann man das von bmx mit dem CRC-Check versehene Plugin ohne große Änderungen - im besten Fall nur ein paar Parameterwerte ändern - überhaupt verwenden? Ich hab mir das mal angesehen, aber dafür reichen meine Kentnisse schlicht nicht.
Code:xor_in = 0x0000
Code:xor_out = 0x0000
Zitat von Sipple Beitrag anzeigenFrage 2: Ist die falsche timestamp Kodierung überhaupt ein Problem für das Plugin?
Zitat von Sipple Beitrag anzeigenFrage 3: Wenn ich den Plugin Code richtig interpretiere, werden NUR Obis Codes die mit FF enden ausgewertet, richtig? Der Zähler liefert aber z.B. auch die interessanten historischen Verbrauchswerte, wie 1-0:1.8.0*96 Historischer Verbrauchswert 1 Tag usw.
Zitat von Sipple Beitrag anzeigenFrage 4: Kann man das SMLX Plugin auch standalone, also ohne shng, von der Kommandozeile aus testen? Beim DLMS Plugin geht das prima und ist sehr hilfreich.
Man müßte wirklich die Daten richtig parsen, interpretieren und dann daraufhin weiterlesen.
Das habe ich mal angefangen aber mangels Zeit und anderer dringender Projekte nach hinten verschoben. Das ist derzeit nicht einsatzfähig und eher eine frühe Alpha Version.
Zitat von Sipple Beitrag anzeigenFrage 5: Der Zähler sendet unaufgefordert JEDE SEKUNDE eine Nachricht. Das Plugin muss/soll ja nicht jede Sekunde eine Nachricht parsen. Ich hoffe, es verschluckt sich nur nicht.
Zitat von Sipple Beitrag anzeigenFrage 6: Der Puffer des Plugins ist standardmäßig 1024 Bytes glaube ich. Meine kompletten Nachrichten sind aber schon fast so lang. Ich vermute, ich müsste den Puffer mindestens doppelt so groß wie eine komplette Nachricht lang ist machen, damit sicher eine ganze im Puffer steht. Oder habe ich da einen Denkfehler?
Fazit: Man könnte die checksum Parameter konfigurierbar machen über die Plugin.yaml und für den Zähler dann in der Readme die Änderungen bereitstellen.Zuletzt geändert von bmx; 13.10.2019, 11:17.
Kommentar
-
So, ich habe in develop eine Erweiterung des smlx bereitgestellt wo Du die Parameter anpassen kannst ohne das Plugin zu ändern. Allerdings mußt Du das entweder aus github selbst runterladen und Dir ins Verzeichnis plugins/smlx kopieren. Es sei denn Du bist auf develop, dann reicht ein git pull...
Kommentar
-
So, hab es jetzt mal versucht.
Beim Neustart von SHNG bekomme ich im Log:
Code:2019-10-15 13:07:55 WARNING __main__ SmartHomeNG restarting, initiated by admin interface 2019-10-15 13:08:06 WARNING __main__ SmartHomeNG stopped 2019-10-15 13:08:07 WARNING __main__ -------------------- Init SmartHomeNG 1.6.master (1dcb4fb5) -------------------- 2019-10-15 13:08:07 WARNING __main__ Running in Python interpreter 'v3.7.3 final' (pid=9620) on linux platform 2019-10-15 13:08:13 ERROR lib.metadata plugin 'smlx' version differs between Python code (1.1.0) and metadata (1.1.1) 2019-10-15 13:08:13 WARNING lib.item load_itemdefinitions(): For testing the joined item structs are saved to /usr/local/smarthome/etc/structs_joined.yaml
Sonst passiert nichts weiter, auch nicht im Debug Modus. Das Plugin wird in der Liste angezeigt:
Pluginliste.png
Bedeutet der ERROR, dass das Plugin gar nicht aktiv ist?
Woran sieht man eigentlich im Admin Interface ob SHNG im Debug Modus läuft?
Ich habe es vom CLI so gestartet:
Code:smarthome@RevPI:/usr/local/smarthome $ python3 bin/smarthome.py -d [15/Oct/2019:12:52:35] ENGINE Bus STARTING [15/Oct/2019:12:52:35] ENGINE Serving on http://192.168.178.71:8384 [15/Oct/2019:12:52:35] ENGINE Serving on http://192.168.178.71:8383 [15/Oct/2019:12:52:35] ENGINE Bus STARTED 192.168.178.67 - - [15/Oct/2019:12:54:51] "GET /admin/ HTTP/1.1" 304 - "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0" 192.168.178.67 - - [15/Oct/2019:12:54:51] "GET /admin/styles.dc8d38acd6b3f657ad60.css HTTP/1.1" 304 - "http://192.168.178.71:8383/admin/" "M ozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0" 192.168.178.67 - - [15/Oct/2019:12:54:51] "GET /admin/runtime.26209474bfa8dc87a77c.js HTTP/1.1" 304 - "http://192.168.178.71:8383/admin/" "M ozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0" 192.168.178.67 - - [15/Oct/2019:12:54:51] "GET /admin/polyfills.efff76290c6668e3008b.js HTTP/1.1" 304 - "http://192.168.178.71:8383/admin/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
Der Vollständigkeit halber noch der Auszug aus der plugin.yaml:
Code:Smartmeter: plugin_name: smlx serialport: /dev/ttyUSB0 buffersize: '2048' poly: 0x1021 reflect_in: true xor_in: 0x0000 reflect_out: true xor_out: 0x0000
Und die Testitems:
Code:# Smartmeter.yaml Technikraum: Smartmeter: Bezug: type: num sml_obis: 1-0:1.8.0*255 Lieferung: type: num sml_obis: 1-0:2.8.0*255
Das passt doch so, oder?
Edit: Den ERROR hab ich jetzt nicht mehr, nachdem ich in der _init.py_ des Plugins die Versionsnummer auch auf 1.1.1 gesetzt habe. Soweit, so trivial. Aber jetzt passiert gar nichts mehr, als ob das Plugin gar nicht laufen würde.Zuletzt geändert von Sipple; 15.10.2019, 12:32.
Kommentar
-
Hast Du denn einen Logger für das Plugin eingestellt?
Auszug aus meiner etc/logging.yaml:
Code:handlers: develop_file: class: logging.handlers.TimedRotatingFileHandler formatter: shng_detail level: DEBUG utc: false when: midnight backupCount: 7 filename: ./var/log/smarthome-develop.log encoding: utf8 ..... loggers: __main__: # SmartHomeNG.py base module handlers: [shng_details_file] level: DEBUG .... plugins.smlx: handlers: [develop_file] level: DEBUG
Derzeit ist es im AdminInterface möglich die logging.yaml zu ändern, danach muß aber neu gestartet werden.
Ich vermute, es gibt vom Plugin zwar Fehlermeldungen aber die werden nicht geloggt denke ich.
Ach ja, die Pluginversion anzupassen ist ok. Habe ich leider vergessen ...
Und die Buffersize ist ein int, kein str. Nimm mal die Anführungen weg...
Kommentar
-
Zitat von Sipple Beitrag anzeigenBedeutet der ERROR, dass das Plugin gar nicht aktiv ist?Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
-
OK, das Logging war tatsächlich noch nicht aktiv für develop_file. Bin fälschlicherweise davon ausgegeangen, dass im Debug Modus die Meldungen in den Standard logfiles auftauchen.
Allerdings startete SHNG erst mal nicht, weil es den formatter shng_detail nicht gab. Nur shng_detail1 oder shng_detail2. Ersteren habe ich mal nun verwendet. Jetzt gibt es smarthome-details.log.
Was ich wegen der Änderung in __main__ auf DEBUG jetzt auch in smarthome-details stehen habe reicht schon:
Code:2019-10-15 17:18:30 WARNING __main__ -------------------- Init SmartHomeNG 1.6.master (1dcb4fb5) -------------------- 2019-10-15 17:18:30 WARNING __main__ Running in Python interpreter 'v3.7.3 final' (pid=12020) on linux platform 2019-10-15 17:18:30 INFO __main__ Init loadable Modules 2019-10-15 17:18:33 INFO __main__ Init Plugins 2019-10-15 17:18:36 DEBUG plugins.smlx Using CRC params poly=4129, reflect_in=True, xor_in=0, reflect_out=True, xor_out=0 2019-10-15 17:18:36 INFO __main__ Start initialization of items 2019-10-15 17:18:36 WARNING lib.item load_itemdefinitions(): For testing the joined item structs are saved to /usr/local/smarthome/etc/structs_joined.yaml 2019-10-15 17:18:36 DEBUG plugins.smlx attach Technikraum.Smartmeter.Bezug 1-0:1.8.0*255 valueReal 2019-10-15 17:18:36 DEBUG plugins.smlx attach Technikraum.Smartmeter.Lieferung 1-0:2.8.0*255 valueReal 2019-10-15 17:18:36 INFO __main__ Items initialization finished, 130 items loaded 2019-10-15 17:18:36 DEBUG plugins.smlx Plugin 'smlx': run method called 2019-10-15 17:18:36 DEBUG plugins.smlx scheduler_add: name = plugins.smlx.Smlx, parameters: prio=3, cycle=60 2019-10-15 17:18:42 DEBUG __main__ _maintenace: Started 2019-10-15 17:18:42 DEBUG __main__ Garbage collector: collected 656 objects. 2019-10-15 17:18:42 DEBUG __main__ _maintenace: Object references: 33829 2019-10-15 17:18:46 DEBUG plugins.smlx Polling Smartmeter now 2019-10-15 17:18:46 INFO plugins.smlx Sml: Connected to serial:///dev/ttyUSB0 2019-10-15 17:18:46 DEBUG plugins.smlx connected, try to query 2019-10-15 17:18:46 DEBUG plugins.smlx start read 2019-10-15 17:18:52 DEBUG plugins.smlx Read 2048 bytes 2019-10-15 17:18:52 DEBUG plugins.smlx Start sequence marker bytearray(b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01') found 2019-10-15 17:18:52 DEBUG plugins.smlx End sequence marker found 2019-10-15 17:18:52 DEBUG plugins.smlx packet size is 660 2019-10-15 17:18:52 DEBUG plugins.smlx 2 fill bytes 2019-10-15 17:18:52 DEBUG plugins.smlx checksum is 50711 2019-10-15 17:18:52 DEBUG plugins.smlx buffer length is 674 2019-10-15 17:18:52 DEBUG plugins.smlx buffer is bytearray(b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01v\x04\x00\x00\x01b\x00b\x00re\x00\x00\x01\x01v\x01\x01\x07\x00\x00\x00y\xc1\x94\x0b\n\x01HLY\x02\x00\x01\xe2\xaf\x01\x01c\xdb\xe5\x00v\x04\x00\x00\x02b\x00b\x00re\x00\x00\x07\x01w\x01\x0b\n\x01HLY\x02\x00\x01\xe2\xaf\x01\x01\xf1\x0ew\x07\x01\x00`2\x01\x01\x01\x01\x01\x01\x04HLY\x01w\x07\x01\x00`\x01\x00\xff\x01\x01\x01\x01\x0b\n\x01HLY\x02\x00\x01\xe2\xaf\x01w\x07\x01\x00\x01\x08\x00\xffe\x00\x1c\x11\x04e\x00y\xc1\x94b\x1eR\xffe\x00\x08|*\x01w\x07\x01\x00\x02\x08\x00\xffe\x00\x1c\x11\x04e\x00y\xc1\x94b\x1eR\xffe\x01MI\x04\x01w\x07\x01\x00\x10\x07\x00\xff\x01\x01b\x1bR\x00R\x12\x01w\x07\x01\x00 \x07\x00\xff\x01\x01b#R\xffc\x08\xbb\x01w\x07\x01\x004\x07\x00\xff\x01\x01b#R\xffc\x08\xc2\x01w\x07\x01\x00H\x07\x00\xff\x01\x01b#R\xffc\x08\x84\x01w\x07\x01\x00\x1f\x07\x00\xff\x01\x01b!R\xfeb\xf3\x01w\x07\x01\x003\x07\x00\xff\x01\x01b!R\xfeb\xa9\x01w\x07\x01\x00G\x07\x00\xff\x01\x01b!R\xfeb\xdb\x01w\x07\x01\x00Q\x07\x01\xff\x01\x01b\x08R\x00bu\x01w\x07\x01\x00Q\x07\x02\xff\x01\x01b\x08R\x00b\xef\x01w\x07\x01\x00Q\x07\x04\xff\x01\x01b\x08R\x00b\xcd\x01w\x07\x01\x00Q\x07\x0f\xff\x01\x01b\x08R\x00c\x01#\x01w\x07\x01\x00Q\x07\x1a\xff\x01\x01b\x08R\x00c\x01A\x01w\x07\x01\x00\x0e\x07\x00\xff\x01\x01b,R\xffc\x01\xf3\x01w\x07\x01\x00\x01\x08\x00`\x01\x01b\x1eR\x02b\x01\x01w\x07\x01\x00\x01\x08\x00a\x01\x01b\x1eR\x02bx\x01w\x07\x01\x00\x01\x08\x00b\x01\x01b\x1eR\x02c\x01\x8b\x01w\x07\x01\x00\x01\x08\x00c\x01\x01b\x1eR\x02b\x00\x01w\x07\x01\x00\x01\x08\x00d\x01\x01b\x1eR\x02c\x02,\x01w\x07\x01\x00\x02\x08\x00`\x01\x01b\x1eR\x02b\xfd\x01w\x07\x01\x00\x02\x08\x00a\x01\x01b\x1eR\x02c\x04@\x01w\x07\x01\x00\x02\x08\x00b\x01\x01b\x1eR\x02c\x12I\x01w\x07\x01\x00\x02\x08\x00c\x01\x01b\x1eR\x02b\x00\x01w\x07\x01\x00\x02\x08\x00d\x01\x01b\x1eR\x02cUR\x01w\x07\x01\x00\x00\x02\x00\x00\x01\x01\x01\x01\t1.02.007\x01w\x07\x01\x00`Z\x02\x01\x01\x01\x01\x01\x05A01A\x01w\x07\x01\x00`\x05\x00\xff\x01\x01\x01\x01e\x00\x1c\x11\x04\x01\x01\x01cU\x00\x00v\x04\x00\x00\x03b\x00b\x00re\x00\x00\x02\x01q\x01c\xeb\xf4\x00\x00\x00\x1b\x1b\x1b\x1b\x1a\x02') 2019-10-15 17:18:52 DEBUG plugins.smlx calculated checksum is 0x17c6, given crc is 0xc617 2019-10-15 17:18:52 DEBUG plugins.smlx Checksum was not ok, will not parse the data_package 2019-10-15 17:18:52 INFO plugins.smlx Sml: Disconnected! 2019-10-15 17:18:52 DEBUG plugins.smlx cycle takes 6.8876564502716064 seconds 2019-10-15 17:18:52 DEBUG plugins.smlx Polling Smartmeter done
Könnte es daran liegen?:
SML uses
width=16 poly=0x1021 init=0xffff refin=true refout=true xorout=0xffff check=0x906e residue=0xf0b8 name="CRC-16/IBM-SDLC"
But Holleys DTZ541 uses
width=16 poly=0x1021 init=0x0000 refin=true refout=true xorout=0x0000 check=0x2189 residue=0x0000 name="CRC-16/KERMIT"
"check" und "residue"?
Die buffersize habe ich übrigens per admin Interface eingetragen:
Buffersize.png
Warum dann mit Quotes gespeichert wird weiß ich nicht.
Jedenfalls klappt die Kommunikation ja schon mal, zumindest findet das Plugin den Start und Stopcode. Hätte schlimmer sein können
Danke Euch beiden
MartinZuletzt geändert von Sipple; 15.10.2019, 16:55.
Kommentar
Kommentar