Seite 1 von 1
Text-Item inhaltlich als String abfragen
Verfasst: 10. Mär 2021 15:26
von hurra
Hallo zusammen!
Ich möchte den letzten Alexa-Sprachbefehl auswerten und damit Routinen & Aktionen starten. Dazu habe ich mir folgende Regel ausgedacht:
Code: Alles auswählen
rule AlexaKuecheAbendRoutine
when
Item Echo_Living_Room_LastVoiceCommand received update
then
if(Echo_Living_Room_LastVoiceCommand.state.toString == "gute nacht")
Licht123.sendCommand(OFF)
end
Wenn ich jetzt "gute nacht" rufe, wird der Befehl in der if-Schleife immer ausgeführt. Ich bin mir nicht sicher und finde auch keine Doku, wie Bedingung auszusehen hat. Anführungsstiche, Apostrophe,...?
Kann mir da bitte jemand helfen?
Danke!!
Christoph
Re: Text-Item inhaltlich als String abfragen
Verfasst: 10. Mär 2021 16:15
von peter-pan
Das passt doch alles.
Der Trigger ist, wenn sich "Echo_Living_Room_LastVoiceCommand" verändert (event).
und die Bedingung, um das Licht anzuschalten ist "gute nacht". Wenn du mehrere Dinge erledigt haben willst, musst du diese in geschweifte Klammern setzen.
Hier ein (willkürliches) Beispiel mit mehreren Bedingungen:
Code: Alles auswählen
rule "Sonos cross State Stop"
when
Item GA_Sonos_Control changed or
Member of gSonos_Play changed
then
logInfo("Sonos cross"," Name : {} Status {} ", triggeringItem.name, triggeringItem.state) // debug
val vSonosItem = triggeringItem.name.replace('Control','Stop_cross')
logInfo("Sonos cross"," vSonosItem : {}", vSonosItem) // debug
if (triggeringItem.state == PAUSE) {
postUpdate(vSonosItem, "OFF")
logInfo("Sonos cross"," Lautsprecher {} ist OFF ", triggeringItem.name)
}
else if (triggeringItem.state == PLAY) {
postUpdate(vSonosItem, "ON")
logInfo("Sonos cross"," Lautsprecher {} ist ON ", triggeringItem.name)
}
else {
logInfo("Sonos cross"," keine Änderung ")
Sonoff_Basic_03.sendCommand(ON)
}
end
Edit: der Name der Rule am Anfang, muss in Anführungszeichen, also - rule "AlexaKuecheAbendRoutine"
Re: Text-Item inhaltlich als String abfragen
Verfasst: 10. Mär 2021 16:33
von int5749
peter-pan hat geschrieben: ↑10. Mär 2021 16:15
Edit: der Name der Rule am Anfang, muss in Anführungszeichen, also - rule "AlexaKuecheAbendRoutine"
Doch nur, wenn der Name (wie bei Dir) Leerzeichen enthält? Ich habe auch einige Rules, ohne die "", wobei: schaden tuen die nicht

Re: Text-Item inhaltlich als String abfragen
Verfasst: 10. Mär 2021 16:40
von KellerK1nd
Ginge nicht noch received command? Bei Update ist klar, das ist dann ein Selbstläufer, es sei denn du kannst es über das Expire auf NULL setzen.
Re: Text-Item inhaltlich als String abfragen
Verfasst: 10. Mär 2021 21:10
von hurra
Es hat tatsächlich alles gepasst, nur haben in der if-schleife die geschweiften Klammern gefehlt :/