Hauptmenü

Weiteren befehl in notify

Begonnen von jostmario, 03 Januar 2017, 19:07:00

Vorheriges Thema - Nächstes Thema

jostmario

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
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Devender

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
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

CoolTux

Der TE mischt fhem und Perl. Das Set myMPD muss innerhalb der Perlroutine
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Devender

das stimmt, das hab ich glatt überlesen, daher geht das bei mir auch  8) , weil alles Perl ist.
Danke CoolTux für den Hinweis  :)
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

CoolTux

Natürlich muss das set myMPT als fhem Befehl erkannt werden. Also
fhem "set bla bla";
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

jostmario

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
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Pfriemler

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 ...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

jostmario

Hallo,

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

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

jostmario

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
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Pfriemler

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 ...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Benni

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

Pfriemler

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)
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."