Hallo zusammen,
ich möchte gerne folgenden Perl Code aus einer Anleitung in FHEM einfügen.
Wo muss ich den kompletten Code eingeben?
Über die Kommandozeile nimmt er es nicht an.
define at_Sonnenauf-untergang-Timer
*00:05 {
my $s = sunrise_abs();
fhem("set du_Sonnenaufgang $s");
my $u =sunset_abs();
fhem("set du_Sonnenuntergang $u");
}
Danke & Gruss,
Fabian
Moin Fabian, ich glaube Dir fehlt der Befehl "at"
define at_Sonnenauf-untergang-Timer at
*00:05 {
my $s = sunrise_abs();
fhem("set du_Sonnenaufgang $s");
my $u =sunset_abs();
fhem("set du_Sonnenuntergang $u");
}
Gruß
Mathze
Gebe ich das ganze wie folgt ein, bekomme ich folgenden Fehler
define at_SonnenaufuntergangTimer at *00:05 { my $s = sunrise_abs(); fhem("set du_Sonnenaufgang $s"); my $u =sunset_abs(); fhem("set du_Sonnenuntergang $u");; } }
Missing right curly or square bracket at (eval 17368) line 1, at end of line
syntax error at (eval 17368) line 1, at EOF
Unknown command fhem("set, try help.
Unknown command my, try help.
Unknown command fhem("set, try help.
Auf den ertsen Blick glaube ich ist die letzte geschweifte Klammer und ein Semikolon zuviel.
Gruß
Meck
Ungetestet:
define at_SonnenaufuntergangTimer at *00:05 { my $s = sunrise_abs(); fhem("set du_Sonnenaufgang $s"); my $u =sunset_abs(); fhem("set du_Sonnenuntergang $u"); }
Gruß
Mathze
Zitat von: Meck am 09 Juli 2019, 13:31:21
Aus den ertsen Blick glaube ich ist die letzte geschweifte klammer zuviel.
Gruß
Meck
Ne leider auch kein Erfolg. Hbe auch schon die Kommas entfernt oder nur eins gemacht usw.
Zitat von: t1me2die am 09 Juli 2019, 13:31:48
Ungetestet:
define at_SonnenaufuntergangTimer at *00:05 { my $s = sunrise_abs(); fhem("set du_Sonnenaufgang $s"); my $u =sunset_abs(); fhem("set du_Sonnenuntergang $u"); }
Gruß
Mathze
Nimmt er so ebenfalls nicht an.
Bei dem Sunrise_abs gibt es auch noch Unterscheide. Einmal ist das Gleichheitszeichen mit Leerzeichen und einmal ohne Leerzeichen.
schau mal hier https://wiki.fhem.de/wiki/Klammerebenen
somit müsste es wie folgt sein:
define at_SonnenaufuntergangTimer at *00:05 { my $s = sunrise_abs(); my $u = sunset_abs(); fhem("set du_Sonnenuntergang $u;; set du_Sonnenaufgang $s") }
ist aber ungetestet.
solllte auch gehen, wenn du die deklaration der Skalare weg lässt und sunrise und sunset dierkt auf rufst.
Gruß
Meck
Zitat von: Meck am 09 Juli 2019, 13:41:15
schau mal hier https://wiki.fhem.de/wiki/Klammerebenen
somit müsste es wie folgt sein:
define at_SonnenaufuntergangTimer at *00:05 { my $s = sunrise_abs(); my $u = sunset_abs(); fhem("set du_Sonnenuntergang $u;; set du_Sonnenaufgang $s") }
ist aber ungetestet.
solllte auch gehen, wenn du die deklaration der Skalare weg lässt und sunrise und sunset dierkt auf rufst.
Gruß
Meck
Hier bekomme ich schon weniger Fehler als Rückmeldung aber geht dennoch nicht.
Missing right curly or square bracket at (eval 17638) line 1, at end of line
syntax error at (eval 17638) line 1, at EOF
Unknown command my, try help.
Unknown command fhem("set, try help.
Zitat von: Meck am 09 Juli 2019, 14:01:16
define at_SonnenaufuntergangTimer at *00:05 { my $s = sunrise_abs(); my $u = sunset_abs(); fhem("set du_Sonnenuntergang $u; set du_Sonnenaufgang $s") }
sollte gehen
Bei dieser Code Variante kommt der Fehler:
Missing right curly or square bracket at (eval 17898) line 1, at end of line
syntax error at (eval 17898) line 1, at EOF
Unknown command my, try help.
Unknown command fhem("set, try help.
Im Logfile steht dabei folgendes:
2019.07.09 14:09:16 1: ERROR evaluating {return undef; { my $s = sunrise_abs()}: Missing right curly or square bracket at (eval 17916) line 1, at end of line
syntax error at (eval 17916) line 1, at EOF
2019.07.09 14:09:16 1: define at_SonnenaufuntergangTimer at *00:05 { my $s = sunrise_abs(): Missing right curly or square bracket at (eval 17916) line 1, at end of line
syntax error at (eval 17916) line 1, at EOF
Mir selber ist echt unklar wo ich wann welches Zeichen setzen muss.
Eventuell dachte ich das nach dem fhem auch ein Leerzeichen sein muss. ABer auch das geht leider nicht.
Hi,
bei einem define in der Kommandozeile von FHEM mit Perl Code müssen die ; verdoppelt werden!
https://commandref.fhem.de/#command
Gruß Otto
Zitat von: Otto123 am 09 Juli 2019, 14:16:43
Hi,
bei einem define in der Kommandozeile von FHEM mit Perl Code müssen die ; verdoppelt werden!
https://commandref.fhem.de/#perl
Gruß Otto
Und es Funktioniert.
Vielen Dank für eure Unterstützung
Eventuell hat jemand auch Interesse mir bei einem anderen Problem zu Helfen.
https://forum.fhem.de/index.php?topic=102130.msg956470#msg956470 (https://forum.fhem.de/index.php?topic=102130.msg956470#msg956470)