DS2438 OWFS Luftfeuchte auslesen - Formel für Berechnung / Werte ausrechnen

Begonnen von Marty, 14 November 2015, 23:49:04

Vorheriges Thema - Nächstes Thema

Marty

Hallo FHEM Spezialisten,

ich betreibe einige Temperatursensoren in FHEM.
Nun habe ich mir einen Umweltsenspr mit DS2438 zugelegt, den ich versuche auszulesen.

Im Anhang sieht er die Werte, die im OWFS Web angezeigt wird.
Anscheinend wird die Luftfeuchtigkeit bereits ausgelesen?

Wie kann ich den Wert anzeigen lassen?
Geht das mit {sprintf("%.1f",ReadingsVal("Feuchte_Buero","humidity",0))."%"} ? Oder bin ich da völlig auf den falschen Dampfer?

Ich kann den Sensor mit OWMULTI und mit OWDEVICE auslesen. Allerdings setzt er dann VAD = relFeuchte in %

In der Anleitung steht folgendes:
Offset = 0.84747, slope = 29.404604
Srh = (VAD - offset) / (slope / 1000)
rFH = (Srh + 2) / ((1.0305 + (0.000044 * Temperatur) - (0.0000011 * Temperatur x 10exp2))
Wie kann man das in eine VFunction umsetzen?
Konkret geht es mir darum wie ich den Temperaturwert auslesen kann?

2. Frage:
Der VIS Wert lässt sich mit (VDD - (VIS * 22.2)) * 1850 in Lux umrechnen.
Ist es richtig, dass OWMULTI den VIS Wert nicht anzeigen kann?

Kurz gesagt: Ich habe noch nicht verstanden wie ich Werte aus dem OWFS Verzeichnis in FHEM anzeigen lassen kann.
In diesem Fall den Wert von Humidity und Temperatur.
Wann wird VIS Unterstützt? - Spendenaktion ?  :-)

Vielen vielen Dank für Hilfe!


Marty

Was ist an diesem String falsch?
Ich suche seit Stunden:

VFunction ((V - 0.847847) / (29.404604 / 1000) +2) / ((1.0305 + (0.000044 * T) - (0.0000011 * T * 100))


Ich habe schon alle Wikis durch. Leider wird rH 0.0 angezeigt.

VName (relHumidity|rH)
und VUnit (percent|%)  ist gesetzt

Leider wird jedoch dieser Wert angezeigt:
   
rH: 0.0 % (T: 21.8 °C)

Wenn ich die Formel in den Taschenrechner eingebe, ist das Ergebnis plausibel.

raw = 2.71 und Temperatur = 21.8 kann ich mit get auslesen.


Danke für eure Hilfe!

Prof. Dr. Peter Henning

#2
1. Falsch an dem String ist, dass er eine Klammer zuviel hat - elementarer Fehler...

((V - 0.847847) / (29.404604 / 1000) +2) / ((1.0305 + (0.000044 * T) - (0.0000011 * T * 100))

2. Diese Funktion ließe sich drastisch vereinfachen zu

(406573. - 515277.*V)/(-15613.6 + T)
oder
(-26.8338 + 34.0083*V)/(1.0305 -0.000066*T)

3. Ich glaube nicht, dass die Funktion aus dem Datenblatt richtig abgelesen wurde. Es macht nämlich keinen Sinn

(0.000044 * Temperatur) - (0.0000011 * Temperatur x 10exp2))

zu schreiben - das ließe sich in einem Term zusammenfassen. Vermutlich sollte es heißen

(0.000044 * Temperatur) - (0.0000011 * Temperatur exp 2))

und somit einen quadratischen Fit darstellen. Dann wäre die richtige VFunction

(-26.8338 + 34.0083*V)/(1.0305 + 0.000044 *T - 0.0000011*T*T)

4. Im Modul OWMULTI wird in der Tat bisher der "VIS"-Wert bisher nicht ausgewertet. Habe ich vor, einzubauen - aber erst nach dem Ende meines gegenwärtiges Buchprojektes. Könnte Januar werden.

LG

pah

Marty

Vielen Vielen Dank!
Anbei ein Auszug aus der Anleitung. Ist ein wenig kompliziert geschrieben.

Info:
Wenn ich den DS2438 las OWdevice anspreche, kann ich auf die "Humidity" und VIS Variable zugreifen.
Laut OWDEVICE Anleitung gehen die von einen HIH4000 aus. Der Hersteller von dem Modul schreibt aber, dass er einen HIH5000 verbaut. Der hat jedoch eine anderen Kennlinie.
Jetzt versuche ich die Berechnung nachzuvollziehen um die Werte von OWDEVICE und der Berechnung laut der Formel unten zu vergleichen.

Ich Sitze seit dem Morgen da und versuche mit stateFormat und sprintf den Lux Wert zu berechnen.
Ich habe halt nur sehr vereinfachte Programmierkenntnisse. Macht aber spaß hier zu knobeln bis man es irgendwann versteht.


Marty

Für alle die mal nachbauen:
Zitat
(-26.8338 + 34.0083 V)/(1.0305 + 0.000044 *T - 0.0000011*T*T)

Den Multiplikator vor dem V muss man angeben:

attr Feuchte_Buero VFunction (-26.8338 + 34.0083 * V)/(1.0305 + 0.000044 *T - 0.0000011*T*T)


OWDEVICE gibt eine Feuchtigkeit aktuell von "humidity   58.1852"
Die Berechnung ergibt aber "rH: 59.4 % (T: 22.2 °C)"

OWDIVICE geht da wohl von einer anderen Kennlinie aus.

Prof. Dr. Peter Henning

Erstens sehe ich keinen Sinn in der Berechnung einer Beleuchtungsstärke in Lux = Lumen/m², es sei denn, an einem Arbeitsplatz.
Wenn man wissen möchte, wie "hell" es irgendwo ist (z.B. draußen), wäre die Angabe einer Bestrahlungsstärke in W/m² sehr viel sinnvoller.

Zweitens habe ich erhebliche Zweifel, ob der verwendete Sensor wirklich "Lux" misst. Typischerweise sind solche Sensoren sehr empfindlich gegenüber infraroter Strahlung. Bevor ich ein Datenblatt mit genauen Angaben über spektrale Empfindlichkeit gesehen habe, werde ich deshalb immer von einem irgendwie qualitativen, aber nicht notwendigerweise quantitativ brauchbaren Wert für eine Helligkeitsmessung ausgehen..

LG

pah

ritchie

Hallo Pah,

ich glaube Du hast auf den falschen Thread geantwortet. Jedenfalls verstehe ich die Antwort nicht im obigen Zusammenhang.

Viele Grüße R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Prof. Dr. Peter Henning

Nee, hab ich nicht. Lies mal die "Anleitung" in dem Bild oben.

LG

pah

Marty

Das mit den Lux ist richtig. Zumal sich der Sensor hinter einer Blende mit Lüftungsgitter befindet.
Welcher Sensor da verwendet wird weiß ich nicht.
Die Homepage gibt hierzu leider nichts her.

Die VIS Spannung liegt in der Nacht bei 0.219446 Volt.
Ich schaue mal welchen Wert die VIS Spannung am Tag annimmt.

Dann warte ich mal bis OWMULTI die VIS Spannung als Wert unterstützt.

Ein großes Lob an allen "Macher" hier. FHEM ist echt toll!!

Viele Grüße
Marty_MC


ritchie

Sorry,
"Lux"
habe ich glatt übersehen.

Ohne die Ermittllung des Sensortype wird das aber nichts genaues.

Viele Grüße
R.





IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv