NEWS
Adapter "smartmeter"
-
@apollon77 Ich hatte das Projekt ein paar Tage ruhen lassen, doch nun soll es weiter gehen!
Ich habe die Zeile:1336620 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 5e 40
in ascii umgewandelt:
1336620 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 5e 40
Das sagt mir noch weniger!
Die Schnittstelle /dev/ttyS0 scheint mir aber die richtige zu sein. Wenn ich nämlich auf /dev/ttyAMA0 gehe, erhalte ich eine Menge Fehlermeldungen.
Was meinst du mit: Nimm mal diese ganzen überschriebenen Konfig sachen raus? D0: Überschreiben des Modus kann ich nur auswählen "Modus des Devices, A, B, C, D, E". D0: Überschreiben der Baudrate-Änderung kann ich leer lassen.edition
-
@edition sagte in Adapter "smartmeter":
Das sagt mir noch weniger!
das ist auch kein ascii, sondern die codes in dezimal statt hex
@edition sagte in Adapter "smartmeter":
Die Schnittstelle /dev/ttyS0 scheint mir aber die richtige zu sein. Wenn ich nämlich auf /dev/ttyAMA0 gehe, erhalte ich eine Menge Fehlermeldungen.
dann wären diese interessant, um sie zuzuordnen
@edition sagte in Adapter "smartmeter":
Was meinst du mit: Nimm mal diese ganzen überschriebenen Konfig sachen raus
du sollst die Standardeinstellungen nehmen, und diese nicht mit eigenen Kreationen überschreiben
-
@homoran Hier sind schon mal die Fehlermeldungen, wenn ich die Schnittstelle auf /dev/ttyAMA0 stelle:
smartmeter.1 2021-09-12 14:13:26.282 debug Plugin sentry Initialize Plugin (enabled=true) host.ioBroker 2021-09-12 14:13:23.461 info instance system.adapter.smartmeter.1 started with pid 913 host.ioBroker 2021-09-12 14:12:53.422 info Restart adapter system.adapter.smartmeter.1 because enabled host.ioBroker 2021-09-12 14:12:53.422 info instance system.adapter.smartmeter.1 terminated with code NaN () host.ioBroker 2021-09-12 14:12:53.422 warn instance system.adapter.smartmeter.1 terminated due to SIGABRT host.ioBroker 2021-09-12 14:12:53.421 error Caught by controller[0]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory host.ioBroker 2021-09-12 14:12:53.421 error Caught by controller[0]: <--- JS stacktrace ---> host.ioBroker 2021-09-12 14:12:53.421 error Caught by controller[0]: [896:0x4e1c0f0] 112142 ms: Mark-sweep 127.2 (129.2) -> 126.8 (129.2) MB, 1388.5 / 0.1 ms (average mu = 0.103, current mu = 0.027) task scavenge might not succeed host.ioBroker 2021-09-12 14:12:53.420 error Caught by controller[0]: [896:0x4e1c0f0] 110715 ms: Mark-sweep 127.3 (129.2) -> 126.8 (129.2) MB, 1394.6 / 0.1 ms (average mu = 0.169, current mu = 0.106) allocation failure scavenge might not succeed host.ioBroker 2021-09-12 14:12:53.419 error Caught by controller[0]: <--- Last few GCs ---> smartmeter.1 2021-09-12 14:11:03.029 debug connected set to false smartmeter.1 2021-09-12 14:11:03.008 debug TO SEND 1: /?! smartmeter.1 2021-09-12 14:11:03.007 debug CURRENT PROCESS STEP 1 IN GETNEXTMESSAGE smartmeter.1 2021-09-12 14:11:03.007 debug TO SEND 2: smartmeter.1 2021-09-12 14:11:03.005 debug CURRENT PROCESS STEP 0 IN GETNEXTMESSAGE smartmeter.1 2021-09-12 14:11:03.003 debug INITIAL MESSAGES TO SEND: 2 smartmeter.1 2021-09-12 14:11:02.997 debug SERIALPORT RESET BAUDRATE TO 300 smartmeter.1 2021-09-12 14:11:02.971 debug SERIALPORT OPEN smartmeter.1 2021-09-12 14:11:02.960 debug CREATE SERIALPORT: 300 7 1 even smartmeter.1 2021-09-12 14:11:02.954 debug SmartmeterObis options: {"debug":2,"protocol":"D0Protocol","transport":"SerialRequestResponseTransport","requestInterval":"300","anotherQueryDelay":"1000","transportSerialPort":"/dev/ttyAMA0","transportSerialBaudrate":300,"transportSerialMessageTimeout":null,"protocolD0WakeupCharacters":0,"obisFallbackMedium":1} smartmeter.1 2021-09-12 14:11:02.908 info starting. Version 3.2.1 in /opt/iobroker/node_modules/iobroker.smartmeter, node: v14.17.6, js-controller: 3.3.15
-
@edition Hm ... da rennt der JavaScrpt Prozess gegen ein Heap Limit ... wtf ... noch nie gesehen. Wieviel RAM ist frei?
-
@apollon77 427,9MB steht in der Übersicht bei Info.
Im Moment läuft der Smartmeter Adapter allerdings mit /dev/ttyS0. Da kommt dann wieder die bekannte Rückmeldung:smartmeter.0 2021-09-12 17:52:18.681 debug MATCH-RESULT SIGNON: "/?!\r\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" -> null
Ich glaube, dass sind die S0 Impulse, weil so schön regelmäßig.
-
@edition sagte in Adapter "smartmeter":
@apollon77 427,9MB steht in der Übersicht bei Info.
Und nichts kommt im Log ... das kapier ich nicht. Sorry ich habe keine Idee mehr
-
@edition sagte in Adapter "smartmeter":
Ich glaube, dass sind die S0 Impulse, weil so schön regelmäßig.
dann wäre das die falsche Schnittstelle.
aber s0 Impulse kommen eben nicht regelmäßig sondern in unterschiedlichen Abständen je nach Last -
Also nochmal im Ganzen:
Mit der Enstellung:
Passiert das:0 Log-Größe: 3.8 KB Zeit Nachricht smartmeter.0 2021-09-13 08:28:01.853 debug MATCH-RESULT SIGNON: "/?!\r\n\u0000\u0000\u0000\u0000" -> null smartmeter.0 2021-09-13 08:28:01.851 debug CURRENT PROCESS STEP 2 IN CHECKMESSAGE smartmeter.0 2021-09-13 08:28:01.849 debug NEW DATA smartmeter.0 2021-09-13 08:28:01.843 debug MATCH-RESULT SIGNON: "/?!\r\n\u0000\u0000\u0000" -> null smartmeter.0 2021-09-13 08:28:01.841 debug CURRENT PROCESS STEP 2 IN CHECKMESSAGE smartmeter.0 2021-09-13 08:28:01.838 debug NEW DATA smartmeter.0 2021-09-13 08:27:51.609 debug MATCH-RESULT SIGNON: "/?!\r\n\u0000\u0000" -> null smartmeter.0 2021-09-13 08:27:51.608 debug CURRENT PROCESS STEP 2 IN CHECKMESSAGE smartmeter.0 2021-09-13 08:27:51.606 debug NEW DATA smartmeter.0 2021-09-13 08:27:51.600 debug MATCH-RESULT SIGNON: "/?!\r\n\u0000" -> null smartmeter.0 2021-09-13 08:27:51.598 debug CURRENT PROCESS STEP 2 IN CHECKMESSAGE smartmeter.0 2021-09-13 08:27:51.596 debug NEW DATA smartmeter.0 2021-09-13 08:27:45.182 debug SET MESSAGE TIMEOUT TIMER2: 120000 smartmeter.0 2021-09-13 08:27:45.180 debug DONE SEND 0 smartmeter.0 2021-09-13 08:27:44.946 debug connected set to false smartmeter.0 2021-09-13 08:27:44.934 debug MATCH-RESULT SIGNON: "/?!\r\n" -> null smartmeter.0 2021-09-13 08:27:44.933 debug CURRENT PROCESS STEP 2 IN CHECKMESSAGE smartmeter.0 2021-09-13 08:27:44.930 debug NEW DATA smartmeter.0 2021-09-13 08:27:44.927 debug DONE SEND 1 smartmeter.0 2021-09-13 08:27:44.912 debug TO SEND 1: /?! smartmeter.0 2021-09-13 08:27:44.911 debug CURRENT PROCESS STEP 1 IN GETNEXTMESSAGE smartmeter.0 2021-09-13 08:27:44.910 debug TO SEND 2: smartmeter.0 2021-09-13 08:27:44.908 debug CURRENT PROCESS STEP 0 IN GETNEXTMESSAGE smartmeter.0 2021-09-13 08:27:44.906 debug INITIAL MESSAGES TO SEND: 2 smartmeter.0 2021-09-13 08:27:44.898 debug SERIALPORT RESET BAUDRATE TO 300 smartmeter.0 2021-09-13 08:27:44.870 debug SERIALPORT OPEN smartmeter.0 2021-09-13 08:27:44.855 debug CREATE SERIALPORT: 300 7 1 even smartmeter.0 2021-09-13 08:27:44.850 debug SmartmeterObis options: {"debug":2,"protocol":"D0Protocol","transport":"SerialRequestResponseTransport","requestInterval":"300","anotherQueryDelay":"1000","transportSerialPort":"/dev/ttyS0","transportSerialBaudrate":300,"transportSerialMessageTimeout":null,"protocolD0WakeupCharacters":0} smartmeter.0 2021-09-13 08:27:44.805 info starting. Version 3.2.1 in /opt/iobroker/node_modules/iobroker.smartmeter, node: v14.17.6, js-controller: 3.3.15
Mit der Einstellung:
Passiert das:52 Log-Größe: 17.4 KB Zeit Nachricht host.ioBroker 2021-09-13 08:31:55.818 info Restart adapter system.adapter.smartmeter.0 because enabled host.ioBroker 2021-09-13 08:31:55.817 info instance system.adapter.smartmeter.0 terminated with code NaN () host.ioBroker 2021-09-13 08:31:55.817 warn instance system.adapter.smartmeter.0 terminated due to SIGABRT host.ioBroker 2021-09-13 08:31:55.816 error Caught by controller[0]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory host.ioBroker 2021-09-13 08:31:55.816 error Caught by controller[0]: <--- JS stacktrace ---> host.ioBroker 2021-09-13 08:31:55.815 error Caught by controller[0]: [6647:0x58030f0] 118505 ms: Mark-sweep 127.1 (128.9) -> 126.6 (129.2) MB, 1066.7 / 0.0 ms (average mu = 0.143, current mu = 0.037) allocation failure scavenge might not succeed host.ioBroker 2021-09-13 08:31:55.815 error Caught by controller[0]: [6647:0x58030f0] 117398 ms: Mark-sweep 127.2 (128.9) -> 126.6 (128.9) MB, 1149.4 / 0.1 ms (average mu = 0.209, current mu = 0.032) allocation failure scavenge might not succeed host.ioBroker 2021-09-13 08:31:55.813 error Caught by controller[0]: <--- Last few GCs ---> smartmeter.0 2021-09-13 08:29:59.428 debug connected set to false smartmeter.0 2021-09-13 08:29:59.403 debug TO SEND 1: /?! smartmeter.0 2021-09-13 08:29:59.403 debug CURRENT PROCESS STEP 1 IN GETNEXTMESSAGE smartmeter.0 2021-09-13 08:29:59.402 debug TO SEND 2: smartmeter.0 2021-09-13 08:29:59.401 debug CURRENT PROCESS STEP 0 IN GETNEXTMESSAGE smartmeter.0 2021-09-13 08:29:59.399 debug INITIAL MESSAGES TO SEND: 2 smartmeter.0 2021-09-13 08:29:59.384 debug SERIALPORT RESET BAUDRATE TO 300 smartmeter.0 2021-09-13 08:29:59.358 debug SERIALPORT OPEN smartmeter.0 2021-09-13 08:29:59.351 debug CREATE SERIALPORT: 300 7 1 even smartmeter.0 2021-09-13 08:29:59.346 debug SmartmeterObis options: {"debug":2,"protocol":"D0Protocol","transport":"SerialRequestResponseTransport","requestInterval":"300","anotherQueryDelay":"1000","transportSerialPort":"/dev/ttyAMA0","transportSerialBaudrate":300,"transportSerialMessageTimeout":null,"protocolD0WakeupCharacters":0} smartmeter.0 2021-09-13 08:29:59.300 info starting. Version 3.2.1 in /opt/iobroker/node_modules/iobroker.smartmeter, node: v14.17.6, js-controller: 3.3.15
Ich werde jetzt eine SD Karte nehmen und den Volkszähler parallel dazu testen!
edition
-
@edition Hast du es schonmal mit einem anderen Protokoll versucht: "nur lesen" anstatt bidirektional?
-
@guergen Nein, habe ich noch nicht, weil mein Zähler die D0 Daten ja erst senden soll, nachdem er dazu aufgefordert wurde.
Mit dem "Volkszähler" scheint es aber zu funktionieren:
edition -
@edition sagte in Adapter "smartmeter":
weil mein Zähler die D0 Daten ja erst senden soll
wer sagt das?
@edition sagte in Adapter "smartmeter":
Mit dem "Volkszähler" scheint es aber zu funktionieren:
und wie sind da die Einstellungen?
-
@homoran Auszug aus der .cfg Datei:
"protocol": "d0", "device": "/dev/ttyAMA0", "pullseq": "2F3F210D0A", "baudrate": 300, "parity": "7e1", "read_timeout": 10
Hier funktioniert es nur mit AMA0!
-
@edition sagte in Adapter "smartmeter":
Hier funktioniert es nur mit AMA0!
sag ich doch!
und dann mit den Standardeinstellungen!ABER:
Volkszähler darf nicht gleichzeitig laufen!
Es kann immer nur einer zur Zeit auf die Schnittstelle zugreifen -
@homoran Aber wenn ich in iobroker die Schnittstelle /dev/ttyAMA0 verwende, kommt es doch nach 2 min zu dieser fatalen Fehlermeldung und die Smartmeterinstanz wird neu gestartet!
Was ist eigentlich die "pullseq"?Volkszähler und iobroker sind auf 2 unterschiedlichen SD Karten installiert.
-
@edition sagte in Adapter "smartmeter":
Aber wenn ich in iobroker die Schnittstelle /dev/ttyAMA0 verwende, kommt es doch nach 2 min zu dieser fatalen Fehlermeldung
das kann aber auch an den falschen Parametern (oder doppelt belegten Schnittstelle??) liegen.
@edition sagte in Adapter "smartmeter":
Was ist eigentlich die "pullseq"?
ich benutze Volkszähler nicht
-
@edition
Was steht denn in der Anleitung des Zählers drin? BZW. um welchen handelt es sich? -
@apollon77 sagte in Adapter "smartmeter":
@tobi68 sagte in Adapter "smartmeter":
In der Hauptverteilung ist auch ein 3er SLS40, wenn ich dort nach und nach die Automaten aus mache und durch Haus flitze, bekomme ichs wohl auch raus?
Viel Spass
Habe jetzt mal durch regelmäßig nach den Diagrammen schauen schon mal rausgefunden was mir in der Dämmerung die 1500/2000 Watt Werte verursacht..
Hätte nicht gedacht das Rolladenmotoren soviel ziehen.
Werde mal die skripte anpassen und mehr zeitversetzt hoch und runterfahren.. -
@c1olli Stand weiter oben: Itron ACE3000 Typ 260. Im ELV Datenblatt zum Energiesensor für Smart Meter ES-IEC werden folgende Angaben gemacht:
Viel weiter oben in diesem Beitrag hat jemand mit diesen Einstellungen den Zähler ausgelesen:
Da ich einen seriellen Lesekopf verwende, wäre die Schnittstelle /dev/ttyS0 oder /dev/ttyAMA0.
Funktioniert bei mir leider beides nicht.edition
-
@edition sagte in Adapter "smartmeter":
hat jemand mit diesen Einstellungen den Zähler ausgelesen:
exakt diese?
auch mit WakeUp und 0 Character Wake-Up Länge?@edition sagte in Adapter "smartmeter":
Viel weiter oben in diesem Beitrag
Link wäre hilfreich gewesen
EDIT:
@edition sagte in Adapter "smartmeter":
Im ELV Datenblatt zum Energiesensor für Smart Meter ES-IEC
Der Lesekopf ist nur für den HM-Zählersensor!
Der Energiesensor für Smart Meter ergänzt das Homematic Zählersensor-System um einen weiteren Sensor, der die Daten an der optischen Schnittstelle eines Smart Meters erfasst und über die Zählersensor-Sendeeinheit HM-ES-TX-WM an die Zentrale des Homematic Systems ausgibt.
https://de.elv.com/elv-homematic-energiesensor-fuer-smart-meter-es-iec-komplettbausatz-142148
Nicht für den Smartmeter
dazu bräuchtest du den:
https://de.elv.com/elv-bausatz-lesekopf-mit-usb-schnittstelle-fuer-digitale-zaehler-usb-iec-155523?fs=1833928562 -
@homoran Inspiriert wurde ich zu diesem Projekt durch dieses Video:
https://www.youtube.com/watch?v=XtsI8kQ3A2E&t=546s
Er benutzt den gleichen Lesekopf, den ich auch benutze. Er ruft ihn über /dev/ttyS0 auf. Er fragt allerdings einen anderen Zähler ab!
Da mein Lesekopf mit dem Volkszähler funktioniert (Abruf über /dev/ttyAMA0) und die entsprechenden Energiedaten liefert (auch der aktuelle Zählerstand wird im log angzeigt), muß es doch mit iobroker und "smartmeter" auch gehen.edition