I’m trying to add a new sentence to the existing HassListAddItem intent provided out of the box by HA.
The existing intent works in my system (as well as other voice commands), so my voice assistant setup itself appears to be working fine.
Following the “Setting up custom sentences” section in this doc, I’ve added this to my configuration.yaml
:
conversation:
intents:
HassListAddItem:
- "todo {name} {item}"
This errors when run, which provides some specifics in the log:
File "/usr/local/lib/python3.12/site-packages/hassil/recognize.py", line 1107, in match_expression
raise MissingListError(f"Missing slot list {{{list_ref.list_name}}}")
hassil.recognize.MissingListError: Missing slot list {item}
Looking at where the existing intent is defined, I hoped I’d be able to piggyback on the definitions, but according to the above error, that’s not the case.
I also tried another variant like this:
conversation:
intents:
HassListAddItem:
- "todo <my_list> <item>"
Which is based on how the built-in sentences are defined, but that one printed a similar error, complaining my_list
was missing, so I don’t think that’s the right thing to do either.
I tried another variant that attempted to redefine the expansion rules, exactly like they are in the built-in sentence. But I’m pretty sure I didn’t format that correctly - it failed to parse the yaml on HA boot and the whole Voice Assistant didn’t load. The example from the doc is an implicit array using leading -
, but I’m not sure what each object should look like when adding to an existing intent (like what fields it should have below the HassListAddItem
).
I feel like I’m close, but there’s something I don’t understand yet about how the syntax of these intents work. Any ideas about what I’m doing wrong?
I know I can use an automation triggered by a sentence to get the behavior I want, so I’ll probably do that to get the behavior I want. But I’d like to understand this better as well, so I can use it going for this and other Assistant behaviors going forward.