Nein. Erstens ist das nicht unnoetig, und zweitens ist das auch auf einem
Fritzbox weniger als 0.01% CPU. Alternativ kannst auch folgendes versuchen,
ist aber auch nicht weniger Belastung.
define badNotify bad_s300th:humidity.* { \
my $hum = %EVTPART1;;\
my $val = Value("Schalter");;\
fhem("set Schalter on") if($hum > 50 && $val eq "off");;\
fhem("set Schalter off") if($hum < 30 && $val eq "on");;\
}
Achtung, nicht getestet.
define a_Feuchtecheck at +*00:05:00 trigger Feuchtecheck
define Feuchtecheck notify Feuchtecheck {\
my $Feuchte_Bad=ReadingsVal(CUL_WS_1, "Humidity", "101%");;\
$Feuchte_Bad=(substr($Feuchte_Bad, 0, (length($Feuchte_Bad)-1)));;\
if ($Feuchte_Bad>50) {\
fhem("set OG_Bad_Abluft on")}\
else {\
if ($Feuchte_Bad<30){\
fhem("set OG_Bad_Abluft off")}\
}\
}
Ich will das nur noch nicht auf mein fhem loslassen weil ich vermute das
mein Code nur Fehler produziert.
Ich habe Teile der Heizungssteuerung genommen und frei Schnauze
angepasst wie ich mir das denke (oder wie ich es gerne haben w�rde).
Wenn da mal jemand mit Ahnung kurz dr�ber schauen k�nnte w�re ich dankbar.
Roland
P.S.: Ich �bersetz die CUL/CUNO commandref gern fertig - das geht mir
leichter von der Hand als so einen Codeschnippsel zu "er"denken.
> hi und danke schonmal f�r den gedankenanstoss,
>
> seh ich das richtig das ich das nur alle x minuten pr�fen lassen kann?
> mir w�re eher sowas wie
> wenn der s300th>x% hat ventilator ein und bei<y% wieder aus lieber
> und nicht schau alle 5 minuten ob s300th>x% oder<y% liegt.
> "belastet" das den prozessor bzw. fhem nicht unn�tig?
> bei einem schalter schau ich ja auch nicht alle a minuten ob er
> gedr�ckt wurde - ok macht auch nicht viel sinn.
> nur "schaut" mir fhem eben auch um 01:xx nach der feuchte und da ist
> garantiert nichts zu tun.
> ich logg die temperatur und feuchte mit dem s300th seit knapp einer
> woche mit und da bewegen sich die werte eigentlich immer zwischen 52%
> (nach dem duschen) und 36%.
> aber ok wenn ich das "nur" alle x minuten triggern kann solls mir auch
> recht sein ich dachte es geht auch anders.
> dann werd ich mich mal ans "programmieren" machen.
>
> Roland
>
> P.S.: Warum der erste Post zweimal reingerutscht ist wei� ich auch
> nicht - sorry
>
> On 1 Feb., 19:14, "Zrrronggg!"<blunzmanj...@tekkno.de> wrote:
>> So recht verstehe ich dich nicht.
>> Ich w�rde ja sowas machen wie:
>>
>> define Feuchtecheck at +*00:05 { if (abfrage der Feuchte>Wunschwert)
>> { fhem ("set OG_Bad_Vent on" ) } else { fhem(("set OG_Bad_Vent
>> off" ) } }
>>
>> Dass sollte alle 5 Minuten checken, wie der Wert der Luftfeuchte ist
>> und dann entweder ein oder auschalten.
>>
>> Ist nicht ausprobiert, nur so ne Idee. Bachteil ist das du nur einen
>> Wert hast, aber ist ja ausbauf�hig, z.b. alle 5 Minuten auf
>> Einschaltbedingung teste und alle 10 Minuten auf Ausschaltbedingung
>> oder so.
>>
>> Jetzt sagst du aber, das willst du NICHT machen. Unter welcher
>> Bedingung sollen denn der Feuchtecheck gemacht werden und unter
>> welcher nicht?
>>
>> Und wenn's im Bad zu feucht ist ist's zu feucht... WARUM oder WANN ist
>> doch egal, oder? Warum das Bad also nicht trockenen, wenn es in eurem
>> Urlaub zu feucht wird?
>>
>> Nebenbei: bei den von dir gew�nschten wErten von 30% und 50% wird der
>> L�fter in normalen Umgebungen IMMER laufen. Luftfeuchte unter ca. 45%
>> kriegt man eigentlich nur mit aktiver Trockung hin. Unter 40% beginnt
>> die Austrockung der Schleimh�ute und damit der gesundheitlich eher zu
>> trocken Bereich. Ich w�rde den Schaltpunkt so um die 60% machen.
>> Schimmelbildung droht je nach Randparametern so ca. oberhalb 75%
>>
>> On 1 Feb., 17:40, puschel74<pusche...@gmx.net> wrote:
>>
>>
>>
>>
>>
>>
>>
>>> Hallo zusammen,
>>> ich habe in unserem Badezimmer einen S300TH und einen Abluftventilator
>>> �ber ein fs20as4 installiert.
>>> Bisher haben wir nach dem duschen den Ventilator von Hand
>>> eingeschaltet und mit einem timer von 30 Minuten wieder ausgeschaltet.
>>> Nun m�chte ich aber gerne versuchen den Ventilator bei einer
>>> Luftfeuchtigkeit>50% einzuschalten und<30% auszuschalten.
>>> Bei den ganzen Beispielen f�r define xxx notify yyy ist aber immer die
>>> Rede von on.*
>>> Mir ist schon klar das das notify dann auf alles reagiert was ein "on"
>>> liefert.
>>> Mein notify soll aber auf humidity>50% reagieren - diese Abfrage kommt
>>> ja aber erst im Schleifenk�rper wo auf>50% f�r set OG_Bad_Vent on und
>>> <30% f�r set OG_Bad_Vent off �berpr�ft wird.
>>> Wie kann ich in mein Notify verzweigen oder bin ich damit ganz auf dem
>>> Holzweg?
>>> �ber Uhrzeit ala alle 5 Minuten die Luftfeuchte �berpr�fen und dann
>>> schalten macht ja nicht viel Sinn da in der Nacht oder auch tags�ber
>>> niemand bei uns duscht es sei den wir haben Urlaub und sind zuhause.
>>> �ber Hilfe w�re ich sehr dankbar.
>>> Gr��e
Halllo,
define KinoFeuchteNotify notify Kino_Sensor:humidity.* { \
my $hum = %EVTPART1;;\
my $val = Value("myITSwitch");;\
fhem("set myITSwitch on") if($hum > 65 && $val eq "off");;\
fhem("set myITSwitch off") if($hum < 60 && $val eq "on");;\
}
attr KinoFeuchteNotify room Kinoes existieren myITSwitch (Name für den Test noch vorläufig) und Kino_Sensor in meiner Umgebung.
Bei mir ergibt folgender CODE:
define Test_Schalter dummy
define Feuchtecheck notify Feuchtecheck { my $Feuchte_Bad=ReadingsVal(KS300, "Humidity", "101%");/
; $Feuchte_Bad= substr($Feuchte_Bad, 0, (length($Feuchte_Bad)-1)));; if ($Feuchte_Bad>50)/
{ fhem("set Test_Schalter on")} else { if ($Feuchte_Bad<30){ fhem("set Test_Schalter off")} } }
define a_Feuchtecheck at +*00:01:00 trigger Feuchtecheck
Diesen FEHLER:
2012.06.28 18:47:18 3: Feuchtecheck return value: syntax error at (eval 970) line 1, near "))" Bareword "KS300" not allowed while "strict subs" in use at (eval 970) line 1.
Kann mir da jemand helfen?
KS300 im ReadingsVal in Anführungsstriche einbetten?
2012.06.28 19:03:47 3: Feuchtecheck return value: syntax error at (eval 1068) line 1, near "))"
code:
define Test_Schalter dummy
define Feuchtecheck notify Feuchtecheck { my $Feuchte_Bad=ReadingsVal("KS300", "Humidity", "101%");; $Feuchte_Bad= substr($Feuchte_Bad, 0, (length($Feuchte_Bad)-1)));; if ($Feuchte_Bad>50) { fhem("set Test_Schalter on")} else { if ($Feuchte_Bad<30){ fhem("set Test_Schalter off")} } }
{ my $Feuchte_Bad=ReadingsVal("KS300", "Humidity", "101%");; $Feuchte_Bad= substr($Feuchte_Bad, 0, (length($Feuchte_Bad)-1)))
hast du, meine ich, eine ) zuviel.
Grüße
Hallo Uli,
danke für die schnelle Antwort mit 99_myUtils.pm habe ich gefunden und werde das gleich mal einbauen.
Bei dem Log habe ich meine schwierigkeiten.
Ich habe das mal so programmiert:
define a_Feuchtecheck at +*00:05:00 trigger Feuchtecheck
define Feuchtecheck notify Feuchtecheck { my $Feuchte_Bad=ReadingsVal("TH_Keller", "humidity", "101%");;\
$Feuchte_Bad= substr($Feuchte_Bad, 0, -1);;my $Feuchte_Bad = %EVTPART2;;Log 1, "Hum:$Feuchte_Bad";;\
if ($Feuchte_Bad<80) { fhem("set Test_Schalter on")} else { if ($Feuchte_Bad>80){ fhem("set Test_Schalter off")} } }
Resultat:
2012.06.30 16:04:31 3: Feuchtecheck return value: Bareword "EVTPART2" not allowed while "strict subs" in use at (eval 5683) line 1.
Die Feuchtigkeitsmessung war einer meiner Gründe, so stark in das 1-Wire business einzusteigen. Mit einem analogen Sensor am DS2450 und zusätzlichem Thermometer DS1820, oder an einem Kombisensor DS2438 bekomme ich eine hochgenaue temperaturkompensierte Feuchtemessung wenn ich es brauche. Und nicht nur dann, wenn der S300TH beschließt, ein telegramm zu senden.
LG
pah