New Integration: Grünbeck softliQ

Installation done and it’s working. Great Work! :+1:
SD21

Thank you so much for this integration works great with SC21 and was a smooth installation!

Thank you, really nice!

Thank you very much!
I have it working with my SD21, but how often does it refresh the flow rate? I tried it during showering, but nothing happend. In my history I have some points from yesterday evending. I will see and check.
For first version it is really nice!

Best,
Stefan

It’s working so well! Thank you very much!

The flow rate is being pushed automatically via WebSocket connection, every 3-5 seconds there is new data.

I realized, that there is some delay between opening a tap and getting an update of the current flow rate.

I think, it’s because the data is sent from the Water Softener to the cloud, processed in some way and then sent to the open WebSocket connection.

This is the flow rate I got yesterday after having the dishwasher running.

This is what it’s to be expected if some manufacturer manages the data. It fulfils the expectations of the manufacturer and of some users. It makes the customer more dependant of the manufacturer and I’m afraid that this is it’s purpose. It’s not intended to be helpful to the customer. It is intended as a marketing tool. The manufacturer has services which the customers may want and if they want to keep it, they may need to pay for at a later time. It is more effort for the manufacturer and a customer is not able to manage any data about the product he bought without consent of the manufacturer. After 3 years it may be possible to take money to keep the services available. Something that should be integrated in the product, not an external service somewhere in the internet. The customer should never depend on the reliability of some Grünbeck server. When they excused for the outage of the service, I got angry that this dependency exists.

Of course it is not easy to manage for thousands of devices the data in real time. Without the Grünbeck server as “Flaschenhals”, directly in the local intranet, this would be a different story.

Long story short, I contacted Judo (hint in this thread was nice) and may replace the Grünbeck at a later time. The approach of Grünbeck is just wrong in so many ways. I don’t want to be dependant in this way.

I don’t expect Grünbeck to cooperate in the near future. They removed the web interface and if they wanted, they’d provide a local MQTT interface. They removed the functionality on the local machine which they had and are happy with this. They don’t provide any date for progress on a local interface and tell they are currently not working on it. You may prove me wrong by convincing Grünbeck and then I’ll be happy.

Again, thank you for the wonderful integration in Home Assistant. For the moment it is the best we can get.

2 Likes

while test it was a refresh rate of around 1s.

@p0l0 future feature:

    name: "Gesamtwassermenge berechnet"
    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_weichwassermenge')|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) %}
        {% if is_number(gwn) %}
          {{ gwn }}
        {% endif %}
      {% endif %}

I’m not sure if it make sense to include this calculation in the integration itself. I use exactly the same calculation but perhaps there may be other calculations also available (???). And there is the easy possibility within HA to create a template sensor for this.

As stated, I’m not sure. I just like to keep each system (integration) as clean as possible. So let the integration provide the raw data and use the HA-functionalities to do the rest.

Joerg

Strangely enough, I cannot integrate my Sd21. After entering my access data for the Grünbeck Cloud, no entities are available to me.


Greetings
Moss

Opened the first issue :slight_smile:

Can you please check your logs to see if there are some error messages?

If there are no entries, try to activate debug logging for the integration.

I will check why this error is happening and how to handle it.

The whole time the integration was running for testing this week, I never got an error 500 :thinking:

Is homeassistant currently the only system on your side which is getting data from the Grünbeck cloud?


Logger: homeassistant.loader
Source: loader.py:834
First occurred: 19:06:56 (1 occurrences)
Last logged: 19:06:56

Unexpected exception importing platform custom_components.gruenbeck_cloud.sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 834, in get_platform
    cache[full_name] = self._import_platform(platform_name)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 851, in _import_platform
    return importlib.import_module(f"{self.pkg_path}.{platform_name}")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/config/custom_components/gruenbeck_cloud/sensor.py", line 31, in <module>
    @dataclass(frozen=True, kw_only=True)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 1220, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 993, in _process_class
    raise TypeError('cannot inherit frozen dataclass from a '
TypeError: cannot inherit frozen dataclass from a non-frozen one

Found the error, the option to „ Allow inheriting base component entity descriptions in frozen dataclasses“ was introduced in Version 2024.01.

I will fix it and Release a new Version as soon as possible.

1 Like

Are you implying that Judo produces decalcification devices which have a better connectivity to solutions such as HA?

In #143 SmileyHM wrote that Judo would have done that better, and I had a look at their homepage. They advertise a local web interface and a local API for their devices.

1 Like

OK… but has anyone already first hand experience? I’m asking because once my Gruenbeck blesses time the connectivity to HA is an important criteria in purchase decision making…

Hey @p0l0 ,
for sure I have the ioBroker-solution with the gruenbeck-adapter still running.
I wanted to have some overlapping before switching finally to your solution :slight_smile:

Good point, perhaps there are too much api-calls for the cloud, but nevertheless it is an error which should be catched :wink: