Dewpoint funktioniert nicht - Problem mit getrennten Devices in einem Sensor?

Begonnen von Ruggy, 23 Dezember 2018, 16:05:52

Vorheriges Thema - Nächstes Thema

Ruggy

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

KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Paul

In deinen Devices gibt es die Readings temperature und humidity?

Hast du auch das Attribut absFeuchte auf 1 gesetzt?
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Ruggy

@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 ;-)

KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Ruggy

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

KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Paul

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.
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

KernSani

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Paul

Um userReadings aus einem anderen Devices zu befeuern brauchst du ein notify
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Ruggy

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)}

KernSani

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.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Ruggy

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?

KernSani

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...


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Ruggy

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?