FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: OK_DE am 12 September 2017, 20:27:36

Titel: Logfile Eintrag - 2te Nachkommastelle ignorieren
Beitrag von: OK_DE am 12 September 2017, 20:27:36
Hallo habe einen Schaltaktor mit Leistungsmessung im Einsatz.
Der PWR Wert schwankt immer in der 2ten Nachkommastelle kann man irgendwie einstellen das ein Eintrag im Logfile nur bis zur ersten Nachkommastelle erzeugt wird.
On change reading hilft hier leider nicht weiter da sich in der 2ten Nachkommastelle immer was ändert.

Logfile:
2017-09-09_06:57:25 EG_KUECHE_GESCHIRRSPUELER_Watt 0.02
2017-09-09_07:00:09 EG_KUECHE_GESCHIRRSPUELER_Watt 0.01
2017-09-09_07:04:54 EG_KUECHE_GESCHIRRSPUELER_Watt 0.02
2017-09-09_07:16:51 EG_KUECHE_GESCHIRRSPUELER_Watt 0.01
2017-09-09_07:19:48 EG_KUECHE_GESCHIRRSPUELER_Watt 0.02


Code:
define EG_KUECHE_GESCHIRRSPUELER_Watt dummy
attr EG_KUECHE_GESCHIRRSPUELER_Watt event-on-change-reading state
attr EG_KUECHE_GESCHIRRSPUELER_Watt group Geschirrspüler
attr EG_KUECHE_GESCHIRRSPUELER_Watt icon scene_dishwasher
attr EG_KUECHE_GESCHIRRSPUELER_Watt room EG.KUECHE

define EG_KUECHE_GESCHIRRSPUELER_Watt_NOTIFY notify EG_KUECHE_GESCHIRRSPUELER_Pwr {my $var= ReadingsVal("EG_KUECHE_GESCHIRRSPUELER_Pwr","power",0);; fhem("set EG_KUECHE_GESCHIRRSPUELER_Watt $var")}
attr EG_KUECHE_GESCHIRRSPUELER_Watt_NOTIFY group Geschirrspüler
attr EG_KUECHE_GESCHIRRSPUELER_Watt_NOTIFY room _EG.KUECHE

define EG_KUECHE_GESCHIRRSPUELER_Watt_FILELOG FileLog ./log/EG_KUECHE_GESCHIRRSPUELER_Watt-%Y.log EG_KUECHE_GESCHIRRSPUELER_Watt
attr EG_KUECHE_GESCHIRRSPUELER_Watt_FILELOG group Geschirrspüler
attr EG_KUECHE_GESCHIRRSPUELER_Watt_FILELOG logtype text
attr EG_KUECHE_GESCHIRRSPUELER_Watt_FILELOG room _EG.KUECHE

Titel: Antw:Logfile Eintrag - 2te Nachkommastelle ignorieren
Beitrag von: Otto123 am 12 September 2017, 20:55:28
Hi,

ich würde ein userreadings  (https://fhem.de/commandref_DE.html#readingFnAttributes)erzeugen und dieses loggen.

Mit sprintf kannst Du den Wert einfach formatieren.

Gruß Otto
Titel: Antw:Logfile Eintrag - 2te Nachkommastelle ignorieren
Beitrag von: OK_DE am 12 September 2017, 21:20:54
Habe selbst eine einfache Lösung gefunden indem ich im Notfiy die zweite Nachkommastelle mit folgendem Code aufrunde und abschneide:
$var = (int((10*$var)+0.5))/10;;
Titel: Antw:Logfile Eintrag - 2te Nachkommastelle ignorieren
Beitrag von: Otto123 am 12 September 2017, 21:41:39
Wie Du das Ergebnis erzeugst ist am Ende egal.  ;D
Ich würde das notify "entsorgen" und mit einem userreadings arbeiten, vielleicht schaust Du es Dir mal an. Geht auch mit Deinem Code.

Gruß Otto