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
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?
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
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?
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
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 :)
Hätte man dafür nicht sehr gut ReadingsProxy nehmen können?
Grüße
@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
Danke Dir Andre.
Grüße
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/ (http://raspberry.tips/hausautomatisierung/raspberry-pi-automatisch-lueftersteuerung-mit-fhem-und-homematic/)