FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: duffy6 am 30 April 2014, 19:23:09

Titel: Temperaturdifferenz berechnen
Beitrag von: duffy6 am 30 April 2014, 19:23:09
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)
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: strauch am 30 April 2014, 20:17:51
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

Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: duffy6 am 01 Mai 2014, 00:45:34
Versteh ich nicht, kannst Du das mal ausführen?
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: duffy6 am 01 Mai 2014, 01:59:36
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
Titel: Antw:Temperaturdifferenz berechnen
Beitrag 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.
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 01 Mai 2014, 09:16:58
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

Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Bennemannc am 01 Mai 2014, 09:55:51
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
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Thorsten Pferdekaemper am 01 Mai 2014, 10:04:25
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
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 01 Mai 2014, 11:46:09
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
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: duffy6 am 02 Mai 2014, 19:20:16
@Damian:
Ich möchte aber auch gerne die Differenz loggen.

Wie lautet denn dann der Code?

Danke und Gruß
duffy6
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Thorsten Pferdekaemper am 02 Mai 2014, 19:31:28
Hi,
schau Dir mal userReadings in der commandref an.
Gruss,
    Thorsten
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: duffy6 am 03 Mai 2014, 07:07:42
Kannst Du  den dazugehörigen Codeschnispel posten?
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: marvin78 am 03 Mai 2014, 07:16:17
Du hast dir userReadings in der Commandref angeschaut? Da steht, wie es geht.
Titel: Antw:Temperaturdifferenz berechnen
Beitrag 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
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 19 September 2014, 18:10:31
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
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: duffy6 am 20 September 2014, 10:57:15
Danke!

Aber angezeigt bekomme ich den Wert immer noch nicht.

Ich stell mich irgendwie doof an  :o
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 20 September 2014, 11:10:57
Zitat von: duffy6 am 20 September 2014, 10:57:15
Danke!

Aber angezeigt bekomme ich den Wert immer noch nicht.

Ich stell mich irgendwie doof an  :o

Die Differenz wird im Status von delta_t abgelegt, sobald 04Temp-Sensor gesendet hat.

Gruß

Damian
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: duffy6 am 20 September 2014, 11:15:32
FHEM zeigt mir auf der Hauptseite den Fehler:

Error messages while initializing FHEM:
configfile: Please define delta_T first


Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 20 September 2014, 11:23:01
Zitat von: duffy6 am 20 September 2014, 11:15:32
FHEM zeigt mir auf der Hauptseite den Fehler:

Error messages while initializing FHEM:
configfile: Please define delta_T first


Ich weiß nicht was du sonst definiert hast. Es wird delta_T  angemeckert und nicht delta_t. Dein delta_t DOIF Modul ist korrekt definiert und wartet jetzt (status ?) bis 04Temp etwas sendet (ein Event erzeugt).

Gruß
Damian

Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: FHEM-User22 am 26 Februar 2016, 08:45:02
Zitat von: Damian am 19 September 2014, 18:10:31
Wie wäre es mit einem Zweizeiler:

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


Gruß

Damian

Hallo,
ich versuche aus einem LaCrosse eine Temperaturdifferenz zu errechen:


define delta_Heizkessel DOIF
attr delta_Heizkessel state {([LaCrosse_27:temperature]-[LaCrosse_27:temperature2])}


Fehlermeldung:
delta_Heizkessel DOIF: no left bracket of condition: attr delta_Heizkessel state {([LaCrosse_27:temperature]-[LaCrosse_27:temperature2])}

Die Readings gibt es:

temperature 20.2  2016-02-26 07:48:36
temperature2 21.1 2016-02-26 07:48:31



Ich seh den Wald vor lauter Bäumen nicht, könnte mir bitte jemand das Brett vorm Kopf entfernen?

Dankeschön
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 26 Februar 2016, 08:57:28
Zitat von: FHEM-User22 am 26 Februar 2016, 08:45:02
Hallo,
ich versuche aus einem LaCrosse eine Temperaturdifferenz zu errechen:


define delta_Heizkessel DOIF
attr delta_Heizkessel state {([LaCrosse_27:temperature]-[LaCrosse_27:temperature2])}


Fehlermeldung:
delta_Heizkessel DOIF: no left bracket of condition: attr delta_Heizkessel state {([LaCrosse_27:temperature]-[LaCrosse_27:temperature2])}

Die Readings gibt es:

temperature 20.2  2016-02-26 07:48:36
temperature2 21.1 2016-02-26 07:48:31



Ich seh den Wald vor lauter Bäumen nicht, könnte mir bitte jemand das Brett vorm Kopf entfernen?

Dankeschön

Hast du die aktuelle Version des Moduls?

Gruß

Damian
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: FHEM-User22 am 26 Februar 2016, 09:15:47
Zitat von: Damian am 26 Februar 2016, 08:57:28
Hast du die aktuelle Version des Moduls?

Gruß

Damian

Hallo Damian,
Updates des FHEM mache ich fast täglich (Gestern das letzte mal), oder muß ich Module extra updaten?

Dankeschön
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 26 Februar 2016, 09:46:33
Zitat von: FHEM-User22 am 26 Februar 2016, 09:15:47
Hallo Damian,
Updates des FHEM mache ich fast täglich (Gestern das letzte mal), oder muß ich Module extra updaten?

Dankeschön

Nicht, dass ich wüsste.

Ich habe keine Probleme mit der Syntax.

Gruß

Damian
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: FHEM-User22 am 26 Februar 2016, 10:06:53
Zitat von: Damian am 26 Februar 2016, 09:46:33
Nicht, dass ich wüsste.

Ich habe keine Probleme mit der Syntax.

Gruß

Damian

Hmm,
ich bin nun kein English-Freak. Was will mir die Fehlermeldung denn eigentlich sagen?
Konnte ausser Klammern nichts dazu im Netz finden.

Gruß
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 26 Februar 2016, 10:45:51
Zitat von: FHEM-User22 am 26 Februar 2016, 10:06:53
Hmm,
ich bin nun kein English-Freak. Was will mir die Fehlermeldung denn eigentlich sagen?
Konnte ausser Klammern nichts dazu im Netz finden.

Gruß

Die Meldung bedeutet, dass es keine passende linke (öffnende) Klammer gibt.

"Version DOIF" mal in der Kommandozeile eingeben und Ergebnis hier posten.

Ich habe bei mir das hier ohne Probleme definieren können (so sieht es auf dem Bildschirm aus):

state bla {([Aussensensor:temperature]-[Aussensensor:temperature2])} deleteattr

Gruß

Damian
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: FHEM-User22 am 26 Februar 2016, 11:18:30
Hallo,

98_DOIF.pm 10899 2016-02-21 12:41:29Z damian-s

Gruß
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 26 Februar 2016, 11:25:23
Zitat von: FHEM-User22 am 26 Februar 2016, 11:18:30
Hallo,

98_DOIF.pm 10899 2016-02-21 12:41:29Z damian-s

Gruß

Die Version ist zumindest aktuell. Sonst fällt mir nichts ein.
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: FHEM-User22 am 26 Februar 2016, 11:55:45
Dies bringt keine Fehler, funktioniert aber auch nicht.

define Test_DOIF DOIF ([11:50]) (set ST01 on) DOELSEIF ([11:51]) (set ST01 off)

ST01 kann ich mit WebCMD schalten, sie funktioniert also. Nur das DOIF nicht.

geändert:
define Test_DOIF DOIF ([11:50]) (set ST01 on) DOELSEIF ([11:51]) (set ST01 off)
funktioniert doch! Ich hatte nur eine Falsche Zeit im FHEM.

aber
define delta_Heizkessel DOIF
attr delta_Heizkessel state {([LaCrosse_27:temperature] - [LaCrosse_27:temperature2])}


bringt immer noch den Fehler:
delta_Heizkessel DOIF: no left bracket of condition: attr delta_Heizkessel state {([LaCrosse_27:temperature] - [LaCrosse_27:temperature2])}
Titel: Antw:Temperaturdifferenz berechnen
Beitrag von: Damian am 26 Februar 2016, 14:37:42
Zitat von: FHEM-User22 am 26 Februar 2016, 11:55:45

define delta_Heizkessel DOIF
attr delta_Heizkessel state {([LaCrosse_27:temperature] - [LaCrosse_27:temperature2])}


bringt immer noch den Fehler:
delta_Heizkessel DOIF: no left bracket of condition: attr delta_Heizkessel state {([LaCrosse_27:temperature] - [LaCrosse_27:temperature2])}

Keine Ahnung. Ich habe mit dieser Version keine Probleme - siehe Anhang.