Hallo zusammen,
falls jemand ein Elgris Smart Meter über HTTPMOD abfragen und in FHEM anzeigen möchte hier die zugehörige Abfrage (vielleicht erspart es ja dem einen oder anderen etwas Arbeit).
Theoretisch wären auch noch bezogene und eingespeiste kWh verfügbar aber für mich nicht relevant, daher im Code nicht enthalten.
Wer möchte darf die Regex-en gerne noch schöner machen. Die IP in der ersten Zeile ist natuerlich auf die IP des eigenen Smart Meters anzupassen und die Abfrage läuft in diesem Beispiel alle 60 Sekunden :-)
Der Code funktioniert mit der Elgris Smart Meter SW Version: 1.13.04
Viele Grüße Martin
defmod SmartMeter HTTPMOD http://192.168.xx.yy/Meter 60
attr SmartMeter enforceGoodReadingNames 1
attr SmartMeter get1CheckAllReadings 1
attr SmartMeter reading1-1Name L1_Spannung
attr SmartMeter reading1-2Name L1_Strom
attr SmartMeter reading1-3Name L1_Wirkleistung
attr SmartMeter reading1-4Name L1_Scheinleistung
attr SmartMeter reading1-5Name L1_PowerFactor
attr SmartMeter reading1Regex L1 ?= *+(-?\d*\.?\d*) ?\D+<br>.*?L1 ?= *+(-?\d*\.?\d*).*?L1 ?= *+(-?\d*\.?\d*).*?L1 ?= *+(-?\d*\.?\d*).*?L1 ?= *+(-?\d*\.?\d*)
attr SmartMeter reading2-1Name L2_Spannung
attr SmartMeter reading2-2Name L2_Strom
attr SmartMeter reading2-3Name L2_Wirkleistung
attr SmartMeter reading2-4Name L2_Scheinleistung
attr SmartMeter reading2-5Name L2_PowerFactor
attr SmartMeter reading2Regex L2 ?= *+(-?\d*\.?\d*) ?\D+<br>.*?L2 ?= *+(-?\d*\.?\d*).*?L2 ?= *+(-?\d*\.?\d*).*?L2 ?= *+(-?\d*\.?\d*).*?L2 ?= *+(-?\d*\.?\d*)
attr SmartMeter reading3-1Name L3_Spannung
attr SmartMeter reading3-2Name L3_Strom
attr SmartMeter reading3-3Name L3_Wirkleistung
attr SmartMeter reading3-4Name L3_Scheinleistung
attr SmartMeter reading3-5Name L3_PowerFactor
attr SmartMeter reading3Regex L3 ?= *+(-?\d*\.?\d*) ?\D+<br>.*?L3 ?= *+(-?\d*\.?\d*).*?L3 ?= *+(-?\d*\.?\d*).*?L3 ?= *+(-?\d*\.?\d*).*?L3 ?= *+(-?\d*\.?\d*)
attr SmartMeter reading4-1Name Wirkleistunggesamt
attr SmartMeter reading4Name Wirkleistunggesamt
attr SmartMeter reading4Regex Total ?= *+(-?\d*\.?\d*) ?\D+<br>
attr SmartMeter reading5-1Name Scheinleistunggesamt
attr SmartMeter reading5Name Scheinleistunggesamt
attr SmartMeter reading5Regex W<br><br>Total ?= *+(-?\d*\.?\d*) ?\D+<br>
attr SmartMeter room Technik
attr SmartMeter stateFormat {sprintf("Spannung auf L1: %.1f V, ", ReadingsVal($name,"L1_Spannung",0))}