Würde gerne von meinen 50 Shellys .-) den Eigenverbrauch dieser von der nicht erfassten Energie abziehen damit das im Dashboard besser aussieht.
Wie ist da die Erstellung des Helfers als Sensor ?
Wenn du die Shellys nicht einzeln im Energiedashboard eintragen willst, dann bleibt dir wirklich nur ein Summen-Helfer für Leistung und einer für Energie zu erstellen. Dann musst du nur die Helfer im Energiedashboard eintragen.
Hier eine funktionierende Lösung erstellt mit a bisserl KI erstellt .-)
Ein Template und ein weiterer Sensor. Beide geschrieben für externe Ordner also nicht in der configuration.yaml (läßt sich aber auch ändern.-) )
Template erkennt alle gängigen Shellys mit Ihre Verbräuchen und Unterscheidet zwischen an-aus.
Es muß nichts umgeschrieben werden. Einfach verwenden.
Das ganze wie unten im Bild dann ins Energie Dashboard als Gerät.
Template:
trigger:
- platform: time_pattern
minutes: "/1"
- platform: homeassistant
event: start
sensor:
- name: "Shelly Eigenverbrauch Leistung Dynamisch"
unique_id: shelly_eigenverbrauch_leistung_dynamisch
icon: mdi:flash
unit_of_measurement: "W"
device_class: power
state_class: measurement
state: >
{% set entities = integration_entities('shelly') %}
{% if entities and entities | length > 0 %}
{% set ns = namespace(devices=[], total_power=0.0) %}
{% for e in entities %}
{% set d = device_id(e) %}
{% if d and d not in ns.devices %}
{% set ns.devices = ns.devices + [d] %}
{% set model = device_attr(d, 'model') | string %}
{# Prüfen, ob das Gerät aktuell eingeschaltet ist (Standard: aus) #}
{% set dev_entities = device_entities(d) %}
{% set ns_on = namespace(on=false) %}
{% for de in dev_entities %}
{% if (de.startswith('switch.') or de.startswith('light.')) and is_state(de, 'on') %}
{% set ns_on.on = true %}
{% endif %}
{% endfor %}
{# Zuweisung der Leistung basierend auf Modell, Generation und Zustand #}
{% if '3EM' in model or 'Pro 3' in model or 'EM Gen3' in model %}
{# Große Dreiphasen-Messungen haben kein Relais, Verbrauch konstant #}
{% set power = 3.0 %}
{% elif 'Mini' in model or 'mini' in model %}
{# Die neuen ultrakompakten Mini-Modelle (Gen2 / Gen3) #}
{% set power = 0.6 if ns_on.on else 0.3 %}
{% elif 'Gen3' in model or 'G3' in model %}
{# Standard Gen3 Modelle mit sparsamerem ESP-Chip #}
{% if 'Plug' in model %}
{% set power = 0.9 if ns_on.on else 0.3 %}
{% else %}
{% set power = 1.0 if ns_on.on else 0.4 %}
{% endif %}
{% elif '2.5' in model or '2PM' in model %}
{# Klassische ältere Doppel-Relais #}
{% set power = 1.6 if ns_on.on else 0.8 %}
{% elif 'Plug S' in model %}
{# Älterer Plug S #}
{% set power = 1.0 if ns_on.on else 0.4 %}
{% elif '1PM' in model or 'Plus 1' in model %}
{# Ältere Standard-Relais #}
{% set power = 1.2 if ns_on.on else 0.5 %}
{% else %}
{# Fallback für komplett unbekannte Modelle #}
{% set power = 1.4 if ns_on.on else 0.6 %}
{% endif %}
{% set ns.total_power = ns.total_power + power %}
{% endif %}
{% endfor %}
{{ ns.total_power | round(1) }}
{% else %}
{{ states('sensor.shelly_eigenverbrauch_leistung_dynamisch') | float(0.0) }}
{% endif %}
availability: >
{{ integration_entities('shelly') | length > 0 or has_value('sensor.shelly_eigenverbrauch_leistung_dynamisch') }}
Sensor:
platform: integration
source: sensor.shelly_eigenverbrauch_leistung_dynamisch
name: "Shelly Eigenverbrauch Energie Gesamt"
unique_id: shelly_eigenverbrauch_energie_gesamt
unit_prefix: k
round: 3
method: left # Garantiert genaue Ergebnisse bei konstanten Werten
