Die Bibliothek dient dazu SML (Smart Message Language) basierte Zähler per Infrarot-Lese/Schreibkopf in IP-Symcon einzubinden. Am weitesten verbreitet sind die elektronischen Hausstromzähler.
Typischerweise ist die Infrarot-Schnittstelle vom Netzversorger aus Datenschutzgründen gesperrt. Wer seinen Zähler in den eigenen 4 Wänden hat, oder wen fremde Blicke auf die eigenen Daten nicht stören, kann die Schnittstelle per PIN freischalten. Die PIN gibt es beim Netzversorger.
Für die Datenübertragung vom Zähler zum IP-Symcon-Server wird ein USB-Lese/Schreibkopf eingesetzt.
Konfiguration
Standard
In den IO-Instanzen einen Serial-Port erzeugen. Bei der Konfiguration der Baudrate bitte die Angaben des Zähler-Herstellers beachten. Typische Werte sind 300 oder 9600.
Im Objektbaum eine SML_Electricity-Instanz erzeugen. Hierdurch wird automatisch eine Cutter-Instanz im Splitter-Bereich angelegt und konfiguriert.
In der SML_Electricity-Instanz die gewünsche Updatehäufigkeit einstellen.
Im letzten Schritt noch die Cutter-Instanz mit dem Serial-Port verbinden.
Sollte der SML-Zähler eine Eröffnungssequenz zum Senden der Daten benötigen, so ist diese als HEX-String (z.B. „2F3F210D0A“) in das Feld „Eröffnungssequenz“ einzutragen und das Senden einzuschalten.
SML-Counter über HTTP-Client
Im Objektbaum eine SML_Electricity über HTTP-Instanz erzeugen. Hierdurch wird automatisch eine HTTP-Client-Instanz angelegt.
HTTP-Client nach Vorgabe der einzubindenden Hardware konfigurieren.
SML-Counter über MQTT-Schnittstelle
Im Objektbaum eine SML_over_MQTT-Instanz erzeugen. Hierdurch wird automatisch eine Verbindung zum MQTT-Server angelegt und ggf. konfiguriert.
Im letzten Schritt noch das MQTT-Topic des MQTT-Smartmeter-Interfaces eingeben und speichern.
Fertig!
Experten-Einstellungen
Einfache Datensatzprüfung
Ist diese eingeschaltet, so wird der ankommende Datensatz auf grundsätzliche Fehler überprüft.
Datensatzprüfung per Prüfsumme
Ist diese eingeschaltet, so wird anhand der Prüfsumme gecheckt, ob der ankommende Datensatz fehlerfrei ist.
Bei beiden Optionen werden fehlerhaft Datensätze blockiert.
Fehlende Variablen anlegen
Standardmäßig ist die Option eingeschaltet. Das Modul legt für die vom Zähler gesendeten Werte Variablen an.
Werden unerwünschte Variablen angelegt, wartet man solange, bis alle gewünschten Variablen angelegt sind. Danach die Option ausschalten und die nicht benötigten Variablen löschen.
Unterstützte Werte
Welche Werte zur Verfügung gestellt werden, hängt hauptsächlich vom eigesetzten Haushaltszähler ab. Vom Modul werden folgende Werte unterstützt:
Zählerstand Gesamtverbrauch bzw. Gesamtlieferung ins Netz
aktuelle Gesamtleistung
Netzfrequenz
Spannung je Phase
Stromstärke je Phase
Leistungsfaktor je Phase
aktuelle Leistung gesamt und je Phase (negativ bei Lieferung ins Netz)
Ich habe mich heute Abend nochmal durch die Zusammenhänge der SML gequält. Es hat sich gelöhnt. Die meisten Umfänge kann ich jetzt decodieren. Das Modul hat sich dadurch noch einmal grundlegend geändert. Der Vorteil der neuen Version ist, dass jetzt auch eher exotische Werte unterstützt werden.
Sollten Euch Werte fehlen, die Euer EHZ zur Verfügung stellt, bitte Bescheid sagen. Diese sollten sich relativ leicht einpflegen lassen.
Wie immer ist die Version zunächst als Beta im Modul-Store erhältlich. Die Stable ist aber bereits im Review.
ich habe ihn an einem Raspi hängen. Läuft wunderbar. Ist wahrscheinlich noch unproblematischer, als an einem Windows-PC. Einfach anstecken und los geht es. Ich nutze den Lesekopf von Weidmann. Wie sich andere Leseköpfe verhalten kann ich nicht sagen. Sollte aber -wenn man den Foren so glaubt- auch kein Problem darstellen.
Ich habe einen Zweirichtungszähler wegen PV-Anlage. In dem Modul habe ich festgestellt, wenn die Sonne untergeht und damit die Einspeisung gen 0 geht, dass der letzte Wert <0 dann dauerhaft (über Nacht) stehen bleibt. Eigentlich liefert der Zähler ja dann dauerhaft 0.
ok, das Problem kann ich nachvollziehen. Die Funktion mit dem 0-Filter habe ich reingenommen, da der Zähler gerne mal eine falsche 0 sendet. Da muss ich eine Trennung zwischen Energie und Leistung vornehmen. Werde ich kurzfristig optimieren.
Vielen Dank! Ich werde es probieren und gebe dir eine Rückmeldung - nach Sonnenuntergang.
Bisher hab ich den SML-Zähler per Cutter und Register-Variable ausgelesen. Das war vor ca. 5 Jahren mein erstes Projekt, als ich mit IPS angefangen habe.
Das Modul erleichtert es natürlich ungemein und ich war erstaunt, dass selbst die Konfiguration der Schnitte automatisch lief. Da musste ich mich vor 5 Jahren ganz schon reinverdenken als Neuling. Auch erstaunt war ich, dass ich das Modul parallel zu meinem Cutter ebenfalls auf den SerialPort hängen kann und beide funktionieren. Damit kann ich beide erstmal parallel laufen lassen. Werde dann auf Kurz oder Lang zu dem Modul wechseln.
Ehrlich gesagt hatte ich aber auch die Hoffnung, meinem Zähler noch ein paar mehr Daten zu entlocken. Liefert er wirklich nur jeweils Leistung und Energie in zwei Richtungen?
Nach dem Tip gestern im Community Chat habe ich das SML Counter Modul mal installiert.
Laut Debug-Log werden bei dem Modul die Werte 1.8.0 und 2.8.0 empfangen.
Die Frage ist nun, wo kommen die Daten hin?
Unter der Instanz werden jedenfalls keine Variablen mit den Zählerständen angelegt.
Hallo Jürgen.
Ich beschäftige mich gerade auch mit dem Thema, aber du warst mit deinem Modul schneller.
Folgendes solltest du auf jeden Fall einbauen:
Auswertung der CRC-Prüfsumme und verwerfen der SML-Nachricht, wenn diese nicht passt.
Die meisten Zähler werden über optische Schnittstellen ausgelesen.
Da passiert es häufiger mal, dass ein Bit umkippt.
Bei Zählerständen würde eine falsche Ziffer das Archivlog der IPS Variable komplett durcheinanderbringen. das habe ich jede paar Wochen mal bei meinen D0-Zählern.
Das ist wirklich wichtig!
Hier hat sich schon mal jemand mit der Prüfziffer beschäftigt und herausgefunden, wie man das macht:
Danke für Eure Rückmeldungen zum Modul. Das hat sehr bei der Optimierung geholfen!
Ich habe die Systematik jetzt komplett auf die Beschreibung aus der von @mischo22 geposteten Homepage umgestellt. Dadurch sollte das Modul jetzt deutlich robuster bei jeder Art von Haushaltszähler laufen und ist auch gut vorbereitet auf weitere SML-Zähler-Varianten.
Die neue Version ist jetzt als Beta verfügbar. Wenn keine negativen Rückmeldungen kommen, stelle ich kurzfristig auf Stable um.