FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jostmario am 03 Januar 2017, 19:07:00

Titel: Weiteren befehl in notify
Beitrag von: jostmario am 03 Januar 2017, 19:07:00
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 8bei 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
Titel: Antw:Weiteren befehl in notify
Beitrag von: Devender am 03 Januar 2017, 21:02:55
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
Titel: Antw:Weiteren befehl in notify
Beitrag von: CoolTux am 03 Januar 2017, 21:05:52
Der TE mischt fhem und Perl. Das Set myMPD muss innerhalb der Perlroutine
Titel: Antw:Weiteren befehl in notify
Beitrag von: Devender am 03 Januar 2017, 21:14:32
das stimmt, das hab ich glatt überlesen, daher geht das bei mir auch  8) , weil alles Perl ist.
Danke CoolTux für den Hinweis  :)
Titel: Antw:Weiteren befehl in notify
Beitrag von: CoolTux am 03 Januar 2017, 21:19:53
Natürlich muss das set myMPT als fhem Befehl erkannt werden. Also
fhem "set bla bla";
Titel: Antw:Weiteren befehl in notify
Beitrag von: jostmario am 04 Januar 2017, 00:18:16
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
Titel: Antw:Weiteren befehl in notify
Beitrag von: Pfriemler am 04 Januar 2017, 01:14:53
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 ...
Titel: Antw:Weiteren befehl in notify
Beitrag von: jostmario am 04 Januar 2017, 11:25:24
Hallo,

ja bearbeite das ja im Frontend im DEF bereich.
Da brauch ich doch dann nur ein Semikolon oder ?

Gruß Josty
Titel: Antw:Weiteren befehl in notify
Beitrag von: jostmario am 04 Januar 2017, 11:40:54
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
Titel: Antw:Weiteren befehl in notify
Beitrag von: Pfriemler am 04 Januar 2017, 16:57:36
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 ...
Titel: Antw:Weiteren befehl in notify
Beitrag von: Benni am 04 Januar 2017, 18:00:28
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
Titel: Antw:Weiteren befehl in notify
Beitrag von: Pfriemler am 04 Januar 2017, 19:40:55
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)