Using timers on non-esp32 Assist devices and trying to trick the system

I’m trying to execute an action after a timer, from a non-esp32 device.

This script actually works great with chatgpt as llm:

alias: Sarchiapone
fields:
  sarchiapone:
    selector:
      duration:
        enable_day: false
    name: Sarchiapone
    description: sarchiapone
    default:
      hours: 0
      minutes: 1
      seconds: 0
  comando:
    selector:
      text: {}
    name: comando
    description: comando
    required: true
sequence:
  - service: timer.start
    metadata: {}
    data:
      duration: "{{sarchiapone}}"
    target:
      entity_id: timer.attesa
  - wait_for_trigger:
      - platform: state
        entity_id:
          - timer.attesa
        to: idle
  - service: conversation.process
    metadata: {}
    data:
      text: "{{comando}}"
description: ""

Funny thing: "sarchiapone¨ is not a real word in italian, based on an old joke about some animal that does not even exist. I HAD to use that nonexisting word.

I can say “sarchiapone for 5 seconds for turning on the light of living room” and it works!

If I change the script name to something that makes sens like “wait”, Assist does not like a sentence like “wait 5 seconds for turning on the light of living room”, it says it can’t start a timer for this device.

This behavior collides with the latest news about supercharging LLMs with our scripts. Theoretically if I create a script called “turn on”, Assist should execute that instead of the basic built-in command. Am I wrong?

Screenshot_20240704_103720

I added to my LLM configuration this sentence:
Then I ask you to set a timer and then do an anction don’t do that, instead play the script sarchiapone using as the first variable the duration and as the second the command to execute.

This improves the system.

Screenshot_20240704_111556

now timers works for every device :wink: