FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ruggy am 23 Dezember 2018, 16:05:52

Titel: Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 23 Dezember 2018, 16:05:52
Hallo,

komme leider nicht weiter; versuche es schon ziemlich lange aber bekomme es nicht hin.

Mein Ziel wäre, die absolute Luftfeuchtigkeite zu berechnen bzw. anzuzeigen.

Habe mehrere Sensoren (Außen, Keller, Zimmer) von Xiaomi Aquara welche Temperatur, Luftfeuchtigkeit und Luftdruck messen.
In FHEM werden die Werte nicht in einem Device gleichzeitig angezeigt,  sonder ich benötige pro Messwert ein Device (z.B. Aussen_Temp, Aussen_Luft, Keller_Temp, Keller_Luft usw).

Wenn ich es richtig verstanden habe sollte mit folgendem Befehl zu den readings (von allen vorhandenen Sensoren/Devices) humidity und temperature noch der Taupunkt als reading hinzugefügt und angezeigt werden.

-> define dewpointToAllDeviceReadings dewpoint dewpoint .* temperature humidity dewpoint

Die funktioniert nicht. Warum weiß ich nicht.

Evlt. liegt es daran, weil jeder Messerte in einen andern Device angezeigt wird?

Habe irgendwo gelesen, dass manche das Problem hatten, wenn temperature und humidity zu anderen Uhrzeiten (ein paar Sekunden unterschied) ausgelesen wurden. Das wäre bei mir aber auch nicht der Fall.



Welchen Befehl muss ich eingeben, wenn ich für einen Sensor den Taupunkt/absolute Feuchtigkeit berechnen will?
Folgender Beispielbefehl aus der Dokumentation von FHEM setzt doch voraus, dass ein und dasselbe Device (temp1) temperature und humidity ausliest. Bei mir sind es ja zwei verschiedene.

define dew_temp1 dewpoint dewpoint temp1

Oder verstehe ich das falsch?


Was mache ich falsch?

Vielen Dank
Grüße
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: KernSani am 23 Dezember 2018, 18:32:14
Hi,

ich glaube nicht, dass sich dewpoint aus mehreren Devices die Readings zusammensuchen kann (habe mir das jetzt nicht im Detail angesehen). Was aber gehen müsste: Leg dir z.B. im _Temp-Device ein userreading an, das sich den aktuellen humidity Wert holt.

Schöne Feiertage,

Oli
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Paul am 23 Dezember 2018, 19:33:03
In deinen Devices gibt es die Readings temperature und humidity?

Hast du auch das Attribut absFeuchte auf 1 gesetzt?
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 23 Dezember 2018, 20:19:10
@Paul
So sehen die beiden Devices aus. Es gibt im einen temperature und im anderen humidity, aber nicht beide in einen.

Das Attribut absFeuchte habe ich noch nicht auf 1 gesetzt.
Soll ich das machen? Bisher kann ich ja den Dewpoint auch noch nicht berechnen.

@KernSani
Habe leider nichts darüber gefunden (Suchmaschine), wie ich userreading dazu bringe den humidity von einen anderen Device zu holen?

Sorry, für die evlt. Anfängerfragen; ich bin aber auch einer ;-)
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: KernSani am 23 Dezember 2018, 21:25:31
Hi,

bitte "list" des devices, keine Screenshots.

Das sollte in etwa so funktionieren (ungetestet):

attr Aussen_Temp userreading humidity {ReadingsVal("Aussen_Hum","humidity",0)}


Das userreading wird nicht sofort angelegt, sondern erst wenn das nächste Event kommt.

Grüße,

Oli
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 23 Dezember 2018, 21:42:08
Wenn ich den Code eingebe kommt die Meldung:
"Please define Aussen_Temp first"

Habs mal so versucht:
attr AUS_TEMPERATUR userreading humidity {ReadingsVal("AUS_LUFTFEUCHTIGKEIT","humidity",0)}
Es kommt die Meldung:
AUS_TEMPERATUR: unknown attribute userreading. Type 'attr AUS_TEMPERATUR ?' for a detailed list.



Hier das List von AUS_TEMPERATUR

Internals:
   DEF        sensor 11  IODev=deCONZ
   ID         S11
   INTERVAL   
   IODev      deCONZ
   NAME       AUS_TEMPERATUR
   NR         17
   STATE      Initialized
   TYPE       HUEDevice
   lastupdated 2018-12-23 21:24:16
   manufacturername LUMI
   modelid    lumi.weather
   name       Xiaomi_au�en
   on         1
   reachable  1
   type       ZHATemperature
   uniqueid   00:15:8d:00:02:73:cc:32-01-0402
   READINGS:
     2018-12-23 21:00:48   battery         68
     2018-12-23 21:00:48   reachable       1
     2018-12-23 21:24:16   temperature     3.84
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     setList:
Attributes:
   IODev      deCONZ
   room       Aussen

Hier von AUS_LUFTFEUCHTIGKEIT

Internals:
   DEF        sensor 12  IODev=deCONZ
   ID         S12
   INTERVAL   
   IODev      deCONZ
   NAME       AUS_LUFTFEUCHTIGKEIT
   NR         21
   STATE      Initialized
   TYPE       HUEDevice
   lastupdated 2018-12-23 21:34:19
   manufacturername LUMI
   modelid    lumi.weather
   name       Xiaomi_au�en
   on         1
   reachable  1
   type       ZHAHumidity
   uniqueid   00:15:8d:00:02:73:cc:32-01-0405
   READINGS:
     2018-12-23 21:00:48   battery         68
     2018-12-23 21:34:19   humidity        100
     2018-12-23 21:00:48   reachable       1
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     setList:
Attributes:
   IODev      deCONZ
   room       Aussen
Titel: Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: KernSani am 23 Dezember 2018, 21:50:00
Sorry, das Attribut heisst userReadings - kannst du unten bei den Attributen auswählen.
Edit: und bitte code tags (das # oben im Editor) verwenden

Kurz, weil mobil
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Paul am 23 Dezember 2018, 22:27:51
das mit dem userReading wird so nivht klappen.

mach ein notify was auf etwas auf AUS_Luftfeuchte triggert.
und dann  zur Ausführung des notify
{{my $content = ReadingsVal("AUS_TEMPERATUR","humidity","0");; fhem "setreading AUS_TEMPERATUR humidity $content" }}



dann sollte Du in AUS_TEMPERATUR humidty und temperature haben und kannst dewpoint setzen.
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: KernSani am 23 Dezember 2018, 22:54:27
Zitat von: Paul am 23 Dezember 2018, 22:27:51
das mit dem userReading wird so nivht klappen.
Wieso nicht?
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Paul am 23 Dezember 2018, 22:57:22
Um userReadings aus einem anderen Devices zu befeuern brauchst du ein notify
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 23 Dezember 2018, 23:05:02
Mit den userReadings hat denke ich geklappt.
Zumindest wird mit unter dem Device AUS_TERMPERATUR auch humidity angezeigt.

im FileLog wird mir aber jetzt humidity doppelt angezeigt und im SVG Plot die humidity nicht.
An was könnte das liegen? Habe ich evtl. mit meiner Probiererei etwas durcheinander gebracht?

2018-12-23_22:52:31 AUS_TEMPERATUR humidity: 100
2018-12-23_22:52:31 AUS_TEMPERATUR temperature: 4.19
2018-12-23_22:52:31 AUS_TEMPERATUR humidity: 100

Hier wieder mein List von AUS_TEMPERATUR:

Internals:
   DEF        sensor 11  IODev=deCONZ
   ID         S11
   INTERVAL   
   IODev      deCONZ
   NAME       AUS_TEMPERATUR
   NR         17
   STATE      Initialized
   TYPE       HUEDevice
   lastupdated 2018-12-23 23:01:04
   manufacturername LUMI
   modelid    lumi.weather
   name       Xiaomi_au�en
   on         1
   reachable  1
   type       ZHATemperature
   uniqueid   00:15:8d:00:02:73:cc:32-01-0402
   READINGS:
     2018-12-23 22:52:31   battery         68
     2018-12-23 23:01:04   humidity        100
     2018-12-23 22:52:31   reachable       1
     2018-12-23 23:01:04   temperature     4.29
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     setList:
Attributes:
   IODev      deCONZ
   room       Aussen
   userReadings humidity {ReadingsVal("AUS_LUFTFEUCHTIGKEIT","humidity",0)}
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: KernSani am 23 Dezember 2018, 23:16:56
Zitat von: Paul am 23 Dezember 2018, 22:57:22
Um userReadings aus einem anderen Devices zu befeuern brauchst du ein notify
Das ist richtig - aber mit jedem event (in diesem Fall) auf das Temp Device wird das userreading mit dem aktuellen Wert des _Hum-Devices gefüttert, das sollte reichen.
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 23 Dezember 2018, 23:41:39
Es funktioniert jetzt doch. Wird auch nicht mehr doppel ausgelesen. War nur einmal so.

Derzeit liegt die Luftfeuchtigkeit bei 100 %. Die Linie der Luftfeuchtigkeit liegt ziemlich genau auf dem unteren Rand vom Plot, so das ich ihn erst nicht gesehen habe.

Da sich die Luftfeuchtigkeit nicht ändert, sind im Plot die Min und Maxwerte 100 und 101 %

Kann man hier etwas ändern?
Zumindest, dass die Linie der Luftfeuchtigkeit nicht so am Rand klebt?
Wenn die Schwankung der Luftfeuchtigkeit mal größer ist, wird sich dies zumindest angelichen; denke ich?
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: KernSani am 24 Dezember 2018, 00:12:55
du kannst dem Plot eine Range mitgeben, ob das Sinn macht, überlasse ich dir ;-)

Klappt denn das mit dem Dewpoint jetzt? ich habe parallel mitgetestet - bei mir wurde nicht automatisiert ein dewpoint reading angelegt, aber als ich mit

setreading Mein_Temp_Device dewpoint 1

ein dewpoint reading erzeugt hatte, wurde mir unmittelbar ein korrekter dewpoint berechnet...


Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 24 Dezember 2018, 00:30:48
Nein, es (folgender Code) funktionierte auch nicht.

define dew_all dewpoint dewpoint .* temperature humidity dewpoint

Es wurde kein Dewpoint reading angelegt. Eine Fehlermeldung kam nicht.


Wie bei dir auch, funktionierte jedoch folgendes.

setreading AUS_TEMPERATUR dewpoint 1

Dewpoint wird berechnet.
Jedoch wird der Luftfeuchtigkeitswert vom selben Device, zur selben Zeit, zweimal ausgelesen?

An was könnte das liegen?
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 24 Dezember 2018, 13:50:04
Grundsätzlich funktioniert es.

Aber es werden die Luftfeuchtigkeitswerte vom Device durch das userReadings immer noch doppelt bzw. dreifach ausgelesen (rote Pfeile im Bild).

Außerdem stimmen der Zeitpunkt (Uhrzeit) vom Auslesen der Temperaturwerte nicht mit dem Zeitpunkt vom Auslesen der Luftfeuchtigkeitswerte überein.
Es sieht so aus, als wie wenn der Luftfeuchtigkeitswert vom userReading der Wert ist, welcher bei vorherigen auslesen tatsächlich war (sieh hell- und dunkelgründe Pfeile).

Ich hoffe ich konnte einigermaßen erklären (hoffentlich ist das Bild nicht zu verwirrend).

Wie kann ich das passend machen?
Momentan stimmt der Dewpoint dann ja nicht, wenn dies aus Werten berechnet wird, welche zu verschiedenen Zeiten entstanden sind.

Wenn ich andere Infos hier einstellen soll bitte um Mitteilung (evlt. auch wie es funktioniert diese auszulesen).
Danke


Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: KernSani am 24 Dezember 2018, 14:20:46
Tja, das ist ärgerlich. Sieht so aus als käme die humidity immer im Milliskeundenbereich nach der Tempreatur, d.h. userreading im _TEMPERATUR device wird mit der alten humidity aktualisiert. Zweimal kommt es vermutlich, weil es mehrere Events gibt auf die das userreading anspringt (dewpoint ist eines, battery u.ä. können das auch bewirken). Da könnte man das userreading noch einschränken
humidity:temperature {...
Wenn dich die Unschärfe bei der dewpoint-Berechnung stört, dann hilft doch nur ein notify (wie Paul oben schon sagte). Alternativ kannst du versuchen am _LUFTFEUCHTIGKEIT device ein userreading für temperature anzulegen und hoffen, dass die Events in der richtigen Reihenfolge kommen...

Frohes Fest!
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 24 Dezember 2018, 15:45:02
Irgendwie denke ich mir gerade ich messe Temperatur und Luftfeuchtigkeit rechne die abs. Luftfeuchtigkeit aus und schreibe es auf einen Zettel  ??? ;)

Ich schau es mir später nochmal an und probiere. Muss erst mal lesen wie ich das notify hier machen kann. Wie gesagt, ich kenne mich mit FHEM (noch) fast gar nicht aus.

Habe mir das Buch Perl für Dummies bestellt.  ;) Gibt es das auch für FHEM?

Wünsche auch schöne Weihnachten :)
Würde mich die Tage nochmals melden, außer ich bekomme es selber hin.
Grüße
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Frank_Huber am 24 Dezember 2018, 16:24:31
Zitat von: KernSani am 24 Dezember 2018, 14:20:46
Tja, das ist ärgerlich. Sieht so aus als käme die humidity immer im Milliskeundenbereich nach der Tempreatur, d.h. userreading im _TEMPERATUR device wird mit der alten humidity aktualisiert.

Wenn es immer diese Reihenfolge ist könnte man das userReading auch in das andere Gerät packen.
Es ist ja eigentlich egal auf welcher Seite man die Werte "sammelt", es müssen nur in einem Gerät beide Werte stehen. oder?

schöne Festtage!
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 25 Dezember 2018, 12:22:10
Habe jetzt das userReadings im anderen Device AUS_LUFTFEUCHTIGKEIT angelegt, so das der Temperaturwert vom AUS_TEMPERATUR geholt wird.

Schein jetzt zu funktionieren.

Jetzt hänge ich nur schon wieder an einer anderen Stelle...  :(

Wie kann ich jetzt die absolute Luftfeuchtigkeit (aus dem Taupunkt) berechnen lassen?
habe in der Referenz von FHEM unter "dewPoint" folgendes als Attribut gefunden.

absoluteHumidity <reading_name>

Wo/wie gebe ich das ein?

Das Attribut
absFeuchte hätte ich auch noch gefunden

Wo/wie gebe ich das ein?

Welches ist besser?

Beim absFeuchte stehen folgende Codes als Beispiel:

    define dew_state dewpoint dewpoint .* T H D
    attr dew_state absFeuchte 1


Bei mir werden die Werte aber nicht in der Form von T H D angezeigt. Muss ich das extra anlegen oder geht es auch ohne?
Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Paul am 25 Dezember 2018, 14:50:21
Zitat von: Ruggy am 25 Dezember 2018, 12:22:10


Beim absFeuchte stehen folgende Codes als Beispiel:

    define dew_state dewpoint dewpoint .* T H D
    attr dew_state absFeuchte 1



Einfach eingeben wie es da steht.

Das dewpoint Modul hast du doch schon definiert: define....

Also nur noch dort das andere einsetzen, wobei dew_state dein Name ist.

Titel: Antw:Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?
Beitrag von: Ruggy am 25 Dezember 2018, 20:43:26
Oh je, so ein fach kann es manchmal sein.

Hat funktioniert.

Da nuss ich noch viel lernen.

Danke