Aufsummieren von Sensoren anhand des Namens

AZDelivery 3 x 1,8 Zoll SPI TFT Display ST7735 mit 128 x 160 Pixeln kompatibel mit Arduino und Raspberry Pi inklusive E-Book!
AZDelivery 3 x 1,8 Zoll SPI TFT Display ST7735 mit 128 x 160 Pixeln kompatibel mit Arduino und Raspberry Pi inklusive E-Book!
Unverb. Preisempf.: 16,99 €
14,44 €
Sie sparen 2,55 € (15%)

Wenn man z.B. den Status aller Sensoren die mit „_energy“ enden aufsummieren möchte, kann man das mit einem kleinen Template-Sensor umsetzen.

In der „for“-Zeile werden alle State-Objekte von der Domain „sensor“ selektiert und diese werden mit Hilfe des „if“-Statements auf die Sensoren gefiltert, die mit „_energy“ enden. In der For-Schleife werden die Zustandswerte der einzelnen Sensoren in der Variable „result“ aufsummiert und am Ende als Zustandswert des neuen Template-Sensors zurückgeliefert.

  - name: "Verbrauch Gesamt"
    device_class: energy
    unit_of_measurement: "kWh"
    state: >
      {% set result = namespace(summe=0) %}
      {% for sensor in states.sensor if sensor.entity_id.endswith('_energy') %}
      {% set result.summe=result.summe + states(sensor.entity_id)|float(0)%}
      {% endfor %}
      {{ result.summe|round(3) }}