Hallo,
ich habe seit vorgestern eine endlich auch eine Funksteckdose an FHEM angeschlossen (FS20), diese funktioniert auch (wie erwartet) wunderbar.
Eine Frage dazu hätte ich aber noch:
Ich würde gerne in Grafana den Status der Steckdose plotten (https://www.dev-eth0.de/blog/2016/12/07/grafana_fhem_influxdb.html), dafür bräuchte ich aber Zahlenwerte statt "on" und "off".
Mein Logfile habe ich so definiert:
define FileLog_Pumpe_Schalter FileLog ./log/Pumpe_Schalter-%Y.log Pumpe_Schalter
attr FileLog_Pumpe_Schalter logtype text
attr FileLog_Pumpe_Schalter room Balkon
Im Log steht dann sowas:
2017-07-11_22:24:27 Pumpe_Schalter on
2017-07-11_22:24:28 Pumpe_Schalter off
2017-07-11_22:27:39 Pumpe_Schalter on
2017-07-11_22:27:40 Pumpe_Schalter off
2017-07-11_22:27:47 Pumpe_Schalter on
Ich habe auch schon den Logtype fs20 ausprobiert (laut commandref: 'Plots on as 1 and off as 0.'), hier hatte ich gehofft, dass das auch für die Logfiles gilt. Habe ich irgend eine Chance, dass hier ein angepasstes Logging passiert?
Die hier im Forum vorhandenen Threads betreffen leider soweit ich das sehe alle ein ähnliches Problem, die Lösung ist dann aber immer, dass im Plot zu lösen und nicht im Log (was bei mir leider nicht geht :-/)
Herzlichen Dank für eure Zeit!
Hallo,
ich hatte ein ähnliches Problem mit einem Fenstersensor (den ich für den Rasenmäher benutzt habe). Gelöst habe ich es mit einem userReadings welches ich dann auch ins Log schreibe:
Das userReadings sähe dann so aus:
Pumpenstatus:Pumpe_Schalter.* {if(ReadingsVal("Pumpe_Schalter","state","-") eq "off") {sprintf("0")} else {sprintf("1")}}
sprintf() ist überflüssig.
Entweder Userreading oder im wenn möglich im Plot bei der Ausgabe mit angeben das on 1 und off 0 ist. So geht es zu mindest beim FHEM Plot.
Großartig, herzlichen Dank!
Der Vollständigkeit halber hier nochmal die komplette Definition, die ich jetzt habe:
define Pumpe_Schalter FS20 ....
attr Pumpe_Schalter userReadings Pumpenstatus {if(ReadingsVal("Pumpe_Schalter","state","") eq "off") {"0"} else {"1"}}
define FileLog_Pumpe_Schalter FileLog ./log/Pumpe_Schalter-%Y.log Pumpe_Schalter:Pumpenstatus.*
attr Pumpe_Schalter userReadings Pumpenstatus { (ReadingsVal("Pumpe_Schalter","state","") eq "off" ? "0" : "1") }
Versuch mal. Ist aus dem Kopf. Sollte aber auch geben. Es ist eine weitere Lösung. Bisschen kürzer geschrieben.
Hallo,
ich hätte da mal noch eine Frage zu. Fehlt da nicht der Trigger für das userReading oder ist das nicht notwendig?
Kann man machen um zum Beispiel ein zu oftes ausführen zu vermeiden. Muss man aber nicht