Panasonic Comfort Cloud

Yes, heating is shown in orange on my unit using this same integration.

Hello, I have a question about the AC entities.
Can these also be controlled individually in Homeassistant via automation?
For example: if a condition is met, the respective indoor unit switches off.
Or: if the condition is met, the system starts in auto mode.
Because in this picture I only see one entity for the operating state in which you can switch from off to heating, auto and cooling.

Yes, the AC entity can be controlled by automation. For example, I have my unit turn on in cool mode (AC) when a temperature sensor is above a certain value, and turn off when the temperature sensor is below a certain value.
Take a look at the entities by exploring them in Developer Mode to see what to call them in your automations.

Good day, i cannot login to Comfort cloud trought home assistant. I can login though the app. I have tried re-installing the integration several times.

Logs:
'KeyError: ‘domain’
2024-03-30 12:37:33.837 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:37:34.986 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:38:33.875 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:38:35.538 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:39:33.835 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:39:35.499 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:40:33.878 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:40:35.036 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:41:33.876 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:41:35.041 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:42:35.010 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:42:36.642 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:43:33.886 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:43:35.561 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:44:15.894 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
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 91, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/forwarded.py”, line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/request_context.py”, line 25, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/ban.py”, line 79, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/auth.py”, line 235, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/headers.py”, line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/http.py”, line 68, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/decorators.py”, line 72, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/config/config_entries.py”, line 197, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/data_validator.py”, line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py”, line 111, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 359, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 405, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 502, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 83, in async_step_user
return await self._create_device(user_input[CONF_USERNAME], user_input[CONF_PASSWORD])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 72, in _create_device
return await self._create_entry(username, password)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 44, in _create_entry
if entry.data[KEY_DOMAIN] == PANASONIC_DOMAIN:
~~~~~~~~~~^^^^^^^^^^^^
KeyError: ‘domain’
2024-03-30 12:46:21.582 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
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 91, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/forwarded.py”, line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/request_context.py”, line 25, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/ban.py”, line 79, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/auth.py”, line 235, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/headers.py”, line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/http.py”, line 68, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/decorators.py”, line 72, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/config/config_entries.py”, line 197, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/data_validator.py”, line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py”, line 111, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 359, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 405, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 502, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 83, in async_step_user
return await self._create_device(user_input[CONF_USERNAME], user_input[CONF_PASSWORD])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 72, in _create_device
return await self._create_entry(username, password)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 44, in _create_entry
if entry.data[KEY_DOMAIN] == PANASONIC_DOMAIN:
~~~~~~~~~~^^^^^^^^^^^^
KeyError: ‘domain’
2024-03-30 12:46:33.863 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Error trying to get device 5ef5d7065419df966819b8bddae631d5 state, probably expired token, trying to update it…
2024-03-30 12:46:35.568 DEBUG (MainThread) [custom_components.panasonic_cc.panasonic] Failed to renew token for device 5ef5d7065419df966819b8bddae631d5, giving up for now
2024-03-30 12:46:53.055 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
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 91, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/forwarded.py”, line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/request_context.py”, line 25, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/ban.py”, line 79, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/auth.py”, line 235, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/headers.py”, line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/http.py”, line 68, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/decorators.py”, line 72, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/config/config_entries.py”, line 197, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/http/data_validator.py”, line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py”, line 111, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 359, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 405, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 502, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 83, in async_step_user
return await self._create_device(user_input[CONF_USERNAME], user_input[CONF_PASSWORD])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 72, in _create_device
return await self._create_entry(username, password)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/panasonic_cc/config_flow.py”, line 44, in _create_entry
if entry.data[KEY_DOMAIN] == PANASONIC_DOMAIN:
~~~~~~~~~~^^^^^^^^^^^^
KeyError: ‘domain’ ’

It shows "unknown error’’

yes , same error, it may relate to the latest HA update as before it worked, or just coincidence in my case

Hiya,

I’m trying to use the Simple Thermostat to add Horizontal Swing. But I’m a bit stumped on how to do this. Can an example be provided by someone? I see a bunch of references to swing_lr and set_horizontal_swing_mode but I’m puzzled on how to get it to behave like ‘swing’ in the Simple Thermostat.

Thanks!

Is this still working for everyone ?

Got my new AC installed yesterday, all excited to set this up and get -

