Konfiguration des Utility meter in der yaml will nicht klappen

Ich habe im HA einige Integrale laufen.
Da diese ja bis ins unendliche laufen, möchte ich gerne das “Utility meter” nutzen um das Ergebnis täglich auf 0 zu setzen.
In der GUI klappt das auch. Nur in der configuration.yaml nicht.

Hat jemand ne Idee wieso?

sensor:
  - platform: integration
    unique_id: energy_battery_to_house
    name: "Energie von Batterie ins Haus"
    source: sensor.battery_to_house
    unit_prefix: k
    round: 2
    method: left
    unit_time: h
  - platform: integration
    unique_id: energy_grid_to_house
    name: "Energie vom Netz ins Haus"
    source: sensor.grid_to_house
    unit_prefix: k
    round: 2
    method: left
    unit_time: h


utility_meter:
  daily_energy:
    unique_id: energy_battery_to_house_today
    name: "Energie von Batterie ins Haus heute 2"
    source: sensor.energy_battery_to_house
    cycle: daily

  daily_energy2:
    unique_id: energy_grid_to_house_today_2
    name: "Energie vom Netz ins Haus heute 3"
    source: sensor.energy_grid_to_house
    cycle: daily

Wahrscheinlich weil dem utility_meter die Eigenschaft state_class im „Eingansgsensor“ fehlt.

sensor:
  - platform: integration
    unique_id: energy_battery_to_house
    name: "Energie von Batterie ins Haus"
    source: sensor.battery_to_house
    unit_prefix: k
    round: 2
    method: left
    unit_time: h
    device_class: energy
    state_class: total

  - platform: integration
    unique_id: energy_grid_to_house
    name: "Energie vom Netz ins Haus"
    source: sensor.grid_to_house
    unit_prefix: k
    round: 2
    method: left
    unit_time: h
    device_class: energy
    state_class: total

Hallo @Linos und Danke für Deine Antwort.

Leider hat das aber nicht zum gewünschten Erfolg geführt, mich aber dennoch auf eine Spur gebracht.

device_class: energy
state_class: total

sind für das Integral-PlugIn keine gültigen Objekte.

Ich habe aber mal das nicht funktionierende Integral unter die Lupe genommen:


und eines wo funktioniert:

Leider sehe ich da keinen nennenswerten Unterschied.

Was ich jetzt noch anpassen soll ist mir schleierhaft.

Hallo @TheBadPhantom, probier mal bitte ohne
unit_time und sicherheitshalber mit “ “ bei unique_id. Bei mir funktionierte es mit dieser minimal Variante

Wenn das auch nicht klappt, dann könnte man sich noch die source-Entität näher ansehen

Also bis jetzt hat es sich nicht gelöst.
Hier mal der Sensor an sich:

Ich habe da auch schon mal mit “state_class: total_increasing“ gespielt, aber kein Erfolg.

>       \# Calculation of grid to house power
>
>       \# If generation and battery_out are not sufficient for consumption
>
>       \# then the leftover is drawn from the grid.
>
>       - name: "Grid to House"
>
>         default_entity_id: sensor.grid_to_house
>
>         state: >
>
>           {% set consumption = states('sensor.sonnenbatterie_248649_state_consumption_current') | float(0) %}
>
>           {% set grid_in = states('sensor.sonnenbatterie_248649_state_grid_in') | float(0) %}
>
>           {% set battery_out = states('sensor.sonnenbatterie_248649_state_battery_out') | float(0) %}
>
>           {% set generation = states('sensor.production_without_heizstab') | float(0) %}
>
>           {% set totalAvailableWithoutGrid = battery_out + generation %}
>
>           {% if consumption > totalAvailableWithoutGrid %}
>
>             {{ (consumption - totalAvailableWithoutGrid) | int }}
>
>           {% else %}
>
>             {{ 0 }}
>
>           {% endif %}
>
>         device_class: power
>
>         unit_of_measurement: W

Aussehen tut das so:

image

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Wenn ich es richtig interpretiere, dann würde ich sagen deine Rechnung ignoriert reale Grid-Messung?

Falls das nicht gewünscht ist und du den echten Netzbezug willst, dann wäre reduziert mein Vorschlag

- name: "Grid to House"
  default_entity_id: sensor.grid_to_house
  state: >
    {% set consumption = states('sensor.sonnenbatterie_248649_state_consumption_current') | float(0) %}
    {% set battery_out = states('sensor.sonnenbatterie_248649_state_battery_out') | float(0) %}
    {% set generation = states('sensor.production_without_heizstab') | float(0) %}
    {{ max(consumption - (battery_out + generation), 0) | round(0) }}
  device_class: power
  state_class: measurement
  unit_of_measurement: W

Aus der Leistung würde ich wie folgt Energie machen. Annahme der erstellte Sensor(W) heißt dann „sensor.grid_to_house“

sensor:
  - platform: integration
    source: sensor.grid_to_house
    name: Grid to House Energy
    unit_prefix: k
    round: 1
 

Zu letzt dann noch Utiliy_day

utility_meter:
  grid_to_house_energy_daily:
    source: sensor.grid_to_house_energy
    cycle: daily

Wenn es wieder nicht funktioniert… Was steht unter Einstellung → System → Protokoll

Hallo @Linos,

danke für Deine Hilfe.

Letzten Endes war der Fehler, dass ich die UID als Source im Utility Meter verwendet habe.

Benötigt wird aber anscheinend der name als lower case mit spaces ersetzt durch underscores.

Grüße

1 „Gefällt mir“