Hallo,
ich versuche gerade, meine Kellerbelüftung anhand von verschiedenen Meßwerten automatisch steuern zu lassen.
Hierfür habe ich ein kleines Perl-Script geschrieben (bin da leider ziemlicher Anfänger) und wollte es per Befehlszeile in der Web-Gui in FHEM einbinden:
define Keller_Luefter_Steuerung at +*00:05:00 {
my $aussentemperatur = ReadingsVal("Netatmo_Carport_Aussen", "temperature", "0");
my $aussenfeuchtigkeit = ReadingsVal("Netatmo_Carport_Aussen", "humidity", "100");
my $kellertemperatur = ReadingsVal("Netatmo_Keller", "temperature", "0");
my $kellerfeuchtigkeit = ReadingsVal("Netatmo_Keller", "humidity", "100");
my $luefterstatus = ReadingsVal("Keller_Gruppe_Alle_Luefter", "state", "on");
my $zeile1 = "Aktuelle Messwerte fuer Lueftersteuerung: ";
my $mailtext = $zeile1."Aussentemperatur: ".$aussentemperatur." Kellertemperatur: ".$kellertemperatur." Aussenfeuchtigkeit: ".$aussenfeuchtigkeit." Innenfeuchtigkeit: ".$kellerfeuchtigkeit." Luefterstatus: ".$luefterstatus;
if ($aussentemperatur >= 4 && $aussentemperatur <= $kellertemperatur+10 && $aussenfeuchtigkeit+10 < $kellerfeuchtigkeit)
{if ($luefterstatus eq "off") { fhem ("set Keller_Gruppe_Alle_Luefter on");;DebianMail ('mail@mail.de','Luefter Keller eingeschaltet',$mailtext);;fhem("set Wozi.Dreambox msg message 10 Luefter Keller wurden eingeschaltet");; }}
else
{if ($luefterstatus eq "on") { fhem ("set Keller_Gruppe_Alle_Luefter off");;DebianMail ('mail@mail.de','Luefter Keller ausgeschaltet',$mailtext);;fhem("set Wozi.Dreambox msg message 10 Luefter Keller wurden ausgeschaltet");; }}
}
Beim Anlgene bekomme ich folgende Fehler:
Zitat
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
IF: no left bracket: {if ($luefterstatus eq "off") { fhem ("set Keller_Gruppe_Alle_Luefter on");DebianMail ('mail@mail.de','Luefter Keller eingeschaltet',$mailtext);fhem("set Wozi.Dreambox msg message 10 Luefter Keller wurden eingeschaltet"); }} else {if ($luefterstatus eq "on") { fhem ("set Keller_Gruppe_Alle_Luefter off");DebianMail ('mail@mail.de','Luefter Keller ausgeschaltet',$mailtext);fhem("set Wozi.Dreambox msg message 10 Luefter Keller wurden ausgeschaltet"); }} }
Es sieht also so aus, als ob schon die Deklaration der Variablen schief geht. Wo könnte ich da einen Fehler gemacht haben?
Wenn ich das in der fhem.cfg dann abspeichern möchte, taucht dort dann auch nur Folgens auf:
Zitatdefine Keller_Luefter_Steuerung at +*00:05:00 { my $aussentemperatur = ReadingsVal("Netatmo_Carport_Aussen", "temperature", "0")
der Rest fehlt.
Ich bin für jede Hilfe dankbar :-)
Habe meinen Fehler selbst gefunden. Wenn ich den Define oben in der Befehlzeile eingebe muß ich ja die Sonderzeichen maskieren, wenn ich die Definition selbst bearbeite macht das die Gui für mich. Problem ist also gelöst.
Hallo, solche größeren Codeblöcke sollte man in die myUtils auslagern, erspart schonmal viele Fehler ;)
VG
Frank
Danke für den Tip, ich bin leider (noch) nicht so weit, daß ich sowas könnte und wüßte, wie ich das dann auch wieder aufrufen könnte. Aber was nicht ist ...
schau dir mal die dewpoint und threshold module und die beispiele dazu an. die sind unter anderem genau zur lüftersteuerung da.
wie myUtils funktioniert findest du im wiki und im einsteiger pdf.
gruss
andre
dewpoint klingt auf alle Fälle für meinen Einsatzzweck schonmal sehr vielversprechend. Heute ists nun aber zu spät dafür. FHEM bietet jeden Tag neue schöne Überraschungen :-)