Temperaturdifferenz berechnen

Begonnen von duffy6, 30 April 2014, 19:23:09

Vorheriges Thema - Nächstes Thema

duffy6

Hallo zusammen,

ich würde mir gerne die Temperaturdifferenz zwischen Innenwandtemperatur (=T) und Taupunkt (=D) berechnen lassen.
(und bei einer Differenz kleiner 2 Kelvin per Mail benachrichtigen lassen; 2. Schritt)

Wie kann ich diese Berechnung durchführen?

Mein log sieht so aus:

Zitat2014-04-30_19:12:55 04Thermo battery: ok
2014-04-30_19:13:31 04Thermo dewpoint: 10.9
2014-04-30_19:13:31 04Thermo temperature: 18.3
2014-04-30_19:13:31 04Thermo humidity: 62
2014-04-30_19:15:57 04Thermo T: 18.4 H: 62 D: 11

Gruß
duffy6

EDIT: Und diese Mail soll aber nur einmal pro Tag versendet werden (sonst müllt es mir ja mein Postfach voll)

strauch

Das sollte mit Threshold gehen. Der schickt immer dann eine email wenn der zustand eintritt... Als nächstes erst wieder. Wenn der zustand anders und dann wieder eintritt.
Beim Threshold gibst du einen wert als thresholdwert und den anderen als sensorwert. Mit einem offset von 2.

Gesendet von meinem Nexus 4 mit Tapatalk

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

duffy6

Versteh ich nicht, kannst Du das mal ausführen?

duffy6

Hab es jetzt mal so probiert:

Zitat#Taupunkt-Innentemperatur-Differenz berechnen
define delta_T dummy
attr delta_T room Plots
define notify_delta_T notify 04Temp.temperature.* {\
my $T = ReadingsVal("04Temp","temperature",0);;\
my $D = ReadingsVal("04Temp","dewpoint",0);;\
$delta = $T-$D;;\
fhem "set delta_T $delta";;\
}

Allerdings krieg ich kein Ergebnis für "delta_T"

Kann mir da jmd auf die Sprünge helfen?

Gruß
duffy6

strauch

#4
Bei deinem beispiel fehlt die if abfrage.

