NEWS
Adapter "smartmeter"
-
Ich halte nochmal fest die Datei muss: 99-lesekopf.rules heißen
Und in der Datei muss die Codezeile rein. Bei zwei Leseköpfen dann bestimmt zwei Zeilen oder?
Dann hochladen in welchen Ordner?
Und am Ende mit dem Befehl starten.
-
Ich halte nochmal fest die Datei muss: 99-lesekopf.rules heißen
Und in der Datei muss die Codezeile rein. Bei zwei Leseköpfen dann bestimmt zwei Zeilen oder?
Dann hochladen in welchen Ordner?
Und am Ende mit dem Befehl starten. `
ja. du erstellst die Datei /etc/udev/rules.d/99-lesekopf.rulesDa rein schreibst du:
SUBSYSTEMS=="usb",KERNEL=="ttyUSB0", ATTRS{serial}=="********", SYMLINK+="lesekopf0" SUBSYSTEMS=="usb",KERNEL=="ttyUSB1", ATTRS{serial}=="********", SYMLINK+="lesekopf1"
für * die entsprechende Seriennummer. Danach aktivieren. Das sollte auch so gehen:
cd /etc/udev/rules.d/ sudo echo 'SUBSYSTEMS=="usb",KERNEL=="ttyUSB0", ATTRS{serial}=="********", SYMLINK+="lesekopf0"' > 99-lesekopf.rules sudo echo 'SUBSYSTEMS=="usb",KERNEL=="ttyUSB1", ATTRS{serial}=="********", SYMLINK+="lesekopf1"' >> 99-lesekopf.rules sudo udevadm trigger
Serial nicht vergessen!
-
Das mit dem Serial ist klar.
Hast du nun die erste oder zweite Variante?
Würde sonst die erste Variante wählen und dann starten.
Wie bekomme ich raus obs geklappt hat?
-
Das mit dem Serial ist klar.
Hast du nun die erste oder zweite Variante?
Würde sonst die erste Variante wählen und dann starten.
Wie bekomme ich raus obs geklappt hat? `
was meinst du? mit zwei Varianten?
cd /etc/udev/rules.d/ sudo echo 'SUBSYSTEMS=="usb",KERNEL=="ttyUSB0", ATTRS{serial}=="********", SYMLINK+="lesekopf0"' > 99-lesekopf.rules sudo echo 'SUBSYSTEMS=="usb",KERNEL=="ttyUSB1", ATTRS{serial}=="********", SYMLINK+="lesekopf1"' >> 99-lesekopf.rules sudo udevadm trigger
Das sind die Befehle:
1. wechselt ins /etc/udev/rules.d/ Verzeichnis
2. Erzeugt die Datei 99-lesekopf.rules mit dem Inhalt SUBSYSTEMS=="usb",KERNEL=="ttyUSB0", ATTRS{serial}=="********", SYMLINK+="lesekopf0" (Anpassen!!!)
3. Fügt in die Datei 99-lesekopf.rules den Inhalt SUBSYSTEMS=="usb",KERNEL=="ttyUSB1", ATTRS{serial}=="********", SYMLINK+="lesekopf1" ein (Anpassen!!!)
4. restartet udevadm
-
@apollon
die Datenpunkte hab ich !! Bei inbetriebnahme gestern Nachmittag wurde der Zählerstand übertragen, seit dem nichts mehr `
Was sagt log? Andere Werte werden aktualisiert?
-
@apollo
ich hab jetzt nochmals nachgesehen und überlegt. ich hab teilweise auch den falschen wert beobachtet.
Der Wert 1-0:16_7_0255.value war für mich der Wert den ich beziehe. Dem ist ja nicht so , das ist ein rechnerischer wert zwischen Bezug und Ertrag. Die Werte 1-0:2_8_2255.value und 1-0:1_8_2*255.value haben ihren anfangswert von 0, da kommt auch nix. Da vermute ich , wie du ja auch schon vermutet hast, das die nicht übergeben werden, eigentlich schade da ich dann ja kein Diagramm der aktuellen Einspeisung machen kann oder?
Die Gesamtwerte Bezug und Verbrauch aktualisieren sich.
Was ist eigentlich der Unterschied zwischen :
1-0:2_8_1255.value und 1-0:2_8_0255.value ?
-
@apollo
ich hab jetzt nochmals nachgesehen und überlegt. ich hab teilweise auch den falschen wert beobachtet.
Der Wert 1-0:16_7_0255.value war für mich der Wert den ich beziehe. Dem ist ja nicht so , das ist ein rechnerischer wert zwischen Bezug und Ertrag. Die Werte 1-0:2_8_2255.value und 1-0:1_8_2*255.value haben ihren anfangswert von 0, da kommt auch nix. Da vermute ich , wie du ja auch schon vermutet hast, das die nicht übergeben werden, eigentlich schade da ich dann ja kein Diagramm der aktuellen Einspeisung machen kann oder?
Die Gesamtwerte Bezug und Verbrauch aktualisieren sich.
Was ist eigentlich der Unterschied zwischen :
1-0:2_8_1255.value und 1-0:2_8_0255.value ? `
laut Google:
129-129:199.130.3*255 - Manufacturer
1-0:0.0.9*255 - ServerId / serial number
1-0:1.8.0*255 - Total kWh consumption (in)
1-0:1.8.1*255 - Tariff 1 kWh consumption (in)
1-0:1.8.2*255 - Tariff 2 kWh consumption (in)
1-0:2.8.0*255 - Total kWh delivery (out)
1-0:2.8.1*255 - Tariff 1 kWh delivery (out)
1-0:2.8.2*255 - Tariff 2 kWh delivery (out)
1-0:16.7.0*255 - Current Delivery Watt (out)
-
Unter "Objekte" solltet Ihr als Name der Datenpunkte auch etwas textuelles in der Art sehen … ich glaube in der "Events"-Sicht wird der Name nicht angezeigt. Aber korrekt, "Tarif 1" und "Tarif 2" wäre für sowas wie Nebenzeit- Hauptzeittarife hat
-
Super, hast Du auch noch ein log als er wegen dem 0x3b gemeckert hatte? `
Den Fehler habe ich komischerweise nicht in meinen Logfiles. ein grep 0x3b im /opt/iobroker/log/ findet nichts.Wann kann ich die Korrektur von den 0x77er testen?
Kein Streß, ich kann warten!
-
So ich denke ich hab das mit der USB Zuordnung mit Hilfe von Putty und FileZilla hinbekommen.
Muss mal sehen woran ich das nun sehe das es richtig ist.
<size size="150">Nochmal vielen Dank an alle hier Beteiligten</size>
cd /etc/udev/rules.d/ sudo echo 'SUBSYSTEMS=="usb",KERNEL=="ttyUSB0", ATTRS{serial}=="01065F70", SYMLINK+="lesekopf0"' > 99- lesekopf.rules sudo echo 'SUBSYSTEMS=="usb",KERNEL=="ttyUSB1", ATTRS{serial}=="01065B72", SYMLINK+="lesekopf1"' >> 99- lesekopf.rules sudo udevadm trigger
-
heute hatte ich leider auch den SIGABRT-Fehler. Insgesamt 18 mal.
Ich hänge mal die Log-Datei hier an.
Ist nur ein Ausschnitt, aber bei LogLevel Debug kommt da ne Menge zusammen. Was mir auffällt ist dass das Log mit Unmengen [NUL]-Werten zugemüllt wird.Ich hoffe, Du kommst damit dem Fehler ein Stück weiter auf die Spur. Wenn ich noch was zum Debuggen beitragen kann sag Bescheid.
Gruß Thilo
-
Wann kann ich die Korrektur von den 0x77er testen? `
Offiziell mit neuer Version: Wenn das hier https://github.com/dspautz/OpenSML/pull/4 akzeptiert wurde und ich dann ne neue Version gepulisht hab.
Manuell:
Im node_modules-Verzeichnis gibt es das "open-sml" Verzeichnis. Du musst das File hier austauschen: https://github.com/Apollon77/OpenSML/bl … SmlList.js mit der hier von dem Github Link. Dann kannste mal Adapter neu starten und schauen was passiert
Bin gespannt
Ingo F
-
heute hatte ich leider auch den SIGABRT-Fehler. Insgesamt 18 mal.
Ist nur ein Ausschnitt, aber bei LogLevel Debug kommt da ne Menge zusammen. Was mir auffällt ist dass das Log mit Unmengen [NUL]-Werten zugemüllt wird. `
Danke!
Die NUL ist nur blödheit beim Logging. Wird mit der nächsten Version gefixt. kannst aktuell Debug ausschalten.
ich bin jetzt soweit das es irgendein Speichherproblem im node-Prozess mit Buffern ist. Hab bissl experimentiert und versucht umzubauen, aber ändert nix.
Ich versuche das jetzt "kleiner" nachzustellen das ich es den node Entwicklern geben kann. Und mit node 7 will ichs auch noch testen …
Also erstmal: Leider akzeptieren .. melde mich wenn ich was neues habe
-
Wann kann ich die Korrektur von den 0x77er testen? `
Offiziell mit neuer Version: Wenn das hier https://github.com/dspautz/OpenSML/pull/4 akzeptiert wurde und ich dann ne neue Version gepulisht hab.
Manuell:
Im node_modules-Verzeichnis gibt es das "open-sml" Verzeichnis. Du musst das File hier austauschen: https://github.com/Apollon77/OpenSML/bl … SmlList.js mit der hier von dem Github Link. Dann kannste mal Adapter neu starten und schauen was passiert
Bin gespannt
Ingo F `
Heidewitzka, was man hier alles sehen kann!Vielen Dank. Morgen gibts mehr infos!
1597_js2.png -
Gut - alles klar. Ist erstmal kein Problem. Der Adapter läuft ja nach dem automatischen Restart nach dem Fehler sogar problemlos weiter.
Also - kein Stress…ich warte bis du soweit bist.
-
Und doch noch der 0x3c Fehler:
! ````
2017-02-09 22:41:05.289 - error: smartmeter.0 uncaught exception: Error
while parsing SML message: Error: Unknown TL-Field 0x3c for OctetString [Offset
: 120]!: Message: 1b1b1b1b010101017609000000000674d58b62016200726301017601010900
0000000226f1db0b064841470109a8eb2f5c0101636aba007609000000000674d58c620162007263
070177010b064841470109a8eb2f5c070100620affff72620165038ccf3bf17677078181c78203ff
01010101044841033cf5860177070100010802ff0101621e52ff5327100177070100100700ff0101
621b52005301230177070100240700ff0101621b52ff53041e01770701001f0700ff0101622152fe
5300480177070100200700ff0101622352fe5358d60177070100380700ff0101621b52ff5301f201
77070100330700ff0101622152fe5300330177070100340700ff0101622352fe53591c0177070100
4c0700ff0101621b52ff5305470177070100470700ff0101622152fe5300570177070100480700ff
0101622352fe5359790177070100603200020101620952ff5300f40177078181c78205ff01010101
83028dac263c220b9f1d489336b5c0a793a2826273774faf6fb64b41640e45732704e6d59fc08e96
016d9dabec88ea55e980017707010060320303010162235200628d01770701006032030401016223
520062ef017707010060320003010162095200520a017707010060320004010162095200521d0177
07010060320005010162095200520901010163dfc1007609000000000674d5946201620072630201
710163af4f00001b1b1b1b1a0160f9
2017-02-09 22:41:05.295 - error: smartmeter.0 Error: Error while parsin
g SML message: Error: Unknown TL-Field 0x3c for OctetString [Offset: 120]!: Mess
age: 1b1b1b1b010101017609000000000674d58b620162007263010176010109000000000226f1d
b0b064841470109a8eb2f5c0101636aba007609000000000674d58c620162007263070177010b064
841470109a8eb2f5c070100620affff72620165038ccf3bf17677078181c78203ff0101010104484
1033cf5860177070100010802ff0101621e52ff5327100177070100100700ff0101621b520053012
30177070100240700ff0101621b52ff53041e01770701001f0700ff0101622152fe5300480177070
100200700ff0101622352fe5358d60177070100380700ff0101621b52ff5301f2017707010033070
0ff0101622152fe5300330177070100340700ff0101622352fe53591c01770701004c0700ff01016
21b52ff5305470177070100470700ff0101622152fe5300570177070100480700ff0101622352fe5
359790177070100603200020101620952ff5300f40177078181c78205ff0101010183028dac263c2
20b9f1d489336b5c0a793a2826273774faf6fb64b41640e45732704e6d59fc08e96016d9dabec88e
a55e980017707010060320303010162235200628d01770701006032030401016223520062ef01770
7010060320003010162095200520a017707010060320004010162095200521d01770701006032000
5010162095200520901010163dfc1007609000000000674d5946201620072630201710163af4f000
01b1b1b1b1a0160f9
at SmlProtocol.handleMessage (/opt/iobroker/node_modules/iobroker.smartmeter
/node_modules/smartmeter-obis/lib/protocols/SmlProtocol.js:48:15)
at SerialPort. <anonymous>(/opt/iobroker/node_modules/iobroker.smartmeter/no
de_modules/smartmeter-obis/lib/transports/SerialResponseTransport.js:52:41)
at emitOne (events.js:77:13)
at SerialPort.emit (events.js:169:7)
at SerialPort.module.exports.raw (/opt/iobroker/node_modules/iobroker.smartm
eter/node_modules/smartmeter-obis/node_modules/serialport/lib/parsers.js:7:13)
at SerialPort._emitData (/opt/iobroker/node_modules/iobroker.smartmeter/node
_modules/smartmeter-obis/node_modules/serialport/lib/serialport.js:313:18)
at SerialPort. <anonymous>(/opt/iobroker/node_modules/iobroker.smartmeter/no
de_modules/smartmeter-obis/node_modules/serialport/lib/serialport.js:293:14)
at SerialPort. <anonymous>(/opt/iobroker/node_modules/iobroker.smartmeter/no
de_modules/smartmeter-obis/node_modules/serialport/lib/serialport.js:306:7)
at FSReqWrap.wrapper [as oncomplete] (fs.js:576:17)
2017-02-09 22:41:05.299 - warn: smartmeter.0 Exception: Error: Error wh
ile parsing SML message: Error: Unknown TL-Field 0x3c for OctetString [Offset: 1
20]!: Message: 1b1b1b1b010101017609000000000674d58b62016200726301017601010900000
0000226f1db0b064841470109a8eb2f5c0101636aba007609000000000674d58c620162007263070
177010b064841470109a8eb2f5c070100620affff72620165038ccf3bf17677078181c78203ff010
10101044841033cf5860177070100010802ff0101621e52ff5327100177070100100700ff0101621
b52005301230177070100240700ff0101621b52ff53041e01770701001f0700ff0101622152fe530
0480177070100200700ff0101622352fe5358d60177070100380700ff0101621b52ff5301f201770
70100330700ff0101622152fe5300330177070100340700ff0101622352fe53591c01770701004c0
700ff0101621b52ff5305470177070100470700ff0101622152fe5300570177070100480700ff010
1622352fe5359790177070100603200020101620952ff5300f40177078181c78205ff01010101830
28dac263c220b9f1d489336b5c0a793a2826273774faf6fb64b41640e45732704e6d59fc08e96016
d9dabec88ea55e980017707010060320303010162235200628d01770701006032030401016223520
062ef017707010060320003010162095200520a017707010060320004010162095200521d0177070
10060320005010162095200520901010163dfc1007609000000000674d5946201620072630201710
163af4f00001b1b1b1b1a0160f9
2017-02-09 22:41:05.808 - info: smartmeter.0 terminating
2017-02-09 22:41:05.882 - error: host.miniyou instance system.adapter.s
martmeter.0 terminated with code 0 (OK)
2017-02-09 22:41:05.889 - info: host.miniyou Restart adapter system.ada
pter.smartmeter.0 because enabled</anonymous></anonymous></anonymous>Super Arbeit!
-
Und doch noch der 0x3c Fehler: `
Kannst Du den immer reproduzieren? bzw. gestern war es doch noch 0x3b, oder ?! Ist das ein anderer Zähler oder wo kommt das her. hast Du ne Typenbezeichnung?
Also hier gibts wieder nen SML-protokollverstoß. Die Listeinträge sind einfach komisch/falsch aufgebaut und haben mehrere Daten anders/falsch
-
Und doch noch der 0x3c Fehler: `
Kannst Du den immer reproduzieren? bzw. gestern war es doch noch 0x3b, oder ?! Ist das ein anderer Zähler oder wo kommt das her. hast Du ne Typenbezeichnung?Also hier gibts wieder nen SML-protokollverstoß. Die Listeinträge sind einfach komisch/falsch aufgebaut und haben mehrere Daten anders/falsch `
1. Es ist ein HAGER EHZ363W5 https://www.hager.de/sonderprodukte/ehz … #Downloads2. Der Lesekopf ist ein HAGER EHZ001K https://www.hager.de/zaehlerplatzsystem … #Downloads Der rückseitig verbaut ist. Mit dem Udo-Kopf hatte ich auf der Vorderseite die standard OBIS Informationen ausgelesen. Mehr gab es nicht. Die hintere Schnittstelle scheint die erweiterte OBIS Infos auszugeben.
Datentelegramm nach FNN Lastenheft EDL: OBIS-Kennzahl Inhalt 81 81 C7 82 03 FF Hersteller-Identifikation 01 00 00 00 09 FF Geräteeinzelidentifikation 01 00 01 08 00 FF Zählerstand Totalregister 01 00 01 08 01 FF Zählerstand Tarif 1 01 00 01 08 02 FF Zählerstand Tarif 2 Statusinformation 01 00 10 07 00 FF aktuelle Wirkleistung 01 00 01 11 00 FF (nur rückseitige Schnittstelle) letzter signierter Total-Zählerstand 81 81 C7 82 05 FF öffentlicher Schlüssel
Zusatztelegramm (optional): OBIS-Kennzahl Inhalt
01 00 24 07 00 FF: Wirkleistung L1
01 00 38 07 00 FF: Wirkleistung L2
01 00 4C 07 00 FF: Wirkleistung L3
01 00 60 32 00 02: Aktuelle Chiptemperatur
01 00 60 32 00 03: Minimale Chiptemperatur
01 00 60 32 00 04: Maximale Chiptemperatur
01 00 60 32 00 05: Gemittelte Chiptemperatur
01 00 60 32 03 03: Spannungsminimum
01 00 60 32 03 04: Spannungsmaximum
01 00 1F 07 00 FF: Strom L1
01 00 20 07 00 FF: Spannung L1
01 00 33 07 00 FF: Strom L2
01 00 34 07 00 FF: Spannung L2
01 00 47 07 00 FF: Strom L3
01 00 48 07 00 FF: Spannung L3Logbuch: Der Zähler besitzt ein Logbuch in welchem verschiedene Ereignisse gespeichert werden. Das Logbuch wird mit OBIS Kennzahl 81 81 C7 89 E1 FF angesprochen. Ereignisse nach FNN Lastenheft EDL, Version 1.1: OBIS Kennzahl 81 81 C7 89 E2 FF Phasenwechsel: Ereignis-Code 0x00010001 Stellen der System-Uhr wenn die Änderung größer als +/-27s ist: Ereignis-Code 0x0001000E Wechsel der System-Uhr in den Zustand „asynchron“: Ereignis-Code 0x0001000F Fatalen Fehler erkannt: Ereignis-Code 0x00010010 Manipulation erkannt: Ereignis-Code 0x00010011 Zusatzereignisse (optional) OBIS Kennzahl 81 81 C7 90 D1 FF Über-/Unterspannung: Spannungswert Ereignis-Code 0x48470002 ```` Alles Infos sind aus [https://www.hager.de/files/download/0/4 … Z1000B.PDF](https://www.hager.de/files/download/0/447_1/0/6EHZ1000B.PDF) aus dem o.g Link. Vielleicht findest du dort noch mehr Informationen. Wenn es um die Fehlermeldung geht, dann werde ich heute Abend noch was prüfen. Wie ich schon geschrieben habe, lese ich die Werte im Moment minütlich per conjob mit meinem eigenen Script. Das Skript war aber nicht abgeschaltet, als ich smartmeter getestet habe. Heute Abend werde ich alles abschalten und den smartmeter ausgiebig testen. Vielleicht gab es irgendwelche Seiteneffekte wenn beide Scripte liefen. Was du bis jetzt erreicht hast ist große Klasse. Ich hoffe, dass der Fahler aus dem optionalen OBIS Code resultiert, weil dieser bisher nicht implementiert wurde. Dann könnte man den Parser einfach um den Code erweitern. Aber was erzähle ich dir, du bist der Experte. Also nochmal vielen Dank für deine Arbeit. a200.
-
Was du bis jetzt erreicht hast ist große Klasse. Ich hoffe, dass der Fahler aus dem optionalen OBIS Code resultiert, weil dieser bisher nicht implementiert wurde. Dann könnte man den Parser einfach um den Code erweitern. Aber was erzähle ich dir, du bist der Experte. `
Danke.An den an sich optionalen Codes sollte es nicht liegen weil die korrekt ausgelesen werden. Faktisch würde es heissen das Sie zusätzlich zu eigenen OBIS-IDs 8wie gesagt die sind kein Stress) auch das SML-protokoll erweitert haben … kann ich irgendwie nicht glauben.
Siehst Du irgendwo die Firmware-Version des Zählers?! Dann könnte man bei Hager mal anfragen ...
Ingo F
-
Was du bis jetzt erreicht hast ist große Klasse. Ich hoffe, dass der Fahler aus dem optionalen OBIS Code resultiert, weil dieser bisher nicht implementiert wurde. Dann könnte man den Parser einfach um den Code erweitern. Aber was erzähle ich dir, du bist der Experte. `
Danke.An den an sich optionalen Codes sollte es nicht liegen weil die korrekt ausgelesen werden. Faktisch würde es heissen das Sie zusätzlich zu eigenen OBIS-IDs 8wie gesagt die sind kein Stress) auch das SML-protokoll erweitert haben … kann ich irgendwie nicht glauben.
Siehst Du irgendwo die Firmware-Version des Zählers?! Dann könnte man bei Hager mal anfragen ...
Ingo F ` Im Display nicht. Hab mir von meiner Frau ein Foto schicken lassen!
Laut der Doku wird die FW-Version beim Hochfahren angezeigt. Aber das kann ich schlecht machen… :roll:
1597_111.png
1597_112.png