[gelöst] userReadings oder StateFormat : Umrechnung cm in Liter ...

Begonnen von digital.arts, 14 Oktober 2015, 13:47:31

Vorheriges Thema - Nächstes Thema

digital.arts

Hallo zusammen,

kurz mein Anliegen:
habe meinen Heizöltank mit Ultraschallsensor bestückt, der misst von ganz oben (vom Entlüftungsrohr...) zur aktuellen Füllhöhe.
Diese Höhe in cm wird mir auch als Reading des devices (ein mysensors-device) angezeigt.
Nun würde ich gerne als zusätzlichen Wert den (ca.) aktuellen Ölstand in Litern angezeigt bekommen.
Eine Umrechnungsformel habe ich mir zusammengestellt, funktioniert auch (auf dem Papier).
Nur so zur Info: Sensormessung bei max. Befüllung (ca. 1425 L) ist 19 cm; empirisch ermittelt sind 1 cm Höhe ca. 12 L; daraus folgt also die Formel
aktueller Ölstand in L = (1425 - ((gemessene Höhe - 19) * 12)) *4  (mal 4, weil es insgesamt 4 zusammenhängende 1500l-Tanks sind)

Wie kann ich meine Berechnung als Attribut des devices in Form eines userReadings (oder stateFormat ? ) bringen ?
Für Unterstützung schon mal im Voraus vielen Dank !

VG
Karl


EDIT: Betreff geändert und eine Klammer im Text war zuviel....
EDIT 2: Sven und marvin78 haben mir bei der Lösung geholfen, vielen Dank !
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

SvenJust

Hallo Karl,

userReadings und stateFormat sind doch ausführlich erläutert: http://fhem.de/commandref_DE.html

Konkret hilft vielleicht die folgende Zeile, dtest muss angepasst werden:
attr dtest userReadings oelstand {(1425 - ((ReadingsVal("dtest","state",0) -19) *12)) *4}

VG
Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

digital.arts

Hallo Sven,

vielen Dank, teilweise funktioniert das so, wie Du vorgeschlagen hast...
Vielleicht habe ich da einen Denkfehler: wenn ich so ein userReadings erstelle, wird mir dieses Reading dann nicht im Detailfenster des devices angezeigt ?
Da steht weiterhin unter "Readings" nur das eine vom Sensor gelieferte, hier "distance1" mit dem cm-Wert...
Wenn ich Deinen Berechnungsstring jedoch als stateFormat definiere, dann bekomme ich den gewünschten Liter-Wert unter "Internals" im STATE angezeigt...

VG
Karl

FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

SvenJust

Zitat von: digital.arts am 14 Oktober 2015, 16:12:50wenn ich so ein userReadings erstelle, wird mir dieses Reading dann nicht im Detailfenster des devices angezeigt ?
Doch, das neue Reading erscheint unter Readings. Eventuell musst Du die Seite aktualisieren?

VG
Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

marvin78

Damit das neue Reading erscheint, muss es zunächst ein event geben. Siehe Doku zu userReadings.

digital.arts

Hallo zusammen,

vielen Dank Sven und marvin78, genau so war es dann auch...
es wurde, nachdem sich der Füllstand noch nicht geändert hatte, kein Sensorwert geliefert und damit auch kein neues Event generiert.
Habe das jetzt mit einem setreading simuliert, und prompt habe ich ein neues Reading  ;)
Danke für die Unterstützung und Erhellung !

VG
Karl
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp