Taupunkt / dewPoint über zwei devices Berechnen?

Begonnen von at2oo1, 11 August 2016, 20:46:20

Vorheriges Thema - Nächstes Thema

at2oo1

Hallo Community,

ich möchte gerne den Taupunkt berechnen habe aber das Problem das Temperatur und Luftfeuchte aus technischen Gründen über zwei Devices kommen.

Kann ich die beiden Devices irgendwie zusammenfassen oder dewPoint über die beiden devices berechnen?!


#### JSON TEMP Keller_Temperatur####
define Keller_Temperatur HTTPMOD http://xxxxx.de/feed/timevalue.json?apikey=xxxxxx&id=37 300
attr Keller_Temperatur userattr reading01Name reading01Regex reading02Name reading02Regex
attr Keller_Temperatur fp_Grundriss 673,295,1, ,
attr Keller_Temperatur group Temperatur
attr Keller_Temperatur icon temp_temperature
attr Keller_Temperatur reading01Name Zeit
attr Keller_Temperatur reading01Regex localtime("time":"([\d]+))
attr Keller_Temperatur reading02Name Temperatur
attr Keller_Temperatur reading02Regex "value":"([\d\.]+)
attr Keller_Temperatur room Temperatur
attr Keller_Temperatur stateFormat {sprintf("Temperatur %.1f C", ReadingsVal($name,"Temperatur",0))}
attr Keller_Temperatur timeout 5
attr Keller_Temperatur verbose 4
#### JSON TEMP Keller_Luftfeuchte####
define Keller_Luftfeuchte HTTPMOD http://xxxx.de/feed/timevalue.json?apikey=xxxx&id=35 300
attr Keller_Luftfeuchte userattr reading01Name reading01Regex reading02Name reading02Regex
attr Keller_Luftfeuchte fp_Grundriss 692,295,1, ,
attr Keller_Luftfeuchte group Luftfeuchte
attr Keller_Luftfeuchte icon temperature_humidity
attr Keller_Luftfeuchte reading01Name Zeit
attr Keller_Luftfeuchte reading01Regex localtime("time":"([\d]+))
attr Keller_Luftfeuchte reading02Name Luftfeuchte
attr Keller_Luftfeuchte reading02Regex "value":"([\d\.]+)
attr Keller_Luftfeuchte room Luftfeuchte
attr Keller_Luftfeuchte stateFormat {sprintf("Luftfeuchte %.1f %", ReadingsVal($name,"Luftfeuchte",0))}
attr Keller_Luftfeuchte timeout 5
attr Keller_Luftfeuchte verbose 4

at2oo1

#1
Ich hatte einen Lösungsansatz gefunden, komme aber nicht weiter. Ich wollte dem Device "Keller_Luftfeuchte" zwei Attribute hinzufügen "temperature" und "Humidity" um darauf dann die Taupunktberechnung zu machen.

Allerdings geht das nicht

attr Keller_Luftfeuchte temperature {sprintf("%.1f",ReadingsVal("Keller_Temperatur","Temperatur",0))}
attr Keller_Luftfeuchte humidity {sprintf("%.1f",ReadingsVal("Keller_Luftfeuchte","Luftfeuchte",0))}


FHEM sagt "unkown attribute", wie kann ich denn dem Device zwei neue Attribute beibringen?

justme1968

du hast den attribut namen userReadings vergessen.

das funktioniert so aber nicht da bei einer readings änderung im anderen device das user reading und damit das kopieren nicht getriggert wird.

ich würde auch keinen dummy anlegen sondern eines der beiden readings per notify zusätzlich ins andere device schreiben und dafür dann dewpoint definieren.

je weniger (überflüssige) devices desto besser.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

at2oo1

Danke für deine Rückmeldung. Die Logik hinter deiner Antwort ist mir klar, ich komme aber mit der Umsetzung nicht zurecht.

Ich verstehe nicht wie ich in ein anderes device schreiben soll das kein Attribut temperature oder humidity hat, bzw wie ich die attribute anlegen kann.

Zitatdefine KellerTemperatureChanged notify Keller_Luftfeuchte:Luftfeuchte.*  <set ????>

Wie kann ich denn jetzt dem Device, in das ich bei Änderung schreiben möchte, beibrigen das es ein weiteres Attribut "humidity" hat? Bzw wie müsste der set befehl im notify aussehen?


justme1968

temperatur und humidity sind keine attribute sondern readings.

ein reading erzeugst du z.b. mit setreading.

define xyz notify Keller_Luftfeuchte:Luftfeuchte.* setreading Keller_Temperatur humidity $EVTPATRT1

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

at2oo1

Danke! Damit hat es funktioniert:

define Keller_UpdateHumidity notify Keller_Luftfeuchte:Luftfeuchte:.* setreading Keller_Temperatur humidity $EVTPART1
define Keller_UpdateTemperatur notify Keller_Temperatur:Temperatur:.* setreading Keller_Temperatur temperature $EVTPART1


Dann Taupunkt:

define dew_all dewpoint dewpoint .* temperature humidity dewpoint

Danke :)

CoolTux

Hätte man dafür nicht sehr gut ReadingsProxy nehmen können?


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

justme1968

@at2ooq: warum hast du zwei notifys? du solltest mit einem notify auskommen das eines der readings ins anders device kopiert. das andere readings ist doch schon da.

@CoolTux: der aktuell eingescheckte readingsProxy kann nur ein reading. ich habe hier zwar schon eine version die mehr als ein reading kann aber die müssen aktuell aus dem gleichen device kommen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

at2oo1

Danke für die Hilfe hier, ohne die Möglichkeit hätte ich das nicht hinbekommen. Meine fertige FHEM / HomeMatic Kellerlüftung habe ich hier dokumentiert falls noch jemand Inspiration oder Beispiele für Taupunkte und Automatisierung braucht.

http://raspberry.tips/hausautomatisierung/raspberry-pi-automatisch-lueftersteuerung-mit-fhem-und-homematic/