FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: blueberry63 am 08 März 2014, 19:28:26

Titel: Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: blueberry63 am 08 März 2014, 19:28:26
Hallo,

fällt jemandem ein Fehler bei folgender NOTIFY-Definition auf? Ich habe das NOTIFY um eine Entprell-Logik erweitert und seit dem  geht es nicht mehr. Ich habe jetzt schon 2 Stunden gesucht, geändert, gesucht, geändert...  >:(

Zitat
define d_klingel dummy
define n_HT_Klingeln notify KlingelHT:.*Short_.* { \
  if (ReadingsVal("d_klingel","state","") ne "on") \
    {
     {fhem "set d_klingel on"};; \
     {fhem "define a1 at +00:00:10 set d_klingel off"};; \
     {FBCallr(1,620,6,'192.168.99.11')};; \
     {DebianMail('xxx.xxx@@xxx.xx','Klingel','Es hat geklingelt:@ %')};; \
     {fhem "get Webcam1 image"};; \
    }
}

Für Hilfe wäre ich sehr dankbar.

Gruß
Blueberry63
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: Puschel74 am 08 März 2014, 19:33:59
Hallo,

abgesehen davon das du wohl in der fhem.cfg "rumfuhrwerkst" fällt mir auf die schnelle nur auf das

a) du kein Logfile anhängst
b) nicht schreibst WAS nicht geht
c) du keine Log-Zeilen eingebaut hast um zu schauen wie weit es geht / oder nicht geht und du
d) auf ein Device KlingelHT triggerst dessen Definition du uns vorenthälst

In diesem Fall sage ich
e) werde ich nicht im Nebel stochern und
f) meine Glaskugel beim polieren ist - sie hat heute ihren freien Tag  ;D

Grüße
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: blueberry63 am 08 März 2014, 19:53:08
@Puschel74,

Du hast mit allen Punkten recht, mea culpa.

Ich bekomme den Syntax-Fehler sicher irgendwann auch selbst raus, dachte nur ich sehe den Wald vor lauter Bäumen nicht mehr und vielleicht würde ein anderer den Fehler auf den 1. Blick sehen.

Dies ist übrigens die Fehler-Meldung:
Zitatn_HT_Klingeln return value: Unknown command {, try help.

Ich mache natürlich selbst weiter und wollte auf keinen Fall jemandem den schönen Samstagabend verderben  8)

Gruß
Blueberry63
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: Puschel74 am 08 März 2014, 19:59:29
Hallo,

auf den zweiten Blick sehe ich einige { und } zuviel.

define n_HT_Klingeln notify KlingelHT:.*Short_.* {
  if (ReadingsVal("d_klingel","state","") ne "on"){
     fhem("set d_klingel on");
     fhem("define a1 at +00:00:10 set d_klingel off");
     {FBCallr(1,620,6,'192.168.99.11')};
     {DebianMail('xxx.xxx@@xxx.xx','Klingel','Es hat geklingelt:@ %')};
     fhem("get Webcam1 image");
    }
}


Ob bei FBCallr und DebianMail die { und } nötig sind weiß ich nicht.

Mein Beispiel funktioniert NICHT in der fhem.cfg

ZitatIch mache natürlich selbst weiter und wollte auf keinen Fall jemandem den schönen Samstagabend verderben
Selbst weiter machen kannst du gerne und ist auch erwünscht  ;D
Der Samstag Abend ist schon verdorben (Frau ist krank) aber du darfst gerne die erforderlichen Infos liefern damit wir dir hier weiter helfen können  ;)

Grüße
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: marvin78 am 08 März 2014, 20:02:10
Erstmal hast du viel zu viele Klammern die unnötig sind. Frage: Warum postest du aus der fhem.cfg und nicht aus dem DEF im notify? Und warum änderst du überhaupt Dinge direkt in der Config, da es doch im DEF viel einfacher ist (man spart sich die \ und ;;).

Dein Code für DEF müsste lauten:


KlingelHT:.*Short_.* {
  if (ReadingsVal("d_klingel","state","") ne "on") {
     fhem ("set d_klingel on");
     fhem ("define a1 at +00:00:10 set d_klingel off");
     FBCallr(1,620,6,'192.168.99.11');
     DebianMail('xxx.xxx@@xxx.xx','Klingel','Es hat geklingelt:$NAME $EVENT');
     fhem ("get Webcam1 image");
    }
}


So kannst du es allerdings nicht in die fhem.cfg einfügen sondern nur ins DEF des notifys im Frontend.
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: Puschel74 am 08 März 2014, 20:07:29
Kanpp 3 Minuten schneller aber dafür noch { und } zuviel  8)
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: blueberry63 am 08 März 2014, 20:12:32
Sorry, jetzt bringt ihr mich aber ganz schön durcheinander. Ich habe bisher immer direkt in der fhem.cfg "programmiert".  ::)

Mir war auch nicht klar, das es einen Unterschied macht, ob man den Code im DEF macht oder direkt in der fhem.cfg. Habe ich etwas verpasst? Jedenfalls werde ich es direkt mal ausprobieren, was in der fhem.cfg passiert, wenn ich den Code im DEF einegebe.
Muß jetzt allerdings mal eine Pause einlegen, sonst ist es kein schöner Samstagabend mehr (Frau ruft)  ::)

Gruß
Blueberry63
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: Puschel74 am 08 März 2014, 20:14:28
Hallo,

ZitatHabe ich etwas verpasst?
Einige Beiträge hier wie es scheint.

Grüße
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: blueberry63 am 09 März 2014, 16:45:33
Vielen Dank an alle, das Notify funktioniert wieder.

Gruß
Blueberry
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: Franz Tenbrock am 10 März 2014, 07:48:35
und wie ist die funktionierende Lösung??
wie sieht das notify aus
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: blueberry63 am 10 März 2014, 09:24:51
Das Notify habe ich nun im Browser eingegeben, so wie von Marvin vorgeschlagen:

Zitat
KlingelHT:.*Short_.* {
  if (ReadingsVal("d_klingel","state","") ne "on") {
     fhem ("set d_klingel on");
     fhem ("define a1 at +00:00:10 set d_klingel off");
     FBCallr(1,620,6,'192.168.99.11');
     DebianMail('xxx.xxx@@xxx.xx','Klingel','Es hat geklingelt:$NAME $EVENT');
     fhem ("get Webcam1 image");
    }
}

Und damit funktioniert es. Ich muß nun nur noch verstehen, was der Unterschied zur Eingabe direkt in fhem.cfg und der Eingabe im Browser ist.

Gruß
Blueberry63
Titel: Antw:Hilfe bei Syntax-Prüfung - Notify mit IF
Beitrag von: Puschel74 am 10 März 2014, 09:37:02
Hallo,

wenn du die fhem.cfg direkt bearbeitest musst du dich selbst ua um das korrekte markieren der Zeilenenden kümmern.

Wenn du das DEF bearbeitest übernimmt FHEM das für dich - was auch um einiges komfortabler und weniger fehlerträchtig ist.

Grüße