Wasser- & Gasverbrauch in Home Assistant

,

Ich wollte meinem Home Assistant noch das Messen des Wasser- und Gasverbrauches beibringen. Wie immer, wenn man es fertig hat, ist es im Kern einfach; aber der Weg war etwas beschwerlich. Daher hier mein funktionierendes Setup.

Komponenten:

Die Abnehmer kann man auch preiswerter machen, aber insbesondere der für die Wasseruhr sitzt mechanisch stabil auf drauf. Kein Wackeln, kein Kleben, … einfach draufstecken und er rastet auf diesen Zapfen ein.

 

IMG 1534

IMG 1698

Der Gas-Abnehmer hat nur zwei Kontakte, bei dem Wasserabnehmer braucht man Weiß und Braun, der Rest kann weg.

 

IMG 1525

IMG 1691Beim Tasmota-Shelly müssen die Eingänge auf Switch_n stehen. Die beiden Abnehmer habe ich an Eingang 1 und 4 dran:

Bildschirmfoto 2023 11 04 um 07 09 49Bildschirmfoto 2023 11 04 um 07 10 02

Die Konfiguration als Switch erzeugt zwei Signale: Schalter an und Schalter aus, jedesmal wenn der Reed-Kontakt ein Signal sendet. Das zweite Signal kann man im HA einfach ignorieren. Die Konfiguration als Button wäre eigentlich korrekter, aber Buttons in HA sind umständlich, da die nicht als Entität in den Automatisierungen auftauchen; warum auch immer.

IMG 1696

Beim Tasmota-Shelly läuft die Datenübertragung per MQTT an den Home Assistant:

Bildschirmfoto 2023 11 04 um 22 29 44Jetzt braucht es noch etwas Konfiguration im Home Assistant. Für Gas und Wasser wird je eine Automatisierung benötigt: wenn der Schalter sich öffnet, muss ein Zähler erhöht werden; wir zählen die Impulse.

Bildschirmfoto 2023 11 04 um 20 47 41

Die Zähler für Gas und Wasser legt man als Helfer an:Bildschirmfoto 2023 11 04 um 20 48 54

In der Automations.yaml sieht das dann so aus:

- id: ‚1698295769848‘

  alias: WasserUhrEvent

  description: WasserUhrEvent

  trigger:

  - platform: state

    entity_id:

    - binary_sensor.energo_switch1

    from: ‚off‘

    to: ‚on‘

  condition: []

  action:

  - service: counter.increment

    data: {}

    target:

      entity_id: counter.wasserzahler

  mode: single

- id: ‚1698295894472‘

  alias: GasEvent

  description: GasEvent

  trigger:

  - platform: state

    entity_id:

    - binary_sensor.energo_switch4

    from: ‚off‘

    to: ‚on‘

  condition: []

  action:

  - service: counter.increment

    data: {}

    target:

      entity_id: counter.gaszaehler

  mode: single

Jetzt müssen wir uns noch Sensoren basteln, damit diese in Diagrammen und im Energie-Dashboard verwendet können. Die werden in der Configuration.yaml erzeugt:

template:

  - sensor:

    - name: „Sensor_Gas_m3“

        unit_of_measurement: „m³“

        device_class: gas

        state_class: total_increasing

        state: >

          {% set gas = states('counter.gaszaehler') | int %}

          {{ ((gas) * 0.01) | round(1, default=0) }}

  - sensor:

    - name: „Sensor_Gas_kwh“

        unit_of_measurement: „kWh“

        device_class: energy

        state_class: total_increasing

        state: >

          {% set kwh = states('sensor.Sensor_Gas_m3') | float %}

          {{ ((kwh) * 10.48) | round(1, default=0) }}

- sensor:

    - name: „sensor_Wasser_L“

        unit_of_measurement: „L“

        device_class: water

        state_class: total_increasing

        state: >

          {% set water = states('counter.wasserzahler') | int %}

          {{ ((water) * 1) | round(1, default=0) }}


Die Umrechnungswerte sind bei mir pro Impuls 0,01 qm Gas und pro Liter Wasser. Der Brennwert des Gases findet sich auf der letzten Gas-Rechnung und unterscheidet sich von Netzbetreiber zu Netzbetreiber. Bei uns sind es 10,48.

Danach lassen sich dann Diagramme definieren:

Bildschirmfoto 2023 11 04 um 20 54 08

Und auch im Energiedashboard aufnehmen:

Bildschirmfoto 2023 11 04 um 20 54 57