Sensor model works in simulation but model doesn't work in configuration .yaml

good afternoon
somewone has a solution
i have these template simulation

{% set timer_1_hh = state_attr('input_datetime.gatti_timer_1', "hour") |int %}
{% set timer_1_mm = state_attr('input_datetime.gatti_timer_1', "minute") |int %}
{% set timer_1_meal = states('input_number.gatti_timer_1_porzione_cibo') |round (0) %}
{% set timer_1_enable = iif(is_state('input_boolean.gatti_timer_1_attiva', 'on'), "01", "00") |int %}

{% set timer_2_hh = state_attr('input_datetime.gatti_timer_2', "hour") |int %}
{% set timer_2_mm = state_attr('input_datetime.gatti_timer_2', "minute") |int %}
{% set timer_2_meal = states('input_number.gatti_timer_2_porzione_cibo') |round (0) %}
{% set timer_2_enable = iif(is_state('input_boolean.gatti_timer_2_attiva', 'on'), "01", "00") |int %}

{% set timer_3_hh = state_attr('input_datetime.gatti_timer_3', "hour") |int %}
{% set timer_3_mm = state_attr('input_datetime.gatti_timer_3', "minute") |int %}
{% set timer_3_meal = states('input_number.gatti_timer_3_porzione_cibo') |round (0) %}
{% set timer_3_enable = iif(is_state('input_boolean.gatti_timer_3_attiva', 'on'), "01", "00") |int %}

{% set timer_4_hh = state_attr('input_datetime.gatti_timer_4', "hour") |int %}
{% set timer_4_mm = state_attr('input_datetime.gatti_timer_4', "minute") |int %}
{% set timer_4_meal = states('input_number.gatti_timer_4_porzione_cibo') |round (0) %}
{% set timer_4_enable = iif(is_state('input_boolean.gatti_timer_4_attiva', 'on'), "01", "00") |int %}

{% set timer_5_hh = state_attr('input_datetime.gatti_timer_5', "hour") |int %}
{% set timer_5_mm = state_attr('input_datetime.gatti_timer_5', "minute") |int %}
{% set timer_5_meal = states('input_number.gatti_timer_5_porzione_cibo') |round (0) %}
{% set timer_5_enable = iif(is_state('input_boolean.gatti_timer_5_attiva', 'on'), "01", "00") |int %}

{% set timer_6_hh = state_attr('input_datetime.gatti_timer_6', "hour") |int %}
{% set timer_6_mm = state_attr('input_datetime.gatti_timer_6', "minute") |int %}
{% set timer_6_meal = states('input_number.gatti_timer_6_porzione_cibo') |round (0) %}
{% set timer_6_enable = iif(is_state('input_boolean.gatti_timer_6_attiva', 'on'), "01", "00") |int %}
{% set value_to_app = [timer_1_hh, timer_1_mm, timer_1_meal, timer_1_enable,
    timer_2_hh, timer_2_mm, timer_2_meal, timer_2_enable,
    timer_3_hh, timer_3_mm, timer_3_meal, timer_3_enable,
    timer_4_hh, timer_4_mm, timer_4_meal, timer_4_enable,
    timer_5_hh, timer_5_mm, timer_5_meal, timer_5_enable,
    timer_6_hh, timer_6_mm, timer_6_meal, timer_6_enable] |list %}
{% if (timer_1_hh or timer_1_mm or timer_1_meal or timer_1_enable or
    timer_2_hh or timer_2_mm or timer_2_meal or timer_2_enable or
    timer_3_hh or timer_3_mm or timer_3_meal or timer_3_enable or
    timer_4_hh or timer_4_mm or timer_4_meal or timer_4_enable or
    timer_5_hh or timer_5_mm or timer_5_meal or timer_5_enable or
    timer_6_hh or timer_6_mm or timer_6_meal or timer_6_enable) in ['unavailable','unknown','none'] -%}
  "UNAVALAIBLE"
{% else %}
{% set ns = namespace(x="") %}
{% for b in value_to_app %}
  {% set ns.x = ns.x + pack(b, '=B').decode() %}
{% endfor %}
{{ ns.x | base64_encode }}
{% endif %}

the result is

CQADAQwAAwEPAAMBEgADARUAAgEAAAMA

if i verify homeasstant config is OK
if i create a sensor in configuration.yaml i recive an error

