Triggers in template.yaml won't work

Hi all,

yesterday I setup my Modbus-Interface for accessing my Fröling SP Dual (furnance system).
Since it is interesing for me to dig into the data later on, I decided to add an InfluxDB also.
Only problem is, that the tempature data is changing nit that often, but I want 5mins data in the Influx, so I decided to add some template sensors, that will update every 5min and just forward them to InfluxDB.

But that was not working. I did some debugging and decided to just add on test-template-sensor (Test Zähler) that shoul update every minute and count up.
But it seems that the trigger is not working. Last update timestamp is not changing.
What am I doing wrong?

I have several sensors in my template.yaml, only the test-sensor should be triggered . The other ones should work outside the trigger.

The template.yaml is included in the configuration.yaml the right way. All the other template sensors are working fine.

Here is my template.yaml

# template.yaml

- trigger:
    - trigger: time_pattern
      minutes: "/1"
  sensor:
    - name: "Test Zähler"
      unique_id: test_zaehler
      state: >
        {% set last = states('sensor.test_zaehler') | int(0) %}
        {{ last + 1 }}
      unit_of_measurement: "count"

- sensor:
    - name: "Regenanzeige"
      unique_id: sensor_regenanzeige
      state: >
        {% set regen_an = is_state('input_boolean.regenreaktion', 'on') %}
        {% set menge = states('input_number.niederschlagsmenge') | float(0) %}
        {{ 'Regen an' if regen_an else 'Regen aus' }} – {{ menge }} mm

    - name: "Geosphere forecast list"
      unique_id: 465e8edd-9b79-4495-81fa-92236818f8e2
      state: OK
      attributes:
        list: >
          {% set timestamps = state_attr('sensor.geosphere_forecast','timestamps') %}
          {% set data = state_attr('sensor.geosphere_forecast','features')[0]['properties']['parameters']['rr']['data'] %}
          {% set ns = namespace(out=[]) %}
          {% for t, d in zip(timestamps, data) %}
            {% set ns.out = ns.out + [{t: d}] %}
          {% endfor %}
          {{ ns.out }}

    - name: "Froeling Anlagenzustand"
      unique_id: "froeling_anlagenzustand"
      state: >
        {% set mapper =  {      
          '0' : 'Dauerlast',
          '1' : 'Brauchwasser',
          '2' : 'Automatik',
          '3' : 'Scheitholzbetrieb',
          '4' : 'Reinigen',
          '5' : 'Ausgeschaltet',
          '6' : 'Extraheizen',
          '7' : 'Kaminkehrer',
          '8' : 'Reinigen' } %}
        {% set state =  states.sensor.froeling_anlagenzustand_enum.state %}
        {{ mapper[state] if state in mapper else 'Unknown' }}
      icon: >
        {% if this.state == 'Automatik' %}
          mdi:refresh-auto
        {% elif this.state == 'Brauchwasser' %}
          mdi:water-pump
        {% elif this.state == 'Dauerlast' %}
          mdi:hours-24
        {% else %}
          mdi:alert-circle
        {% endif %}

    - name: "Froeling Ziel Solarladung"
      unique_id: "froeling_ziel_solarladung"
      state: >
        {% set mapper = {
          0: 'keine Solarladung',
          1: 'Puffer',
          2: 'Boiler'
        } %}
        {% set state = states('sensor.froeling_ziel_solarladung_enum') | int %}
        {{ mapper[state] if state in mapper else 'Unbekannt' }}
      icon: >
        {% if this.state == 'Puffer' %}
          mdi:water-boiler
        {% elif this.state == 'Boiler' %}
          mdi:water-pump
        {% else %}
          mdi:solar-power
        {% endif %}

    - name: "Froeling Kesselzustand"
      unique_id: "froeling_kesselzustand"
      state: >
        {% set mapper = {
          '0' : 'STÖRUNG',
          '1' : 'Kessel Aus',
          '2' : 'Anheizen',
          '3' : 'Heizen',
          '4' : 'Feuererhaltung',
          '5' : 'Feuer Aus',
          '6' : 'Tür offen',
          '7' : 'Vorbereitung',
          '8' : 'Vorwärmen',
          '9' : 'Zünden',
          '10' : 'Abstellen Warten',
          '11' : 'Abstellen Warten1',
          '12' : 'Abstellen Einschub1',
          '13' : 'Abstellen Warten2',
          '14' : 'Abstellen Einschub2',
          '15' : 'Abreinigen',
          '16' : '2h warten',
          '17' : 'Saugen / Heizen',
          '18' : 'Fehlzündung',
          '19' : 'Betriebsbereit',
          '20' : 'Rost schließen',
          '21' : 'Stoker leeren',
          '22' : 'Vorheizen',
          '23' : 'Saugen',
          '24' : 'RSE schließen',
          '25' : 'RSE öffnen',
          '26' : 'Rost kippen',
          '27' : 'Vorwärmen-Zünden',
          '28' : 'Resteinschub',
          '29' : 'Stoker auffüllen',
          '30' : 'Lambdasonde aufheizen',
          '31' : 'Gebläsenachlauf I',
          '32' : 'Gebläsenachlauf II',
          '33' : 'Abgestellt',
          '34' : 'Nachzünden',
          '35' : 'Zünden Warten',
          '36' : 'FB: RSE schließen',
          '37' : 'FB: Kessel belüften',
          '38' : 'FB: Zünden',
          '39' : 'FB: min. Einschub',
          '40' : 'RSE schließen',
          '41' : 'STÖRUNG: STB/NA',
          '42' : 'STÖRUNG: Kipprost',
          '43' : 'STÖRUNG: FR-Überdr.',
          '44' : 'STÖRUNG: Türkont.',
          '45' : 'STÖRUNG: Saugzug',
          '46' : 'STÖRUNG: Umfeld',
          '47' : 'FEHLER: STB/NA',
          '48' : 'FEHLER: Kipprost',
          '49' : 'FEHLER: FR-Überdr.',
          '50' : 'FEHLER: Türkont.',
          '51' : 'FEHLER: Saugzug',
          '52' : 'FEHLER: Umfeld',
          '53' : 'FEHLER: Stoker',
          '54' : 'STÖRUNG: Stoker',
          '55' : 'FB: Stoker leeren',
          '56' : 'Vorbelüften',
          '57' : 'STÖRUNG: Hackgut',
          '58' : 'FEHLER: Hackgut',
          '59' : 'NB: Tür offen',
          '60' : 'NB: Anheizen',
          '61' : 'NB: Heizen',
          '62' : 'FEHLER: STB/NA',
          '63' : 'FEHLER: Allgemein',
          '64' : 'NB: Feuer Aus',
          '65' : 'Selbsttest aktiv',
          '66' : 'Fehlerbeh. 20min',
          '67' : 'FEHLER: Fallschacht',
          '68' : 'STÖRUNG: Fallschacht',
          '69' : 'Reinigen möglich',
          '70' : 'Heizen - Reinigen',
          '71' : 'SH Anheizen',
          '72' : 'SH Heizen',
          '73' : 'SH Heiz/Abstell',
          '74' : 'STÖRUNG sicher',
          '75' : 'AGR Nachlauf',
          '76' : 'AGR reinigen',
          '77' : 'Zündung AUS',
          '78' : 'Filter reinigen',
          '79' : 'Anheizassistent',
          '80' : 'SH Zünden',
          '81' : 'SH Störung',
          '82' : 'Sensorcheck'
        } %}
        {% set state = states.sensor.froeling_kesselzustand_enum.state %}
        {{ mapper[state] if state in mapper else 'Unbekannt' }}
      icon: >
        {% if this.state in ['Betriebsbereit', '2h warten', 'Kessel Aus', 'Feuer Aus', 'Abgestellt'] %}
          mdi:sleep
        {% elif this.state in ['Zünden', 'Vorwärmen', 'Vorheizen', 'Anheizen', 'NB: Anheizen', 'SH Anheizen', 'Vorwärmen-Zünden'] %}
          mdi:fire
        {% elif this.state in ['Heizen', 'NB: Heizen', 'SH Heizen', 'Heizen - Reinigen'] %}
          mdi:fire
        {% elif this.state in ['Vorbereitung', 'Nachzünden', 'Anheizassistent', 'SH Zünden'] %}
          mdi:fire
        {% elif this.state in ['Abstellen Warten', 'Abstellen Warten1', 'Abstellen Warten2', 'Abstellen Einschub1', 'Abstellen Einschub2', 'NB: Feuer Aus'] %}
          mdi:sleep
        {% elif 'STÖRUNG' in this.state or 'FEHLER' in this.state %}
          mdi:alert-circle
        {% elif 'NB:' in this.state %}
          mdi:alert
        {% else %}
          mdi:alert-circle
        {% endif %}

    - name: "Froeling HK1 Heizmodus"
      unique_id: "froeling_hk1_heizmodus"
      state: >
        {% set mapper =  {
          '0' : 'Aus',
          '1' : 'Automatik',
          '2' : 'Extraheizen',
          '3' : 'Absenken',
          '4' : 'Dauerabsenken',
          '5' : 'Partybetrieb' } %}
        {% set state =  states.sensor.froeling_hk1_heizmodus_enum.state %}
        {{ mapper[state] if state in mapper else 'Unknown' }}
      icon: >
        {% if this.state == 'Aus' %}
          mdi:power
        {% elif this.state == 'Automatik' %}
          mdi:clock
        {% elif this.state == 'Extraheizen' %}
          mdi:sun-clock
        {% elif this.state == 'Absenken' %}
          mdi:moon-waning-crescent
        {% elif this.state == 'Dauerabsenken' %}
          mdi:thermometer-minus
        {% elif this.state == 'Partybetrieb' %}
          mdi:white-balance-sunny
        {% else %}
          mdi:alert-circle
        {% endif %}

    - name: "Froeling HK2 Heizmodus"
      unique_id: "froeling_hk2_heizmodus"
      state: >
        {% set mapper =  {
          '0' : 'Aus',
          '1' : 'Automatik',
          '2' : 'Extraheizen',
          '3' : 'Absenken',
          '4' : 'Dauerabsenken',
          '5' : 'Partybetrieb' } %}
        {% set state =  states.sensor.froeling_hk2_heizmodus_enum.state %}
        {{ mapper[state] if state in mapper else 'Unknown' }}
      icon: >
        {% if this.state == 'Aus' %}
          mdi:power
        {% elif this.state == 'Automatik' %}
          mdi:clock
        {% elif this.state == 'Extraheizen' %}
          mdi:sun-clock
        {% elif this.state == 'Absenken' %}
          mdi:moon-waning-crescent
        {% elif this.state == 'Dauerabsenken' %}
          mdi:thermometer-minus
        {% elif this.state == 'Partybetrieb' %}
          mdi:white-balance-sunny
        {% else %}
          mdi:alert-circle
        {% endif %}

    - name: "Froeling Pelletslager Gesamtinhalt"
      unique_id: froeling_pelletslager_gesamtinhalt
      unit_of_measurement: "t"
      device_class: weight
      state_class: measurement
      state: >
        {% set verbrauch_t = states('sensor.froeling_pellets_verbrauch_tonne') | float(0) %}
        {% set verbrauch_kg = states('sensor.froeling_pellets_verbrauch_kg') | float(0) %}
        {% set rest = states('sensor.froeling_pellets_lager_restmenge') | float(0) %}
        {{ (verbrauch_t + (verbrauch_kg / 1000) + rest) | round(2) }}
      icon: mdi:scale-balance

    - name: "Froeling Pelletslager Füllgrad"
      unique_id: froeling_pelletslager_fuellgrad
      unit_of_measurement: "%"
      device_class: battery
      state_class: measurement
      state: >
        {% set verbrauch_t = states('sensor.froeling_pellets_verbrauch_tonne') | float(0) %}
        {% set verbrauch_kg = states('sensor.froeling_pellets_verbrauch_kg') | float(0) %}
        {% set rest = states('sensor.froeling_pellets_lager_restmenge') | float(0) %}
        {% set gesamt = verbrauch_t + (verbrauch_kg / 1000) + rest %}
        {% if gesamt > 0 %}
          {{ (rest / gesamt * 100) | round(1) }}
        {% else %}
          0
        {% endif %}
      icon: >
        {% set fuell = states('sensor.froeling_pelletslager_fuellgrad') | float(0) %}
        {% if fuell > 70 %}
          mdi:silo
        {% elif fuell > 30 %}
          mdi:silo-outline
        {% else %}
          mdi:silo-alert
        {% endif %}
        

I think it should be:

- triggers:
    - trigger: time_pattern
      minutes: "/1"

That is, the first line should be triggers not trigger.

Thanks,
missed that typo.
Changed it , but the behaviour hasn’t changed.

The trigger is not working.“Last updated” timestamp of the template-sensor is not changing every minute

Try commenting out the unit_of_measurement. Are you sure count is valid?

- trigger:
    - trigger: time_pattern
      minutes: "/1"
  sensor:
    - name: "Test Zähler"
      unique_id: test_zaehler
      state_class: total_increasing
      state: >
        {{ this.state | int(0) + 1 }}
      unit_of_measurement: "count"

Hi Pedro,
somehow solve my problem, was it due to the script in the state command?
What I noticed right now is, that the sensor is just updated if the value has changed, is that correct?
How could I force an update even if the value hasn’t changed?

You can’t, home assistant suppresses like states. If you want things to update, you have to add an attribute that always has a new value, like the current time.

Ok, I understand.
Something like

attributes:
            minute_counter: "{{ now().minute }}"

Do you know if that would force an update to Influx, or is there a state-change needed?
If so, I think I would have to add “noise” to my sensor values.

or just output {{ now() }} for a legit last updated.