New Integration: Grünbeck softliQ

Hey, unfortunately i’m facing the same problem with the old js-controller. Could you please tell me how you managed to install the newer version?
Thank you in advance and best regards

“The changelog says It requires js-controller 3.3.x. but the iobroker from Max’s Repo is 3.2.16
It was an interesting journey SSHing into the docker container to update this. First time for me.”

I cannot remember how I did it. I have HASS OS on a Raspberry. I will post my notes if I find them. I remember following multiple outdated or wrong guides on how to do this. The first part was to get root access over SSH to HASS OS then some docker commands then SSH to docker container that has ioBroker on it.

Thanks a lot for your answer.

Luckily i found the answer and if someone stuck in quite the same problem - this could be the solution:

  1. root login into the ioBroker container console
  2. command: sudo -u iobroker -H npm install iobroker.js-controller
  3. command: npm audit fix
  4. like console tell you, you need to know what you’re doing command: npm audit fix –force
  5. command: npm install -g npm

best regards

You do not need any magic to update the js-controller or any component inside the ioBroker container, simply use the eval option in the Configuration tab to do that (see the Documentation tab), e.g.:

eval: "iobroker update && iobroker upgrade self"

Hi all,
there is a new function in Home Assistant: Water usage dashboard.
Did already anyone have success in integrating water usage data from the Gruenbeck softliQ?

Thanks a lot



works like a charme, here my config:

    - unique_id: grunbeck_gesamtwassermenge
      name: "Grünbeck Gesamtwassermenge"
      unit_of_measurement: "L"
      state_class: total_increasing
      device_class: water
      state: >-
          {% set wwh = states("sensor.grunbeck_weichwasser_harte")|float(0) %}
          {% set rwh = states("sensor.grunbeck_rohwasser_harte")|float(0) %}
          {% set wwm = states("sensor.grunbeck_wasserverbrauch")|float(0) %}
          {% if (is_number(wwh) and (wwh > 1)) and (is_number(rwh) and (rwh > 1)) and (is_number(wwm) and (wwm > 1)) %}
            {% set gwn = ((wwh*wwm)/(rwh-wwh)+wwm)|round(4) |float(unavailable) %}
          {% endif %}
          {% if is_number(gwn) %}
            {{ gwn }}
          {% endif %}

The three important parts are:

device_class: water
state_class: total_increasing
unit_of_measurement: "L"

For me, the main “problem” was that I used for “unit_of_measurement” a lowercase “l”, after changing this to uppercase “L” and fixed a problem within “Dev Tools - Statistics” I was able to use it.



Thanks @derjoerg. I adapted my original post so water sensors are also supported by the energy dashboard.

1 Like

could you please help me out here - where do i enter this? I am stuck with the outdated iobroker version as well and do not know where this “configuration tab” or the “documentation tab” might be.

thanks :slight_smile:

Oh man… I just figured out after 9 hours that there’s a configuration TAB within HOME ASSISTANT of the iobroker addon where I could put that eval line…

I was searching like crazy within iobroker the whole time :frowning:

unfortunately saving the copied script to “scripts” returs the following error:

Message malformed: extra keys not allowed @ data[‘mqtt_gruenbeck’]

Has anyone an idea whats wrong with my syntax?


Hey Joerg,

I used the writeup from @enjoysimpson and @gomble and got also the problem that the error message was not shown. In HA it seemed there was no value. I also have a SD18.
In ioBroker I found out that the error message is just a json object. So if you add a value template to the gruenbeck_fehler entity in the yaml, HA is able to read and show it correctly. (The 0 is the first object → the last error which was generated)

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

@enjoysimpson @gomble loved to be able to create the grünbeck integration workaround based on your work. Thx a lot!

Hopefully I (or somebody else) will find the time to build this as integration for HA in the future.


Great, that you like it. Thanks for the tip. Never had an error, so I could not test it. I added value_template: '{{ value_json.0.message }}' in my post.

cool that you created „gesamtwassermenge“ @derjoerg just a question out of interest: where did you find the formula?

Look up a post from @enjoysimpson from April, 22nd

Ah sorry, I thought @enjoysimpson had added this after you posted yours!
So question back to you @enjoysimpson where did you get the calculation from?

Hi all,
I would like to integrate my Grünbeck into HA.
Before I set the integration up with ioBroker, I wanted to check if anyone is close to have the integration running natively on HA? Or is the way via ioBroker still the only way to go?

(Worried a bit, that iobroker may consume too much additional system resources)

Thanks a lot



Go to settings → Addons → ioBroker → Configuration and enter it without quotes as “iobroker update && iobroker upgrade self”

@enjoysimpson @derjoerg Thanks a lot for providing the guide. Small suggestion is to add value_template: '{{value | round(1) }}' to grunbeck_restkapazitaet_m3 as this was a very long number with lots of 0s for me.

1 Like

@stefansiegl thank you for your tip with the value template. I have seen these zeros before, but never looked into it. I added your suggestion to my original post. Since HA 2023.3 we also have the possibility to set the displayed sensor precision

@ironbiff I have seen a discussion on how to calculate the total amount of water somewhere. I transfered that into this yaml code formula (and hope it is correct :wink: )

Hallo, vielleicht kann mir jemand helfen :blush:
Ich möchte den Verbrauch von Salz sowie den Wasserwert auf den Aktuellen Wert setzen .
Da ich alles neu eingerichtet habe wird der Wasserwert von 0 aus gezählt anstatt von den Moment verbrauchten . Sprich in der Grünebeck App wird mir 289L angezeigt und bei HA 11l insgesamt.