Hi everyone,
I have a bit of a strange issue with Assist and controlling fans.
My house has 4 fans, and we often leave them running to help balance the temperature in different rooms. It’s super convenient to just say:
“Apaga todos los ventiladores” (Turn off all the fans)
And all of them turn off — no problem!
But when I try the opposite:
“Enciende todos los ventiladores” (Turn on all the fans)
Assist replies with:
“Lo siento, no he entendido” (Sorry, I didn’t understand)
This has me puzzled. Why can it turn off all the fans, but not turn them on?
What I’ve Tried
I followed the official troubleshooting guide, and things look correct at first glance. Here are the results from Developer Tools > Assist:
When I say “Enciende todos los ventiladores”:
intent:
name: HassTurnOn
slots:
domain: fan
details:
domain:
name: domain
value: fan
text: ''
targets: {}
match: false
sentence_template: <enciende> [todos] [los|el] (ventilador[es]|abanico[s]) [<de_aqui>]
unmatched_slots: {}
fuzzy_match: false
When I say “Apaga todos los ventiladores”:
intent:
name: HassTurnOff
slots:
domain: fan
name: all
details:
domain:
name: domain
value: fan
text: ''
name:
name: name
value: all
text: ''
targets: {}
match: true
sentence_template: <apaga> todos los (ventiladores|abanicos)
unmatched_slots: {}
fuzzy_match: false
So it looks like it recognizes both intents.
Debug Output
From the voice assistant debug logs:
“Enciende todos los ventiladores”:
intent:
engine: conversation.home_assistant
language: es
intent_input: Enciende todos los ventiladores
conversation_id: *
device_id: null
prefer_local_intents: true
done: true
processed_locally: true
intent_output:
response:
speech:
plain:
speech: Lo siento, no he entendido
extra_data: null
card: {}
language: es
response_type: error
data:
code: no_valid_targets
conversation_id: *
continue_conversation: false
“Apaga todos los ventiladores”:
engine: conversation.home_assistant
language: es
intent_input: Apaga todos los ventiladores.
conversation_id: *
device_id: *
prefer_local_intents: true
done: true
processed_locally: true
intent_output:
response:
speech:
plain:
speech: Todas las luces apagadas
extra_data: null
card: {}
language: es
response_type: action_done
data:
targets: []
success:
- name: Ventilador 1
type: entity
id: fan.ventilador_1
- name: Ventilador 2
type: entity
id: fan.ventilador_2
- name: Ventilador 3
type: entity
id: fan.ventilador_3
- name: Ventilador 4
type: entity
id: fan.ventilador_4
failed: []
conversation_id: *
continue_conversation: false
So the issue seems to be "code: no_valid_targets" when trying to turn on the fans, but not when turning them off — even though the intent and entities are basically the same.
Questions
- Why does Assist fail to find valid targets when turning on the fans, but not when turning them off?
- All fans are controllable via UI and are shown as
fan.*entities. - Is this a known bug, or am I missing something?
Thanks in advance for any help or suggestions!