Smart Message Language
Smart Message Language (SML) ist ein Kommunikationsprotokoll für Stromzähler, dass unter anderem für Messdatenaustausch, aber auch für Firmwareupgrades entwickelt wurde.
Dieses Protokoll wird in folgenden Zählern genutzt:
- SyM2 taktsynchroner Lastgangzähler
- eHZ, elektronischer Haushaltszähler im Entwurf Version 2.01 vom 10. November 2008
- EDL21-Zähler, aufbauend auf der Hardware des eHZ.
- EMH-ED300L
Geplanter Einsatz im
- Basiszähler im MessSystem 2020
Die Entwicklung findet parallel zur SyM2-Entwicklung im selben Konsortium statt. Aktuell ist die Version 1.04 vom 18. März 2013.
Grundlegender Aufbau
Jede Informationseinheit wird als SML-Datei bezeichnet. Sie kann einen SML-Auftrag, eine SML-Antwort oder eine Kombination aus beiden enthalten. Eine SML-Datei wird aus SML-Nachrichten zusammengesetzt und von einer Start- und Endsequenz umfasst. Eine SML-Nachricht ist entweder ein Auftrag oder eine Antwort.
Escape-Sequence | 1B 1B 1B 1B |
Beginn der SML-Datei (Version 1) |
01 01 01 01 |
Open-Nachricht | SML_PublicOpen.Req |
Nachricht(en) | zu transportierende Nachricht(en) |
Close-Nachricht | SML_PublicClose.Req |
Füllbytes (um eine durch 4 teilbare Dateilänge zu erhalten) |
00 (<xx>-mal) |
Escape-Sequence | 1B 1B 1B 1B |
Ende der SML-Datei <xx> : Anzahl der Füllbytes <yy> <zz> : Prüfsumme über die Datei |
1A <xx> <yy> <zz> |
Die Prüfsumme wird über alle Bytes des Datenstroms im SML-Transportprotokoll mit Ausnahme der letzten beiden Bytes (und damit ohne die Bytes der Prüfsumme selber) berechnet.
Es gibt eine Textform und ein komprimiertes Binärformat, die ineinander überführt werden können. Das Übertragungsmedium ist nicht festgelegt. Beim SyM2-Zähler wird Ethernet verwendet, beim eHZ eine Infrarot-Schnittstelle nach DIN EN 62056-21.
Weblinks
- vde.com/… – Offizielle Webseite des FNN zum Sym2
- vde.com/… – SML-Spezifikation Version 1.03 vom SyM2-Konsortium
- bsi.bund.de/... – SML-Spezifikation Version 1.04 vom Bundesamt_für_Sicherheit_in_der_Informationstechnik
- jSML, Java-Bibliothek für SML (LGPL)
- libSML, C-Bibliothek für SML
- sml-easy.pl, Perl Skript zum einfachen Auslesen von SML basierenden Zählern
- MyHomePower.py, Python Beispiel-Skript zum Auslesen eines SML basierenden Zählers
- ED300L.pdf, Beispiel einer vollständigen SML Parameterbeschreibung