Luftdruck aus Readings / State v. Ortshöhe --> normierte Seehöhe umrechnen

Begonnen von connaisseur, 12 Dezember 2017, 16:50:12

Vorheriges Thema - Nächstes Thema

connaisseur

Hallo!

Wie kann ich in FHEM aus den Readings eines (Kombi-)Sensors den Luftdruck von Ortshöhe auf die normierte Seehöhe umrechnen und wieder im Reading überschreibend speichern? Ziel soll dann ein DbLog / FileLog sein.

In den Readings des Sensors gibt es "pressure" und im STATE ein "P: xxxx".

Hier bin ich totaler Anfänger in FHEM und weiß keinen Rat.

Danke.

Gruß,
--connaisseur

herrmannj

1. Formel finden.
2. Formel in perl formulieren.
3. in einem userReading abbilden.
4. Das userReading loggen


Deckoffizier

Hallo connaisseur,

ist schon lange her auch für meinen 1Wire Multisensor mit Hilfe meiner Tochter

daher nur Brockenhaft schau mal

https://de.wikipedia.org/wiki/Barometrische_H%C3%B6henformel

oder
p(h_0) = p(h_1)*exp( (h_1 - h_0)/h_s) mit h_s = Skalenhöhe (liegt bei
ca. 7,8 bzw. 8,4 km im erdnahen Bereich)
     (ist identisch zu p(h_1) = p(h_0)*exp( - (h_1 - h_0)/hs)  )
Höhe hier in km mit h_0 untere Höhe (z.B. Meereshöhe = 0km)
und h_1 die Höhe vom Ort in km

Beispiel: 1019×e^(0,0586÷8,4) = 1026,133591812

Zu guter Letzt mein userReading für FHEM mit Luftdruck am Ende
Der 1 Wire Multisensor ist von tm3d.de und gibt auch Formel und freundliche Unterstützung mit.

Temperatur:A.* {(ReadingsVal("Wettersensor","A",0)-2.5674)*128 },
Feuchte:B.* { ReadingsVal("Wettersensor","B",0)*128.55}, Luftdruck:D.* {
(ReadingsVal("Wettersensor","D",0)*400)*1.007000581}


Gruß
Hans-Jürgen



FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

connaisseur

Zitat von: herrmannj am 12 Dezember 2017, 16:54:27
1. Formel finden.
2. Formel in perl formulieren.
3. in einem userReading abbilden.
4. Das userReading loggen

Das war eine gute Arbeitsanleitung.

Gelöst wurde es durch DuckDuckGo:

http://www.kriwanek.de/index.php/de/arduino/sensoren/431-luftdrucksensor-bmp085

https://www.arduinoforum.de/arduino-Thread-Luftdruck-Formel

Höhe für meinen Standort sind 539 m.

Damit komme ich dann mit ein bißchen Rechnen zu diesem userReadings für meinen Sensor:

attr OS_Arbeitszimmer userReadings pressure_sealevel:pressure.* none { floor(ReadingsVal("OS_Arbeitszimmer","pressure",0)/.93476);; }

Hilfe zur Selbsthilfe, wie ich es mag.

Danke!

pattex66

Ich würde gern dieses alte Thema nochmals aufwären wollen und folgendes zur Diskussion stellen...

Ich habe den Code aus dem letzen Post mal angepasst und hoffe das ist so richtig:

attr Luftdaten userReadings pressure_sealevel:pressure.* none { floor(ReadingsVal("Luftdaten","pressure",0)/.983);; },


Was mache ich nun damit? Ich habe ein Attribut erstellt aber nichts passiert. Es soll in der DB geloggt werden um es in Grafana zu visualisieren. Ist da noch mehr zu tun?

VG Patrick