ERROR (MainThread) [homeassistant.config] Invalid config for [template]: expected dictionary for dictionary value @ data['sensors']. Got [{'name': 'gatti meal plan to app',
template:
  - sensors:
      - name: gatti meal plan to app
        state: >-
          {% set timer_1_hh = state_attr('input_datetime.gatti_timer_1', "hour") |int %}
          {% set timer_1_mm = state_attr('input_datetime.gatti_timer_1', "minute") |int %}
          {% set timer_1_meal = states('input_number.gatti_timer_1_porzione_cibo') |round (0) %}
          {% set timer_1_enable = iif(is_state('input_boolean.gatti_timer_1_attiva', 'on'), "01", "00") |int %}

          {% set timer_2_hh = state_attr('input_datetime.gatti_timer_2', "hour") |int %}
          {% set timer_2_mm = state_attr('input_datetime.gatti_timer_2', "minute") |int %}
          {% set timer_2_meal = states('input_number.gatti_timer_2_porzione_cibo') |round (0) %}
          {% set timer_2_enable = iif(is_state('input_boolean.gatti_timer_2_attiva', 'on'), "01", "00") |int %}

          {% set timer_3_hh = state_attr('input_datetime.gatti_timer_3', "hour") |int %}
          {% set timer_3_mm = state_attr('input_datetime.gatti_timer_3', "minute") |int %}
          {% set timer_3_meal = states('input_number.gatti_timer_3_porzione_cibo') |round (0) %}
          {% set timer_3_enable = iif(is_state('input_boolean.gatti_timer_3_attiva', 'on'), "01", "00") |int %}

          {% set timer_4_hh = state_attr('input_datetime.gatti_timer_4', "hour") |int %}
          {% set timer_4_mm = state_attr('input_datetime.gatti_timer_4', "minute") |int %}
          {% set timer_4_meal = states('input_number.gatti_timer_4_porzione_cibo') |round (0) %}
          {% set timer_4_enable = iif(is_state('input_boolean.gatti_timer_4_attiva', 'on'), "01", "00") |int %}

          {% set timer_5_hh = state_attr('input_datetime.gatti_timer_5', "hour") |int %}
          {% set timer_5_mm = state_attr('input_datetime.gatti_timer_5', "minute") |int %}
          {% set timer_5_meal = states('input_number.gatti_timer_5_porzione_cibo') |round (0) %}
          {% set timer_5_enable = iif(is_state('input_boolean.gatti_timer_5_attiva', 'on'), "01", "00") |int %}

          {% set timer_6_hh = state_attr('input_datetime.gatti_timer_6', "hour") |int %}
          {% set timer_6_mm = state_attr('input_datetime.gatti_timer_6', "minute") |int %}
          {% set timer_6_meal = states('input_number.gatti_timer_6_porzione_cibo') |round (0) %}
          {% set timer_6_enable = iif(is_state('input_boolean.gatti_timer_6_attiva', 'on'), "01", "00") |int %}
          {% set value_to_app = [timer_1_hh, timer_1_mm, timer_1_meal, timer_1_enable,
              timer_2_hh, timer_2_mm, timer_2_meal, timer_2_enable,
              timer_3_hh, timer_3_mm, timer_3_meal, timer_3_enable,
              timer_4_hh, timer_4_mm, timer_4_meal, timer_4_enable,
              timer_5_hh, timer_5_mm, timer_5_meal, timer_5_enable,
              timer_6_hh, timer_6_mm, timer_6_meal, timer_6_enable] |list %}
          {% if (timer_1_hh or timer_1_mm or timer_1_meal or timer_1_enable or
              timer_2_hh or timer_2_mm or timer_2_meal or timer_2_enable or
              timer_3_hh or timer_3_mm or timer_3_meal or timer_3_enable or
              timer_4_hh or timer_4_mm or timer_4_meal or timer_4_enable or
              timer_5_hh or timer_5_mm or timer_5_meal or timer_5_enable or
              timer_6_hh or timer_6_mm or timer_6_meal or timer_6_enable) in ['unavailable','unknown','none'] -%}
            "UNAVALAIBLE"
          {% else %}
          {% set ns = namespace(x="") %}
          {% for b in value_to_app %}
            {% set ns.x = ns.x + pack(b, '=B').decode() %}
          {% endfor %}
          {{ ns.x | base64_encode }}
          {% endif %}

Can some help me. Thanks

The current format uses sensor… sensors was the legacy format.

template:
  - sensor:
      - name: gatti meal plan to app
        state: >-
          ....

FWIW, you can replace:

with:

{% if value_to_app | select('in', ['unavailable','unknown', none]) 
| list | count > 0 -%}

Thanks for you suggest, i can became the code more “light” but don’t solve my issue

ERROR (MainThread) [homeassistant.config] Invalid config for [template]: expected dictionary for dictionary value @ data['sensors']. Got [{'name': 'gatti meal plan to app',......

It looks like you still haven’t removed the “s” from sensors…

Noooooo!!!
I lost half day for an “S”!!!
NOOOO!!!
I am ashamed
Thank You

1 Like