NEWS
Adapter "smartmeter"
-
@apollon
die Datenpunkte hab ich !! Bei inbetriebnahme gestern Nachmittag wurde der Zählerstand übertragen, seit dem nichts mehr
-
Das kann aber nach einem reboot auch passieren… Morgen kriegen wir das hin. `
Ja, hast schon Recht mit dem Reboot. Allerdings wird ja von manchen Leuten suggeriert dass Linux stabiler wäre als Windows
Nein - Spaß beiseite. Wenn Du uns helfen kannst das noch korrekt hinzubekommen bin ich natürlich auch gerne dabei was dazuzulernen. `
Also bei mir hat die Anleitung von der Volkszähler-Seite funktioniert … aber Achtung da sind Unterschiede zwischen Debian und Ubuntu ... Also vorher lesen und das "richtige" machen
@ein-bayer: Wenns nicht aus Datenpunkt drin ist kommt es nicht als Daten. Hatten wir glaube weiter oben schon ... da wäre die einzig Sinnvolle Option per Javascript differenzen der Zählerstände zu nehmen `
Naja bei mir isses das IOBroker SD Image auf einer Raspberry liegt. Wie gesagt ich habe mit Linux nicht viel zu tun, wüste nicht mal wo die Befehle eingegeben werden müssen.
-
Hallo chemieka,
ein klein wenig weiter bin ich schon;-) Um Befehle auf deinem RasPi eingeben zu können brauchst du ein sog. Terminalfenster. Ich empfehle dir das Programm "PuTTY". Um Dateien zu editieren nehme ich allerdings auch nicht das Terminal (obwohl das schon geht - ist mir aber ehrlich gesagt zu steinzeitlich), dafür nehme ich FileZilla. Installiere dir mal die beiden Programme und schau ob du weiterkommst - ansonsten frag noch mal.
Ich habe beide Varianten von der Volkszähler-Seite ausprobiert, sowohl .conf als auch .rules als Dateiendung - hat beides nicht funktioniert. Was mir dabei völlig schleierhaft ist -warum soll die DAtei "99-lesekopf" heißen wenn dann das Gerät als "lesekopf0" definiert wird? Und nächste Frage - wie definiert man dann den zweiten? Neue Datei? Wie muss die dann heißen? Oder nur zusätzliche Zeile in der Datei?
-
Hallo chemieka,
ein klein wenig weiter bin ich schon;-) Um Befehle auf deinem RasPi eingeben zu können brauchst du ein sog. Terminalfenster. Ich empfehle dir das Programm "PuTTY". Um Dateien zu editieren nehme ich allerdings auch nicht das Terminal (obwohl das schon geht - ist mir aber ehrlich gesagt zu steinzeitlich), dafür nehme ich FileZilla. Installiere dir mal die beiden Programme und schau ob du weiterkommst - ansonsten frag noch mal.
Ich habe beide Varianten von der Volkszähler-Seite ausprobiert, sowohl .conf als auch .rules als Dateiendung - hat beides nicht funktioniert. Was mir dabei völlig schleierhaft ist -warum soll die DAtei "99-lesekopf" heißen wenn dann das Gerät als "lesekopf0" definiert wird? Und nächste Frage - wie definiert man dann den zweiten? Neue Datei? Wie muss die dann heißen? Oder nur zusätzliche Zeile in der Datei? `
Schau dir das mal an http://www.raspifun.de/viewtopic.php?t=4
Hier ist alles step by step beschrieben. auch wie du mit putty auf dein Raspi kommst.
Die Zahl 99 vor Lesekopf besagt nur die Reihenfolge in der die Geräte geladen werden. Willst du ein Gerät vor einem anderen laden, dann muss seine Nummer kleiner sein.
Was danach steht ist egal, wobei Lesekopf ist schon ganz gut. Also 99-lesekopf.rules ist schon i.O. Die Datei muss auf rules enden und sollte in etwa so aussehen:
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="********", SYMLINK+="lesekopf0"
Sterne mit entsprechenden Werten ersetzen. Und dann noch````
sudo udevadm trigger -
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!