Ich möchte mit 2 Temperatursensoren
- Aussentemperatursensor (Aussentemp_Luftfeuchte)
- Differenz - Temperatursensor (TempSensorRolladen)
die Temperaturen auslesen und damit wenn beide Bedingungen zu treffen (Aussentemp_Luftfeuche > 25 Grad und TempSensorRolladen > 5 Grad), dass diverse Rolläden runterfahren.
Ich habe es mal so probiert, aber das funktioniert nicht ganz.
Das Problem liegt denke ich irgendwie an dem, weil die Temperatur nicht ausgelesen werden kann.
define NV_TEST notify (TempSensorRolladen|Aussentemp_Luftfeuchte) { my $t1 = ReadingsVal("TempSensorRolladen", "temperature", 0);; my $t2 = ReadingsVal("Aussentemp_Luftfeuchte", "temperature", 0)};; if ($t1 > 5.0 && $t2 > 25) { fhem("set Rollo off;; ")}}
Bitte um Hilfe Danke
Die geschweiften Klammern sind schon mal falsch.
Am besten sowas nicht in fhem.cfg direkt, sondern im FHEMWEB Detailansicht (DEF Link anklicken) machen, dann kann man ;; sparen, und einfach(er) eingerueckt auf mehrere Zeilen verteilt hinschreiben, dabei fallen Klammerungsfehler auf.
Noch besser waere in 99_myUtils.pm eine Funktion zu definieren.
Danke aber so funktionierts auch nicht
(TempSensorRolladen|Aussentemp_Luftfeuchte)
my $t1 = ReadingsVal("TempSensorRolladen", "temperature", 0)
my $t2 = ReadingsVal("Aussentemp_Luftfeuchte", "temperature", 0)
if ($t1 > 1.0 && $t2 > 25) fhem("set Rollo off; ")
Ich habe nicht gesagt, dass man alle ; und {} weglassen soll. Folgendes muesste (im Detailansicht!) korrekt sein (ungetestet):
(TempSensorRolladen|Aussentemp_Luftfeuchte) {
my $t1 = ReadingsVal("TempSensorRolladen", "temperature", 0);
my $t2 = ReadingsVal("Aussentemp_Luftfeuchte", "temperature", 0);
if ($t1 > 1.0 && $t2 > 25) {
fhem("set Rollo off");
}
}
Ich empfehle 1-2 Stunden mit dem Lesen der ersten paar Kapitel eines Perl Buches zu beschaeftigen.
Beim Test hilft es in der Kommandozeile sowas wie
{ ReadingsVal("TempSensorRolladen", "temperature", 0); }
einzugeben, um zu sehen, ob man das bekommt, was man will.
mit einem "trigger TempSensorRolladen" kann man das notify testen.
All das ist im http://fhem.de/commandref.html#perl (http://fhem.de/commandref.html#perl) auch beschrieben..
Und ganz ohne Perl und {} schlage ich ein DOIF vor:
define NV_TEST DOIF ([TempSensorRolladen:temperature] > 5 and [Aussentemp_Luftfeuchte:temperature] > 25) (set Rollo off)
Ungetestet und zur Eingabe im Webfrontend gedacht.
Andreas