I am trying to use snips with openhab which has turned out pretty well. The following rule works for intents- Turn On and Turn Off but I am really confused over how to make it work for Toggle.
rule "Snips Voice Command"
when
Item SnipsIntent received update
then
var String entity = transform("JSONPATH", "$.slots..value.value", SnipsIntent.state.toString);
var String onlyIntent = transform("JSONPATH", "$.intent.intentName", SnipsIntent.state.toString);
if (onlyIntent == 'TurnOn') {
sendCommand(entity,'ON')
}
else if (onlyIntent == 'TurnOff') {
sendCommand(entity,'OFF')
}
else if (onlyIntent == 'Toggle') {
if(entity.state == 'OFF')
sendCommand(entity,'ON')
else
sendCommand(entity,'OFF')
}
var String sessionId = "{ \"sessionId\":\""+ transform("JSONPATH", "$.sessionId", SnipsIntent.state.toString) + "\" }"
val actions = getActions("mqtt","mqtt:broker:snipsBrokerThingId")
actions.publishMQTT("hermes/dialogueManager/endSession",sessionId)
end