Wenn dann müsstest du sowas schreiben:
{if ReadingsVal("04Temp","temperature",0)-ReadingsVal("04Temp","dewpoint",0) <= "2"){fhem("set delta_T on} }

Nachteil beim notify der löst jedesmal aus, wenn ein neuer Wert kommt und der Zustand zutrifft, hier müsste man den notify für eine gewisse Zeit per at deaktivieren.

Beim Threshold stelle ich mir das so vor:
define treshold_delta_T THRESHOLD 04Temp:temperature:1:04Temp:dewpoint:-2 delta_T|set @ on|set @ off|1

mit der hysterese und dem offset müsstest du ein wenig spielen. Vorteil vom Threshold er löst nur einmal aus, bis sich der Zustand wieder geändert hat und er funktioniert in beide Richtungen. schaltet also an und aus.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Damian

Zitat von: strauch am 01 Mai 2014, 08:35:24
Bei deinem beispiel fehlt die if abfrage.

Wenn dann müsstest du sowas schreiben:
{if ReadingsVal("04Temp","temperature",0)-ReadingsVal("04Temp","dewpoint",0) <= "2"){fhem("set delta_T on} }

Nachteil beim notify der löst jedesmal aus, wenn ein neuer Wert kommt und der Zustand zutrifft, hier müsste man den notify für eine gewisse Zeit per at deaktivieren.

Beim Threshold stelle ich mir das so vor:
define treshold_delta_T THRESHOLD 04Temp:temperature:1:04Temp:dewpoint:-2 delta_T|set @ on|set @ off|1

mit der hysterese und dem offset müsstest du ein wenig spielen. Vorteil vom Threshold er löst nur einmal aus, bis sich der Zustand wieder geändert hat und er funktioniert in beide Richtungen. schaltet also an und aus.

Ob grundsätzlich ein Vergleich zwischen Temperatur- und Taupunkt des gleichen Sensors sinnvoll ist, weiß ich nicht. Mehr Sinn macht es eher Außen- mit Innen-Taupunkt zu vergleichen, siehe Beispiel zu:
"Belüftung anhand des Taupunktes, abhängig von der Luftfeuchtigkeit innen" hier: http://fhem.de/commandref_DE.html#THRESHOLD

Die Verknüpfung mit Luftfeuchtigkeit kannst du auch weglassen.

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bennemannc

Hallo,

also für mich macht diese Abfrage durchaus Sinn. Ein Raum ist nie gleichmäßig isoliert und temperiert, so das bei einem Unterschied von "nur" 2 Grad es durchaus Stellen im Raum gibt, an denen bei entsprechender Außentemperatur Feuchtigkeit entstehen kann.
Die Luftfeuchtigkeit kann man dabei unberücksichtigt lassen, da diese ja schon in der Berechnung des Taupunktes mit eingeflossen ist.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Thorsten Pferdekaemper

ZitatOb grundsätzlich ein Vergleich zwischen Temperatur- und Taupunkt des gleichen Sensors sinnvoll ist, weiß ich nicht. Mehr Sinn macht es eher Außen- mit Innen-Taupunkt zu vergleichen, siehe Beispiel zu:
"Belüftung anhand des Taupunktes, abhängig von der Luftfeuchtigkeit innen
Nicht jeder regelt damit eine Lüftung. Man kann auch z.B. ungenutzte Räume taupunktgeführt heizen. Dann interessiert mich die Luftfeuchtigkeit draußen nicht wirklich.
Gruß,
Thorsten
FUIP

Damian

#8
Noch mal zu meiner Aussage:

"Ob grundsätzlich ein Vergleich zwischen Temperatur- und Taupunkt des gleichen Sensors sinnvoll ist, weiß ich nicht"

Denn, der Taupunkt wird aus der Temperatur und der relativen Feuchtigkeit berechnet. Damit hängt die Differenz zwischen Taupunkt und Temperatur unmittelbar mit der rel. Feuchtigkeit zusammen (je größer die Differenz, desto niedriger die rel. Feuchtigkeit). Damit kann ich statt der Differenz auch gleich die rel. Feuchtigkeit als Schaltschwelle nehmen und die muss der Sensor haben, sonst könnte man keinen Taupunkt berechnen.

Hier kann es jeder selber mal nachrechnen: http://www.kefa-international.com/de/taupunktberechnung.html

Edit: Um es mal in Zahlen auszudrücken: eine Differenz von 2 Grad entspricht ca. 90 % rel. Luftfeuchtigkeit

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

duffy6

@Damian:
Ich möchte aber auch gerne die Differenz loggen.

Wie lautet denn dann der Code?

Danke und Gruß
duffy6

Thorsten Pferdekaemper

Hi,
schau Dir mal userReadings in der commandref an.
Gruss,
    Thorsten
FUIP

duffy6

Kannst Du  den dazugehörigen Codeschnispel posten?

marvin78

Du hast dir userReadings in der Commandref angeschaut? Da steht, wie es geht.

duffy6

#13
Servus zusammen,

das Thema mit der Berechnung der Differenz zwischen Taupunkt und KellerwandInnentemperatur hab ich immer noch nicht hinbekommen - auch nicht mit der commandref.

Kann ir jmd kurz weiterhelfen mit einem Codeschnipsel?
Das wär top!

Das hier habe ich mal ausprobiert, allerdings klappt die Berechnung nicht. Vielleicht wisst ihr an was es liegen könnte:

#Taupunkt-Innentemperatur-Differenz berechnen
define delta_T dummy
attr delta_T room Plots
define notify_delta_T notify 04Temp.temperature.* {\
my $T = ReadingsVal("04Temp","temperature",0);;\
my $D = ReadingsVal("04Temp","dewpoint",0);;\
$delta = $T-$D;;\
fhem "set delta_T $delta";;\
}


Thx und grüße
duffy6

Damian

Zitat von: duffy6 am 19 September 2014, 17:49:38
Servus zusammen,

das Thema mit der Berechnung der Differenz zwischen Taupunkt und KellerwandInnentemperatur hab ich immer noch nicht hinbekommen - auch nicht mit der commandref.

Kann ir jmd kurz weiterhelfen mit einem Codeschnipsel?
Das wär top!

Das hier habe ich mal ausprobiert, allerdings klappt die Berechnung nicht. Vielleicht wisst ihr an was es liegen könnte:

#Taupunkt-Innentemperatur-Differenz berechnen
define delta_T dummy
attr delta_T room Plots
define notify_delta_T notify 04Temp.temperature.* {\
my $T = ReadingsVal("04Temp","temperature",0);;\
my $D = ReadingsVal("04Temp","dewpoint",0);;\
$delta = $T-$D;;\
fhem "set delta_T $delta";;\
}


Thx und grüße
duffy6

Wie wäre es mit einem Zweizeiler:

define delta_t DOIF
attr delta_t state {([04Temp:temperature]-[04Temp:dewpoint])}


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF