Ankündigung

Einklappen
Keine Ankündigung bisher.

Math.max() in Template sensor

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Math.max() in Template sensor

    ich versuche gerade einen Sensor zu erstellen der mir dem höchsten Behang aus zwei states liefert.
    Ich habe in einezelnen Räumen mehr als ein Rollladen nun möchte in meiner Kurzübersicht sehen on ein Rollo herruntergefahren ist.
    Dafür habe ich mit einen Teplate sensor angelegt.

    Code:
      - platform: template
      
        sensors:
    
          cover_e3_kueche_status:
            friendly_name: Cover E3 Kueche Status
            unique_id: cover_e3_kueche_status
            value_template: |
              {% set b1_cover_current = state_attr('cover.kuche_links', 'current_position') %}
              {% set b2_cover_current = state_attr('cover.kuche_rechts', 'current_position') %}
              {% if b1_cover_current == b2_cover_current %}
                {{ b1_cover_current }}
              {% elif b1_cover_current > b2_cover_current %}
                {{ b1_cover_current }}
              {% else %}
                {{ b2_cover_current }}
              {% endif %}
            icon_template: |
              {% set cover_list = state_attr('cover.kuche_links', 'current_position') | int,
                                  state_attr('cover.kuche_rechts', 'current_position') | int %}
              {% set behang_staus = cover_list | max %}  
              {% if behang_status == 100 %} kuf:fts_window_2w
              {% elif behang_status < 100 and behang_status >= 90 %} kuf:fts_shutter_10
              {% elif behang_status < 90 and behang_status >= 80 %} kuf:fts_shutter_20
              {% elif behang_status < 80 and behang_status >= 70 %} kuf:fts_shutter_30
              {% elif behang_status < 70 and behang_status >= 60 %} kuf:fts_shutter_40
              {% elif behang_status < 60 and behang_status >= 50 %} kuf:fts_shutter_50
              {% elif behang_status < 50 and behang_status >= 40 %} kuf:fts_shutter_60
              {% elif behang_status < 40 and behang_status >= 30 %} kuf:fts_shutter_70
              {% elif behang_status < 30 and behang_status >= 20 %} kuf:fts_shutter_80
              {% elif behang_status < 20 and behang_status >= 10 %} kuf:fts_shutter_90
              {% else %} kuf:fts_shutter_100
              {% endif %}​
    das value_template funktioniert under sicher könnte man das auch im icon_template so umsetzen allerdins wäre if / than mit 5 Rollläder etwas aufwendig. Mein Gedanke daher den max-Wert aus einer Liste zu ermitteln aber das klappt so leider nicht.

    #2
    Du baust nur die Liste falsch:

    Code:
    {% set cover_list = [state_attr('cover.kuche_links', 'current_position'),
                         state_attr('cover.kuche_rechts', 'current_position')] %}​

    Kommentar


      #3
      Zitat von zenvy Beitrag anzeigen
      Du baust nur die Liste falsch:
      Das glaube ich nicht - States sind in HA Templates immer erstmal Strings, daher ist '| int' schon richtig.
      Beim (String-)Vergleich wäre sonst '9' > '100'.

      /tom

      Kommentar


        #4
        Es ist ein simpler Tippfehler…
        {% set behang_status = …%}

        Kommentar


          #5
          Hm stimmt, ich hatte das in den Templateeditor geworfen weil ich das so als syntax nur mit den komma nicht kannte und der hatte mir dann fehler gegeben, aber jetzt gehts auch, idk was da falsch war.

          Kommentar


            #6
            Da diese alte Form des Template Sensors mit HA 2025.12 als deprecatet erklärt wird, wäre das jetzt der ideale Zeitpunkt, auf das neue Format umzusteigen.

            https://community.home-assistant.io/t/deprecation-of-legacy-template-entities-in-2025-12/955562
            Zuletzt geändert von scw2wi; 02.12.2025, 05:56.

            Kommentar

            Lädt...
            X