“Unexpected error creating device.” when trying to configure the integration…

EDIT

Got it working, that error appears to be username/password incorrect. As I had initially setup the units with a Social login on my Panasonic ID it looks like that isn’t supported.

So setup a new user/panasonic ID , added the units, authd them via the original account and bingo.

Hello,

How to change unit from fahrenheit to celsius?

Thanks?

Hi,
having the same question. Did you get it to work ?

Did you set your units correctly in Settings > System > General?

1 Like

Thank you!

Another problem, the eco preset mode seems to have activated the silent mode on the air conditioner, not the eco mode.

Great integration, but unfortunately it no longer works. I installed it for the first time yesterday and was able to enjoy it until this morning. It looks like Panasonic has changed something about logging in. More info here Failed to set up · Issue #191 · sockless-coding/panasonic_cc · GitHub . I hope this problem will be resolved quickly. This integration is important.

Same issue here…

More info to follow here:

1 Like

+1 for it no longer working

To all contributors, thank you for all the hard work you do! :pray::pray::pray:

1 Like

It been broken for about ~3 days now. However, some of the devs have got PoC working after recent authentication changes from Panasonic’s end.

I am kind of hopeful/wishful, its only a matter of few days, before they can fix it.

2 Likes

Is there a working integration at the moment? Tried to install this one and few of it’s forks but none worked.

  • /config/custom_components/panasonic_cc/pcomfortcloud/urls.py:23: SyntaxWarning: invalid escape sequence ‘%’ guid=re.sub(‘(?i)%2f’, ‘f’, quote_plus(guid))
  • /config/custom_components/panasonic_cc/pcomfortcloud/urls.py:29: SyntaxWarning: invalid escape sequence ‘%’ guid=re.sub(‘(?i)%2f’, ‘f’, quote_plus(guid))

Detected blocking call to open inside the event loop by custom integration ‘panasonic_cc’ at custom_components/panasonic_cc/pcomfortcloud/settings.py, line 30: with open(self._fileName) as json_file: (offender: /config/custom_components/panasonic_cc/pcomfortcloud/settings.py, line 30: with open(self._fileName) as json_file:), please create a bug report at Issues · sockless-coding/panasonic_cc · GitHub Traceback (most recent call last): File “”, line 198, in _run_module_as_main File “”, line 88, in _run_code File “/usr/src/homeassistant/homeassistant/main.py”, line 223, in sys.exit(main()) File “/usr/src/homeassistant/homeassistant/main.py”, line 209, in main exit_code = runner.run(runtime_conf) File "/

I also get an error when logging in, app on mobile works.
Unexpected error creating device

Logger: custom_components.panasonic_cc.config_flow
Quelle: custom_components/panasonic_cc/config_flow.py:60
Integration: Panasonic Comfort Cloud (Dokumentation, Probleme)
Erstmals aufgetreten: 13:26:10 (2 Vorkommnisse)
Zuletzt protokolliert: 19:46:12

Unexpected error creating device

Traceback (most recent call last): File “/config/custom_components/panasonic_cc/config_flow.py”, line 60, in _create_device devices = await self.hass.async_add_executor_job(api.get_devices) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/local/lib/python3.12/concurrent/futures/thread.py”, line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/config/custom_components/panasonic_cc/pcomfortcloud/session.py”, line 207, in get_devices self.login() File “/config/custom_components/panasonic_cc/pcomfortcloud/session.py”, line 106, in login self._create_token() File “/config/custom_components/panasonic_cc/pcomfortcloud/session.py”, line 164, in _create_token raise ResponseError(response.status_code, response.text) custom_components.panasonic_cc.pcomfortcloud.session.ResponseError: Invalid response, status code: 403 - Data: ERROR: The request could not be satisfied

403 ERROR

The request could not be satisfied.


Request blocked. We can’t connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.

 Generated by cloudfront (CloudFront) Request ID: q9Mj4g9AJnG8KrGU6g49rG3TcWwDcfo31LHMyd0QX0DQOzJ-Ni1xAA== 

Same “Unexpected error creating device.” error from me after recent update

As I understand it, the devs has a working release in GitHub now (as of today) - but it is still not available in HACS. Lovely. Such heroes!

Now we are just waiting for it to to land in HACS.