Grünbeck Integration über IO-Broker

Anleitung um die Grünbeck SD21 in Home-Assistant zu integrieren.

Hierfür wird zwingend eine funktionierende IO-Broker Installation benötigt (das IO-Broker-AddOn in HA hat bei mir nicht funktioniert) weiterhin wird in Home-Assistant der „File-Editor“ sowie der der „Mosquitto-Broker“ in dem ein Benutzer mit Passwort unter „Instanzen“ → „MQTT“ → „Konfigurieren“ → „MQTT neu Konfigurieren“ angelegt wurde sowie dass bereits die SD21 mit der Grünbeck-Cloud verbunden und mit der App ausgelesen werden kann vorausgesetzt.

Zuallererst wird dieser Code in die „configuration.yaml“ am Ende der Datei eingetragen, sämtliche ID´s mit BSxxxxxx müssen gegen die eigene ID geändert werden ansonsten findet keine Synchronisation statt.

# Grünbeck water softener via iOBroker and MQTT
# EDIT 8th June 2022: changed to MQTT platform
# EDIT 10th November 2022: made compatible with water in energy dashboard
mqtt:

# Sensors
  sensor:

    - name: Grünbeck Weichwassermenge
      unique_id: gruenbeck_weichwassermenge
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/mcountwater1"
      unit_of_measurement: "L"
      device_class: water
      state_class: total_increasing

    - name: Grünbeck Regenerations Zähler
      unique_id: gruenbeck_regenerations_zaehler
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/mcountreg"
      state_class: total_increasing

    - name: Grünbeck aktueller Durchfluss
      unique_id: gruenbeck_aktueller_durchfluss
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/mflow1"
      unit_of_measurement: "m³/h"
      state_class: measurement

    - name: Grünbeck Restkapazität m³
      unique_id: gruenbeck_restkapazitaet_m3
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/mrescapa1"
      value_template: '{{value | round(1) }}'
      unit_of_measurement: "m³"

    - name: Grünbeck Restkapazität %
      unique_id: gruenbeck_restkapazitaet_percent
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/mresidcap1"
      unit_of_measurement: "%"

    - name: Grünbeck Salz Reichweite
      unique_id: gruenbeck_salz_reichweite
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/msaltrange"
      unit_of_measurement: "Tage"

    - name: Grünbeck Salz Verbrauch
      unique_id: gruenbeck_salz_verbrauch
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/msaltusage"
      value_template: '{{ value|round(4)|float(0) }}'
      unit_of_measurement: "kg"
      state_class: total_increasing

    - name: Grünbeck nächste Regeneration
      unique_id: gruenbeck_naechste_regeneration
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/nextRegeneration"
      value_template: '{{ as_timestamp(value)|timestamp_local(default) }}'
      device_class: timestamp

    - name: Grünbeck Rohwasser Härte
      unique_id: gruenbeck_rohwasser_haerte
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/rawWater"
      unit_of_measurement: "°dH"

    - name: Grünbeck Weichwasser Härte
      unique_id: gruenbeck_weichwasser_haerte
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/softWater"
      unit_of_measurement: "°dH"

    - name: Grünbeck Modus
      unique_id: gruenbeck_modus
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/mode"
      value_template: >-
          {% if value == '1' %}
              {% set modus = 'Eco' %}
          {% endif %}
          {% if value == '2' %}
              {% set modus = 'Comfort' %}
          {% endif %}
          {% if value == '3' %}
              {% set modus = 'Power' %}
          {% endif %}
          {{ modus }}


    - name: Grünbeck Wartung in
      unique_id: gruenbeck_wartung_in
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/Stream/mmaint"
      unit_of_measurement: "Tagen"

    - name: Grünbeck Fehler
      unique_id: gruenbeck_fehler
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/errors"
      value_template: '{{ value_json.0.message }}'

# Binary Sensor
  binary_sensor:
    - name: Grünbeck Anlagen Status
      unique_id: gruenbeck_anlagen_status
      payload_on: 'true'
      payload_off: 'false'
      state_topic: "gruenbeck/0/softliQ/D/BS50053814/hasError"
      device_class: problem

Im IO-Broker unter Adapter muss der „MQTT-Client“ installiert werden NICHT DER BROKER!!! Unter Instanzen wird der MQTT-Client über den „Schraubenschlüssel“ konfiguriert, hier wird die IP-Adresse des MQTT-Brokers unter Home-Assistant zb. 192.168.178.103 sowie der angelegte Benutzer mit Passwort eingetragen.

Im IO-Broker unter „Objekte“ → „gruenbeck“ → „0“ → „softliQ“ → „D/BSxxxxxxxx“ (WICHTIG!!!) → „Stream“ folgende Registerpunkte mittels dem „Zahnrad“ das Häkchen unter „MQTT-Client“ „aktiviert“ setzen sowie dort unter „publish“ ein Häkchen bei „aktiviert“ + „retain“ setzen → mit „Speichern & Schließen“ verlassen

Unter D/BSxxxxxxxx

errors haserror mode nextRegeneration rawWater softWater

Unter Stream:

mcountreg mcountwater1 mflow1 mmaint mrescapa1 mresidcap1 msaltrange msaltusage

In der Grünbeck-Instanz die Zugangsdaten eintragen die Ihr auch für eure My-Grünbeck-App verwendet unter „SDXX-Benutzer“ + „SDXX Passwort“ den Intervall für die Synchronisierung kann bei 360 Sekunden belassen werden.

Im Home-Assistant unter „Einstellungen“ → „Geräte & Dienste“ → „Helfer“ werden nun 8 „Verbrauchszähler“ angelegt.

Für Weichwasser ist der Eingangssensor „sensor.grunbeck_weichwassermenge“ zu verwenden

grunbeck_weichwassermenge_tag (Reset Zyklus: täglich) Genauigkeit Standard

grunbeck_weichwassermenge_woche (Reset Zyklus: wöchentlich ) Genauigkeit Standard

grunbeck_weichwassermenge_monat (Reset Zyklus: monatlich) Genauigkeit Standard

grunbeck_weichwassermenge_jahr (Reset Zyklus: jährlich) Genauigkeit Standard

Für den Salzverbrauch ist der Eingangssensor „sensor.grunbeck_salz_verbrauch“ zu verwenden

grunbeck_salz_verbrauch_tag (Reset Zyklus: täglich ) Genauigkeit x,xxx

grunbeck_salz_verbrauch_woche (Reset Zyklus: wöchentlich ) Genauigkeit x,xxx

grunbeck_salz_verbrauch_monat (Reset Zyklus: monatlich ) Genauigkeit x,x

grunbeck_salz_verbrauch_jahr (Reset Zyklus: jährlich ) Genauigkeit x,x

In Home-Assistand den „File editor“ öffnen → links oben auf den Ordner klicken, im Ordner „www“ → „picture“ den Ordner „Gruenbeck.png“ erstellen und das Bild „Grünbeck.jpeg dort hinein laden

Im gewünschten Dashboard eine „neue Karte“ hinzufügen, ganz nach unten scrollen und auf „Manuell“ klicken dort die erste Zeile löschen und den folgenden Code einfügen und speichern

