signalkraft / mypyllant-component

Home Assistant component for the myVAILLANT API, controls Vaillant devices such as aroTHERM heatpumps and ecoTEC boilers
https://signalkraft.com/mypyllant-component/
MIT License
124 stars 19 forks source link

Recovair 260 Support? #123

Open VaillantHassIo opened 6 months ago

VaillantHassIo commented 6 months ago

Did take a look into https://github.com/signalkraft/mypyllant-component/issues/32 and wonder if this enabled generic support for all RecoVairs or if there is anythign special ( logs etc. ) requried to get the RecoVair260 working?

swDomass commented 6 months ago

My Recovair 260/4 is not recognized either

gamer123 commented 6 months ago

I also have a Recovair 360/4 with bus coupler and address 2, but it ist working in my case.. but it is useless, because i only can switch beten normal and reduced mode.. but i cant select the image fan levels. Ideas is using an Co2 Sensor to select the levels . image

swDomass commented 5 months ago

It would be enough for me if I could just switch between normal and reduced ventilation levels. You couldn't do more with the Multimatic integration. But I only have two sensors under the VAR 260/4 and no climate control. 2024-03-14 10_14_53-Einstellungen – Home Assistant

signalkraft commented 5 months ago

@swDomass you need to enable debug logs and ideally also post test data. Instructions are in the documentation, or in the template when you open a new ticket.

Waschbeton commented 5 months ago

I am also missing my recovair 360/e, here is my testdata:

homes:

signalkraft commented 5 months ago

Thanks, that helped! Ventilation entities work differently on VRC700 controllers, it should work better with this pre-release: https://github.com/signalkraft/mypyllant-component/releases/tag/v0.8.3b1

However, I had to guess all the valid options for operationModeVentilation from their naming in similar VRC700 entities. If you see errors about the fan mode, it's likely because of that. In that case, please generate test data again so I can add the correct value.

Setting modes and fan speeds will probably require reverse engineering to find the correct API endpoints for VRC700 controllers. They are almost always different to the other controller types.

Waschbeton commented 5 months ago

thank you very much for your fast reply and the build. the ventialtion device now shows up, but ventilation modes can not be changed.

Logger: homeassistant.components.websocket_api.http.connection Quelle: components/websocket_api/commands.py:239 Integration: Home Assistant WebSocket API (Dokumentation, Probleme) Erstmals aufgetreten: 11:56:20 (8 Vorkommnisse) Zuletzt protokolliert: 11:57:04

[546070737344] 400, message='Bad Request, response was: {"title":"Bad Request","status":400,"detail":"400 BAD_REQUEST \"Failed to read HTTP message\""}', url=URL('https://api.vaillant-group.com/service-connected-control/vrc700/v1/systems/3705f5d1-68bf-4dfc-b156-d5b259bfa753/ventilation/0/operation-mode') Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service response = await hass.services.async_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 2319, in async_call response_data = await coro ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 2356, in _execute_service return await target(service_call) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 905, in entity_service_call single_response = await _handle_entity_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 975, in _handle_entity_call result = await task ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/climate/init.py", line 680, in async_handle_set_fan_mode_service await self.async_set_fan_mode(fan_mode) File "/config/custom_components/mypyllant/ventilation_climate.py", line 154, in async_set_fan_mode await self.coordinator.api.set_ventilation_operation_mode( File "/usr/local/lib/python3.12/site-packages/myPyllant/api.py", line 976, in set_ventilation_operation_mode await self.aiohttp_session.patch( File "/usr/local/lib/python3.12/site-packages/aiohttp/client.py", line 691, in _request await raise_for_status(resp) File "/usr/local/lib/python3.12/site-packages/myPyllant/http_client.py", line 49, in on_raise_for_status raise e File "/usr/local/lib/python3.12/site-packages/myPyllant/http_client.py", line 46, in on_raise_for_status response.raise_for_status() File "/usr/local/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 1060, in raise_for_status raise ClientResponseError( aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request, response was: {"title":"Bad Request","status":400,"detail":"400 BAD_REQUEST \"Failed to read HTTP message\""}', url=URL('https://api.vaillant-group.com/service-connected-control/vrc700/v1/systems/3705f5d1-68bf-4dfc-b156-d5b259bfa753/ventilation/0/operation-mode')

signalkraft commented 5 months ago

Like I suspected, someone needs to reverse engineer the correct API endpoints for VRC700 controllers.

Waschbeton commented 5 months ago

thanks, I'll try my best as soon as possible

Waschbeton commented 4 months ago

flows.zip i finally managed it. i hope it helps

mitm_downloads.zip

PATCH /service-connected-control/vrc700/v1/systems/3705f5d1-68bf-4dfc-b156-d5b259bfa753/ventilation/0/operation-mode HTTP/1.1 accept: application/json ocp-apim-subscription-key: 1e0a2f3511fb4c5bbb1c7f9fedd20b1c x-client-locale: de-DE x-app-identifier: VAILLANT x-app-version: 2.16.1 x-app-build: 21428 authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJKVW1FU3l3VU9Ea1JYMTZpQl9ZelppWnhXeDEzdHNZdml4NHdNMmc0VkQ0In0.eyJleHAiOjE3MTI4NDY0MDAsImlhdCI6MTcxMjg0NjEwMCwiYXV0aF90aW1lIjoxNzEyODQ1OTcwLCJqdGkiOiI3NDI0NzllZC00NTYwLTRhNTktODRhYi1kMGI5OWQwOTMwZjQiLCJpc3MiOiJodHRwczovL2lkZW50aXR5LnZhaWxsYW50LWdyb3VwLmNvbS9hdXRoL3JlYWxtcy92YWlsbGFudC1nZXJtYW55LWIyYyIsInN1YiI6IjU1MmZmMGQ4LTk4MzAtNGI2MC1hOWI5LTQyZDhhNjFmODRhYiIsInR5cCI6IkJlYXJlciIsImF6cCI6Im15dmFpbGxhbnQiLCJzZXNzaW9uX3N0YXRlIjoiMDVkM2E1ODUtZGM0ZC00YWFjLTg2ZWYtYzI1MWZhNzEyYWUyIiwiYWNyIjoiMCIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwczovL2VuZHVzZXJ2YWlsbGFudC5wYWdlLmxpbmsiLCJodHRwczovL3ZnLWlvdC1maXJlYmFzZS53ZWIuYXBwIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWZhdWx0LXJvbGVzLXZhaWxsYW50LWdlcm1hbnktYjJjIiwib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwic2NvcGUiOiJvcGVuaWQgb2ZmbGluZV9hY2Nlc3MgcHJvZmlsZSBlbWFpbCIsInNpZCI6IjA1ZDNhNTg1LWRjNGQtNGFhYy04NmVmLWMyNTFmYTcxMmFlMiIsInNhbGVzZm9yY2VDb250YWN0SWQiOiIwMDM2OTAwMDAzbjViR1NBQVkiLCJjb3VudHJ5IjoiREUiLCJicmFuZE5hbWUiOiJ2YWlsbGFudCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiQmVybmhhcmQgS2VwcGxlciIsInByZWZlcnJlZF91c2VybmFtZSI6ImJlcm5oYXJkLmtlcHBsZXJAZ21haWwuY29tIiwibG9jYWxlIjoiZGVfREUiLCJnaXZlbl9uYW1lIjoiQmVybmhhcmQiLCJmYW1pbHlfbmFtZSI6IktlcHBsZXIiLCJzYWxlc2ZvcmNlQWNjb3VudElkIjoiMDAxNjkwMDAwM0ZuYXdjQUFCIiwiZW1haWwiOiJiZXJuaGFyZC5rZXBwbGVyQGdtYWlsLmNvbSIsInNhbGVzZm9yY2VCcmFuZERldGFpbENvbnRhY3RJZCI6ImEyWTY5MDAwMDBGUW5BSUVBMSJ9.byG9Fum_rJddTqWO1N1Wfz-Tesd5btfspipdc59_962semPZuX6IBg20F9JE8z4tbu6dw65XmVL9nvgzfN4OX6cGpw03zhE9zHnVIT-J_JoxX0cXp5fpK4sZL6iHVNjtaJEFMRKYjRroBtbAiNG7gRlUPCAoK6oH8gvIPHX1Ai0lLom29p0y0mQfYfRVt4RPmMjEKmJw4oOhunCs3Jfy7cAJJAWlFwJRAaItv9sZJVVSQGjTHabczkYJpGK3Xjx3qFMgTpc5GFG1Kk5DokfQYVEti93CRF4t9TWnn4zPLtHlmOXTaJsyKXoqrGVeSd4EjlqugYBANK3RtJNgm7ltsQ x-b3-traceid: 09d8b080bc38c860 x-b3-spanid: 09d8b080bc38c860 x-idm-identifier: KEYCLOAK X-INSTANA-ANDROID: 14a29e44-35a4-4168-93ee-9703b02e369c Content-Type: application/json Content-Length: 24 Host: api.vaillant-group.com Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/4.9.2

{"operationMode":"AUTO"}

HTTP/1.1 202 Accepted Content-Length: 53 Content-Type: application/json Server-Timing: intid;desc=c9ee28e2ceca2121 Strict-Transport-Security: max-age=31536000; includeSubDomains Set-Cookie: route=1712846303.398.21872.274700|e6cc3949b436847b1e6a533340bcc5f3; Expires=Sat, 13-Apr-24 14:38:22 GMT; Max-Age=172800; Path=/; Secure; HttpOnly Request-Context: appId=cid-v1:8a4f690a-c4b6-4cc6-96f6-9a7b0dbe65f2 Date: Thu, 11 Apr 2024 14:38:21 GMT Set-Cookie: TS01e49a1a=01bc99c52dd1b3dfd05100509a900840309be0af1d18a52ed546ab9af303e67d076490ffc406914e8c2d72a2062c881fb851753831; Path=/; Domain=.api.vaillant-group.com

{"messageEid":"be5312e0-db6b-4e5f-a8d2-976edeea8bea"}