Hallo,
ich bin Entwickler für das BOSE SoundTouch Modul (zu finden hier: https://forum.fhem.de/index.php/topic,46838.0.html) und bin drauf gekommen, dass DOIF leider nicht mit Anführungszeichen in Argumenten umgehen kann.
Folgende DOIF Definition
define DI DOIF ([Residents] eq "gotosleep") (set BOSE speak "Gute Nacht" 35)
Gibt man
set BOSE speak "Gute Nacht" 35
in FHEM ein funktioniert es, daher sollte es eigentlich auch von DOIF unterstützt werden. Wäre super wenn das eingebaut wird :)
Wenn ich das richtig interpretiert habe, wird glaub ich das "Gute abgeschnitten und nur mehr Nacht" 35 an das Modul übergeben.
Ok, habe die Lösung gerade selbst gefunden :)
define DI DOIF ([Residents] eq "gotosleep") ((set BOSE speak "Gute Nacht" 35))
=> 2 Klammern um den Ausführungsblock.
Zitat von: dominik am 07 März 2016, 18:44:14
Ok, habe die Lösung gerade selbst gefunden :)
define DI DOIF ([Residents] eq "gotosleep") ((set BOSE speak "Gute Nacht" 35))
=> 2 Klammern um den Ausführungsblock.
Das wundert mich aber, denn nur das Komma ist kritisch. Ich habe bei mir den Ausdruck im DOIF ausprobiert und erhalte die Meldung:
Zitatset BOSE speak "Gute Nacht" 35: Please define BOSE first
Daran kann ich erkennen, dass der komplette Ausdruck weiter gegeben wird.
Gruß
Damian
Probier es mal mit einem schon definierten Device, dann bekommst du wahrscheinlich auch die Fehlermeldung: Unknown argument Nacht" 35...
Zitat von: dominik am 07 März 2016, 19:50:48
Probier es mal mit einem schon definierten Device, dann bekommst du wahrscheinlich auch die Fehlermeldung: Unknown argument Nacht" 35...
Nein.
Hast du die aktuelle Version von DOIF?
([FS] eq "on") (set test_d speak "Gute Nacht" 35)
Internals:
NAME test_d
NR 470
STATE speak "Gute Nacht" 35
TYPE dummy
Readings:
2016-03-07 19:54:11 state speak "Gute Nacht" 35
Attributes:
Gruß
Damian
Du hast klarerweise Recht Damian ;)
Es war bei mir das Komma das gleich nach dem ersten Wort war, deswegen wurde es abgeschnitten. Mit der aktuellen Version wird beim Komma weiterhin getrennt, da klappt das mit den doppelten Klammern dann wunderbar.