type: picture-elements
theme: Google Light Theme
elements:
  - type: conditional
    conditions:
      - entity: binary_sensor.grunbeck_anlagen_status
        state: 'off'
    elements:
      - type: state-label
        entity: binary_sensor.grunbeck_anlagen_status
        prefix: 'Anlagenstatus: '
        style:
          top: 3%
          left: 80%
          color: green
  - type: conditional
    conditions:
      - entity: binary_sensor.grunbeck_anlagen_status
        state: 'on'
    elements:
      - type: state-label
        entity: binary_sensor.grunbeck_anlagen_status
        prefix: 'Anlagenstatus: '
        style:
          top: 2%
          left: 80%
          color: red
  - type: conditional
    conditions:
      - entity: binary_sensor.grunbeck_anlagen_status
        state: 'on'
    elements:
      - type: state-label
        entity: sensor.grunbeck_fehler
        style:
          top: 5%
          left: 80%
          color: red
  - type: state-label
    entity: sensor.grunbeck_rohwasser_harte
    style:
      top: 9%
      left: 13%
      color: red
  - type: state-label
    entity: sensor.grunbeck_weichwasser_harte
    style:
      top: 9%
      left: 73%
      color: red
  - type: state-label
    entity: sensor.grunbeck_modus
    style:
      top: 22.5%
      left: 38%
      color: red
    prefix: 'Modus: '
  - type: state-label
    entity: sensor.grunbeck_weichwassermenge_tag
    style:
      top: 23.5%
      left: 78%
      color: blue
    prefix: 'Heute: '
  - type: state-label
    entity: sensor.grunbeck_weichwassermenge_woche
    style:
      top: 26.5%
      left: 78%
      color: blue
    prefix: 'Woche: '
  - type: state-label
    entity: sensor.grunbeck_weichwassermenge_monat
    style:
      top: 29.5%
      left: 78%
      color: blue
    prefix: 'Monat: '
  - type: state-label
    entity: sensor.grunbeck_weichwassermenge_jahr
    style:
      top: 32.5%
      left: 78%
      color: blue
    prefix: 'Jahr: '
  - type: state-label
    entity: sensor.grunbeck_restkapazitat_m3
    style:
      top: 43.5%
      left: 70%
      color: blue
  - type: state-label
    entity: sensor.grunbeck_restkapazitat
    style:
      top: 43.5%
      left: 85%
      color: blue
  - type: state-label
    entity: sensor.grunbeck_nachste_regeneration
    style:
      top: 59%
      left: 78%
      color: red
  - type: state-label
    entity: sensor.grunbeck_salz_verbrauch_tag
    style:
      top: 72%
      left: 78%
      color: blue
    prefix: 'Heute: '
  - type: state-label
    entity: sensor.grunbeck_salz_verbrauch_woche
    style:
      top: 75%
      left: 78%
      color: blue
    prefix: 'Woche: '
  - type: state-label
    entity: sensor.grunbeck_salz_verbrauch_monat
    style:
      top: 78%
      left: 78%
      color: blue
    prefix: 'Monat: '
  - type: state-label
    entity: sensor.grunbeck_salz_verbrauch_jahr
    style:
      top: 81%
      color: blue
      left: 78%
    prefix: 'Jahr: '
  - type: state-label
    entity: sensor.grunbeck_wartung_in
    style:
      top: 98%
      left: 20%
      color: red
    prefix: 'Wartung in: '
  - type: state-label
    entity: sensor.grunbeck_salz_reichweite
    style:
      top: 92.2%
      left: 78%
      color: blue
image: /local/picture/Gruenbeck.png/Grünbeck.jpeg

Alle fehlenden Werte/Einheiten werden bei der nächsten Synchronisation hinzugefügt (kann manchmal einige Zeit dauern).
Um die Werte Abzugleichen mit der My-Grünbeck-App gibt es eine Kalibrierungsfunktion, diese ist zu finden unter „Entwicklerwerkzeuge“ → „Dienste“ , im Feld „Dienste“ das Wort „Kalibrieren“ eingeben → „Entität“ anklicken → nun erscheinen alle 8 erstellten Verbrauchszähler, nun auf zb „grunbeck_salz_verbrauch_jahr“ klicken, nun den Wert aus der App eintragen und auf „Dienst ausführen“ klicken,

Diese Anleitung habe ich zusammengestellt um andern die Integration zu erleichtern, vielen Dank geht an meine genutzten Quellen auf Community.home-assistant.io an die User „gomble“, „Genießt Simpson“, „chchrlam“, „derjoerg“ sowie „Loony1“

:crayon:by HeikoBauer: Von Integrationen in Anleitungen/Projekte verschoben.

1 „Gefällt mir“

super nice aufgeschrieben, ich muss es nur noch umsetzen bei mir, kannst du mir bitte mal zeigen wie das ganze auf HA aussieht ?

Wollt mich gegen mittag dann mal hinsetzen und machen.

ich habe noch ibroker über eine andere virtuellen maschine aktiv wo Grünbeck drauf aktiviert ist.

Hi,

Im Moment bin ich sehr eingespannt aber nach dieser Anleitung funktioniert es tadellos.

So sieht es bei mir aus :

Viele Grüße Mirco

Respekt.
Super und danke Mirco, ich werde mich auch daran machen und berichten.
VG Sören

Sehr gerne,

Mich würde es interessieren ob ihr es auch so einfach nachbauen könnt mit dieser Anleitung, bei mir läuft das absolut ohne Probleme.
Klar ist es doof das man den Umweg über den IO-BROKER nehmen muss aber so funktioniert es zumindest.

1 „Gefällt mir“

Es gab ein Riesen Update von grünbeck hat sich was geändert. ? @TiGeRLooP @66krieger

Ich muss sagen es ist mir gar nicht aufgefallen.
Die Integration läuft wie am ersten Tag, denn es werden ja nur die Felddaten ausgelesen und in eine Maske wieder eingesetzt.

Vielen Dank für die klasse Anleitung trotz dem “Umweg” über IO-Broker. Hat auch bei mit fast tadellos geklappt. Das einzige was leider nicht korrekt angezeigt wird ist die Salzreichweite. Steht bei mir immer auf 999 Tagen. Liegt das an meinem Gerät (softliQ SD18) da dieser Sensor nicht vorhanden ist? Im IO-Broker wird genau die Zahl 999 auch angezeigt und in meiner Grünbeck App gibt es diese Status Anzeige nicht.Nur Salzverbrauch in kg.

Gibt doch schon eine Lösung ohne IO-Broker: GitHub - p0l0/hagruenbeck_cloud: Home Assistant integration for Grünbeck Cloud based Water softeners

Grüß Dich :wave: DocSpider,

Freut mich sehr wenn es Dir geholfen hat das soweit umzusetzen.

Bei mir zeigt es eigentlich immer 99 an bis die SD21 runter zählt falks Salz fehlen sollte.

Das System läuft seit der Inbetriebnahme über den IO-Broker absolut ohne Probleme, das einzigste was mir aufgefallen ist sobald ein Stromausfall war, muss ich den IO-Broker auf meinem Server erst wieder starten, dann dauert es eine kurze Zeit bis alle Daten wieder aktualisiert wurden.

Vielen Dank für den Hinweis. Habe ich mir angeschaut und bin jetzt am “basteln” wie es dann genauso ausehen kannwie hier beschrieben. Habe leider auch teilweise Probleme über IO-Broker bei der Anzeige (Weichwasserverbrauch nicht verfügbar) nach einem Stromausfall.

Wie gesagt, es dauert seine Zeit bis die Daten alle wieder vollständig geladen sind, am nächsten Tag sind die definitiv da…

Hallo Mirco,
Danke erst mal für die Anleitung, an einer Stelle habe ich einen Hänger:

Läuft der IO-Broker auf einer anderen Hardware als Home Assistant? Ich vermute ja, das wäre noch ein guter Hinweis in deiner Anleitung
Grüße
Thomas

Sorry Der späten Antwort,

Ja bei mir läuft der Mqtt-Broker auf einer 2. Hardware da es zu diesem Zeitpunkt für mich nicht anders ging, dies spielt jedoch keine Rolle ob HA und IOB auf einer oder auf mehrere Hardware läuft, ich kann für meinen Teil sagen das ich den Broker unter HA nie richtig konfigurieren konnte damit er sich sendet - empfangen ging immer.

Kein Problem, danke dir!
Hast du im IO Broker vor dem Schritt "Im IO-Broker unter „Objekte“ → „gruenbeck“ → „0“ → „softliQ“ → „D/BSxxxxxxxx “ (WICHTIG!!!) → „Stream“ folgende Registerpunkte mittels dem „Zahnrad“ den verfügbaren Gruenbeck Adapter installiert? Denn ich sehe kein Objekt “Gruenbeck” vor diesem hier beschrieben nächsten Schritt
Viele Grüße Thomas

Ich verstehe leder nicht genau wie ich Dir helfen kann, habe deshalb dazu ein paar Screenshots gemacht.
Den Grünbeck Adapter muss erstmal installiert und eingerichtet sein mit den Zugangsdaten wie man auch mit der Grünbeck App auf die Weichwasseranlage zugreifen kann, erst wenn der Zugriff steht werden die ganzen Datenpunkte und Werte angezeigt und das kann teilweise etwas dauern.