Hallo,
ich möchte für das Badezimmer eine Schimmelwarnung realisieren. Ich habe mich an diesen Anleitungen gerichtet:
http://www.meintechblog.de/2015/08/raumklima-im-smart-home-mit-fhem-verbessern-taupunktoptimiertes-lueften/
http://voizchat.de/richtiges-lueften-mit-homematic-fhem-schimmelrisiko-senken-anleitung/
Hier ist mein Code den ich umgestellt habe:
###Taupunktberechnung###
define dewpointToAllDeviceReadings dewpoint dewpoint .* temperature humidity dewpoint
define dewpointToAllDeviceStates dewpoint dewpoint .* T H D
define LueftungSkript at +*00:10:00 {\
my $dewAussen=ReadingsVal("Wetter","dewpoint","100");;\
my $dewBad=ReadingsVal("Bad.Temp","dewpoint","0");;\
my $tempBad=ReadingsVal("Bad.Temp","temperature","0")-3;;\
fhem(Log 1,"$dewAussen - $dewBad - $tempBad");;\
}
fhem("trigger SchimmelBad") if ($dewBad > $tempBad);;
fhem("setstate SchimmelBad defined") if ($dewBad < $tempBad);;
define SchimmelBad watchdog SchimmelBad 00:00:02 SchimmelBad set Pushover msg 'Bad Feuchtigkeit' 'Luftfeuchtigkeit im Bad zu hoch!' '' 0 ''
Im Log habe ich: 2017.03.05 14:02:27 1: 2.1 - 13.6 - 20.4
Das passt soweit.
Beim Speichern erhalte ich immer: ERROR:
Unknown command fhem("trigger, try help. Unknown command $tempBad);, try help. Unknown command fhem("setstate, try help. Unknown command $tempBad);, try help.
Kann mir da jemand helfen?
Zitat von: SkodaSascha am 05 März 2017, 14:29:13
Beim Speichern erhalte ich immer: ERROR:
Unknown command fhem("trigger, try help. Unknown command $tempBad);, try help. Unknown command fhem("setstate, try help. Unknown command $tempBad);, try help.
Kann mir da jemand helfen?
Gerne, aber was heisst speichern in diesem Fall?
"fhem("trigger SchimmelBad")" ist kein FHEM-Kommando sondern ein perl-Kommando also verstehe ich die Fehlermeldung, wenn Du auf FHEM_Eben das eingibst
Eigentlich sieht das aber eher so aus, als ob das direkt in die fhem.cfg editiert wäre?
Zitat von: SkodaSascha am 05 März 2017, 14:29:13
Hallo,
ich möchte für das Badezimmer eine Schimmelwarnung realisieren. Ich habe mich an diesen Anleitungen gerichtet:
http://www.meintechblog.de/2015/08/raumklima-im-smart-home-mit-fhem-verbessern-taupunktoptimiertes-lueften/
http://voizchat.de/richtiges-lueften-mit-homematic-fhem-schimmelrisiko-senken-anleitung/
Hier ist mein Code den ich umgestellt habe:
###Taupunktberechnung###
define dewpointToAllDeviceReadings dewpoint dewpoint .* temperature humidity dewpoint
define dewpointToAllDeviceStates dewpoint dewpoint .* T H D
define LueftungSkript at +*00:10:00 {\
my $dewAussen=ReadingsVal("Wetter","dewpoint","100");;\
my $dewBad=ReadingsVal("Bad.Temp","dewpoint","0");;\
my $tempBad=ReadingsVal("Bad.Temp","temperature","0")-3;;\
fhem(Log 1,"$dewAussen - $dewBad - $tempBad");;\
}
fhem("trigger SchimmelBad") if ($dewBad > $tempBad);;
fhem("setstate SchimmelBad defined") if ($dewBad < $tempBad);;
define SchimmelBad watchdog SchimmelBad 00:00:02 SchimmelBad set Pushover msg 'Bad Feuchtigkeit' 'Luftfeuchtigkeit im Bad zu hoch!' '' 0 ''
Im Log habe ich: 2017.03.05 14:02:27 1: 2.1 - 13.6 - 20.4
Das passt soweit.
Beim Speichern erhalte ich immer: ERROR:
Unknown command fhem("trigger, try help. Unknown command $tempBad);, try help. Unknown command fhem("setstate, try help. Unknown command $tempBad);, try help.
Kann mir da jemand helfen?
Die Anleitung und somit der Code ist zwei Jahre alt. Soweit mir bekannt gibt es hier im Forum und auch im Wiki Anleitungen für Schimmelmeldungen.
Wenn Du Probleme hast mit Code von anderen Seiten, möchte ich Dich bitten Dich an die Authoren des Blogs zu richten zwecks Support.
Grüße
Zitat von: CoolTux am 05 März 2017, 16:20:21
Die Anleitung und somit der Code ist zwei Jahre alt. Soweit mir bekannt gibt es hier im Forum und auch im Wiki Anleitungen für Schimmelmeldungen.
Wenn Du Probleme hast mit Code von anderen Seiten, möchte ich Dich bitten Dich an die Authoren des Blogs zu richten zwecks Support.
Du bringst es auf den Punkt.
Auch wenn wir alle hier gerne helfen, wir können keinen Support leisten für Code von anderen Webseiten/Blogs.
Die FHEM commandref ist immer tagesaktuell und der Anlaufpunkt Nr. 1.
Das Wiki ist größtenteils auch gut gepflegt.
Gruß
Dan
Schau mal hier:
https://forum.fhem.de/index.php/topic,53221.msg449108.html#msg449108
Ciao, -MN
Und ich weise an dieser Stelle gern nochmal darauf hin, dass, wenn man nur die Taupunkte vergleicht, es munter weiterschimmelt. Also auch inhaltlich ist das nicht das tollste, was mit FHEM geht. Eigentlich ist es sogar grundlegend falsch. Ich hab das hier alles ausfühlrich beschrieben:
https://forum.fhem.de/index.php/topic,29773.msg564149.html#msg564149
/me grübelt...
Wo werden denn dort Taupunkte verglichen?
Ciao, -MN
Morgennebel, das bezog sich auf das Ausgangsposting. Aber auch die absolute Luftfeuchte wie im von dir verlinktwn thread gibt dir keinen Anhaltspunkt, ob Lüften wirklich nötig ist. Sondern nur, ob die Luft durch Lüften noch feuchter wird oder nicht. Was ich spannender finde: Ne warnung, wenn es wirklich grad anfängt zu schimmeln. Das kriegst du leider nur mit n bisschen Rechnerei heraus.
Zitat von: peterk_de am 06 März 2017, 09:42:15
Und ich weise an dieser Stelle gern nochmal darauf hin, dass, wenn man nur die Taupunkte vergleicht, es munter weiterschimmelt. Also auch inhaltlich ist das nicht das tollste, was mit FHEM geht. Eigentlich ist es sogar grundlegend falsch. Ich hab das hier alles ausfühlrich beschrieben:
https://forum.fhem.de/index.php/topic,29773.msg564149.html#msg564149
Sehr ausführliche Anleitung, hatte nicht damit gerechnet das es doch so komplex ist dieses Thema. Habe mir für jeden Raum die Technoline Sensoren gekauft und in fhem integriert. Nun wollte ich dewpoint auf die schnelle mit einbauen. Das muss ich aus Zeitgründen leider nun vor mir schieben. Trotzdem Dankeschön
Naja du kannst auch einfach den Einleitungsteil überspringen und die Codeschnippsel daraus kopieren und versuchen zu verstehen ;)
Aber im Grunde stimmt das schon, dass man sich da besser erstmal einarbeiten sollte. Also zumindest sollte man verstanden haben, was Taupunkt, relative Luftfeuchte und absolute Luftfeuchte überhaupt bedeuten und vor allem, was das mit Schimmel zu tun hat. Haben interessanterweise aber gefühlt 90% der Leute, die entsprechende Anleitungen veröffentlichen, nicht getan.
Ach noch ein Nachtrag, um es vielleicht etwas zu vereinfachen und dir den Schrecken zu nehmen: Bei moderner (gut gedämmter) Bausubstanz ist eine Warnung bei über 65% RELATIVER Luftfeuchte ein gutes, einfaches Kriterium für eine Schimmelwarnung, wenn man es ganz einfach will. Also mit dem nackten Messwert aus dem Raum-Hygrometer, ohne weiteres Taupunktgerechne etc. Nur wenn man es genauer will oder kalte Wände hat - sei es durch schlechte Dämmung oder im Keller - wird es komplizierter.
Zitat von: peterk_de am 06 März 2017, 10:37:35
Morgennebel, das bezog sich auf das Ausgangsposting. Aber auch die absolute Luftfeuchte wie im von dir verlinktwn thread gibt dir keinen Anhaltspunkt, ob Lüften wirklich nötig ist. Sondern nur, ob die Luft durch Lüften noch feuchter wird oder nicht. Was ich spannender finde: Ne warnung, wenn es wirklich grad anfängt zu schimmeln. Das kriegst du leider nur mit n bisschen Rechnerei heraus.
Stimmt, das einfache DOIF gibt nur einen Hinweis, ob ich die Situation verschlimmbessere oder nicht. Die Zwangsbelüftung/Zwangsheizung ist dabei nicht enthalten.
Ich habe Deinen Weg durchgelesen, befürchte aber, daß dieser bei Alt/Bestandsbauten wie meinem (aus 190X) nicht so viel bringt. Hier hat jede Wand einen anderen K-Wert, denn der eine Besitzer hat dies gebaut, der nächste das umgebaut und der übernächste das. Zum Glück haben wir noch echte Belüftungsöffnungen zwischen den Wänden und kein luftdichtes Haus.
Im luftdichten Neubau ist Deine Lösung sehr perfekt.
Danke, -MN
Ich werde es wohl so machen, bei 65-70% gemessener Luftfeuchtigkeit bekomme ich eine Warnung. Das Haus ist 12 Jahre alt und gut gedämmt, aber kein Passivhaus. Und ein Keller habe ich nicht, obwohl ich den Platz gebrauchen könnte ;)
Je nach Gegend kann 65 % im Sommer normal bzw. das Lüften sogar kontraproduktiv sein. Du könntest zusätzlich noch einen Taupunktvergleich anstellen, ob das Lüften insb. im Sommer die Feuchte nicht noch weiter erhöht. Der Ansatz wäre:
define dewpoint Innen
define dewpoint Aussen
define di_Meldung DOIF ([Innen:humidity] > 65 and ([Innen:dewpoint]-[Aussen:dewpoint]) > 2)
(set Pushover msg 'Luftfeuchtigkeit zu hoch, bitte Lüften!' '' 0 '')
Voraussetzung ist, dass beide Sensoren Temperatur und Feuchte messen. Ich habe hier mal einen Taupunkt-Sicherheitsabstand von zwei Grad genommen.
Ja, ob es schimmelt oder gelüftet werden sollte - das sind halt zwei paar Schuhe. Das geht dann natürlich gut über nen zusätzlichen Taupunktvergleich.
Die 65% sind übrigens "auf Nummer sicher". Wenn der Raum keine Außenwände hat (z.B. innenliegendes Bad) kannst du auch bedenkenlos 70% nehmen.
Klar, allerdings ist eine Meldung dann sinnvoll, wenn man auch eine Gegenmaßnahme ergreifen kann. Neben Fenster auf/zu gibt es noch den Luftentfeuchter, den setze ich im Keller im Sommer schon mal ein - dann aber beim geschlossenen Fenster. Hier lohnt sich der Taupunktvergleich genauso.
Ich habe jetzt zum testen 60% genommen. In den Readings von FeuchtigkeitswarnungBadDummy schaltet er auch vom "OK" auf "zu hoch" um, aber leider kommt die Nachricht nicht bei mir an.
Kann da mal jemand drüber sehen?
define FeuchtigkeitswarnungBadDummy dummy
attr FeuchtigkeitswarnungBadDummy event-on-change-reading state
define LuftfeuchtigkeitBad notify Bad.Temp:temperature:.* { if(ReadingsVal("Bad.Temp","humidity","") > 60) { fhem("set FeuchtigkeitswarnungBadDummy zu hoch") } else { fhem("set FeuchtigkeitswarnungBadDummy ok") }}
define FeuchtigkeitswarnungBadAlert notify FeuchtigkeitswarnungBadDummy:zu hoch { fhem("set Pushover msg Achtung, die Luftfeuchtigkeit im Bad ist zu hoch: ".ReadingsVal("Bad.Temp","humidity","")."%! | Luftfeuchtigkeit-Warnung") }
mach mal aus "zu hoch" überall "zuHoch". Das mit dem Leerzeichen geht so nich.
Edit: Alternativ nur im notify ändern:
define FeuchtigkeitswarnungBadAlert notify FeuchtigkeitswarnungBadDummy:zu.hoch
Habe ich geändert, aber egal wo ich es ändere, die Nachricht bleibt aus.
define FeuchtigkeitswarnungBadDummy dummy
attr FeuchtigkeitswarnungBadDummy event-on-change-reading state
define LuftfeuchtigkeitBad notify Bad.Temp:temperature:.* { if(ReadingsVal("Bad.Temp","humidity","") > 60) { fhem("set FeuchtigkeitswarnungBadDummy zuHoch") } else { fhem("set FeuchtigkeitswarnungBadDummy ok") }}
define FeuchtigkeitswarnungBadAlert notify FeuchtigkeitswarnungBadDummy:zuHoch { fhem("set Pushover msg Achtung, die Luftfeuchtigkeit im Bad ist zu hoch: ".ReadingsVal("Bad.Temp","humidity","")."%! | Luftfeuchtigkeit-Warnung") }}
Problem gelöst, hiermit geht es:
define FeuchtigkeitswarnungBadDummy dummy
attr FeuchtigkeitswarnungBadDummy event-on-change-reading state
define LuftfeuchtigkeitBad notify Bad.Temp:temperature:.* { if(ReadingsVal("Bad.Temp","humidity","") > 60) { fhem("set FeuchtigkeitswarnungBadDummy zuHoch") } else { fhem("set FeuchtigkeitswarnungBadDummy ok") }}
define FeuchtigkeitswarnungBadAlert notify FeuchtigkeitswarnungBadDummy:zuHoch { fhem("set Pushover msg Achtung, die Luftfeuchtigkeit im Bad ist zu hoch: ".ReadingsVal("Bad.Temp","humidity","")."%! | Luftfeuchtigkeit-Warnung") }