NEWS
Test Adapter wireless-mbus v0.9.x
-
Hallo zusammen,
vor weg eine kleine Bitte. Ich ziertiere mich mal selbst:
@lvogt said in Test Adapter wireless-mbus v0.7.x:
ich habe gerade v0.7.9 auf npm publiziert. Die Version bringt nichts neues für euch - aber für mich
Und zwar werden im Debug Log nun sämtliche "Nachrichten" zw. Adapter und "USB Stick" geloggt. Ich hätte gerne von den 4 unterstützten Empfängsmodulen jeweils von 1 oder 2 Nutzern das Log vom Adapterstart und wenn es geht auch noch von einem empfangenen Telegramm. Gerne als PN (oder Chat wie es hier im Forum heißt) direkt an mich.
Warum das ganze? Wie ich ja schon mal erwähnt habe, besitze ich kein einziges dieser Geräte selber. Ich möchte aber gerne mal den Code der die Kommunikation zw Adapter und USB Gerät handhabt aufräumen. (Teilweise sind da wirklich furchtbare Konstrukte drin...)
Dazu habe ich bereits angefangen Simulatoren für die Geräte zu schreiben. Um sicher zu gehen, dass ich da keine falschen Annahmen einbauen hätte ich gerne noch mal einen abgleich mit der Realität.
Gestern beim Lesen des Codes für den gerade diskutierten IMST Stick zB konnte ich mir bei einigen Teilen gar nicht vorstellen, dass es funktioniert...Aktueller Zwischenstand:
- CUL 1/2
- IMST 1/2
- Amber 0/2
- Embit 0/2 (falls die Hardware hier überhaupt jemand verwendet...)
ich habe einen (teilweise) neuen wireless M-Bus Adapter geschrieben. Teilweise bezieht sich darauf, dass ich mich bei diversen anderen Projekten bedient habe (unter anderem beim alten wm-bus und beim mbus Adapter).
Das Paket orientiert sich am ioBroker.mbus Adapter was die Struktur der Datenpunkte angeht - nicht an der merkwürdigen Aufteilung von Wert und Einheit, wie sie der wm-bus Adapter vornimmt.
Generell basiert der Parser für wMBus Telegramme in seinen Wurzeln noch auf der Implementierung aus dem wm-bus Adapter, wurde aber deutlich erweitert und verbessert.Unterstützt werden Module von Amber Wireless, IMST und Embit - CUL Unterstützung ist vorhanden, aber sucht noch weitere Tester!.
https://github.com/lvogt/ioBroker.wireless-mbus
Der Adapter ist mittlerweile auch bei npm und im
latest
ioBroker Repository verfügbar.
Die ursprüngliche Version befindet sich hier (funktioniert mit NodeJS v12 nicht mehr)
https://github.com/ISFH/ioBroker.wmbus -
klasse, werde das heut Abend gleich mal mit einem Amber-Stick und einen wm-Busaufsatz für easymeter-Zähler testen.
@lvogt sagte in [Aufruf] Adapter iobroker.wmbus:
Als Abhängigkeit installiert der Adapter zur Zeit einen serialport Fork von mir der (unter Linux) Symlinks mit einsammelt
bedeutet jetzt was? Könnte die Installation der neuen Abhängigkeit die "normalen" serialport Pakete zerschießen?
-
@Lenny-CB said in [Aufruf] Adapter iobroker.wmbus:
bedeutet jetzt was? Könnte die Installation der neuen Abhängigkeit die "normalen" serialport Pakete zerschießen?
Eigentlich nicht - das wird als "lokales" Paket installiert und hat mit dem Rest nichts zu tun. Ich verwende hier auch Adapter mit dem "normalen" serialport Paket parallel.
-
@lvogt
so grad mal installiert und Stick (Amber Wireless AMB8465) angesteckt.
Einstellungen: Amber Wireless AMB8465; T-Mode; 9600 Baud; kein AES-Key eingetragenLog:
wmbus.0 2019-03-21 12:02:00.283 debug AMBER: Autosleep is disabled wmbus.0 2019-03-21 12:02:00.255 debug AMBER: RSSI is enabled wmbus.0 2019-03-21 12:02:00.249 debug connected set to true wmbus.0 2019-03-21 12:02:00.226 debug connected set to true wmbus.0 2019-03-21 12:02:00.222 debug AMBER: UART_CMD_Out is enabled wmbus.0 2019-03-21 12:02:00.193 debug AMBER: Receiver channel set to T-Mode wmbus.0 2019-03-21 12:02:00.164 debug Created device of type: Amber Wireless AMB8465 wmbus.0 2019-03-21 12:02:00.163 info starting. Version 0.4.3 in /opt/iobroker/node_modules/iobroker.wmbus, node: v8.15.1 wmbus.0 2019-03-21 12:01:50.979 debug sendTo "listUart" to system.adapter.admin.0 from system.adapter.wmbus.0 wmbus.0 2019-03-21 12:01:50.976 info List of port: [{"manufacturer":"AMBER","serialNumber":"xxxxxxxx","pnpId":"usb-AMBER_AMB8465_Wireless_USB_Stick_xxxxxxxx-if00-port0","vendorId":"0403","productId":"6001","symlinks":["/dev/serial/by-id/ wmbus.0 2019-03-21 12:01:50.547 debug sendTo "needsKey" to system.adapter.admin.0 from system.adapter.wmbus.0 wmbus.0 2019-03-21 12:01:50.546 debug sendTo "listReceiver" to system.adapter.admin.0 from system.adapter.wmbus.0
kommen keine Daten, unter Objekts gibt es nur ein "rawdata" welches leer ist. Das Log ist das Selbe wenn ich den AES eintrage.
-
Hm... Bist du dir denn sicher, dass Daten während deines Tests empfangen werden sollten?
Normalerweise sollte im debug Modus, wenn irgendwas schief läuft, fast immer ein Hinweis kommen, was schief gelaufen ist...
-
@lvogt
ja, da sollte auch was kommen. Habe das ESYS-WM20 Modul auf dem Zähler drauf und es bekommt Spannung über die Schnittstelle vom Zähler. Lt. Beschreibung sollten min. alle 20 Sekunden Datentelegramme kommen.
Beschreibung zum Modul:
https://www.easymeter.com/downloads/products/module/ESYS-WM20/BA_ESYS-WM20_Rev14.pdf -
Also prinzipiell sieht das nach einen korrekten Initialisieren des Amber Sticks aus.
Du könntest evtl. in der Datei lib/receiver/amber.js in Zeile 152 mal folgendes reinschreiben:
that.logFunc(data);
Dann den Adapter neu starten und warten ob irgendwas im Log ankommt...
EDIT: Senden des Easymeter Modul ist das ein... wie sieht es denn mit der Reichweite aus?
-
@lvogt
gemacht.
Zeil 149 - 155 der amber.jsonData(data) { let that = this; that.parserBuffer = Buffer.concat([that.parserBuffer, data]); that.logFunc(data); if (that.parserLength == -1) { if (that.parserBuffer.length < 3) { return;
hier da Log dazu:
wmbus.0 2019-03-21 17:21:00.557 debug AMBER: Autosleep is disabled wmbus.0 2019-03-21 17:21:00.555 debug ��?H wmbus.0 2019-03-21 17:21:00.537 debug AMBER: RSSI is enabled wmbus.0 2019-03-21 17:21:00.535 debug �E3 wmbus.0 2019-03-21 17:21:00.526 debug � wmbus.0 2019-03-21 17:21:00.506 debug connected set to true wmbus.0 2019-03-21 17:21:00.506 debug connected set to true wmbus.0 2019-03-21 17:21:00.506 debug AMBER: UART_CMD_Out is enabled wmbus.0 2019-03-21 17:21:00.506 debug ��s wmbus.0 2019-03-21 17:21:00.473 debug AMBER: Receiver channel set to T-Mode wmbus.0 2019-03-21 17:21:00.472 debug ��z wmbus.0 2019-03-21 17:21:00.444 debug Created device of type: Amber Wireless AMB8465 wmbus.0 2019-03-21 17:21:00.443 info starting. Version 0.4.3 in /opt/iobroker/node_modules/iobroker.wmbus, node: v8.15.1
@lvogt sagt:
Senden des Easymeter Modul ist das ein
Ja, ist an.
@lvogt sagt:
wie sieht es denn mit der Reichweite aus
Im Testaufbau ist das Modul ca. 4m Luftlinie (ohne Hindernisse) vom Amber-Stick entfernt.
-
Tja, ... sieht alles soweit richtig aus. Wenn, aber da nach der letzten Meldung nichts mehr kommt, dann kommt einfach gar nichts an.
that.logFunc(data.toString('hex'));
wäre cleverer gewesen (hab da vorhin nicht nachgedacht), dann würden da hübsche Hexstrings statt des unlesenbaren Zeugs stehen und ich könnte nochmal überprüfen, aber der Stick wirklich korrekt auf die Initialisierung antwortet, aber eigentlich sollte es sonst sowieso eine Fehlermeldung irgendwo geben.
Für mich sieht alles danach aus, das einfach kein Telegramm ankommt.
Hast du mal mit anderer Software getestet ob was ankommt?
-
ich muss erst mal ein bissel basteln.
Nachdem du sagtest, dass event. nichts kommt, habe ich nach einem Prog. gesucht mit dem ich sniffen kann. Weiterhin habe ich mal der der Config vom Stick geschaut und die dabei offensichtlich zerschossen.Ergebnis: immer ein Timeout im Log. Das kam sonst nur wenn ich eine andere Baudzahl als 9600 eingestellt habe.
Weist du wie man beim Amber-Stick nen Factory-Reset macht?
@lvogt sagt:
Hast du mal mit anderer Software getestet ob was ankommt?
hast du da eine die gut funktioniert bzw. einen Link zum Download? Welche empfiehlst du?
-
Eine besonders gute Software Empfehlung habe ich leider nicht...
Von Amber selbst gibt es einmal das AMBER Config Center (ACC) - damit solltest du einen Reset machen können, falls der Stick nicht völlig hin ist (hast du damit die Config zerschossen?) und zum Empfangen gibt es den AMBER Commander. Der Commander ist aber alles andere als benutzerfreundlich...
Falls der Stick so konfiguriert wäre, dass er im passenden Mode lauscht, dann reicht aber auch einfach das öffnen des seriellen Ports und du müsstest irgendwas sehen, wenn ein Telegram empfangen wird...
-
@lvogt
Ja nach dem Spielen mir dem Amber Commander ging nix mehr.
Hatte dann mit dem Amber Config Center die FW drüber gebügelt. Habe dann noch ein kleines Tool zum Sniffen gefunden. Leider dort immer "TimeOut NoStartByte"Egal, grad am Broker nochmal angesteckt und dann lief es plötzlich wieder bis
AMBER: Autosleep is disabled
Und dann war mir klar warum nicht empfangen wird. Bei meiner Teststellung habe ich den Zähler nur 1-phasig angeschossen. Das Modul wird aber nur bei Anschluß der Phase 3 mit Spannung versorgt.
Jetzt schaut auch alles gleich viel besser aus (ich lasse mal den Krypto-Kram weg, sonnst muss ich zuviel schwärzen) :
wmbus.0 2019-03-22 12:49:20.731 debug Value ESY-60790220.data.8-0-VIF_ELECTRIC_POWER: 0 wmbus.0 2019-03-22 12:49:20.731 debug Value ESY-60790220.data.7-0-VIF_ELECTRIC_POWER: 0 wmbus.0 2019-03-22 12:49:20.731 debug Value ESY-60790220.data.6-0-VIF_ELECTRIC_POWER: 0 wmbus.0 2019-03-22 12:49:20.731 debug Value ESY-60790220.data.5-0-VIF_ELECTRIC_POWER: 0 wmbus.0 2019-03-22 12:49:20.731 debug Value ESY-60790220.data.4-0-VIF_ENERGY_WATT: 210 wmbus.0 2019-03-22 12:49:20.730 debug Value ESY-60790220.data.3-0-VIF_ENERGY_WATT: 960 wmbus.0 2019-03-22 12:49:20.730 debug Value ESY-60790220.data.2-0-VIF_ENERGY_WATT: 188.8 wmbus.0 2019-03-22 12:49:20.730 debug Value ESY-60790220.data.1-0-VIF_ENERGY_WATT: 1185.1 wmbus.0 2019-03-22 12:49:20.730 debug Updating device: ESY-60790220 wmbus.0 2019-03-22 12:49:20.730 debug VIF_ELECTRIC_POWER: Value raw 0 value calc 0 wmbus.0 2019-03-22 12:49:20.730 debug VIF_ELECTRIC_POWER: Value raw 0 value calc 0 wmbus.0 2019-03-22 12:49:20.730 debug VIF_ELECTRIC_POWER: Value raw 0 value calc 0 wmbus.0 2019-03-22 12:49:20.729 debug VIF_ELECTRIC_POWER: Value raw 0 value calc 0 wmbus.0 2019-03-22 12:49:20.729 debug VIF_ENERGY_WATT: Value raw 21 value calc 210 wmbus.0 2019-03-22 12:49:20.729 debug VIF_ENERGY_WATT: Value raw 96 value calc 960 wmbus.0 2019-03-22 12:49:20.729 debug VIF_ENERGY_WATT: Value raw 1888 value calc 188.8 wmbus.0 2019-03-22 12:49:20.729 debug VIF_ENERGY_WATT: Value raw 11851 value calc 1185.1
-
Also fürs erste alles in Ordnung?
Mich würde noch interessieren ob das Modul jetzt im Security Mode 7 sendet. Das ist bisher nämlich (fast) ungetestet.
-
@lvogt : nochmals vielen Dank, auf solch ein Adapter habe ich schon lang gewartet.
@lvogt sagte in [Aufruf] Adapter iobroker.wmbus:
Also fürs erste alles in Ordnung?
Im Groben und Ganzen läuft das erst ein einmal .
@lvogt sagte in [Aufruf] Adapter iobroker.wmbus:
Mich würde noch interessieren ob das Modul jetzt im Security Mode 7 sendet.
hmmm... schau mal, dass steht dazu im Manual Link zum pdf:
2 Anmerkungen hätte ich dennoch:
-
Die Namen der Datenpunkte kommen aus dem Gerät selbst? Könnte man da noch ein "Mapping" einbauen oder wäre das kontraproduktiv?
-
ist es Möglich einen "Faktor" einzubauen? Speziell kommen die Werte hier in "Wh" aus den Gerät. "kWh" wäre natürlich schöner.
Heut Abend werde ich mal eine Last über alle 3 Phasen legen und beobachten.
-
-
@Lenny-CB said in [Aufruf] Adapter iobroker.wmbus:
hmmm... schau mal, dass steht dazu im Manual Link zum pdf:
Ja das hatte ich im Handbuch gesehen, aber so verstanden, dass es konfigurierbar ist, ob Mode 5 oder 7 verwendet wird. Falls was von "Kenc: " und "Kmac: " im Debug-Log steht, ist es Mode 7.
2 Anmerkungen hätte ich dennoch:
- Die Namen der Datenpunkte kommen aus dem Gerät selbst? Könnte man da noch ein "Mapping" einbauen oder wäre das kontraproduktiv?
Die Namen sind im Adapter hinterlegt, kommen aber aus der M-Bus bzw. OMS Spezifikation. Da jetzt nochmal ein Mapping drüber zu legen, ginge zwar schon irgendwie, finde ich aber nicht so gut. Du kannst ja einfach manuell den Text ändern. Wenn der State mal angelegt wurde, dürfte der Text vom Adapter nicht mehr geändert werden.
- ist es Möglich einen "Faktor" einzubauen? Speziell kommen die Werte hier in "Wh" aus den Gerät. "kWh" wäre natürlich schöner.
Auch hier gilt wieder, irgendwie geht alles, aber nur weil dir gerade zu diesem Zähler kWh sinnvoller vorkommen, kann das für jemanden anderen/einen anderen Zähler ganz anders sein.
Hart im Adapter einbauen fällt mMn also raus und für was einzeln konfigurierbares fehlt mir gerade die Zeit (und auch die Lust )
- Die Namen der Datenpunkte kommen aus dem Gerät selbst? Könnte man da noch ein "Mapping" einbauen oder wäre das kontraproduktiv?
-
@lvogt sagte in [Aufruf] Adapter iobroker.wmbus:
Falls was von "Kenc: " und "Kmac: " im Debug-Log steht, ist es Mode 7.
tut es:
wmbus.0 2019-03-22 16:38:24.106 debug Kmac: 94e69dxxxxxxxxxxxxxxxxxxxxxxxxxxx wmbus.0 2019-03-22 16:38:24.106 debug Kenc: a85bec5xxxxxxxxxxxxxxxxxxxxxxxxxx
-
@lvogt :
wo kann ich sehen wie die einzelnen Phasen aus dem Payload geholt werden?
Ich habe auf der 3. Phase einen Momentanverbrauch von 49,5 MW (ja, Mega angezeigt werden 49578494 Wh ) das is ja nen bissel arg viel.
Wie bekomme ich raus ob das Modul bums sendet oder was im Code falsch läuft? -
Wenn kein Fehler auftritt, werden gerade tatsächlich nirgendwo die Rohdaten des Telegramms ausgespuckt (sollte ich mal noch ändern...). Evtl. kann man sich aber am Debug Log entlang hangeln.
Vermutlich würde der Teil ab "Dec: " reichen (da dürften dann auch keine Keys mehr drin stehen) - wenn du willst kannst du mir aber auch mal einen kompletten Log Auszug per PN schicken.
Prinzipiell klingen so große Zahlen, aber immer eher nach Problemen auf der Zähler-Seite.
-
@lvogt sagte in [Aufruf] Adapter iobroker.wmbus:
Prinzipiell klingen so große Zahlen, aber immer eher nach Problemen auf der Zähler-Seite.
Fehler gefunden. Lag nicht am Programm sondern am Versuchsaufbau. Modul hat korrekt gesendet.
-
So ich habe in der Zwischenzeit ein paar Kleinigkeiten am Adapter ergänzt. Heute gibt es aber ein größeres Update - wobei beide neuen Features sehr wenig getestet sind:
@Lenny-CB Zum einen kann jetzt doch in der Konfiguration eingestellt werden, dass Energien (statt in Wh oder J) jetzt in kWh ausgegeben werden. Dabei ist aber zu beachten, dass Einheiten von bestehende States nicht verändert werden. Neu eintreffende Werte, werden allerdings umgerechnet (und passen dann also nicht zur angezeigten Einheit)!
Zum anderen habe ich versucht Unterstützung für Techem Zähler einzubauen. Dazu zählen Wasserzähler, Heizkostenverteiler und Wärmemengenzähler. Ich habe mich hier wieder beim FHEM Projekt bedient. Ich habe keine Ahnung ob die Einheiten der Wasser- und Wärmemengenzähler korrekt sind und nehme gerne Hinweise dazu entgegen