Voice Assistant PE - Support for assist_satellite.start_conversation

I noticed in the release notes assist_satellite.start_conversation
I have My Voice Assistant PE setup with LLM.

But Cannot select my PE it with assist_satellite.start_conversation
In the release notes i see (Starting a conversation with the default conversation agent is a bit more work and did not make it this release).

Does this mean it still in development for the Voice Assistant PE?

2 Likes

Tried the same - same result…

I assume we need to wait for a firmware update for the PE …

Running latest ESPHome Dev, updated to today’s build and get an error when running the update of the PE… Will follow what they do with this update…

I have created a github issue

3 Likes

Could you link to or share information how you swapped from the factory firmware to the dev version?

I would love to be able to tweak and install the official config on my PEs.

Having the same issue. According to the docs you need an LLM setup (Assist Satellite - Home Assistant) and they explicitly mention OpenAI and not Claude (which is what I use), so I thought maybe only OpenAI is supported atm?

Can anyone using OpenAI confirm they also don’t see their satellite available to select?

If you go to your voice satellites device page there should be a switch called “Beta Firmware”, it might be hidden initially, just enable it.

I haven’t done it myself, but I assume toggling this on will start considering the pre-release GitHub releases (Releases · esphome/home-assistant-voice-pe · GitHub) as valid update options for your device

Currently It apperently only works with VOIP Phone

Please Like this post and maybe DEV can work on it :smiley:

Quick update - heard JLo and Paulus mention this on the Voice Chapter 9 stream tonight. They confirmed that it’s coming to voice satellites soon, its just up to an ESPHome update.

2 Likes

:crossed_fingers: Lets hope we get this soon not going to buy a analog phone to put next to the Voice Assistant PE… Just to have my home ask me a question :slight_smile:

2 Likes

I use this method… it’s a bit long at first, but at least it works well in Italian.

https://community.home-assistant.io/t/simulate-start-conversation-making-assist-asks-first/846723

Thanks! this would work with Okay Nabu “Yes”
At least that seems to be alternative for know. Not using Node Red but indeed you can create something similar with helpers.

Announce the question “Do you want to Turn on the computer?”
Turn ON Helper for Question “Do you want to Turn on the computer”.
Wait for Answer Okay Nabu “Yes” / buildt in time for no response Turn off Question. “Do you want to Turn on the computer”

If Yes is received in time. Check the active question and trigger Turn on computer automation.

work as a alternative :smiley:

Okay Something nice in 3 automations to start to have conversation :slight_smile:
My Home Assistant ask question and If I respond with yes or no it give corresponding answer the only thing is that.

You need to say Okay Nabu after the announcement.
And if you Say Yes it will reply Done and then trigger the correct response.
Saying no take also longer for The PE to respond with Done and continue :thinking:

Is there away to use the text response Voice PE receives?
and push this through the next automation? :thinking:

Create 3

Automation 1
alias: Mbot - Question Test Yes and No
description: “”
triggers:

  • trigger: state
    entity_id:

    • input_boolean.mbot_question_random_question_test
      from: “off”
      to: “on”
      conditions:
      actions:
  • alias: Random Chat
    data:
    agent_id: conversation.chatgpt_4
    text: >-

    So I want you ask a random yes or No question to test my knowledge. Ask
    a question like is this correct? Yes or No
    
    The notification will be spoken out loud (so no emoji or *).  Please use
    whole numbers and try to sound advanced. This should be max 1 minutes in
    length and to the point.
    

    conversation_id: Question
    response_variable: agent
    enabled: true
    action: conversation.process

  • action: assist_satellite.announce
    metadata: {}
    data:
    message: “{{agent.response.speech.plain.speech}}”
    target:
    entity_id: assist_satellite.home_assistant_voice_attic_assist_satellite
    mode: single

Automation 2
alias: Mbot - Followup to Yes and NO
description: “”
triggers:

  • trigger: state
    entity_id:
    • input_boolean.mbot_answer_yes_received
      to: “on”
      id: Answer_yes
  • trigger: state
    entity_id:
    • input_boolean.mbot_answer_no_received
      to: “on”
      id: Answer_no
      conditions:
      actions:
  • choose:
    • conditions:
      • condition: trigger
        id:

        • Answer_yes
          sequence:
      • alias: Random Chat
        data:
        agent_id: conversation.chatgpt_4
        text: >-

        You Recieved a Yes to your question
        
        The notification will be spoken out loud (so no emoji or *). 
        Please use whole numbers and try to sound advanced. This should
        be max 1 minutes in length and to the point.
        

        conversation_id: Question
        response_variable: agent
        enabled: true
        action: conversation.process

      • action: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
        entity_id: input_boolean.mbot_answer_yes_received

    • conditions:
      • condition: trigger
        id:

        • Answer_no
          sequence:
      • alias: Random Chat
        data:
        agent_id: conversation.chatgpt_4
        text: >-

        You Recieved a No to your question
        
        The notification will be spoken out loud (so no emoji or *). 
        Please use whole numbers and try to sound advanced. This should
        be max 1 minutes in length and to the point.
        

        conversation_id: Question
        response_variable: agent
        enabled: true
        action: conversation.process

      • action: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
        entity_id: input_boolean.mbot_answer_no_received

  • action: assist_satellite.announce
    metadata: {}
    data:
    message: “{{agent.response.speech.plain.speech}}”
    target:
    entity_id: assist_satellite.home_assistant_voice_attic_assist_satellite
  • action: input_boolean.turn_off
    metadata: {}
    data: {}
    target:
    entity_id: input_boolean.mbot_question_random_question_test
    mode: single

Automation 3
description: “”
mode: single
triggers:

  • trigger: conversation
    command:
    • “Yes”
    • Okay
      id: Answer_Yes
  • trigger: conversation
    command:
    • “No”
    • Don’t think so
      id: Answer_No
  • trigger: state
    entity_id:
    • input_boolean.mbot_question_random_question_test
      for:
      hours: 0
      minutes: 5
      seconds: 0
      id: Mbot_Question_5min
      to: “on”
      conditions:
      actions:
  • choose:
    • conditions:
      • condition: trigger
        id:
        • Answer_Yes
      • condition: state
        entity_id: input_boolean.mbot_question_random_question_test
        state: “on”
        sequence:
      • action: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
        entity_id: input_boolean.mbot_answer_yes_received
        alias: Random Question Test Answer Yes
    • conditions:
      • condition: trigger
        id:
        • Answer_No
      • condition: state
        entity_id: input_boolean.mbot_question_random_question_test
        state: “on”
        sequence:
      • action: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
        entity_id:
        - input_boolean.mbot_answer_no_received
        alias: Random Question Test Answer No
  • alias: Question Timmer
    choose:
    • conditions:
      • condition: trigger
        id:
        • Mbot_Question_5min
          sequence:
      • action: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
        entity_id:
        - input_boolean.mbot_question_random_question_test

I like using node red becouse in this case, with swich node i can use only one flow and 2 input tex to make how many “ask question” from satellite and answer i want. I think that using your or this method now is the only way.
Do you think that is it possible use conversation.process and use the conversation id?

action: conversation.process
data:
  text: "hi ask me: do you want ope the cover?"
  agent_id: conversation.google_generative_ai
  conversation_id: cover123

But i cannot figure out how to tell assist to have the same conversation_id when i call “ok nabu”.

Stuck at the same thing.

Can you really find the solution to this problem?

yes. i found a solution that works with assist and Google ai as Agent:

2 Likes