notify finde den Fehler nicht

Begonnen von Markus, 31 März 2013, 05:40:43

Vorheriges Thema - Nächstes Thema

Markus

Ich möchte meinen code um eine if abfrage erweitern aber krig es nicht hin!
Das Funktioniert und macht genau was es soll
define act_on_ANLAGE_SCHARF_off notify ANLAGE_SCHARF.*:off \
delete Alarm_30Sec ;; delete Sirene_60Sec ;; \
delete verzoegert_scharf ;; set ANLAGE_STATUS warten ;;\
define Alarmanlage_aufraeumen at +00:00:11 set ANLAGE_STATUS unscharf ;; \
set ANLAGE_SCHARF_intern,ANLAGE_SCHARF off ;;set Alarm_Mail,Alarm Bereit ;; set Rauch_Melder,Alle_Lichter Alarm_Aus

wenn ich aber diese if abfragen dazu nehme klappt es nicht mehr!
Ich habe schon alles mögliche ausprobiert aber so scheint es mir am Richtigsten nur leider Funktioniert es nicht :-(
Hier stimmen die Zeilenumbrüche nicht in wirklichkeit schlisen alle sauber mit einem \ ab.
define act_on_ANLAGE_SCHARF_off notify ANLAGE_SCHARF.*:off {\
fhem { "delete Alarm_30Sec ;; delete Sirene_60Sec ;; \
delete verzoegert_scharf ;; set ANLAGE_STATUS warten ;;\
define Alarmanlage_aufraeumen at +00:00:11 set ANLAGE_STATUS unscharf ;; \
set ANLAGE_SCHARF_intern,ANLAGE_SCHARF off ;;set Alarm_Mail,Alarm Bereit ;; set Rauch_Melder,Alle_Lichter Alarm_Aus" };; \
} \
if ( Value("Licht_Vorraum") ne "off" ) { \
fhem { "set Licht_Vorraum off;;sleep 1" };; \
} \
if ( Value("Licht_Wohnzimmer") eq "99 %" ) { \
fhem { "set Licht_Wohnzimmer off;;sleep 1" };; \
} \
if ( Value("Licht_Schlafzimmer") eq "99" ) { \
fhem { "set Licht_Schlafzimmer off;;sleep 1" };; \
} \
if ( Value("Licht_Bad") eq "99" ) { \
fhem { "set Licht_Bad off;;sleep 1" };; \
} \
if ( Value("Licht_Kuche") eq "99" ) { \
fhem { "set Licht_Kuche off;;sleep 1" };; \
} \
}

Ich bekomme diese Fehlermeldung hab aber keinen Plan wo die klammer Fehlen könnte
Zitatact_on_ANLAGE_SCHARF_off return value: Unmatched right curly bracket at (eval 36754) line 1, at end of line
syntax error at (eval 36754) line 1, near "}  }"

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Groby

Hallo,

verwende fhem in geschweiften Klammern und den Befehl in runden Klammern:


{fhem("set lamp on")};


Mfg Groby

Niko

Hallo,

zunächst, ich bin fhem / perl Anfänger und von daher mag das Folgende auch Quatsch sein.

Ich habe das Statement mal in Padre (perl IDE) gesteckt. Hier zeigt er mir an, dass die Klammern hinter

.*:off {\

vor dem ersten "if" Statement wieder geschlossen wird.

} \

Ganz an Ende kommt aber dann noch einmal ein "}"

Hoffe es hilft
Gruß Niko

Groby

Also ich verwende Notepad++...

Wenn das define den ganzen Block einschliessen soll, brauchst Du je eine geschweifte Klammer am Anfang & Ende des Blockes.


define act_on_ANLAGE_SCHARF_off notify ANLAGE_SCHARF.*:off {\
...
delete Alarm_30Sec;;
if (Value("Licht_Vorraum") ne "off") {fhem("set Licht_Vorraum off;;sleep 1")};; \
...
}


Mehr geschweifte Klammern brauchst Du nur wenn Du die if-Anweisungen verschachtelst. Nachlesen kannst Du weitere Klammer/if Details hier: http://de.wikibooks.org/wiki/Perl-Programmierung:_Kontrollstrukturen

Der Einfachheit halber würde ich mit einem Schaltbefehl und einer if-Anweisung starten. Wenn Du das zum Laufen hast, ist das weitere hinzufügen ein Kinderspiel...

Markus

Funktioniert jetzt Danke für die Hilfe!
War gestern wohl doch schon zu spät :-)

#Ausschalten
define act_on_ANLAGE_SCHARF_off notify ANLAGE_SCHARF.*:off { { \
fhem ( "delete Alarm_30Sec ;; delete Sirene_60Sec ;; \
delete verzoegert_scharf ;; set ANLAGE_STATUS warten ;;\
define Alarmanlage_aufraeumen at +00:00:11 set ANLAGE_STATUS unscharf ;; \
set ANLAGE_SCHARF_intern,ANLAGE_SCHARF off ;;set Alarm_Mail,Alarm Bereit ;; \
set Rauch_Melder,Alle_Lichter Alarm_Aus" )};; \
if (Value("Licht_Vorraum") ne "off" ) { \
fhem ( "set Licht_Vorraum off;;sleep 1")};; \
if (Value("Licht_Wohnzimmer") ne "on" ) { \
fhem ( "set Licht_Wohnzimmer off;;sleep 1" )};; \
if (Value("Licht_Schlafzimmer") ne "on" ) { \
fhem ( "set Licht_Schlafzimmer off;;sleep 1" )};; \
if (Value("Licht_Bad") ne "on" ) { \
fhem ( "set Licht_Bad off;;sleep 1" )};; \
if (Value("Licht_Kuche") ne "on" ) { \
fhem ( "set Licht_Kuche off;;sleep 1" )};; \
}



Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

MisterEltako

Hi!

Versuche es testweise so:

#Ausschalten
define act_on_ANLAGE_SCHARF_off notify ANLAGE_SCHARF.*:off {\
   fhem ( "delete Alarm_30Sec ;; delete Sirene_60Sec ;;\
            delete verzoegert_scharf ;; set ANLAGE_STATUS warten ;;\
            define Alarmanlage_aufraeumen at +00:00:11 set ANLAGE_STATUS unscharf ;;\
            set ANLAGE_SCHARF_intern,ANLAGE_SCHARF off ;;set Alarm_Mail,Alarm Bereit ;;\
            set Rauch_Melder,Alle_Lichter Alarm_Aus" );;\
   if (Value("Licht_Vorraum") ne "off" ) {fhem ( "set Licht_Vorraum off;;sleep 1")};; \
   if (Value("Licht_Wohnzimmer") eq "99 %" ) {fhem ( "set Licht_Wohnzimmer off;;sleep 1")};; \
   if (Value("Licht_Schlafzimmer") eq "99" ) {fhem ( "set Licht_Schlafzimmer off;;sleep 1")};; \
   if (Value("Licht_Bad") eq "99" ) {fhem ( "set Licht_Bad off;;sleep 1" )};; \
   if (Value("Licht_Kuche") eq "99" ) {fhem ( "set Licht_Kuche off;;sleep 1" )};; \
 }


MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Markus

@ MisterEltako Danke für deine Hilfe! Ich glaube du hast hast auf eine EMail Benachrichtigung reagiert :-( Ich hab aber inzwischen die Lösung gefunden und meinen Beitrag Ediert Sorry!
Für alle die meinen Post gelesen haben bevor ich ihn edirt habe da gelöst:
Ich hab nicht gesehen das auf die Dimmer werte nicht reagiert wird hab es jetzt so gelöst

#Ausschalten
define act_on_ANLAGE_SCHARF_off notify ANLAGE_SCHARF.*:off { { \
fhem ( "delete Alarm_30Sec ;; delete Sirene_60Sec ;; \
delete verzoegert_scharf ;; set ANLAGE_STATUS warten ;;\
define Alarmanlage_aufraeumen at +00:00:11 set ANLAGE_STATUS unscharf ;; \
set ANLAGE_SCHARF_intern,ANLAGE_SCHARF off ;;set Alarm_Mail,Alarm Bereit ;; \
set Rauch_Melder,Alle_Lichter Alarm_Aus" )};; \
if (Value("Licht_Vorraum") ne "off" ) { \
fhem ( "set Licht_Vorraum off;;sleep 1")};; \
if (Value("Licht_Wohnzimmer") ne "on" && Value ("Licht_Wohnzimmer") ne "off") { \
fhem ( "set Licht_Wohnzimmer off;;sleep 1" )};; \
if (Value("Licht_Schlafzimmer") ne "on" && Value ("Licht_Schlafzimmer") ne "off") { \
fhem ( "set Licht_Schlafzimmer off;;sleep 1" )};; \
if (Value("Licht_Bad") ne "on" && Value ("Licht_Bad") ne "off") { \
fhem ( "set Licht_Bad off;;sleep 1" )};; \
if (Value("Licht_Kuche") ne "on*" && Value ("Licht_Kuche") ne "off") { \
fhem ( "set Licht_Kuche off;;sleep 1" )};; \
}
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa