Hilfe bei Syntax-Prüfung - Notify mit IF

Begonnen von blueberry63, 08 März 2014, 19:28:26

Vorheriges Thema - Nächstes Thema

blueberry63

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
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

blueberry63

@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
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

marvin78

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.

Puschel74

Kanpp 3 Minuten schneller aber dafür noch { und } zuviel  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

blueberry63

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
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

Hallo,

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

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

blueberry63

Vielen Dank an alle, das Notify funktioniert wieder.

Gruß
Blueberry
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Franz Tenbrock

und wie ist die funktionierende Lösung??
wie sieht das notify aus
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

blueberry63

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
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.