Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible to set pump speeds? #252

Open
ChrisMisker opened this issue May 20, 2024 · 10 comments
Open

Possible to set pump speeds? #252

ChrisMisker opened this issue May 20, 2024 · 10 comments
Assignees
Labels
enhancement New feature or request todo issue ready to implement

Comments

@ChrisMisker
Copy link

In the installer menu on the heat pump, it's possible to set the pumps speed (I have a Water/Water heat pump, so I can set the speed of the pump towards the heat source; and of course the speed of the pump of the central heating/floor heating).
When it's cooling, I set those to 50%.. it saves me about 150w (out of 200w when having the pumps at 100%), so quite some energy saving, but with the same amount of cooling.

Is it possible to be able to set these with this integration?

@BenPru
Copy link
Owner

BenPru commented May 20, 2024

@ChrisMisker Please set speed to 100 % and take a dump. (See here)
Then set speed to 50 % and take another dump.
Dif the files and look abount a changing sensor or upload both files in this ticket.

@Kars-de-Jong
Copy link
Contributor

The setting for cooling is parameters.ID_Einst_P155_PumpCool_RPM, it's a percentage (Percent2).
Unfortunately setting it through the interface used by this integration seems to be impossible. It is protected by the installer password. I have tried, it didn't work.

@BenPru
Copy link
Owner

BenPru commented May 22, 2024

@Kars-de-Jong Installer password is only in the Luxtronik Frontend. With the Socket Interface everthing can be set without password.
So I think it is possible if we know the correct parameter.

@Kars-de-Jong
Copy link
Contributor

@BenPru I tried, it didn't update...

@ChrisMisker
Copy link
Author

ChrisMisker commented May 31, 2024

Hi @BenPru (@Kars-de-Jong ), for the pump for the brine, it's 1040 ID_Einst_P155_PumpVBO_RPM_C.
The cooling pump is 1038 ID_Einst_P155_PumpCool_RPM.
It's a number (e.g. 50 or 100) value.

And I have just tried setting it through the service luxtronik2.write and it works! It changes. That's great!
I'll try adding it in the YAML now too, see if that works.

@ChrisMisker
Copy link
Author

ChrisMisker commented May 31, 2024

I can't get the YAML part to work... any help? It'd really help me to add these values to my installation.

sensor:
- platform: luxtronik2
  sensors:
    - group: parameters
      id: ID_Einst_P155_PumpVBO_RPM_C
      friendly_name: Luxtronik2 VBO Pump
    - group: parameters
      id: ID_Einst_P155_PumpCool_RPM
      friendly_name: Luxtronik2 Cool pump

@ChrisMisker
Copy link
Author

Hi, I'm trying to set the pump speed through a script (based upon an input_number helper), but I get this error in the log. Am I doing something wrong?

Detected blocking call to sleep inside the event loop by custom integration 'luxtronik2' at custom_components/luxtronik2/lux_helper.py, line 279: time.sleep(WAIT_TIME_WRITE_PARAMETER) (offender: /config/custom_components/luxtronik2/lux_helper.py, line 279: time.sleep(WAIT_TIME_WRITE_PARAMETER)), please create a bug report at https://github.com/BenPru/luxtronik/issues Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in <module> sys.exit(main()) File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 190, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request resp = await request_handler(request) File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle resp = await handler(request) File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 85, in ban_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware response = await handler(request) File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle result = await handler(request, **request.match_info) File "/usr/src/homeassistant/homeassistant/components/websocket_api/http.py", line 54, in get return await WebSocketHandler(request.app[KEY_HASS], request).async_handle() File "/usr/src/homeassistant/homeassistant/components/websocket_api/http.py", line 438, in async_handle async_handle_str(command_msg_data) File "/usr/src/homeassistant/homeassistant/components/websocket_api/connection.py", line 229, in async_handle handler(self.hass, self, schema(msg)) File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 46, in schedule_handler hass.async_create_background_task( File "/usr/src/homeassistant/homeassistant/core.py", line 860, in async_create_background_task task = create_eager_task(target, name=name, loop=self.loop) File "/usr/src/homeassistant/homeassistant/util/async_.py", line 37, in create_eager_task return Task(coro, loop=loop, name=name, eager_start=True) File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 27, in _handle_async_response await func(hass, connection, msg) File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service response = await hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 2741, in async_call response_data = await coro File "/usr/src/homeassistant/homeassistant/core.py", line 2784, in _execute_service return await target(service_call) File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 663, in _service_handler response = await self._async_start_run( File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 621, in _async_start_run script_result = await coro File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 652, in _async_run return await self.script.async_run(script_vars, context) File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1773, in async_run return await asyncio.shield(create_eager_task(run.async_run())) File "/usr/src/homeassistant/homeassistant/util/async_.py", line 37, in create_eager_task return Task(coro, loop=loop, name=name, eager_start=True) File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 464, in async_run await self._async_step(log_exceptions=False) File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 526, in _async_step await getattr(self, handler)() File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step self._hass.async_create_task_internal( File "/usr/src/homeassistant/homeassistant/core.py", line 828, in async_create_task_internal task = create_eager_task(target, name=name, loop=self.loop) File "/usr/src/homeassistant/homeassistant/util/async_.py", line 37, in create_eager_task return Task(coro, loop=loop, name=name, eager_start=True) File "/usr/src/homeassistant/homeassistant/core.py", line 2741, in async_call response_data = await coro File "/usr/src/homeassistant/homeassistant/core.py", line 2784, in _execute_service return await target(service_call) File "/config/custom_components/luxtronik2/__init__.py", line 69, in write_parameter await coordinator.async_write(parameter, value) File "/config/custom_components/luxtronik2/coordinator.py", line 112, in async_write return await self._async_read_or_write(True, parameter, value) File "/config/custom_components/luxtronik2/coordinator.py", line 118, in _async_read_or_write data = self._write(parameter, value) File "/config/custom_components/luxtronik2/coordinator.py", line 155, in _write self.client.write() File "/config/custom_components/luxtronik2/lux_helper.py", line 223, in write self._read_write(write=True) File "/config/custom_components/luxtronik2/lux_helper.py", line 254, in _read_write self._write() File "/config/custom_components/luxtronik2/lux_helper.py", line 279, in _write time.sleep(WAIT_TIME_WRITE_PARAMETER)

This is my script config:

alias: Luxtronik Stel pompen in
sequence:
  - service: luxtronik2.write
    data:
      parameter: ID_Einst_P155_PumpVBO_RPM_C
      value: "{{ states('input_number.helper_brine_pomp') }}"
  - service: luxtronik2.write
    data:
      parameter: ID_Einst_P155_PumpCool_RPM
      value: "{{ states('input_number.helper_koeling_pomp') }}"
description: ""

@Kars-de-Jong
Copy link
Contributor

@ChrisMisker That's a known issue, it should still work.

@ChrisMisker
Copy link
Author

@ChrisMisker That's a known issue, it should still work.

Yeah, thanks, I figured it out: Had to add | INT to the line, then it'll work.

Any ideas on how to get the YAML part working? (see #252 (comment) ) or is that not supported anymore?

@Kars-de-Jong
Copy link
Contributor

No, that's not supported anymore. You need to install the old Luxtronik integration for that.

I would still like to see it supported for "advanced" users, just like with template sensors. You can define them like helpers, but if you need more advanced setttings you still need to use YAML.

@BenPru BenPru self-assigned this Sep 30, 2024
@BenPru BenPru added enhancement New feature or request todo issue ready to implement labels Sep 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request todo issue ready to implement
Projects
None yet
Development

No branches or pull requests

3 participants