Für HTTP-basierte Geräte sind diese allgemeinen Hinweise zu beachten!
Der Zustand
bezeichnet die Messgrösse, welche der Zähler dem Smart Appliance Enabler zur Leistungsbestimmung liefert.
Nach Möglichkeit sollte die Messgrösse Zählerstand
eingstellt werden, weil der Smart Appliance Enabler dann diesen Wert nur einmal pro Minute abfragen muss und aus der Differenz zur vorangegangen Anfrage die Leistung sehr genau berechnet kann. Dazu muss aber der Zählerstand in kWh mit mindestens 4 Nachkommstellen (besser 5) geliefert werden. Bei manchen Adapter muss diese Genauigkeit erst eingestellt werden (siehe Tasmota).
Wird die Messgrösse Leistung
eingestellt, erfolgt die Abfrage dieses Wertes mehrmals pro Minute, um aus diesen Werten den Durschnitt zu berechnen. Der zeitliche Abstand zwischen diesen Abfragen kann mit dem Abfrage-Intervall
festgelegt werden - der Standardwert sind 20 Sekunden.
Wenn die HTTP-Antwort im JSON-Format geliefert wird, sollte das als Format
eingestellt werden, weil dann durch die Angabe des Pfad
der Zahlenwert sehr leicht aus der HTTP-Anwort extrahieren lässt.
Alternativ (oder auch nachgelagert zur JSON-Interpretation) kann ein Regulärer Ausdruck zum Extrahieren angegeben werden, falls der Zahlenwert aus einem Text (XML, ...) extrahiert werden muss. Dies gilt auch, wenn die HTTP-Antwort scheinbar nur die Zahl enthält, diese aber auch einen Zeilenumbruch (CR/LF) beinhaltet.
Durch die Konfiguration der zuvor beschriebenen Parameter muss sichergestellt sein, dass der Smart Appliance Enabler aus der HTTP-Antwort die richtige Zahl extrahieren kann. Für die Messgrösse Zählerstand
wird der Wert in kWh und für die Messgrösse Leistung
in W benötigt. Falls die Werte in anderen Einheiten geliefert werden, muss ein muss ein Umrechnungsfaktor
angegeben werden, mit dem der gelieferte Wert multipliziert werden muss, um ihn in die benötigte Einheit umzurechnen. Wird beispielsweise der Verbrauch in mW geliefert, muss dieser Faktor mit dem Wert 1000
angegeben werden.
Wird ein HTTP-Zähler für das Gerät F-00000001-000000000005-00
verwendet, kann man die ermittelte Leistungsaufnahme im Log mit folgendem Befehl anzeigen:
sae@raspi:~ $ grep 'Http' /tmp/rolling-2021-01-01.log | grep F-00000001-000000000005-00
2021-01-01 09:42:50,472 DEBUG [Timer-0] d.a.s.h.HttpTransactionExecutor [HttpTransactionExecutor.java:107] F-00000001-000000000005-00: Sending GET request url=http://espressomaschine/cm?cmnd=Status%208
2021-01-01 09:42:50,516 DEBUG [Timer-0] d.a.s.h.HttpTransactionExecutor [HttpTransactionExecutor.java:168] F-00000001-000000000005-00: Response code is 200
2021-01-01 09:42:50,531 DEBUG [Timer-0] d.a.s.h.HttpHandler [HttpHandler.java:86] F-00000001-000000000005-00: url=http://espressomaschine/cm?cmnd=Status%208 httpMethod=GET data=null path=null
2021-01-01 09:42:50,532 DEBUG [Timer-0] d.a.s.h.HttpHandler [HttpHandler.java:89] F-00000001-000000000005-00: Response: {"StatusSNS":{"Time":"2021-01-01T09:42:50","ENERGY":{"TotalStartTime":"2019-08-18T10:55:03","Total":164.950,"Yesterday":0.482,"Today":0.124,"Power":1279,"ApparentPower":1481,"ReactivePower":747,"Factor":0.86,"Voltage":233,"Current":6.370}}}
2021-01-01 09:42:50,533 DEBUG [Timer-0] d.a.s.h.HttpHandler [HttpHandler.java:58] F-00000001-000000000005-00: value=1279.0 protocolHandlerValue={"StatusSNS":{"Time":"2021-01-01T09:42:50","ENERGY":{"TotalStartTime":"2019-08-18T10:55:03","Total":164.950,"Yesterday":0.482,"Today":0.124,"Power":1279,"ApparentPower":1481,"ReactivePower":747,"Factor":0.86,"Voltage":233,"Current":6.370}}} valueExtractionRegex=,.Power.:(\d+) extractedValue=1279
2021-01-01 09:42:55,632 DEBUG [http-nio-8080-exec-9] d.a.s.m.HttpElectricityMeter [HttpElectricityMeter.java:154] F-00000001-000000000005-00: average power = 1280W
2021-01-01 09:42:55,636 DEBUG [http-nio-8080-exec-9] d.a.s.m.HttpElectricityMeter [HttpElectricityMeter.java:154] F-00000001-000000000005-00: average power = 1280W
Webmin: In View Logfile gibt man hinter Only show lines with text
ein F-00000001-000000000005-00
und drückt Refresh.