Hauptmenü

FHEM - Schimmel Warner

Begonnen von SOJ, 05 September 2015, 22:26:23

Vorheriges Thema - Nächstes Thema

SOJ

Hallo Zusammen,
ich hänge mit FHEM gerade etwas in der Luft.

Wollte das bei mir Zuhause in einer Light Version bei mir umsetzen.
http://voizchat.de/richtiges-lueften-mit-homematic-fhem-schimmelrisiko-senken-anleitung/

Mein Code


+*00:00:10 {
my $dewAussen=ReadingsVal("MeinWetter","dewpoint","100");
my $dewSchlaf=ReadingsVal("OG1_Kueche_Temp_1","dewpoint","0");
my $tempSchlaf=ReadingsVal("OG1_Kueche_Temp_1","temperature","0")-3;
fhem("setreading OG1_Kueche_Temp_1 alarm on") if ($dewAussen > $dewSchlaf);
fhem("setreading OG1_Kueche_Temp_1 alarm off") if ($dewAussen < $dewSchlaf);
fhem("trigger SchimmelKueche") if ($dewSchlaf > $tempSchlaf);
fhem("setstate SchimmelKueche defined") if ($dewSchlaf < $tempSchlaf);
}


Wenn ich die Werte ändere passiert nichts. Es bleibt immer bei OG1_Kueche_Temp_1 alarm off.
Mein Vermutung ist, das die Werte von OG1_Kueche_Temp_1 nicht ausgelesen werden.

OG1_Kueche_Temp_1
Readings
alarm off
battery ok
dewpoint 11.0
fan off
humidity 56
state T: 22 H: 56 D: 11
temperature 22


Ich sehe leider den Wald vor Bäumen nicht. Wäre super wenn mir jemand weiter helfen würde. Danke.

Gruß SOJ

Puschel74

#1
Wenn man vermutet das Werte nicht ausgelesen werden kann es hilfreich sein die Werte erstmal ins Logfile zu schreiben.
Dann sieht man was in den Readings steht bzw. was im Code verarbeitet wird,

Vorschlag:
fhem(Log1,"$dewAussen - $dewSchlaf - $tempSchlaf")
NACHDEM die Variablen gefüllt wurden.
Und dann schön langsam rantasten und immer im Logfile nach Meldungen Ausschau halten.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

SOJ

Sorry, möchte ehrlich sein.
Ich sehe gar nichts.
Sämtliche Logs habe ich durchsucht.
Zum testen habe ich es nochmal gekürzt.

define LueftungSkript2 at +*00:00:10 {\
my $dewAussen=ReadingsVal("MeinWetter","dewpoint","100");; \
my $dewSchlaf=ReadingsVal("OG1_Kueche_Temp_1","dewpoint","0");;\
my $tempSchlaf=ReadingsVal("OG1_Kueche_Temp_1","temperature","0")-3;;\
fhem(Log1,"$dewAussen - $dewSchlaf - $tempSchlaf");;\
}

dieda

Wenn ich so dein DOIF lese, so sehe ich gar nicht, dass du mit absoluter Luftfeuchtigkeit arbeitest.

Hintergrund: Luft ist ein sehr komplexes Gemisch, welches in Abhängigkeit von der Temperatur unterschiedlich viel Feuchtigkeit aufnehmen kann. Also je wärmer Luft ist, desto mehr Wasser kann sie enthalten.

20 Grad warme Luf enthält bei 50 % Luftfeuchtigkeit mehr Wasser als 10 Grad warme Luft bei 50 % Luftfeuchtigkeit. Noch extremer wird dieser Unterschied bei Temperaturen im Sommer von 35 Grad und mehr. Schalte ich nun den Ventilator ein, dann kommt zwar warme Luft von außen, aber die Luftfeuchtigkeit im Raum steigt dadurch an, schlimmstenfalls erreiche ich den Zustand, dass die Luftfeuchtigkeit 100 % überschreitet, aber in Raumecken kann dies schon eher zutreffen, denn diese sind in den Räumen die neuralgischen Punkte.

