Hauptmenü

Logische Verknüpfungen

Begonnen von NaCkHaYeD, 15 Juli 2015, 22:58:27

Vorheriges Thema - Nächstes Thema

NaCkHaYeD

Hi,

ich habe einen Unterdrucksensor für meine Kontrollierte Wohnraum Lüftung welcher nach einer Störung quittiert werden muss. Hierzu frage ich die Steuerung ab und sende mir im Fehlerfall eine E-Mail. Dies funktioniert auch.
Heute war allerdings ein 1sec. Stromausfall. FHEM wollte eine Mail versenden, jedoch war auch die Internetleitung unterbrochen. Somit gab Sendmail einen Fehler retour. Das Problem war der Trigger war durch, es wurde nichts mehr gesendet sobald die Internetleitung wieder stand. Dies wollte ich ändern jedoch scheitere ich momentan am Syntax.

Dies funktionierte, jedoch prüfte es sendmail nicht auf Fehler und setzte den Trigger retour
define Mythz.alarm_ovenFireplace notify Mythz { if (((split ' ',ReadingsVal("Mythz","sGlobal",0))[49]) < ReadingsVal("Mythz", "ovenFireplace_old", 0)) { DebianMail('xxx@@yyy.de,xxx@@yyy.de','Alarm Waermepumpe, Unterdrucksensor','Unterdrucksensor für Kamin hat ausgelöst. Bitte an der Messdose oberhalb vom Kühlschrank die rechte Taste(Enter) zur Quittierung für 3sec drücken.','');; }  fhem("setreading Mythz ovenFireplace_old ". ((split ' ',ReadingsVal("Mythz","sGlobal",0))[49]));; }

Nun wollte ich prüfen ob Sendmail erfolgreich war. Erst dann wollte ich den ovenFireplace in den ovenFireplace_old kopieren, was letztendlich mein Trigger ist.
#define Mythz.alarm_ovenFireplace notify Mythz { if (((split ' ',ReadingsVal("Mythz","sGlobal",0))[49]) < ReadingsVal("Mythz", "ovenFireplace_old", 0) && (DebianMail('xxx@@yyy.de,xxx@@yyy.de','Alarm Waermepumpe, Unterdrucksensor','Unterdrucksensor für Kamin hat ausgelöst. Bitte an der Messdose oberhalb vom Kühlschrank die rechte Taste(Enter) zur Quittierung für 3sec drücken.','') == 1) {fhem("setreading Mythz ovenFireplace_old ". ((split ' ',ReadingsVal("Mythz","sGlobal",0))[49]));; }}

Laut Log bringt er mir nun:
2015.07.15 22:45:41 3: Mythz.alarm_ovenFireplace return value: syntax error at (eval 31659) line 1, near ") {"
syntax error at (eval 31659) line 1, near "}}"

2015.07.15 22:45:41 3: Mythz.alarm_ovenFireplace return value: syntax error at (eval 31663) line 1, near ") {"
syntax error at (eval 31663) line 1, near "}}"

2015.07.15 22:45:42 3: Mythz.alarm_ovenFireplace return value: syntax error at (eval 31679) line 1, near ") {"
syntax error at (eval 31679) line 1, near "}}"

2015.07.15 22:45:42 3: Mythz.alarm_ovenFireplace return value: syntax error at (eval 31680) line 1, near ") {"
syntax error at (eval 31680) line 1, near "}}"

Hat einer den richtigen Syntax auf Lager.

mfg
NaCkHaYeD

JoWiemann

#1
Eine Bitte an Dich.

Es gibt die Code-Tags (Icon #). Bitte pack doch Deinen Code dazwischen. Ist einfach lesbarer und damit für Hilfewillige auch besser.

Ich denke es fehlt eine schließende Klammer am Ende des if:

) == 1)) {

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

NaCkHaYeD

Also die Anzahl der geöffneten und geschlossenen Klammern ist gleich, somit denke ich nicht, dass es die runden Klammern sind.

mfg
Thomas

ph1959de

Zitat von: NaCkHaYeD am 16 Juli 2015, 09:09:31
Also die Anzahl der geöffneten und geschlossenen Klammern ist gleich, somit denke ich nicht, dass es die runden Klammern sind.
Nein, die Anzahl ist nicht gleich. Bei Deinem zweiten "Define" gibt es keine schließende Klammer zur ersten öffnenden Klammer. Das kannst Du auch überprüfen, wenn Du das Notify im "DEF" Fenster mit Syntax-Highlight (siehe dazu auch hier) anschaust.

Ich hab's jetzt "auf die Schnelle" im Notepad++ angeschaut.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

NaCkHaYeD

Ok ihr habt recht.
Hundert mal darüber geschaut und doch immer wieder verzählt. Werde ich prüfen.

mfg
NaCkHaYeD