Aufsummieren von Sensoren anhand des Namens

Electronics-Salon 10 x Prototyp Leiterplatte für Arduino UNO R3 Schutzplatte DIY, von CZH-LABS
Electronics-Salon 10 x Prototyp Leiterplatte für Arduino UNO R3 Schutzplatte DIY, von CZH-LABS
--

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) }}