I have been experimenting with voice controls of my openHAB setup and I have a strange problem.
I am on openHAB 4.3.0 and I’m using the openHAB app for the microphone and Ollama and Cuevox. The problem is that Cuevox seems to have a problem with the word “Garage”.
I have an office light and I started by setting that up so I can say “Turn on Office Light” or “Turn off Office Light” and it works fine. /opt/openhab/conf/automation/js/node_modules/voice-control-openhab/lib/openHAB/voiceCommandRules.js is already set up to handle “Turn on” and “Turn off”.
I also have an Insteon IOLink which consists of a pushbutton and a sensor to control my garage door. I want to be able to say “Open Garage Door” and “Close Garage Door” so I modified voiceCommandRules.js and added:
let openClose = alt(cmd(“open”, ON), cmd(“close”, ON));
rbi.addRule(seq(openClose, opt(the), itemLabel(), opt(openClose)));
The Garage door control item is called Garage_door_Switch and it has a label “Garage door”. When I say “Open garage door”, I see this in the logs:
2025-10-23 10:52:24.930 [INFO ] [b.automation.openhab-js.debug-cuevox] - Testing item lookup…
2025-10-23 10:52:24.937 [INFO ] [b.automation.openhab-js.debug-cuevox] - Office Light Dimmer item exists: true
2025-10-23 10:52:24.940 [INFO ] [b.automation.openhab-js.debug-cuevox] - Office Light Dimmer state: 100
2025-10-23 10:52:24.948 [INFO ] [b.automation.openhab-js.debug-cuevox] - Garage door Switch item exisrs: true
2025-10-23 10:52:24.958 [INFO ] [b.automation.openhab-js.debug-cuevox] - Garage door Switch state: OFF
2025-10-23 10:52:25.742 [INFO ] [b.automation.openhab-js.debug-cuevox] - Command: close garage
2025-10-23 10:52:25.752 [INFO ] [b.automation.openhab-js.debug-cuevox] - Full response: {“success”:false,“input”:“close garage”,“remainingTokens”:[“close”,“garage”],“executeFunction”:“”,“executeParameter”:null}
This comes from a script which is triggered by a change in the VoiceCommand item. (I know it says “Garage” and not “Garage door” here because I was testing with different labels). You can see that it got the command but it did not parse it - success:false and remainingTokens is not empty.
Now here is the strange part. When I changed the “Garage_door_Switch” label to “Carport”, then it worked and the door opened. I have tried “Garage door”, “Garage Door”, just “Garage” and none of these worked. “Garage door switch” does work.
Does anyone have any suggestions on how to debug this?