Taktung der Lambda

Das Takten ist für eine Wärmepumpe nicht gut. Es ist ineffizient und auch nicht gut für die Hardware. Den Vergleich mit einem Auto, dass immer nur Kurzstrecke gefahren wird, gefällt mir ganz gut, um das Problem zu beschreiben.

Aber wie oft taktet meine Wärmepumpe denn wirklich? Und für welche Betriebsart?

Die Lambda gibt über ein Modbus Register „hp1_operating_state“ die Betriebsart aus, hieran kann ich erkenne, ob die Wärmepumpe gerade in den Heiz- oder Warmwassermodus gewechselt ist. Und genau diese Übergänge benötigen wir, um die Anzahl der Taktungen in HomeAssistant anzeigen zu können.

Bereits mit dem Anwender-Login, kann ich die Schaltzyklen der Lambda nach Betriebsart auslesen, diese Zahlen müssen wir einmal auslesen und in einen Helper schreibe.

Dann kann jedes Mal, wenn die Lambda heizt, oder WW macht der Helper um 1 erhöht werden und schon haben wir die Anzahl der Taktungen im HomeAssistant. Dazu nutzen wir eine Automatisierung, die das „hp1_operating_state“ Register als state Trigger hat.

Um die täglichen Zyklen noch anzeigen zu können, nehmen wir einen weiteren Helper pro Betriebssart, erhöhen diesen auch und setzten ihn um Mitternacht zurück auf 0.

Wieder mal nicht so kompliziert.
Wie immer ist der Code in meine Git-Repro. https://github.com/GuidoJeuken-6512/HomeAssistant/tree/main

Und hier die beiden Automatisierungen.

Automatisierung

automation:

  ### heat pump cycling counter ############################

  ####### the initial values for the cycling must be taken once from the Lambda heat pump and entered into the sensor.

  – id: ‚1727726999508‘

    alias: increment HP Timings

    description: Taktungen der WP hochzählen

    triggers:

      – entity_id:

          – sensor.eu08l_hp1_operating_state

        to: „1“

        id: Heating

        trigger: state

      – entity_id:

          – sensor.eu08l_hp1_operating_state

        to: „2“

        id: HotWater

        trigger: state

    conditions: []

    action:

    – choose:

      – conditions:

        – condition: trigger

          id:

          – Heating

        sequence:

        – action: counter.increment

          metadata: {}

          data: {}

          target:

            entity_id:

            – counter.eu8l_heat_pump_cycling_diff

            – counter.eu8l_heat_pump_cycling_daily

      – conditions:

        – condition: trigger

          id:

          – HotWater

        sequence:

        – action: counter.increment

          metadata: {}

          data: {}

          target:

            entity_id:

            – counter.eu08l_hot_water_cycling_diff

            – counter.eu08l_hot_water_cycling_daily

    mode: single

  – id: ‚1727727092095‘

    alias: reset counter for daily HP timing

    description: Zähler für daily tacktung WP resetten

    triggers:

      – at: „00:00:00“

        trigger: time

    conditions: []

    action:

    – action: counter.reset

      metadata: {}

      data: {}

      target:

        entity_id:

        – counter.eu8l_heat_pump_cycling_daily

        – counter.eu08l_hot_water_cycling_daily

    mode: single

Und hier die Counter für die täglichen Zyklen, die sind bei mir in der lambda_sensor.yaml.

  eu8l_heat_pump_cycling_daily:
    name: eu08l_heat_pump_cycling_daily
    initial: 0

  eu08l_hot_water_cycling_daily:
    name: eu8l_hot_water_cycling_daily
    initial: 0

Die Sensoren für die Gesamtanzahl der Taktungen sind etwas komplizierter. Damit der Wert auch nach einem Neustart von HomeAssistant erhalten bleibt, benötigen wir je drei Sensoren.
Einen für den initialen Wert, den wir aus der Lambda ausgelesen haben (s. Screenshot),
einen, der hochgezählt wird und einen, der sich aus der Summe der beiden anderen Sensoren bildet.

 ## here the counter for total cycling values. they will also be increased as the daily cycling counter
## you have to take the initial values from the lambda
  eu08l_heat_pump_cycling_start:
    name: eu08l_heat_pump_cycling_start
    initial: 56
  eu08l_hot_water_cycling_start:
    name: eu08l_hot_water_cycling_start
    initial: 113
  eu08l_heat_pump_cycling_diff:
    name: eu08l_heat_pump_cycling_diff
    initial: 0

  eu08l_hot_water_cycling_diff:
    name: eu8l_hot_water_cycling_diff
    initial: 0
# In order to show total cycling values in the dashboard and to persist them in the DB, we have to add the cyceling_start & cyceleing_diff Values 
sensor:
  - platform: template
    sensors:
      eu08l_hot_water_cycling:
        friendly_name: "eu08l_hot_water_cycling"
        value_template: >
          {% set count1 = states('counter.eu08l_hot_water_cycling_start') | int(0) %}
          {% set count2 = states('counter.eu8l_hot_water_cycling_diff') | int(0) %}
          {{ count1 + count2 }}
  - platform: template
    sensors:
      eu08l_heat_pump_cycling:
        friendly_name: "eu08l_heat_pump_cycling"
        value_template: >
          {% set count1 = states('counter.eu08l_heat_pump_cycling_start') | int(0) %}
          {% set count2 = states('counter.eu08l_heat_pump_cycling_diff') | int(0) %}
          {{ count1 + count2 }}

Und so kann es dann im HomeAssistant Dashboard aussehen:

Schreibe einen Kommentar

Datenschutz
Ich, Guido Jeuken (Wohnort: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht mir aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl:
Datenschutz
Länderflagge Deutsch
Ich, Guido Jeuken (Wohnort: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht mir aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: