Trouble making Voice assistant control devices after install

Hi! I’m a new user. My system is installed on Home Assistant Green.

I have setup voice assistant and I use Alexa and Google assistants along with Home Assistant Cloud.

The problem I have is that Voice preview doesn’t understand voice commands targeting devices. For example, I have 4 TUYA socket devices controlling 4 lights in one room (integrated with TUYA official integration and working perfectly fine… The devices and associated entities are also exposed to all 3 voice assistants)

The device names are: light one, light two, light three and light four.

When I say: “Okay Nabu, Turn ON light two.

The response I get is: “Sorry, I’m not aware of any floor called two” taking the “two” in the request as a floor specification…?? Sometimes though, “Turn ON light one” works, but that’s the only one that does that.

In order to find out what is happening, I used the voice assistant debugger, using text input. When I input the exact same command in text, it works perfectly: turning the device ON and home assistant responding “Turned ON the switch” indicating that the corresponding switch (socket) was turned ON.
(NOTE: I can’t use the audio pipelines in debug because the options are grayed out and I don’t know why that is…)

I also have two imported scenes from TUYA integration and those actually work as they should with Voice Preview: one turns all four lights ON and the other one turn all four lights OFF…

Can anybody help me figure out what’s going ON and how to fix this?

Thanks.

Welcome.

Theres a lot of nuance to voice control.

First question we need to know if you’re trying to use builtin assist pipeline or did you add an LLM?

That was quick! :slight_smile: I use the built-in one. I use Home assistant Cloud and I’m not trying to make it work locally

Do not use the word light in names; this is a basic rule. It confuses the built-in handler.

1 Like

OK thanks. I didn’t not know that!
Any other basic rules like this one I should know about? (i.e. is there a place where these rules are laid out?)

Anyhow, I just changed the device names from light to spot, and re-tried the voice assistant preview. It’s a little better now, but it’s still not working.

Now, if I say: “Okay Nabu, turn ON spot two.”
The response is: “Sorry, I’m not aware off any device called spot two.

And again. the same command works just fine in the voice assistant debugger…

Please show all output from devtools - assist section and from the Assists debug menu. Also show the properties of your lamps.

Perhaps this is too strict an interpretation; you can use the word ‘light[s]’ if it is the second word in the name/alias.
There are no specific rules, but if something does not work, you should use debugging tools and check the existing intents.

Thanks for the clarification on using light(s) in the name…

Here is the parse sentence result:

intent:
  name: HassTurnOn
slots:
  name: spot two
details:
  name:
    name: name
    value: Spot two
    text: spot two
targets:
  switch.spot_two_socket_1:
    matched: true
match: true
sentence_template: <turn> on (<area> <name>|<name> [in <area>])
unmatched_slots: {}
source: builtin

Here is the RAW output from the debugger:

stage: done
run:
  pipeline: 01jy9j9v5w49g7h1drqx8cd1n2
  language: en
  conversation_id: 01JYM5K5X5EK8JR6PQY134V9W5
  runner_data:
    stt_binary_handler_id: null
    timeout: 300
events:
  - type: run-start
    data:
      pipeline: 01jy9j9v5w49g7h1drqx8cd1n2
      language: en
      conversation_id: 01JYM5K5X5EK8JR6PQY134V9W5
      runner_data:
        stt_binary_handler_id: null
        timeout: 300
    timestamp: "2025-06-25T18:28:53.286202+00:00"
  - type: intent-start
    data:
      engine: conversation.home_assistant
      language: en
      intent_input: turn on spot two
      conversation_id: 01JYM5K5X5EK8JR6PQY134V9W5
      device_id: null
      prefer_local_intents: false
    timestamp: "2025-06-25T18:28:53.286352+00:00"
  - type: intent-end
    data:
      processed_locally: true
      intent_output:
        response:
          speech:
            plain:
              speech: Turned on the switch
              extra_data: null
          card: {}
          language: en
          response_type: action_done
          data:
            targets: []
            success:
              - name: Spot two
                type: entity
                id: switch.spot_two_socket_1
            failed: []
        conversation_id: 01JYM5K5X5EK8JR6PQY134V9W5
        continue_conversation: false
    timestamp: "2025-06-25T18:28:53.566806+00:00"
  - type: run-end
    data: null
    timestamp: "2025-06-25T18:28:53.567158+00:00"
intent:
  engine: conversation.home_assistant
  language: en
  intent_input: turn on spot two
  conversation_id: 01JYM5K5X5EK8JR6PQY134V9W5
  device_id: null
  prefer_local_intents: false
  done: true
  processed_locally: true
  intent_output:
    response:
      speech:
        plain:
          speech: Turned on the switch
          extra_data: null
      card: {}
      language: en
      response_type: action_done
      data:
        targets: []
        success:
          - name: Spot two
            type: entity
            id: switch.spot_two_socket_1
        failed: []
    conversation_id: 01JYM5K5X5EK8JR6PQY134V9W5
    continue_conversation: false

Device properties:

entity_ID : switch.spot_two_socket_1
Name : Spot two / show as outlet

TUYA device info: Smart plug (nx8rv6jpe1tsnffk)

TUYA downloaded diagnostics

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2025.6.2",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.13.3",
    "docker": true,
    "arch": "aarch64",
    "timezone": "America/Toronto",
    "os_name": "Linux",
    "os_version": "6.12.23-haos",
    "supervisor": "2025.06.2",
    "host_os": "Home Assistant OS 15.2",
    "docker_version": "28.0.4",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "meross_cloud": {
      "documentation": "https://www.home-assistant.io/components/meross_cloud",
      "version": "1.3.7",
      "requirements": [
        "meross_iot==0.4.9.0"
      ]
    },
    "webrtc": {
      "documentation": "https://github.com/AlexxIT/WebRTC",
      "version": "v3.6.0",
      "requirements": []
    },
    "sonoff": {
      "documentation": "https://github.com/AlexxIT/SonoffLAN",
      "version": "3.8.2",
      "requirements": [
        "pycryptodome>=3.6.6"
      ]
    },
    "alexa_media": {
      "documentation": "https://github.com/alandtse/alexa_media_player/wiki",
      "version": "5.7.2",
      "requirements": [
        "alexapy==1.29.5",
        "packaging>=20.3",
        "wrapt>=1.14.0"
      ]
    },
    "wyzeapi": {
      "documentation": "https://github.com/SecKatie/ha-wyzeapi#readme",
      "version": "0.1.33",
      "requirements": [
        "wyzeapy>=0.5.28,<0.6"
      ]
    },
    "tapo_control": {
      "documentation": "https://github.com/JurajNyiri/HomeAssistant-Tapo-Control",
      "version": "6.1.9",
      "requirements": [
        "pytapo==3.3.46",
        "python-kasa[speedups]==0.10.2"
      ]
    },
    "sinope": {
      "documentation": "https://github.com/claudegel/sinope-gt125",
      "version": "1.7.1",
      "requirements": [
        "crc8==0.1.0"
      ]
    },
    "hacs": {
      "documentation": "https://hacs.xyz/docs/use/",
      "version": "2.0.5",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "pyscript": {
      "documentation": "https://github.com/custom-components/pyscript",
      "version": "1.6.4",
      "requirements": [
        "croniter==6.0.0",
        "watchdog==6.0.0"
      ]
    },
    "neviweb130": {
      "documentation": "https://github.com/claudegel/sinope-130",
      "version": "3.0.5",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "tuya",
    "name": "Tuya",
    "codeowners": [
      "Tuya",
      "zlinoliver"
    ],
    "config_flow": true,
    "dependencies": [
      "ffmpeg"
    ],
    "dhcp": [
      {
        "macaddress": "105A17*"
      },
      {
        "macaddress": "10D561*"
      },
      {
        "macaddress": "1869D8*"
      },
      {
        "macaddress": "381F8D*"
      },
      {
        "macaddress": "508A06*"
      },
      {
        "macaddress": "68572D*"
      },
      {
        "macaddress": "708976*"
      },
      {
        "macaddress": "7CF666*"
      },
      {
        "macaddress": "84E342*"
      },
      {
        "macaddress": "D4A651*"
      },
      {
        "macaddress": "D81F12*"
      }
    ],
    "documentation": "https://www.home-assistant.io/integrations/tuya",
    "integration_type": "hub",
    "iot_class": "cloud_push",
    "loggers": [
      "tuya_iot"
    ],
    "requirements": [
      "tuya-device-sharing-sdk==0.2.1"
    ],
    "is_built_in": true,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 0.00010062591172754765
    },
    "01JY03S87BPJEMB7WSH5Y13M4S": {
      "wait_import_platforms": -18.668536364100873,
      "wait_base_component": -0.005024259095080197,
      "config_entry_setup": 19.604285406996496
    },
    "01JY9RKRMN71BZBZJ7MN4VFAY6": {
      "wait_import_platforms": -17.117161068017595,
      "config_entry_setup": 19.58977321605198
    }
  },
  "data": {
    "endpoint": "https://apigw.tuyaus.com",
    "terminal_id": "1750526976566fMhqJs",
    "mqtt_connected": true,
    "disabled_by": null,
    "disabled_polling": false,
    "id": "eb013df9366532ad88cvqr",
    "name": "Spot two",
    "category": "cz",
    "product_id": "nx8rv6jpe1tsnffk",
    "product_name": "Smart plug",
    "online": true,
    "sub": false,
    "time_zone": "-04:00",
    "active_time": "2025-06-21T17:05:29+00:00",
    "create_time": "2025-06-21T17:05:29+00:00",
    "update_time": "2025-06-21T17:05:29+00:00",
    "function": {
      "switch_1": {
        "type": "Boolean",
        "value": {}
      },
      "countdown_1": {
        "type": "Integer",
        "value": {
          "unit": "s",
          "min": 0,
          "max": 86400,
          "scale": 0,
          "step": 1
        }
      },
      "relay_status": {
        "type": "Enum",
        "value": {
          "range": [
            "power_off",
            "power_on",
            "last"
          ]
        }
      },
      "light_mode": {
        "type": "Enum",
        "value": {
          "range": [
            "relay",
            "pos",
            "none"
          ]
        }
      },
      "child_lock": {
        "type": "Boolean",
        "value": {}
      },
      "cycle_time": {
        "type": "String",
        "value": {}
      },
      "random_time": {
        "type": "String",
        "value": {}
      },
      "switch_inching": {
        "type": "String",
        "value": {}
      }
    },
    "status_range": {
      "switch_1": {
        "type": "Boolean",
        "value": {}
      },
      "countdown_1": {
        "type": "Integer",
        "value": {
          "unit": "s",
          "min": 0,
          "max": 86400,
          "scale": 0,
          "step": 1
        }
      },
      "relay_status": {
        "type": "Enum",
        "value": {
          "range": [
            "power_off",
            "power_on",
            "last"
          ]
        }
      },
      "light_mode": {
        "type": "Enum",
        "value": {
          "range": [
            "relay",
            "pos",
            "none"
          ]
        }
      },
      "child_lock": {
        "type": "Boolean",
        "value": {}
      },
      "cycle_time": {
        "type": "String",
        "value": {}
      },
      "random_time": {
        "type": "String",
        "value": {}
      },
      "switch_inching": {
        "type": "String",
        "value": {}
      }
    },
    "status": {
      "switch_1": true,
      "countdown_1": 0,
      "relay_status": "last",
      "light_mode": "relay",
      "child_lock": false,
      "cycle_time": "",
      "random_time": "",
      "switch_inching": ""
    },
    "home_assistant": {
      "name": "Spot two",
      "name_by_user": null,
      "disabled": false,
      "disabled_by": null,
      "entities": [
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "original_icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "select.spot_two_power_on_behavior",
            "state": "last",
            "attributes": {
              "options": [
                "power_off",
                "power_on",
                "last"
              ],
              "friendly_name": "Spot two Power on behavior"
            },
            "last_changed": "2025-06-25T18:08:17.224651+00:00",
            "last_reported": "2025-06-25T18:28:54.177808+00:00",
            "last_updated": "2025-06-25T18:08:17.224651+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "original_icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "select.spot_two_indicator_light_mode",
            "state": "relay",
            "attributes": {
              "options": [
                "relay",
                "pos",
                "none"
              ],
              "friendly_name": "Spot two Indicator light mode"
            },
            "last_changed": "2025-06-25T18:08:17.229563+00:00",
            "last_reported": "2025-06-25T18:28:54.178038+00:00",
            "last_updated": "2025-06-25T18:08:17.229563+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "original_icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "switch.spot_two_child_lock",
            "state": "off",
            "attributes": {
              "friendly_name": "Spot two Child lock"
            },
            "last_changed": "2025-06-25T18:08:17.331977+00:00",
            "last_reported": "2025-06-25T18:28:54.178207+00:00",
            "last_updated": "2025-06-25T18:08:17.331977+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": null,
          "device_class": null,
          "original_device_class": "outlet",
          "icon": null,
          "original_icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "switch.spot_two_socket_1",
            "state": "on",
            "attributes": {
              "device_class": "outlet",
              "friendly_name": "Spot two"
            },
            "last_changed": "2025-06-25T18:28:54.178331+00:00",
            "last_reported": "2025-06-25T18:28:54.178331+00:00",
            "last_updated": "2025-06-25T18:28:54.178331+00:00"
          }
        }
      ]
    },
    "set_up": true,
    "support_local": true
  }
}

