Readings der FBDECT mit Einheit macht mir Probleme

Begonnen von hartenthaler, 12 April 2016, 13:24:41

Vorheriges Thema - Nächstes Thema

hartenthaler

Dass das FBDECT Modul Werte zusammen mit der Einheit liefert (also 19.2 °C) und nicht nur eine Zahl, finde ich als Physiker eigentlich sehr schön, denn sonst kann man schon mal °C mit Fahrenheit verwechseln. Nun habe ich aber zwei DECT-Steckdosen im Raum und möchte den Temperaturmittelwert ermitteln und in einem dummy "Temperatur_Wohnzimmer" ablegen:

define di_Temperatur_Wohnzimmer DOIF ([FBDECT_16] or [FBDECT_17]) (setreading Temperatur_Wohnzimmer temperature {([FBDECT_16:temperature]+[FBDECT_17:temperature])/2})
attr di_Temperatur_Wohnzimmer do always

Das Rechnen geht aber wg. der Einheit natürlich nicht. Wie komme ich am elegantesten an den Zahlenwert? In https://forum.fhem.de/index.php/topic,48612.0.html gab es mal ein ähnliches Thema, aber wie ich $EVTPART1 hier verwenden soll, ist mir nicht klar.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

rudolfkoenig

Ist ein DOIF Problem, das Thema muss also evtl. verschoben werden, damit die Experten das auch finden.
Wenn man das Problem mit "herkoemmlichen" notify loest, dann verwendet man ReadingsNum() statt ReadingsVal().

hartenthaler

Guter Tipp! Vielen Dank! Mit einem notify ging es:

(FBDECT_16|FBDECT_17|na_M03_00_00_xx_xx_xx) {
my $r1 = ReadingsNum("FBDECT_16","temperature",0);;
my $r2 = ReadingsNum("FBDECT_17","temperature",0);;
my $r3 = ReadingsNum("na_M03_00_00_xx_xx_xx","temperature",0);;
my $avg = sprintf(" %.1f °C",($r1*0.1+$r2*0.1+$r3*0.8));;
fhem "setreading Temperatur_Wohnzimmer temperature $avg";;
}
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

scooty

Hast Du im Ausführungsteil des DOIF 'mal
{([FBDECT_16:temperature:d]+[FBDECT_17:temperature:d])/2}
ausprobiert?
s. DOIF-Doku: "Filtern nach Ausdrücken mit Ausgabeformatierung"

Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH1080 / IO Homecontrol

rudolfkoenig

@scooty: Danke fuer die Idee, habe das :d fuer ReplaceSetMagic uebernommen.
Damit ist (ab den morgigen update) der Ausdruck auch in notify etwas kuerzer schreibbar:

(FBDECT_16|FBDECT_17|na_M03_00_00_xx_xx_xx) setreading Temperatur_Wohnzimmer temperature \
{(([FBDECT_16:temperature:d]*0.1+\
   [FBDECT_17:temperature:d]*0.1+\
   [na_M03_00_00_xx_xx_xx:temperature:d]*0.8))}

hartenthaler

@scooty  super! funktioniert! Danke!
@rudolfkoenig sieht sehr kompakt und gut aus, aber klappt noch nicht. Muss ich außer einem fhem "update" noch etwas anderes machen, damit diese neue Funktion verfügbar ist?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

hartenthaler

ja, shutdown restart habe ich gemacht. Im Reading sthet statt dem Mittelwert folgender Text
syntax error at (eval 1325084) line 1, near "FBDECT_16:"
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

rudolfkoenig

Die Fehlermeldung kommt, wenn FBDECT_16 kein temperature Reading hat.
Sonst finde ich etwas merkwuerdig, dass direkt nach einem Neustart schon 1.3 Mio evals ausgefuehrt wurden. Auf meinem "Produktions"-FHEM sind es nach einem Monat ca 300k.

hartenthaler

ERLEDIGT

... ich habe nun den Raspi komplett neu gestartet und siehe da, das Problem ist weg und das notify mit :d (für den Zahlenwert ohne Einheit) funktioniert bestens.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...