FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: connaisseur am 12 Dezember 2017, 16:50:12

Titel: Luftdruck aus Readings / State v. Ortshöhe --> normierte Seehöhe umrechnen
Beitrag von: connaisseur am 12 Dezember 2017, 16:50:12
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
Titel: Antw:Luftdruck aus Readings / State v. Ortshöhe --> normierte Seehöhe umrechnen
Beitrag 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

Titel: Antw:Luftdruck aus Readings / State v. Ortshöhe --> normierte Seehöhe umrechnen
Beitrag von: Deckoffizier am 12 Dezember 2017, 22:07:44
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



Titel: Antw:Luftdruck aus Readings / State v. Ortshöhe --> normierte Seehöhe umrechnen
Beitrag von: connaisseur am 13 Dezember 2017, 15:28:41
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 (http://www.kriwanek.de/index.php/de/arduino/sensoren/431-luftdrucksensor-bmp085)

https://www.arduinoforum.de/arduino-Thread-Luftdruck-Formel (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!
Titel: Antw:Luftdruck aus Readings / State v. Ortshöhe --> normierte Seehöhe umrechnen
Beitrag von: pattex66 am 25 April 2020, 12:45:39
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