Ein Keller z. B. ist ja meist zum Großteil ans Erdreich grenzend und dies heißt vereinfacht ausgedrückt, dass die Temperatur im Erdreich in 1 m Tiefe schon nur noch 15 Grad oder niedriger sein kann. Dies wird ähnlich wie wir es aus von der Widerstandslehre aus der Elektrotechnik kennen an die Kellerwand weitergegeben. Dazu gibt es kann komplizierte Tabellenwewerke und Formeln (so nach dem Motto Temperatur Erdreich, Übergangsleitwiderstand Mauerwert, Wärmedurchgangskoeffizienten der einzelnen Mauerwerksteile, Übergangsleitwiderstand Raumluft, Rauminnentemperatur um die Temperatur an der Wandinnenfläche abzubilden aber auch den Temperaturverlauf in der Mauer darzustellen).

Für die Schimmelfreie Belüftung heißt dies:

Bei diesem Komplex an verschiedenen Einflussfaktoren sollte man sich im klaren sein, dass man immer mit der absuluten Luftfeuchtigkeit rechnen muss.

Niemals nur den Taupunkt der Rauminnentemperatur als alleiniges Kriterium benutzen darf und eine gewisse Komfortzone einbauen muss.

Mögel und Regale nur nach sorgfältiger Prüfung an Außenwänden stellen darf, da hier die Raumluftzirkulation nicht gewährleistet werden kann.

Ggfls. auch mit einer maschinellen Trocknung arbeiten muss.

Damit du ein bisschen das Gespür für Luft, Luftfeuchte und relative bzw. absolute Luftfeuchtigkeit bekommst. Ausdrucken und mal die Luftwerte einzeichen ;-) hier der Link zum Mollier-h-x-Diagramm.

https://de.wikipedia.org/wiki/Mollier-h-x-Diagramm
DIN zur Wärmebedarfsberechnung von Gebäuden: DIN EN 12831
Wärmedurchgangskoeffizient: https://de.wikipedia.org/wiki/W%C3%A4rmedurchgangskoeffizient und DIN 4108
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

ScherzKeks

Zitat von: SOJ am 06 September 2015, 21:47:29
Sorry, möchte ehrlich sein.
Ich sehe gar nichts.
Sämtliche Logs habe ich durchsucht.
Zum testen habe ich es nochmal gekürzt.

define LueftungSkript2 at +*00:00:10 {\
my $dewAussen=ReadingsVal("MeinWetter","dewpoint","100");; \
my $dewSchlaf=ReadingsVal("OG1_Kueche_Temp_1","dewpoint","0");;\
my $tempSchlaf=ReadingsVal("OG1_Kueche_Temp_1","temperature","0")-3;;\
fhem(Log1,"$dewAussen - $dewSchlaf - $tempSchlaf");;\
}


Ich hatte hier ein ähnliches Problem. Bei mir waren Tabs in den Definitionen der Devices, wohl über copy/paste ausm browser. Daher gab es keinen Treffer und der Standardwert von 100 wurde immer verwendet. Gesehen habe ich das lange nicht, da ich immer mit 2 fenstern nebeneinander arbeite und mir daher wegen dem Zeilenumbruch nichts gedacht hab. Prüf das doch bitte mal.

Wenn das mit dem Log nicht klappt (sollte zwar) kannst du ja auch den Wert der Variable mal in einen DUmmy schreiben, so bin ich letztendlich draufgekommen.

frank

fhem(Log 1,"$dewAussen - $dewSchlaf - $tempSchlaf");;\
zwischen Log und 1 muss ein leerzeichen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

SOJ

Juhu es geht.  ;D

@Alle: Hier mal ein großes Lob an alle. Hier wird einem als Anfänger super und freundlich weitergeholfen!
@Frank: Richtig, da muss ein Leerzeichen rein
@ScherzKeks: Richtig, es waren die Leerzeichen vom Kopieren und Einfügen
@Dieda: Richtig, deine Aussage ist vollkommen richtig.(Musste ich aber auch erst mal nachlesen ;)).
Ich bin aber noch totaler Anfänger mit FHEM und muss den Code/Syntax verstehen lernen.

Aber genug geschrieben ... ich muss noch was für FHEM bestellen.

Gruß SOJ :)


Hier noch mal der funktionsfähige Code

define LueftungSkript at +*00:00:10 {my $hum = ReadingsVal("OG1_Kind_Temp_1","humidity","0");;\
my $dewAussen = ReadingsVal("MeinWetter","dewpoint","100");;\
my $dewSchlaf = ReadingsVal("OG1_Kueche_Temp_1","dewpoint","0");;\
my $tempSchlaf = ReadingsVal("OG1_Kueche_Temp_1","temperature","0")-3;;\
fhem(Log 1,"$dewAussen - $dewSchlaf - $tempSchlaf");;}