[gelöst] Betriebsblind -> no right bracket

Begonnen von odie13690, 09 September 2015, 15:14:30

Vorheriges Thema - Nächstes Thema

odie13690

Hallo,

ich will mir eine Push-Nachricht mit berechnetem und formatiertem Reading basteln.define push_Test DOIF ([du_Test] eq "off") (set PushMsg msg 'Info' 'Gerät aus. Laufzeit: {(printf("%d",[LaufzeitTest:pulseTimeEdge]/60))} min')
Solange ich ohne Formatierung arbeite, funktioniert alles. Mit 'printf' bekomme ich bei ausgelöstem Event als error 'no right bracket' angegeben. Wo fehlt eines bzw. ist es an der falschen Stelle?

odie13690

Ralli

Versuche mal, die Anführungszeichen zu escapen. Also:


define push_Test DOIF ([du_Test] eq "off") (set PushMsg msg 'Info' 'Gerät aus. Laufzeit: {(printf(\"%d\",[LaufzeitTest:pulseTimeEdge]/60))} min')
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

odie13690

#2
Hilft nicht. Leider :-\ Fehler lautet aber auch 'No Right Bracket'

Ich wüsste nicht, wo eine fehlt ???

odie13690

Damian

Zitat von: odie13690 am 09 September 2015, 15:14:30
Hallo,

ich will mir eine Push-Nachricht mit berechnetem und formatiertem Reading basteln.define push_Test DOIF ([du_Test] eq "off") (set PushMsg msg 'Info' 'Gerät aus. Laufzeit: {(printf("%d",[LaufzeitTest:pulseTimeEdge]/60))} min')
Solange ich ohne Formatierung arbeite, funktioniert alles. Mit 'printf' bekomme ich bei ausgelöstem Event als error 'no right bracket' angegeben. Wo fehlt eines bzw. ist es an der falschen Stelle?

odie13690

Du hast ein Komma im FHEM-Befehl, daher:

define push_Test DOIF ([du_Test] eq "off") ((set PushMsg msg 'Info' 'Gerät aus. Laufzeit: {(printf("%d",[LaufzeitTest:pulseTimeEdge]/60))} min'))

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

odie13690

Wenn ich das richtig sehe, hast du ganz am Ende eine zusätzliche schließende Klammer angefügt? Wenn ich das so über die DEF des DOIF mache, kommt als Fehler: push_Test DOIF: expected DOELSEIF or DOELSE: )

odie13690

Damian

Zitat von: odie13690 am 09 September 2015, 21:35:49
Wenn ich das richtig sehe, hast du ganz am Ende eine zusätzliche schließende Klammer angefügt? Wenn ich das so über die DEF des DOIF mache, kommt als Fehler: push_Test DOIF: expected DOELSEIF or DOELSE: )

odie13690

Dann hast du die doppelte Klammer vor set übersehen.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Elektrolurch

Geht das mit dem "%" so überhaupt?
fhem interprretiert(e) das % und @ als event und device - Platzhalter und wenn man die in einem fhem-_ausdruck verwendn wollte, musste man die doch doppeln, um sie zu escapen. ??
configDB und Windows befreite Zone!

Damian

Zitat von: Elektrolurch am 10 September 2015, 08:29:08
Geht das mit dem "%" so überhaupt?
fhem interprretiert(e) das % und @ als event und device - Platzhalter und wenn man die in einem fhem-_ausdruck verwendn wollte, musste man die doch doppeln, um sie zu escapen. ??

Bei DOIF muss man nichts doppeln - außer Semikolons, wenn man sie verwendet (das ist aber eine andere Baustelle).

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

odie13690

Zitat von: Damian am 10 September 2015, 07:39:37
Dann hast du die doppelte Klammer vor set übersehen.

Gruß

Damian

Die habe ich tatsächlich übersehen  8)

Danke!

odie13690