I bet the reason is in stt - it defines the name as spot 2.

1 Like

You lost me here… What is stt?

A module that converts your voice(speech) to text

1 Like

ok so…
What do I to make stt understand that I mean “two” and not “2”?

Just rename your switch

OK!! so add that to your list of basic rules:

Do not use numbers as text in your device names… :dizzy_face:

I’ll try that later (I have to leave now): I really hope this is it…

Thanks for the help. I’ll update here later!

:vulcan_salute:

OK I’m back…

Avoiding text numbers in names, definitely is a step in the right direction coz now it works with Voice Preview, but… (there’s a but.)

I have to manually set the entities’ names for each imported entities in Home Assistant for Voice Preview to be able to address them each time Home Assistant server is restarted. If I don’t do that, I still get:

Sorry, I’m not aware of any device called spot 2.

(Since Voice Preview seems to rely 100% on the Entity name field to identify a device.)

I figured that this happens because TUYA’s integration leaves the Entity Names fields blank in entities when loading its configuration into Home Assistant, actually overwriting whatever name I gave it prior.

So now, my question is: How can I possibly prevent that from happening?

1 Like

This is absolutely abnormal behavior for integration, but Tuya WiFi is a path for the strong-willed.
Try assigning aliases instead of names.

1 Like

100% agree. That’s broken behavior. entity_id is kind of core if it’s doing that id report a bug tbh. There’s absolutely zero way that’s intended. And if it is how they intend it to work I’d boot them from my system because that breaks all kinds of stuff.

Darn! that’s discouraging… :sweat:

@mchk Voice assistants aliases I set in HA are also overwritten or erased when restarting… :roll_eyes:

@NathanCu I will report it as a bug…

I wonder though … would it be possible to apply some sort of a band aid on the problem when restarting HA, for example, by writing a script that would fix the entities names upon HA restarting?

Thats not normal… You may have something deeper going on. What’s in your log right after restarting. Does it have anything about entity_ids of some type failing to - whatever?

Here is the section in the log concerning TUYA’s integration setup:
(I don’t see any error showing up…)

I’m no expert, but what I think might be odd is that it seems to be registering new devices every time HA starts? (rather than updating them?)

2025-06-25 19:52:31.897 INFO (MainThread) [homeassistant.components.alarm_control_panel] Setting up tuya.alarm_control_panel

2025-06-25 19:52:31.900 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up tuya.binary_sensor

2025-06-25 19:52:31.901 INFO (MainThread) [homeassistant.components.button] Setting up tuya.button

2025-06-25 19:52:31.902 INFO (MainThread) [homeassistant.components.camera] Setting up tuya.camera

2025-06-25 19:52:31.903 INFO (MainThread) [homeassistant.components.climate] Setting up tuya.climate

2025-06-25 19:52:31.904 INFO (MainThread) [homeassistant.components.cover] Setting up tuya.cover

2025-06-25 19:52:31.904 INFO (MainThread) [homeassistant.components.event] Setting up tuya.event

2025-06-25 19:52:31.906 INFO (MainThread) [homeassistant.components.fan] Setting up tuya.fan

2025-06-25 19:52:31.908 INFO (MainThread) [homeassistant.setup] Setting up humidifier

2025-06-25 19:52:31.913 INFO (MainThread) [homeassistant.setup] Setup of domain humidifier took 0.01 seconds

2025-06-25 19:52:31.915 INFO (MainThread) [homeassistant.components.humidifier] Setting up tuya.humidifier

2025-06-25 19:52:31.916 INFO (MainThread) [homeassistant.components.light] Setting up tuya.light

2025-06-25 19:52:31.917 INFO (MainThread) [homeassistant.components.number] Setting up tuya.number

2025-06-25 19:52:31.919 INFO (MainThread) [homeassistant.components.scene] Setting up tuya.scene

2025-06-25 19:52:31.920 INFO (MainThread) [homeassistant.components.select] Setting up tuya.select

2025-06-25 19:52:31.920 INFO (MainThread) [homeassistant.components.sensor] Setting up tuya.sensor

2025-06-25 19:52:31.921 INFO (MainThread) [homeassistant.setup] Setting up siren

2025-06-25 19:52:33.373 INFO (MainThread) [homeassistant.setup] Setup of domain siren took 1.45 seconds

2025-06-25 19:52:33.374 INFO (MainThread) [homeassistant.components.siren] Setting up tuya.siren

2025-06-25 19:52:33.375 INFO (MainThread) [homeassistant.components.switch] Setting up tuya.switch

2025-06-25 19:52:33.376 INFO (MainThread) [homeassistant.components.vacuum] Setting up tuya.vacuum

2025-06-25 19:52:33.385 INFO (MainThread) [homeassistant.components.alarm_control_panel] Setting up tuya.alarm_control_panel

2025-06-25 19:52:33.385 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up tuya.binary_sensor

2025-06-25 19:52:33.388 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new binary_sensor.tuya entity: binary_sensor.steel_cage_door_door

2025-06-25 19:52:33.402 INFO (MainThread) [homeassistant.components.button] Setting up tuya.button

2025-06-25 19:52:33.404 INFO (MainThread) [homeassistant.components.camera] Setting up tuya.camera

2025-06-25 19:52:33.404 INFO (MainThread) [homeassistant.components.climate] Setting up tuya.climate

2025-06-25 19:52:33.405 INFO (MainThread) [homeassistant.components.cover] Setting up tuya.cover

2025-06-25 19:52:33.406 INFO (MainThread) [homeassistant.components.event] Setting up tuya.event

2025-06-25 19:52:33.407 INFO (MainThread) [homeassistant.components.fan] Setting up tuya.fan

2025-06-25 19:52:33.407 INFO (MainThread) [homeassistant.components.humidifier] Setting up tuya.humidifier

2025-06-25 19:52:33.411 INFO (MainThread) [homeassistant.components.light] Setting up tuya.light

2025-06-25 19:52:33.412 INFO (MainThread) [homeassistant.components.number] Setting up tuya.number

2025-06-25 19:52:33.413 INFO (MainThread) [homeassistant.components.scene] Setting up tuya.scene

2025-06-25 19:52:33.413 INFO (MainThread) [homeassistant.components.select] Setting up tuya.select

2025-06-25 19:52:33.419 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new select.tuya entity: select.spot_1_power_on_behavior

2025-06-25 19:52:33.425 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new select.tuya entity: select.spot_1_indicator_light_mode

2025-06-25 19:52:33.434 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new select.tuya entity: select.spot_2_power_on_behavior

2025-06-25 19:52:33.442 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new select.tuya entity: select.spot_2_indicator_light_mode

2025-06-25 19:52:33.448 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new select.tuya entity: select.spot_3_power_on_behavior

2025-06-25 19:52:33.454 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new select.tuya entity: select.spot_3_indicator_light_mode

2025-06-25 19:52:33.461 INFO (MainThread) [homeassistant.components.sensor] Setting up tuya.sensor

2025-06-25 19:52:33.463 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.tuya entity: sensor.steel_cage_door_battery_state

2025-06-25 19:52:33.467 INFO (MainThread) [homeassistant.components.siren] Setting up tuya.siren

2025-06-25 19:52:33.468 INFO (MainThread) [homeassistant.components.switch] Setting up tuya.switch

2025-06-25 19:52:33.472 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.qt_switch_switch_1

2025-06-25 19:52:33.479 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.spot_4_socket_1

2025-06-25 19:52:33.485 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.spot_1_child_lock

2025-06-25 19:52:33.491 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.spot_1_socket_1

2025-06-25 19:52:33.499 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.spot_2_child_lock

2025-06-25 19:52:33.504 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.spot_2_socket_1

2025-06-25 19:52:33.508 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.spot_3_child_lock

2025-06-25 19:52:33.513 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.tuya entity: switch.spot_3_socket_1

2025-06-25 19:52:33.524 INFO (MainThread) [homeassistant.components.vacuum] Setting up tuya.vacuum

2025-06-25 19:52:33.843 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new scene.tuya entity: scene.living_room_off

2025-06-25 19:52:33.856 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new scene.tuya entity: scene.living_room_on

That’s the way I read that. Maes sense. And if that is what they’re doing bug it. Not ok.

So what you’re experiencing is that the ent gets reset every time it gets restarted.

This breaks intended automations (if you rename an ent then create an automation around it by entity id (the recommended way) you broke on restart. This issue above. Also you just noticed it also blows away any descriptive metadata and the labels you may have assigned (in my system thays a huge deal in itself, labels are first class citizens- don’t mess with them or I eject you from my system)

So yeah bug it. If they say it’d as designed point them at this post where plenty of people will say no it’s not supposed to work like that. If they continue drop the integration.

That said there are multiple Tuya integrations maybe one of the others doesn’t do that? (not a Tuya user)