Smart Message Language (SML) ist ein Kommunikationsprotokoll für Stromzähler, das 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 EDL-Zähler, aufbauend auf der Hardware des eHZ Beispiel: EMH-ED300L Beispiel: Easymeter Q3-Reihe FNN-Basiszähler, auf der LMN-Schnittstelle zum Smart Meter Gateway
Die Entwicklung findet parallel zur SyM2-Entwicklung im selben Konsortium statt. Stand November 2023 aktuellÜbersicht des BSI zum Status aller Teile der TR-03109 „Technische Vorgaben für intelligente Messsysteme und deren sicherer Betrieb“ war die Version 1.04 vom 18. März 2013, herausgegeben vom Bundesamt für Sicherheit in der Informationstechnik.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.
+ SML-Datei Version 1 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 nach dem CCITT-CRC16 (Polynom: 0x1021, Init: 0xFFFF, RefIn: True, RefOut: True, XOrOut: 0xFFFF) über alle Bytes des Datenstroms im SML-Transportprotokoll mit Ausnahme der letzten beiden Bytes (und damit ohne die Bytes der Prüfsumme selber) berechnet.
Sollte in dem Nutzdatenstrom die Escape-Sequence (1B 1B 1B 1B) selbst enthalten sein, wird diese um eine zweite Escape-Sequence ergänzt.
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.
Nachrichten sind in der Norm fest definiert; eine Nachricht ist immer eine Struktur (SEQUENCE) bestehend aus (optionalen) einfachen Datentypen (Boolean, Integer, Unsigned, String), Strukturen (SEQUENCE), Auswahl von Strukturen (CHOICE), und/oder Arrays von Strukturen (SEQUENCE OF). Datentypen werden im Datenstrom mit einem Typ-Längen-Feld eingeleitet, in dem der Datentyp und die Länge der Dateninformation abgelegt ist. Das Wort 0x1234 wird zum Beispiel als folgende Bytesequenz übertragen: 0x63 0x12 0x34.
In den Nachrichten können Messdaten wie momentaner oder saldierter Stromverbrauch übertragen werden. Dabei werden zur Kategorisierung der Daten OBIS-Kennzahlen verwendet.
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, offizielles, aktiv gepflegtes Repository als Nachfolger des Dailab Repositories smldump, Perl-Skript zur Ausgabe der Struktur und der Daten einer SML-Datei sml-easy.pl, Perl-Skript zum einfachen Auslesen von SML-basierten Zählern SmartMeter.py, Python-Beispiel-Skript zum Auslesen eines SML-basierten Zählers ED300L.pdf, Beispiel einer vollständigen SML-Parameterbeschreibung smartmeter-obis, Node.js-basierte Parser Library vzlogger, Datenlogger mit SML-Unterstützung
Kategorie:XML
Stromzähler mit SML-Schnittstelle
Einzelnachweise