Template light: Effect list trigger different service-calls?

Continuing the discussion from Template light: Can effect list be hardcoded?:

I have a Broadcom/BestCon which is ‘trained’ ot control some RF-tealights.

I’ve created a template-light that works for ON/OFF, but struggeling with a couple of “effects”

so the light on-off works, but changing the effect-drop-down gives me this error:
image

So why is it complaining about “light.turn_on”, when i try to call a different service?
Is it not possible to do what I’m trying to do??

(given that effects are part of light &stuff??)

# config from yaml-file in packages-folder,, could also be written in configuration.yaml

input_select:
  kitchen_tealights_effects:
    name: Kitchen Tealights effects
    options:
      - Candle
      - Light
    initial: Candle

light:
  - platform: template
    lights:
      kitchen_tealights:
        friendly_name: "Kitchen Tealights"
        # level_template: "{{ state_attr('sensor.theater_brightness', 'lux')|int }}"
        # value_template: "{{ state_attr('sensor.theater_brightness', 'lux')|int > 0 }}"
        # temperature_template: "{{states('input_number.temperature_input') | int}}"
        # color_template: "({{states('input_number.h_input') | int}}, {{states('input_number.s_input') | int}})"
        # effect_list_template: "{{ state_attr('light.led_strip', 'effect_list') }}"
        # effect_list_template: "{{ state_attr('light.kitchen_tealights', 'effect_list') }}"
        effect_list_template: "{{ state_attr('input_select.kitchen_tealights_effects', 'options') }}"
        effect_template: > # "{{ states('input_select.david_tv_backlight_effects') }}"
          {% if is_state('input_select.kitchen_tealights_effects', 'Candle') %}
             - b64:JgB4AAABHZEREhE3ERQQExEUEBMRFBATETcRExE3ETcRNhE3ETcQOBAUERMQNxEUERIRFBATERQQOBA4EBMRNxE3EDgQOBA3EQAE6wABHkkRAAvqAAEdShEAC+kAAR5JEQAL6QABHkkRAAvpAAEeSREAC+kAAR1KEQANBQ==   # candle mode
          {% else %}
            - b64:JgCAAAABHZARFBA4EBMRFBATERMRFBESETcRExA4EDgQNxE3ETcRNxE3ERIRNxEUEBMRFBATERQQExE3ERMRNxE3ETcRNxA3EQAE7QABHUoRAAvqAAEeShAAC+sAAR5JEQAL6wABHkkQAAvqAAEfSREAC+kAAR5JEQAL6QABHkkQAA0F
          {% endif %}

        turn_on:
          service: remote.send_command
          target:
            entity_id: remote.broadlink_kitchen
          data:
            # device: ledsavers_tealights2
            command: 
              # - turn on
              - b64:JgBwAAABHZAQFBE3ERMQFBESERQREhEUEDcQFBE3ETcRNxA3EDgQNxEUERIRFBATERQQExEUEBMRNxE3EDgQNxE3EDcRNxE3EQAE6wABHkkQAAvqAAEdSREAC+gAAR5KEQAL6AABHUkRAAvpAAEdShEADQU=            

        turn_off:
          service: remote.send_command
          target:
            entity_id: remote.broadlink_kitchen
          data:
            # device: ledsavers_tealights2
            command: 
              # - turn off
              - b64:JgBgAAABHpARFBA2EhMSEhETEBQRExAUETcREhE3ETcRNxI2ETcSNhE3ERISExESERMSExESERQQExE3ETcRNxE3ETcQOBA3EQAE6wABH0kSAAvoAAEgSBIAC+gAAR9IEQANBQ==

        set_effect:
          - service: remote.send_command
            target:
              entity_id: remote.broadlink_kitchen
            data:
              command: "{{ effect }}"

if I go to dev-tools/services and try the ‘modes’ there (one of them at the time) - they work fine:

service: remote.send_command
target:
  entity_id: remote.broadlink_kitchen
data:
  command: 
    # Candle-mode:
    - b64:JgB4AAABHZEREhE3ERQQExEUEBMRFBATETcRExE3ETcRNhE3ETcQOBAUERMQNxEUERIRFBATERQQOBA4EBMRNxE3EDgQOBA3EQAE6wABHkkRAAvqAAEdShEAC+kAAR5JEQAL6QABHkkRAAvpAAEeSREAC+kAAR1KEQANBQ==   # candle mode
    
    # Light Mode:   
    # - b64:JgCAAAABHZARFBA4EBMRFBATERMRFBESETcRExA4EDgQNxE3ETcRNxE3ERIRNxEUEBMRFBATERQQExE3ERMRNxE3ETcRNxA3EQAE7QABHUoRAAvqAAEeShAAC+sAAR5JEQAL6wABHkkQAAvqAAEfSREAC+kAAR5JEQAL6QABHkkQAA0F

your effect template is wrong and so is your set effect.

Your effect template should return the currently running effect. Candle, Light, etc.

Your set_effect should be looking at your effect input (candle, light, etc) and mapping to a command.

You’re currently doing both opposite.

changed to:

effect_template: "{{ states('input_select.kitchen_tealights_effects') }}"

so that will get the current state of input_select - and the light is now following the input-select - thanks :slight_smile:
__

tried like this:

set_effect:
 - service: remote.send_command
   target:
     entity_id: remote.broadlink_kitchen
   data:
     command: >
       {% if is_state('input_select.kitchen_tealights_effects', 'Candle') %}
       - b64:JgB4AAABHZEREhE3ERQQExEUEBMRFBATETcRExE3ETcRNhE3ETcQOBAUERMQNxEUERIRFBATERQQOBA4EBMRNxE3EDgQOBA3EQAE6wABHkkRAAvqAAEdShEAC+kAAR5JEQAL6QABHkkRAAvpAAEeSREAC+kAAR1KEQANBQ==   # candle mode
       {% else %}
       - b64:JgCAAAABHZARFBA4EBMRFBATERMRFBESETcRExA4EDgQNxE3ETcRNxE3ERIRNxEUEBMRFBATERQQExE3ERMRNxE3ETcRNxA3EQAE7QABHUoRAAvqAAEeShAAC+sAAR5JEQAL6wABHkkQAAvqAAEfSREAC+kAAR5JEQAL6QABHkkQAA0F
       {% endif %}

but I’m getting this when trying to change the effect to the one not selected (changing back to the selected gives no error)
image

  • even thought there is no light.turn_on in the set_effect :wink:

I think I’ve done this wrong, trying to chew more than nessesary,?
If the template can change the input-select , then I can create automation on the input-select-change to send the rf-codes??
(looking at OP, that seems to activate a button that might do whatever, and not directly change effect)

Or is there a better solution??, - feels like I’m way above my know-league :wink:
apriciate your help :wink:

You don’t need the - before your command. Look in your logs for the detailed error message.

yey, that worked :wink:
I had to set the input as well, so the right value is used, or can I do that another way (as well :slight_smile: )

I ended up with this config:

        set_effect:
          - service: input_select.select_option
            target:
              entity_id: input_select.kitchen_tealights_effects
            data:
              option: >
                {{ effect }}
          - service: remote.send_command
            target:
              entity_id: remote.broadlink_kitchen
            data:
              command: >
                {% if is_state('input_select.kitchen_tealights_effects', 'Candle') %}
                  b64:JgB4AAABHZEREhE3ERQQExEUEBMRFBATETcRExE3ETcRNhE3ETcQOBAUERMQNxEUERIRFBATERQQOBA4EBMRNxE3EDgQOBA3EQAE6wABHkkRAAvqAAEdShEAC+kAAR5JEQAL6QABHkkRAAvpAAEeSREAC+kAAR1KEQANBQ==   # candle mode
                {% else %}
                  b64:JgCAAAABHZARFBA4EBMRFBATERMRFBESETcRExA4EDgQNxE3ETcRNxE3ERIRNxEUEBMRFBATERQQExE3ERMRNxE3ETcRNxA3EQAE7QABHUoRAAvqAAEeShAAC+sAAR5JEQAL6wABHkkQAAvqAAEfSREAC+kAAR5JEQAL6QABHkkQAA0F
                {% endif %}

this must be amongst the most useless things I’ve done, but it is building small steps of knowledge for me - - so thanks for the assistance :wink:

1 Like

You should change your set effect to…

                {% if effect == 'Candle' %}
                  b64:JgB4AAABHZEREhE3ERQQExEUEBMRFBATETcRExE3ETcRNhE3ETcQOBAUERMQNxEUERIRFBATERQQOBA4EBMRNxE3EDgQOBA3EQAE6wABHkkRAAvqAAEdShEAC+kAAR5JEQAL6QABHkkRAAvpAAEeSREAC+kAAR1KEQANBQ==
                {% else %}
                  b64:JgCAAAABHZARFBA4EBMRFBATERMRFBESETcRExA4EDgQNxE3ETcRNxE3ERIRNxEUEBMRFBATERQQExE3ERMRNxE3ETcRNxA3EQAE7QABHUoRAAvqAAEeShAAC+sAAR5JEQAL6wABHkkQAAvqAAEfSREAC+kAAR5JEQAL6QABHkkQAA0F
                {% endif %}

Also remove the in line comments.