# =====================================================================
# TEMPLATE-SENSOREN - ENERGIE
# =====================================================================

- sensor:
    - name: "3D Drucker Energie gefiltert"
      unique_id: 3d_drucker_energy_filtered
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total
      icon: mdi:flash
      state: >
        {% set raw = states('sensor.3d_drucker_energy') | float(0) %}
        {% if is_state('binary_sensor.3d_druck_lauft', 'on') %}
          {{ raw }}
        {% else %}
          {{ this.state | float(0) }}
        {% endif %}

    - name: "3D Drucker: Letzter Verbrauch (Wh)"
      unique_id: 3d_drucker_last_energy_wh
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: measurement
      icon: mdi:lightning-bolt
      state: >
        {{ (states('sensor.3d_drucker_energy_druck') | float(0) * 1000) | round(2) }}

    - name: "3D Drucker: Letzte Stromkosten (EUR)"
      unique_id: 3d_drucker_last_energy_cost
      unit_of_measurement: "EUR"
      icon: mdi:cash
      state_class: measurement
      state: >
        {% set verbrauch = states('sensor.3d_drucker_energy_druck') | float(0) %}
        {% set preis = states('input_number.aktueller_strompreis') | float(0) %}
        {{ (verbrauch * preis) | round(2) }}

    - name: "Solarbank 3 E2700 Pro PV Ost Energie"
      unique_id: solarbank_pv_ost_energy
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing
      availability: >
        {% set pv1 = states('sensor.system_home_tagliche_pv_1') %}
        {% set pv2 = states('sensor.system_home_tagliche_pv_2') %}
        {{ pv1 not in ['unknown','unavailable',''] and pv2 not in ['unknown','unavailable',''] }}
      state: >
        {% set new = states('sensor.system_home_tagliche_pv_1')|float(0)
                   + states('sensor.system_home_tagliche_pv_2')|float(0) %}
        {% set old = this.state|float(0) %}
        {% set last = as_datetime(this.last_changed) if this.last_changed else now() %}
        {% set reset = (last.date() != now().date()) %}
        {{ new if reset else [new, old]|max }}

    - name: "Solarbank 3 E2700 Pro PV West Energie"
      unique_id: solarbank_pv_west_energy
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing
      availability: >
        {% set pv3 = states('sensor.system_home_tagliche_pv_3') %}
        {% set pv4 = states('sensor.system_home_tagliche_pv_4') %}
        {{ pv3 not in ['unknown','unavailable',''] and pv4 not in ['unknown','unavailable',''] }}
      state: >
        {% set new = states('sensor.system_home_tagliche_pv_3')|float(0)
                   + states('sensor.system_home_tagliche_pv_4')|float(0) %}
        {% set old = this.state|float(0) %}
        {% set last = as_datetime(this.last_changed) if this.last_changed else now() %}
        {% set reset = (last.date() != now().date()) %}
        {{ new if reset else [new, old]|max }}
