WMBUS: Unterschied zwischen den Versionen
Krikan (Diskussion | Beiträge) (FHEM(R)) |
Kaihs (Diskussion | Beiträge) (→Links) |
||
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 8: | Zeile 8: | ||
[[WMBUS]] ist ein Modul zur Dekodierung von Wireless M-Bus Nachrichten. Solche Nachrichten werden z. B. von Zählern für Wasser, Wärme, Gas und Elektrizität ausgestrahlt. | [[WMBUS]] ist ein Modul zur Dekodierung von Wireless M-Bus Nachrichten. Solche Nachrichten werden z. B. von Zählern für Wasser, Wärme, Gas und Elektrizität ausgestrahlt. | ||
Wireless M-Bus ist ein Standardprotokoll das von unterschiedlichen Herstellern unterstützt wird. | Wireless M-Bus ist ein Standardprotokoll das von unterschiedlichen Herstellern unterstützt wird. | ||
Das Protokoll unterstützt unterschiedliche Kodierungen des Funksignals, im wesentlichen den | Das Protokoll unterstützt unterschiedliche Kodierungen des Funksignals, im wesentlichen den S-Mode, T-Mode und C-Mode. Der Empfänger (z. B. ein CUL) muss den selben Modus nutzen wie der Sender (der Zähler). | ||
Wireless M-Bus unterstützt optional die Verschlüsselung der Daten | Wireless M-Bus unterstützt optional die Verschlüsselung der Daten. | ||
Die von einem Zähler gesendeten Daten können sehr unterschiedlich sein und hängen u. a. vom Zählertyp und dessen Hersteller ab. | Die von einem Zähler gesendeten Daten können sehr unterschiedlich sein und hängen u. a. vom Zählertyp und dessen Hersteller ab. | ||
== Voraussetzungen == | == Voraussetzungen == | ||
Das Modul interpretiert nur die Nachrichten die von einen geeigneten Empfänger empfangen werden. Aktuell kann ein [[CUL]] und verwandte Geräte die die culfw[http://culfw.de/culfw.html] verwenden sowie ein Amber Wireless AMB8465M dafür verwendet werden. In der culfw muss die Unterstützung des WMBUS-Protokolls aktiviert sein (#define HAS_MBUS). Bei einem CUL mit der Hardwareversion V4 ist das nicht der Fall. | Das Modul interpretiert nur die Nachrichten die von einen geeigneten Empfänger empfangen werden. Aktuell kann ein [[CUL]] und verwandte Geräte die die culfw[http://culfw.de/culfw.html] verwenden sowie ein Amber Wireless AMB8465M dafür verwendet werden. In der culfw muss die Unterstützung des WMBUS-Protokolls aktiviert sein (#define HAS_MBUS in der Datei board.h des Deviceverzeichnisses). Bei einem CUL mit der Hardwareversion V4 ist das nicht der Fall. | ||
Der CUL muss in FHEM mittels Attribut rfmode=WMBus_S oder | Der CUL muss in FHEM mittels Attribut rfmode=WMBus_S, WMBus_T oder WMBus_C in den zum Zähler passenden Empfangsmodus versetzt werden. | ||
== Anwendung == | == Anwendung == | ||
Zeile 21: | Zeile 21: | ||
Alternativ kann ein Device manuell angelegt werden. Dazu wird der Hersteller, die Seriennummer, die Version und der Typ (Wasser, Gas, ...) des Zählers benötigt. | Alternativ kann ein Device manuell angelegt werden. Dazu wird der Hersteller, die Seriennummer, die Version und der Typ (Wasser, Gas, ...) des Zählers benötigt. | ||
Sind die Daten verschlüsselt wird auch noch der passende Schlüssel benötigt um die Daten entschlüsseln zu können. | Sind die Daten verschlüsselt wird auch noch der passende Schlüssel benötigt um die Daten entschlüsseln zu können. | ||
== Verschlüsselung == | |||
Die Daten können auf drei verschiedene Arten verschlüsselt sein: | |||
# Security profile A/Symmetric encryption with Mode 5 | |||
# Security profile B/Advanced symmetric encryption with Mode 7 | |||
# Security profile C/Asymmetric encryption with Mode 13 | |||
Das Modul unterstützt aktuell Daten die per 1 oder 2 verschlüsselt wurden. | |||
== Anwendungsbeispiele == | == Anwendungsbeispiele == | ||
Zeile 67: | Zeile 75: | ||
== Bekannte Probleme == | == Bekannte Probleme == | ||
=== Inkompatible Zähler === | |||
Obwohl Wireless M-Bus ein standardisiertes Protokoll ist, scheint sich kaum ein Hersteller vollständig daran zu halten bzw. verwendet sog. herstellerspezifische Felder um wichtige Daten zu verpacken. | Obwohl Wireless M-Bus ein standardisiertes Protokoll ist, scheint sich kaum ein Hersteller vollständig daran zu halten bzw. verwendet sog. herstellerspezifische Felder um wichtige Daten zu verpacken. | ||
Aus den bisher beobachteten Datenpaketen ergibt sich | Aus den bisher beobachteten Datenpaketen ergibt sich | ||
Zeile 72: | Zeile 81: | ||
* Techem und Hydrometer verwenden ein undokumentiertes Datenformat (CI-Field A2) | * Techem und Hydrometer verwenden ein undokumentiertes Datenformat (CI-Field A2) | ||
:''(Techem Heizkostenverteiler (CI-Field A0) können über das Modul [[TechemHKV]] ausgewertet werden)'' | :''(Techem Heizkostenverteiler (CI-Field A0) können über das Modul [[TechemHKV]] ausgewertet werden)'' | ||
* RWE SmartHome Powercontrol[http://www.rwe-smarthome.de/web/cms/de/1776202/smarthome/informieren/geraete/power-control/] sendet verschlüsselt und der Hersteller gibt nicht den vollständigen Schlüssel an[ | * RWE SmartHome Powercontrol[http://www.rwe-smarthome.de/web/cms/de/1776202/smarthome/informieren/geraete/power-control/] sendet verschlüsselt und der Hersteller gibt nicht den vollständigen Schlüssel an ({{Link2Forum|Topic=24517|Message=315949}}) | ||
Daher werden bisher erst die [[EnergyCam]] der Firma Q-loud, Zähler von Easymeter und der Kamstrup Multical 21 vollständig unterstützt. | |||
Für den Multical 21 muss eine culfw mit Unterstützung für WMBUS C verwendet werden. Diese ist in der culfw ab dem 24.6.2018 enthalten. | |||
Andere Zähler können auch ohne Probleme funktionieren wenn diese sich an den OMS Standard halten. | |||
=== Empfangsprobleme === | |||
Der Empfänger (meist ein [[CUL]]) muss das WMBUS Protokoll unterstützen. Die Unterstützung ist vorhanden, wenn in der Ausgabe von <code>get cmds</code> ein kleines [http://culfw.de/commandref.html#cmd_b b] enthalten ist. | |||
Der CUL speichert die empfangenen Daten intern zwischen bevor sie an fhem geschickt werden. Der Puffer für die Speicherung muss groß genug sein, um ein komplettes Datenpaket aufzunehmen. Die Größe des Puffers kann in der culfw eingestellt werden in dem das define TTY_BUFSIZE in der Datei [https://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/nanoCUL/board.h board.h] des passenden Devices angepasst wird. | |||
Dabei ist darauf zu achten, dass die verwendeten Mikrocontroller nur sehr wenig RAM haben (0,5-4KB). Um mehr freies RAM zu erhalten sollten Protokolle die nicht benötigt in der board.h abgeschaltet werden. Die Unterstützung für WMBUS (#define HAS_MBUS 1) muss aber natürlich eingeschaltet werden. | |||
Anschließend ist die culfw [[Selbstbau_CUL#Software|neu zu übersetzen und zu flashen]]. | |||
== Links == | == Links == | ||
* Forumsthread | * Forumsthread {{Link2Forum|Topic=24517}} | ||
* Protokoll Beschreibung [ | * Protokoll Beschreibung [https://oms-group.org/open-metering-system/oms-spezifikation] | ||
* Beschreibung des M-BUS Protokolls [ | * Beschreibung des M-BUS Protokolls [https://m-bus.com/documentation] | ||
[[Kategorie:Energieverbrauchsmessung]] | [[Kategorie:Energieverbrauchsmessung]] |
Aktuelle Version vom 10. November 2021, 20:19 Uhr
WMBUS | |
---|---|
Zweck / Funktion | |
Dekodierung von Wireless M-Bus Nachrichten | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Sonstige Systeme |
Modulname | 36_WMBUS.pm |
Ersteller | kaihs |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
WMBUS ist ein Modul zur Dekodierung von Wireless M-Bus Nachrichten. Solche Nachrichten werden z. B. von Zählern für Wasser, Wärme, Gas und Elektrizität ausgestrahlt. Wireless M-Bus ist ein Standardprotokoll das von unterschiedlichen Herstellern unterstützt wird. Das Protokoll unterstützt unterschiedliche Kodierungen des Funksignals, im wesentlichen den S-Mode, T-Mode und C-Mode. Der Empfänger (z. B. ein CUL) muss den selben Modus nutzen wie der Sender (der Zähler). Wireless M-Bus unterstützt optional die Verschlüsselung der Daten. Die von einem Zähler gesendeten Daten können sehr unterschiedlich sein und hängen u. a. vom Zählertyp und dessen Hersteller ab.
Voraussetzungen
Das Modul interpretiert nur die Nachrichten die von einen geeigneten Empfänger empfangen werden. Aktuell kann ein CUL und verwandte Geräte die die culfw[1] verwenden sowie ein Amber Wireless AMB8465M dafür verwendet werden. In der culfw muss die Unterstützung des WMBUS-Protokolls aktiviert sein (#define HAS_MBUS in der Datei board.h des Deviceverzeichnisses). Bei einem CUL mit der Hardwareversion V4 ist das nicht der Fall.
Der CUL muss in FHEM mittels Attribut rfmode=WMBus_S, WMBus_T oder WMBus_C in den zum Zähler passenden Empfangsmodus versetzt werden.
Anwendung
Die Erzeugung des passenden Devices in FHEM geschieht automatisch beim Empfang des ersten Datenpakets eines Zählers. Voraussetzung dafür ist, dass autocreate aktiv ist. Alternativ kann ein Device manuell angelegt werden. Dazu wird der Hersteller, die Seriennummer, die Version und der Typ (Wasser, Gas, ...) des Zählers benötigt. Sind die Daten verschlüsselt wird auch noch der passende Schlüssel benötigt um die Daten entschlüsseln zu können.
Verschlüsselung
Die Daten können auf drei verschiedene Arten verschlüsselt sein:
- Security profile A/Symmetric encryption with Mode 5
- Security profile B/Advanced symmetric encryption with Mode 7
- Security profile C/Asymmetric encryption with Mode 13
Das Modul unterstützt aktuell Daten die per 1 oder 2 verschlüsselt wurden.
Anwendungsbeispiele
Ein per EnergyCam abgelesener Elektrizitätszähler sieht in FHEM z. B. so aus:
Internals: CUL_MBUS_MSGCNT 29 CUL_MBUS_RAWMSG b1944C4189985051701028A7D7A540000A00405FAD4080002FD08222C1295B8::-67.5 CUL_MBUS_RSSI -67.5 CUL_MBUS_TIME 2014-10-24 22:57:53 DEF FFD 17058599 1 2 DeviceMedium Electricity DeviceType 2 IODev CUL_MBUS IdentNumber 17058599 LASTInputDev CUL_MBUS MSGCNT 29 Manufacturer FFD NAME WMBUS_FFD_17058599_1_2 NR 49 STATE no errors TYPE WMBUS Version 1 addr FFD_17058599_1_2 Readings: 2014-10-24 22:57:53 1_storage_no 0 2014-10-24 22:57:53 1_type VIF_ENERGY_WATT 2014-10-24 22:57:53 1_unit Wh 2014-10-24 22:57:53 1_value 57881000 2014-10-24 22:57:53 2_storage_no 0 2014-10-24 22:57:53 2_type VIF_ACCESS_NO 2014-10-24 22:57:53 2_unit 2014-10-24 22:57:53 2_value 11298 2014-10-24 22:57:53 LQI 184 2014-10-24 22:57:53 RSSI -67.5 2014-10-24 22:57:53 battery ok 2014-10-24 22:57:53 decryption_ok 1 2014-10-24 22:57:53 energy 57881 2014-10-24 22:57:53 is_encrypted 0 2014-10-24 22:57:53 state no errors 2014-10-24 22:57:53 unit kWh Attributes: IODev CUL_MBUS room WMBUS
Bekannte Probleme
Inkompatible Zähler
Obwohl Wireless M-Bus ein standardisiertes Protokoll ist, scheint sich kaum ein Hersteller vollständig daran zu halten bzw. verwendet sog. herstellerspezifische Felder um wichtige Daten zu verpacken. Aus den bisher beobachteten Datenpaketen ergibt sich
- Qundis (Herstellerkürzel LSE) verwendet herstellerspezifische Datenblöcke für den eigentlichen Zählerstand
- Techem und Hydrometer verwenden ein undokumentiertes Datenformat (CI-Field A2)
- (Techem Heizkostenverteiler (CI-Field A0) können über das Modul TechemHKV ausgewertet werden)
- RWE SmartHome Powercontrol[2] sendet verschlüsselt und der Hersteller gibt nicht den vollständigen Schlüssel an (Beitrag)
Daher werden bisher erst die EnergyCam der Firma Q-loud, Zähler von Easymeter und der Kamstrup Multical 21 vollständig unterstützt. Für den Multical 21 muss eine culfw mit Unterstützung für WMBUS C verwendet werden. Diese ist in der culfw ab dem 24.6.2018 enthalten.
Andere Zähler können auch ohne Probleme funktionieren wenn diese sich an den OMS Standard halten.
Empfangsprobleme
Der Empfänger (meist ein CUL) muss das WMBUS Protokoll unterstützen. Die Unterstützung ist vorhanden, wenn in der Ausgabe von get cmds
ein kleines b enthalten ist.
Der CUL speichert die empfangenen Daten intern zwischen bevor sie an fhem geschickt werden. Der Puffer für die Speicherung muss groß genug sein, um ein komplettes Datenpaket aufzunehmen. Die Größe des Puffers kann in der culfw eingestellt werden in dem das define TTY_BUFSIZE in der Datei board.h des passenden Devices angepasst wird.
Dabei ist darauf zu achten, dass die verwendeten Mikrocontroller nur sehr wenig RAM haben (0,5-4KB). Um mehr freies RAM zu erhalten sollten Protokolle die nicht benötigt in der board.h abgeschaltet werden. Die Unterstützung für WMBUS (#define HAS_MBUS 1) muss aber natürlich eingeschaltet werden.
Anschließend ist die culfw neu zu übersetzen und zu flashen.