Hallo,
habe folgendes Notify aufgebaut im Frontend.
Ausentuersensor_Haustuere:open.* {
if (sunset_abs(-2000) lt sprintf("%02d:%02d", $hour, $min)) {
fhem "set Flutlicht_Front on-for-timer 180 ; set Flutlicht_Garten on-for-timer 120 ; define checkFlutlichtFrontSunset at +*{3}00:03:20 set Flutlicht_Front statusRequest";;
}
}
würde jetzt gerne zusätzlich einen Sound mit folgendem Befehl set myMPD play 8
bei jedem Türöffnen abspielen.
wo muss ich den einbauen ?
so funktioniert es nicht
Ausentuersensor_Haustuere:open.* {
if (sunset_abs(-2000) lt sprintf("%02d:%02d", $hour, $min)) {
fhem "set Flutlicht_Front on-for-timer 180 ; set Flutlicht_Garten on-for-timer 120 ; define checkFlutlichtFrontSunset at +*{3}00:03:20 set Flutlicht_Front statusRequest";;
}
} ; set myMPD play 8
und so auch nicht
Ausentuersensor_Haustuere:open.* set myMPD play 8 ; {
if (sunset_abs(-2000) lt sprintf("%02d:%02d", $hour, $min)) {
fhem "set Flutlicht_Front on-for-timer 180 ; set Flutlicht_Garten on-for-timer 120 ; define checkFlutlichtFrontSunset at +*{3}00:03:20 set Flutlicht_Front statusRequest";;
}
}
er führt dann nicht beides aus.
Gruß Josty
Servus Josty,
ich habs mal vereinfacht bei mir nachgebaut da:
Ausentuersensor_Haustuere:open.* {
if (sunset_abs(-2000) lt sprintf("%02d:%02d", $hour, $min))
{
fhem "set meinlicht on-for-timer 120";;
}
fhem "set meinlicht on-for-timer 180";;
}
Bei mir werden beiden Befehle ausgeführt.
Du kannst es ja auf deine Devices mal umstricken und probieren ob das Notify bei dir so auch funktioniert.
btw. Hilft bei sowas immer ein Auszug aus dem Log mit Verbose 5 auf das Notify.
Grüße,
Dirk
Der TE mischt fhem und Perl. Das Set myMPD muss innerhalb der Perlroutine
das stimmt, das hab ich glatt überlesen, daher geht das bei mir auch 8) , weil alles Perl ist.
Danke CoolTux für den Hinweis :)
Natürlich muss das set myMPT als fhem Befehl erkannt werden. Also
fhem "set bla bla";
Hallo,
ja den Sound soll er ja immer abspielen wenn die Türe geöffnet wird das licht aber nur einschalten wenn es dunkel ist.
so geht es auch nicht so führt er auch nicht den Licht einschalt befehl aus. wenn das fhem "set myMPD Play 8"; hinten dransteht
Ausentuersensor_Haustuere:open.* {
if (sunset_abs(-2000) lt sprintf("%02d:%02d", $hour, $min)) {
fhem "set Flutlicht_Front on-for-timer 180 ; set Flutlicht_Garten on-for-timer 120 ; define checkFlutlichtFrontSunset at +*{3}00:03:20 set Flutlicht_Front statusRequest";;
}
fhem "set myMPD Play 8";
}
Gruß Josty
Aber er wirft garantiert eine Fehlermeldung ins Log, die solltest Du mal ansehen.
Mir fehlt der Zeilenabschluss nach dem if-Komplex.
Ausentuersensor_Haustuere:open.* {
if (sunset_abs(-2000) lt sprintf("%02d:%02d", $hour, $min)) {
fhem "set Flutlicht_Front on-for-timer 180 ; set Flutlicht_Garten on-for-timer 120 ; define checkFlutlichtFrontSunset at +*{3}00:03:20 set Flutlicht_Front statusRequest";;
};; ## das meine ich
fhem "set myMPD Play 8";; ##und hier auch zwei
}
Ein dringender Tip: Bearbeite die notifys im DEF-Editor von FHEM und kopiere die Ausgabe von da. Dort wird dann üebrall nur mit einfachen ; gearbeitet. Die doppelten sind nur in der fhem.cfg zu sehen, normalerweise inklusive diverser Zeilenumbruchzeichen ...
Hallo,
ja bearbeite das ja im Frontend im DEF bereich.
Da brauch ich doch dann nur ein Semikolon oder ?
Gruß Josty
Hallo,
oh man ich depp ich probiere seit 3 Tagen rum.
es lag am
fhem "set myMPD Play 8"
müsste so heißen
fhem "set myMPD play 8"
(Groß/Kleinschreibung von play)
Danke
Gruß Josty
Im Post #5 schriebst Du, dass auch das Licht nicht mehr ging, das gesamte Notify also lahm war. Das kann auch passieren, wenn man die ; vergisst.
Wenn es jetzt ohne die von mir vorgeschlagenen ; auch geht, dann bricht mein Weltbild zusammen...
Natürlich sind diese Befehle fast alle groß-klein-abhängig, frag nicht wieviel ich deswegen schon geflucht habe ...
Zitat von: jostmario am 04 Januar 2017, 11:25:24
ja bearbeite das ja im Frontend im DEF bereich.
Da brauch ich doch dann nur ein Semikolon oder ?
Ja!
Für mein Verständnis sollte das ganze dann so aussehen:
Ausentuersensor_Haustuere:open.* {
if (sunset_abs(-2000) lt sprintf("%02d:%02d", $hour, $min)) {
fhem "set Flutlicht_Front on-for-timer 180 ; set Flutlicht_Garten on-for-timer 120 ; define checkFlutlichtFrontSunset at +*{3}00:03:20 set Flutlicht_Front statusRequest";
}
fhem "set myMPD play 8";
}
Zitat von: Pfriemler am 04 Januar 2017, 16:57:36
Wenn es jetzt ohne die von mir vorgeschlagenen ; auch geht, dann bricht mein Weltbild zusammen...
Sorry, wegen deines Weltbildes! ;D
Zitat von: Benni am 04 Januar 2017, 18:00:28
Sorry, wegen deines Weltbildes! ;D
Ich HASSE Perl! ... Es ist eigentlich unlogisch: Wenn ein ; als Befehlsabschluss verlangt wird, bei einer "if (Bedingung) {Ausführungsteil}" aber nicht, dann ist das inkonsequent!
BTW: Ein ; an dieser Stelle schadet auch nichts, es ist nur überflüssig ... 8) (scherbenzusammenkehrend)