Die folgenden Informationen können Sie bei der Installation und Inbetriebnahme Ihres gPlugM unterstützen.
Initial müssen Sie Ihren gPlugM in Ihr lokales Wifi-Netzwerk (2.4 GHz) einbinden.
Für die erste Inbetriebnahme empfehlen wird, den gPlugM mit einem üblichen USB-C Ladegerät (z.B. von einem Smartphone) mit Energie zu versorgen. Die Verbindung via RJ12 Kabel zum SM wird noch nicht benötigt.
Der gPlugM wird nun einen eigenen Wifi-Zugangspunkt (AP für Access Point) mit der SSID gPlugM anbieten. Der gPlugM wird auch immer einen eigenen AP anbieten, wenn er nicht mit dem konfigurierten Wifi Netz verbinden kann (dieses Verhalten lässt sich jedoch auch abschalten).
Verbinden Sie nun einen Wifi-Client (ein Notebook oder Smartphone) mit dieser SSID gPlugM. Meistens wird automatisch die Konfigurationsseite in einem Webbrowser mit der lokalen IP-Adresse http://192.168.4.1/ des AP mit der SSID gPlugM angezeigt.
Sie können nun Ihre Zugangsdaten zu Ihrem eigenen, lokalen Wifi-Netz eintragen. Nach dem Speichern wird sich der gPlugM mit Ihrem Wifi-Netz verbinden und erhält von Ihrem Wifi-Router eine IP Adresse zugewiesen (via DHCP).
Der gPlugM sollte nun in Ihrem lokalen Netz auch unter dem Namen gPlugM.local erreichbar sein (dank mDNS).
Jetzt können Sie den gPlugM durch das mitgelieferte Kabel mit der RJ12 Buchse der M-Bus-Kundenschnittstelle Ihres L+G SM verbinden. Der gPlugM benötigt normalerweise keine zusätzliche Energieversorgung via seine USB Buchse.
Die LED sollte dann grün blinken.
LED Blinkcodes:
Falls etwas nicht wie erwartet funktioniert, hilft es manchmal, den „Reset-Button“ kurz zu drücken. Dadurch startet der gPlugM neu. Falls alles ok ist, können Sie die Hinweise in der folgenden Box überspringen.
Falls die LED gar nicht leuchtet, ist:
_
Falls der M-Bus des L+G SM verkehrt (+/-) angeschlossen worden ist, können Sie die Polarität durch Öffnen des Deckels des gPlugM umkehren (siehe Bild).
Ob die CII aktiviert worden und das interne Kabel korrekt angeschlossen ist, können Sie überprüfen, indem Sie die Spannung am M-Bus mit einem Multimeter messen. Die Spannung sollte >26 V betragen und periodisch alle 5 Sekunden auf ca. 18 V reduziert werden (wenn Daten übertragen werden). Sofern Sie keine Spannung messen, kontaktieren Sie Ihren VNB.
Ein Universal-Script für L+G E450 SM ist auf dem gPlugM vorinstalliert. Kunden von Romande-Energie können das vorinstallierte durch dieses Skript direkt ersetzen. Der VSE arbeitet an einer Empfehlung für die Zukunft. Sofern diese von den VSE Mitgliedern beschlossen ist, wird ein entsprechendes Skript dafür hier publiziert werden.
Ihr VNB muss Ihnen mitteilen (StromVV Art 8a, Abs 1bis), welche Werte (bezeichnet durch einen OBIS-Code) und in welchem Format und mit welcher Skalierung, diese von Ihrem SM ausgegeben werden.
Falls Ihr VNB die Daten verschlüsselt ausgibt, müssen Sie den 32 Zeichen langen Schlüssel (16 Bytes in HEX) für die Entschlüsselung ebenfalls von Ihrem VNB erhalten und diesen im Script in der Variablen „dKEY“ eintragen.
Damit die von Ihrem VNB konfigurierten und von Ihrem SM übertragenen Energiedaten erkannt und auf dem Web-UI angezeigt werden, muss das Script mit den korrekten Definitionen für Ihr SM aktiviert sein. Sie können die Meter-Metriken im Skript selbst anpassen. Die Tasmota-Dokumentation dazu befindet sich hier.
Möglicherweise müssen Sie im Script Anpassungen vornehmen. Sie können z.B. Zeilen mit Meter-Metriken entfernen, sofern Ihr VNB diese OBIS Werte nicht liefert oder andere hinzu fügen, oder diejenigen entfernen, die Sie nicht interessieren.
Ob die Werte sofort oder erst zur Teleperiod via MQTT übermittelt werden, lässt sich ebenfalls einstellen (letzter Wert Precision um +16 erhöhen bedeutet zusätzlich sofort beim Empfang weiterleiten). Die Teleperiod ist auf 10 Sekunden voreingestellt.
>D 35
; gPlugM Tasmota 14.6.0 HDLC/DLMS (25.5.25)
upH=0
sr=0
ss=0
rBlink=0
d=750
noWifi=0
; set your decryption key (len 32), if encrypted
;dKEY="12345678123456781234567812345678"
dKEY=""
; shared var within local network
g:Pi=0
g:Po=0
; define Pins of colored LEDs
redP=1
blueP=3
greenP=4
; butA=9
; rxPin=7
>B
; disable publishing at MQTT teleperiod, on boot
smlj=0
; activate data parsing
-> sensor53 r
; enable pin 4 (green LED) to indicate serial activity
-> sensor53 l4
>BS
; enable mDNS
-> setOption55 1
; MQTT frequenyc is set to 1/10 Hz
-> teleperiod 10
; dynamic wifi Tx power
-> wifipower 0
; reduce power consumption
; See https://tasmota.github.io/docs/Dynamic-Sleep/
-> setOption127 OFF
-> sleep 50
; For low RSSI: Keep wifi in no-sleep mode to avoid outages
; -> setOption127 ON
; referrer check
-> SetOption128 ON
; show CPU temperature in webUI
; -> SetOption146 1
; configure LED pins
spinm(blueP O)
spinm(greenP O)
spinm(redP O)
; lightshow at startup
spin(redP 1)
delay(d)
spin(redP 0)
spin(greenP 1)
delay(d)
spin(greenP 0)
spin(blueP 1)
delay(d)
spin(blueP 0)
>M 1
; rx Pin 7, raw 8E1, Baudrate 2400
+1,7,rE1,0,2400,z
; invert HW serial (4) && disable pullup (8)
1,=so2,0C
; set input buffer size (may be increased)
1,=so3,600
; your 32 char HEX Key from var dKEY is set
; if data is not encrypted, "1,=so4," is set
;1,=so4,DECR-KEY
1,=so4,%dKEY%
; OBIS Codes (IEC 62056-61):
; See https://cdn.standards.iteh.ai/samples/104764/8356233bf80942e9ba6d5ac9cbdf3af0/IEC-62056-6-1-2023.pdf
; media: abstract=0, electricity=1, heat=6, gas=7, water=8)
; "-" channel: =0 (if not more than 1 available)
; ":" physical unit (in=1, out=2,
; phase current=31,51,71, voltage=31,51,71,
; phase power in=21,41,61, out=22,42,62)
; "." measurement type (instant=7, counter=8, peak-hold=6)
; "." tarif (0=total, 1=day, 2=night)
; some DSO use 96.1.1. instead
1,pm(96.1.0)@#),*,,SMid,0
; P=Power, i=in, o=out, V=Voltage, I=Current, E=Energy
1,=hReal Power In & Out
1,pm(1.7.0)@1000,Pi ___ 1.7.0,kW,Pi,3
1,pm(2.7.0)@1000,Po ___ 2.7.0,kW,Po,3
; Note: adding +16 to the last value (precision)
; will generate an immediate MQTT telegram
1,=h
1,=hInstant Phase Power In & Out
1,pm(21.7.0)@1000,Pi1 ___ 21.7.0,W,Pi1,3
1,pm(41.7.0)@1000,Pi2 ___ 41.7.0,W,Pi2,3
1,pm(61.7.0)@1000,Pi3 ___ 61.7.0,W,Pi3,3
;
1,pm(22.7.0)@1000,Po1 ___ 22.7.0,W,Po1,3
1,pm(42.7.0)@1000,Po2 ___ 42.7.0,W,Po2,3
1,pm(62.7.0)@1000,Po3 ___ 62.7.0,W,Po3,3
1,=h
1,=hInstant Phase Voltage
1,pm(32.7.0)@10,U1 ___ 32.7.0,V,U1,1
1,pm(52.7.0)@10,U2 ___ 52.7.0,V,U2,1
1,pm(72.7.0)@10,U3 ___ 72.7.0,V,U3,1
1,=h
1,=hInstant Phase Currents
1,pm(31.7.0)@100,I1 ___ 31.7.0,A,I1,2
1,pm(51.7.0)@100,I2 ___ 51.7.0,A,I2,2
1,pm(71.7.0)@100,I3 ___ 71.7.0,A,I3,2
1,=h
1,=hReal Energy Counters
1,pm(1.8.0)@1000,Ei ___ 1.8.0,kWh,Ei,3
1,pm(2.8.0)@1000,Eo ___ 2.8.0,kWh,Eo,3
1,=h_
1,pm(1.8.1)@1000,Ei1 ___ 1.8.1,kWh,Ei1,3
1,pm(1.8.2)@1000,Ei2 ___ 1.8.2,kWh,Ei2,3
1,pm(2.8.1)@1000,Eo1 ___ 2.8.1,kWh,Eo1,3
1,pm(2.8.2)@1000,Eo2 ___ 2.8.2,kWh,Eo2,3
1,=h
1,=hReactive Energy Counters
1,pm(5.8.0)@1000,Q5 ___ 5.8.0,kVArh,Q5,3
1,pm(6.8.0)@1000,Q6 ___ 6.8.0,kVArh,Q6,3
1,pm(7.8.0)@1000,Q7 ___ 7.8.0,kVArh,Q7,3
1,pm(8.8.0)@1000,Q8 ___ 8.8.0,kVArh,Q8,3
1,=h_
1,pm(5.8.1)@1000,Q51 ___ 5_8_1,kVArh,Q51,3
1,pm(5.8.2)@1000,Q52 ___ 5_8_2,kVArh,Q52,3
1,pm(6.8.1)@1000,Q61 ___ 6_8_1,kVArh,Q61,3
1,pm(6.8.2)@1000,Q62 ___ 6_8_2,kVArh,Q62,3
1,pm(7.8.1)@1000,Q71 ___ 7_8_1,kVArh,Q71,3
1,pm(7.8.2)@1000,Q72 ___ 7_8_2,kVArh,Q72,3
1,pm(8.8.1)@1000,Q81 ___ 8_8_1,kVArh,Q81,3
1,pm(8.8.2)@1000,Q82 ___ 8_8_2,kVArh,Q82,3
#
>S
; every second
upH=uptime/60
sr=sunrise/60
ss=sunset/60
; enable MQTT 15 seconds after boot
if upsecs>15 {
smlj|=1
}
; update values of global vars
Pi=sml[2]
Po=sml[3]
; if no wifi connection after 10 sec, blink red
if wifis==0 {
noWifi+=1
}
if noWifi>10 {
rBlink=2
}
>F
; every 100 ms
; blink red
if rBlink>0 {
spin(redP 1)
rBlink-=1
noWifi=0
} else {
spin(redP 0)
}
; blink green on data reception
; if smlv[2]==1 {
; spin(greenP 1)
; smlv[0]
; } else {
; spin(greenP 0)
; }
>W
@
@
L+G E450, data freq. (counters 1/60 Hz) 1/5 Hz
SM-ID %smls[1]%
Date \& Time %tstamp%
Uptime %1upH% h
>D 35
; gPlugM Tasmota 14.6.0 HDLC/DLMS Romande Energie (25.5.25)
upH=0
sr=0
ss=0
rBlink=0
d=750
noWifi=0
; set your decryption key (len 32), if encrypted
;dKEY="12345678123456781234567812345678"
dKEY=""
; shared var within local network
g:Pi=0
g:Po=0
; define Pins of colored LEDs
redP=1
blueP=3
greenP=4
; butA=9
; rxPin=7
>B
;disable publishing at MQTT teleperiod, on boot
smlj=0
; activate data parsing
-> sensor53 r
; enable pin 4 (green LED ) to indicate serial activity
-> sensor53 l4
>BS
; enable mDNS
-> setOption55 1
; dynamic wifi Tx power
-> wifipower 0
; MQTT rate 1/10 Hz
-> teleperiod 10
; reduce power consumption
; See https://tasmota.github.io/docs/Dynamic-Sleep/
-> setOption127 OFF
-> sleep 50
; For low RSSI: Keep wifi in no-sleep mode to avoid outages
; -> setOption127 ON
; referrer check
-> SetOption128 ON
; show CPU temperature in webUI
; -> setOption146 1
; configure LED pins
spinm(blueP O)
spinm(greenP O)
spinm(redP O)
; lightshow at startup
spin(redP 1)
delay(d)
spin(redP 0)
spin(greenP 1)
delay(d)
spin(greenP 0)
spin(blueP 1)
delay(d)
spin(blueP 0)
>M 1
; rx Pin 7, raw 8E1, Baudrate 2400
+1,7,rE1,0,2400,z
; invert HW serial (4) && disable pullup (8)
1,=so2,0C
; set input buffer size
1,=so3,600
; your 32 char HEX Key from var dKEY is set
; if data is not encrypted, "1,=so4," is set
;1,=so4,DECR-KEY
1,=so4,%dKEY%
; OBIS Codes (IEC 62056-61):
; See https://cdn.standards.iteh.ai/samples/104764/8356233bf80942e9ba6d5ac9cbdf3af0/IEC-62056-6-1-2023.pdf
; media: abstract=0, electricity=1, heat=6, gas=7, water=8)
; "-" channel: =0 (if not more than 1 available)
; ":" physical unit (in=1, out=2,
; phase current=31,51,71, voltage=31,51,71,
; phase power in=21,41,61, out=22,42,62)
; "." measurement type (instant=7, counter=8, peak-hold=6)
; "." tarif (0=total, 1=day, 2=night)
; some DSO use 96.1.1. instead
1,pm(96.1.0)@#),*,,SMid,0
; P=Power, i=in, o=out, V=Voltage, I=Current, E=Energy
1,=hInstant Real Power In & Out
1,pm(1.7.0)@1000,Pi ___ 1_7,kW,Pi,3
1,pm(2.7.0)@1000,Po ___ 2_7,kW,Po,3
; Note: adding +16 to the last value (precision)
; will generate an immediate MQTT telegram
; See https://tasmota.github.io/docs/Smart-Meter-Interface/#meter-metrics
1,=h
1,=hInstant Currents
1,pm(31.7.0)@1000,I1 ___ 31_7,A,I1,3
1,pm(51.7.0)@1000,I2 ___ 51_7,A,I2,3
1,pm(71.7.0)@1000,I3 ___ 51_7,A,I3,3
1,=h
1,=hInstant Voltage
1,pm(32.7.0)@1000,U1 ___ I1 32_7,V,U1,3
1,pm(52.7.0)@1000,U2 ___ I2 52_7,V,U2,3
1,pm(72.7.0)@1000,U3 ___ I3 52_7,V,U3,3
1,=h
1,=hReal Energy Counters
1,pm(1.8.0)@1000,Ei ___ 1_8,kWh,Ei,3
1,pm(2.8.0)@1000,Eo ___ 2_8,kWh,Eo,3
1,=h_
1,pm(1.8.1)@1000,Ei1 ___ 1_8_1,kWh,Ei1,3
1,pm(1.8.2)@1000,Ei2 ___ 1_8_2,kWh,Ei2,3
1,pm(2.8.1)@1000,Eo1 ___ 2_8_1,kWh,Eo1,3
1,pm(2.8.2)@1000,Eo2 ___ 2_8_2,kWh,Eo2,3
#
>S
; every second
upH=uptime/60
sr=sunrise/60
ss=sunset/60
if upsecs>9 {
smlj|=1
}
; update values of global vars
Pi=sml[2]
Po=sml[3]
; if no wifi connection after 10 sec, blink red
if wifis==0 {
noWifi+=1
}
if noWifi>10 {
rBlink=2
}
>F
; every 100 ms
if rBlink>0 {
spin(redP 1)
rBlink-=1
noWifi=0
} else {
spin(redP 0)
}
; blink green on data reception
; if smlv[2]==1 {
; spin(greenP 1)
; smlv[0]
; } else {
; spin(greenP 0)
; }
>W
@
@
L+G E450 RE, data freq. (counters 1/60 Hz) 1/5 Hz
SM-ID %smls[1]%
Date \& Time %tstamp%
Uptime %1upH% h
Bitte senden Sie uns eine Email.
Um die vom gPlugM empfangenen Daten an einen MQTT Broker weiter zu leiten, muss unter Einstellung->Sonstige Einstellungen noch MQTT aktiviert werden. Zudem kann der MQTT-Host, die Zugangsdaten, das Topic, etc. im neu vorhandenen Menu unter Einstellungen->MQTT noch eingerichtet werden.
Die Visualisierung der Energiedaten kann z.B. mit InfluxDB und Grafana auf einem externen System erfolgen. Alternativ können die Daten via MQTT auch in eines der vielen Home-Automation Systeme (z.B. ioBroker, Homeassistant, etc.) übergeben werden.
MQTT Cloud Dienste
Es ist auch möglich, die Daten über MQTT mit TLS verschlüsselt an einen MQTT Service in der Cloud zu senden. Dazu empfehlen wir die einfache Fingerprint Validierung des MQTT Broker Zertifikats einzusetzen. Das Verfahren ist hier dokumentiert. Mit dem Command „SetOption132 1“ kann die Fingerprint Validierung aktiviert werden.
Durch Eingabe in der Konsole eines Null-Fingerprints mit dem Command „MqttFingerprint1 00 00 …“ (20 x 00 Byte) kann Tasmota den Fingerprint selbst aus dem vom MQTT Broker präsentierten Server-Zertifikat herauslesen und lernen.
Die öffentlichen Schlüssel der Zertifizierungsstellen für die Server Zertifikate von AWS, und LetsEnscript sind in der Firmware bereits enthalten.
Der A-Button hat für den Betrieb mit Tasmota aktuell keine Funktion. Im Script könnte für seine Zustandsänderung eine Aktion programmiert werden.
Die GPIO Pins welche für die LED verwendet werden, sind aus dem Script ersichtlich.
Die Energiedaten könnten auch via USB-CDC Serial ausgelesen werden. Wie das klappt, haben wir in einem Blogbeitrag gPlug via USB steuern dokumentiert.
Der gPlugM wird mit einer spezifisch kompilierten Tasmota Firmware ausgeliefert. Ein Over-the-Air-Update (OTA) der Firmware mit einer Version von der Tasmota Webseite sollte nicht durchgeführt werden. Dies würde zu einem Verlust der erforderlichen Smart Meter Funktionen führen. Die Standard-Firmware Versionen von Tasmota haben die Script-Funktion nicht mit an Board.
Sollten Sie die vorinstallierte Tasmota Firmware verloren haben und Ihren gPlugM wieder damit ausrüsten wollen, können Sie diese per Email-Anfrage von uns erhalten.
Es ist möglich, die Tasmota-Firmware selbst zu kompilieren und das Scripting sowie das Smartmeter Modul hinzuzufügen. Zudem müsste das Script mit den Meter-Metriken möglicherweise angepasst werden. Es ist auch möglich, eine eigene, ganz andere Firmware oder die norwegische Firmware amsReader auf dem gPlugM zu installieren.
Für andere als die vorinstallierte Firmware kann das gPlug-Team leider keinen Support anbieten.
Welche Daten werden vom Smart Meter und in welcher Form übertragen? Lesen Sie mehr dazu in unserem Blogbeitrag Smart Meter Daten prüfen. Falls bei Ihnen keine Daten angezeigt werden, erstellen Sie bitte eine Aufzeichnung der von Ihrem SM ausgegebene Rohdaten (mit Debug Level 4) und senden Sie uns eine Aufzeichnung davon per Email. Die Tasmota Konsole lässt sich auch via die USB Buchse des gPlugM erreichen. Wie das klappt, haben wir in einem Blogbeitrag gPlug via USB steuern dokumentiert. Weitere Informationen finden Sie auch in unseren FAQ sowie in unseren Blogbeiträgen und solchen, die von unseren Kunden verfasst worden sind.
Gerne dürfen Sie uns bei Fragen oder technischen Problemen per Email an info@gPlug.ch kontaktieren.
Wir arbeiten derzeit an einem gPlug für den L&G SM E450 Smart Meter. Gerne dürfen Sie uns Ihre E-Mail Adresse hinterlassen und wir benachrichtigen Sie, sobald ein entsprechender gPlug zur Verfügung steht.