Precondition Failed

Checklist

[X] I have verified that the account and device works in the Comfort Cloud App.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

What version of Home Assistant Core?
core-2024.10.4
Describe the issue
Aircon dashboard went unavailable ~30 minutes ago. Reviewed logs, found 'Precondition failed'. Logging into the Panasonic App works without issue and the Aircon can still be controlled via the app, just not HA.

Error/Debug Logs
Logger: custom_components.panasonic_cc.coordinator
Source: custom_components/panasonic_cc/coordinator.py:86
integration: Panasonic Comfort Cloud (documentation, issues)
First occurred: 11:37:36 (56 occurrences)
Last logged: 12:05:05

Error fetching device data from API: (get_status: Expected status code 200, received: 412: { "code":41201, "message":"Precondition Failed" }
Traceback (most recent call last):
  File "/config/custom_components/panasonic_cc/coordinator.py", line 86, in _fetch_device_data
    if await self._api_client.try_update_device(self._device):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 178, in try_update_device
    json_response = await self._get_device_status(device.info)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 169, in _get_device_status
    json_response = await self.execute_get(self._get_device_status_now_url(device_info.guid), "get_status", 200)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicsession.py", line 145, in execute_get
    await check_response(response, function_description, expected_status_code)
  File "/config/custom_components/panasonic_cc/pcomfortcloud/helpers.py", line 32, in check_response
    raise exceptions.ResponseError(
custom_components.panasonic_cc.pcomfortcloud.exceptions.ResponseError: (get_status: Expected status code 200, received: 412: {
  "code":41201,
  "message":"Precondition Failed"
}

mee to today

Same issue here.
Appeared around the same time too.

I wonder if we'll ever be able to manage everything just on local. ...

That would be lovely

I wonder if we'll ever be able to manage everything just on local. ...

There IS a way to manage locally only, but it involves building your own WiFi adapter for the AC unit and replacing the original one. There is a guide somewhere, I'll see if I can find the link again.

Same issue, within the last 90 minutes

I wonder if we'll ever be able to manage everything just on local. ...

There IS a way to manage locally only, but it involves building your own WiFi adapter for the AC unit and replacing the original one. There is a guide somewhere, I'll see if I can find the link again.
UPDATE: Here's the link: https://www.espthings.io/index.php/2023/09/02/esphome-panasonic-climate-interface/

Thank you man!!!

I am down too, Panasonic app ok but the integration failed to connect to the api.
All entities unavailable.
Thanks for anyone to help!!
Cheers!

Mine is also down :(

Facing the same issue :(
Logger: homeassistant.config_entries
Source: config_entries.py:594
First occurred: 10:53:10 AM (2 occurrences)
Last logged: 11:12:16 AM
Error setting up entry for panasonic_cc
Traceback (most recent call last):
File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 64, in start_session
await self._get_groups()
File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 79, in _get_groups
self._groups = await self.execute_get(
^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicsession.py", line 145, in execute_get
await check_response(response, function_description, expected_status_code)
File "/config/custom_components/panasonic_cc/pcomfortcloud/helpers.py", line 32, in check_response
raise exceptions.ResponseError(
custom_components.panasonic_cc.pcomfortcloud.exceptions.ResponseError: (get_groups: Expected status code 200, received: 412: {
"code":41201,
"message":"Precondition Failed"
}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/panasonic_cc/init.py", line 76, in async_setup_entry
await api.start_session()
File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 67, in start_session
await self.reauthenticate()
File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 71, in reauthenticate
await super().reauthenticate()
File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicsession.py", line 68, in reauthenticate
await self._authentication.authenticate(self._username, self._password)
File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicauthentication.py", line 68, in authenticate
await self._retrieve_client_acc()
File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicauthentication.py", line 263, in _retrieve_client_acc
await check_response(response, 'get_acc_client_id', 200)
File "/config/custom_components/panasonic_cc/pcomfortcloud/helpers.py", line 32, in check_response
raise exceptions.ResponseError(
custom_components.panasonic_cc.pcomfortcloud.exceptions.ResponseError: (get_acc_client_id: Expected status code 200, received: 412: {
"code":41201,
"message":"Precondition Failed"
}

Same here. Hoping Panasonic won't Block and it's just temporary issue..

Same here :(

Same issue here as well ...

And here too...

+1

Broken here too. Deleted the integration and tried re-adding, same issue.

Same issue here!

Oh well at lest it's not just me:)

Same issue here!

same over here :(

Please don't all reply telling you have the same problem. I guess it is already clear that everybody has this problem.
Thanks.

Same for me :(

Hello,
Seems we have the same problem...
Same for me since this morning.
Panasonic Comfort Cloud app android working fine. Home assistant get the same error as you all...

Same issue here

Peeps. Please stop replying with 'Same here'!!
Many have notifications turned on but don't want these kind of updates.

Same here. For Homebridge plugin also stop working with same error code.

If anyone from Panasonic is reading this, please stop it. It makes me never want to buy any Panasonic stuff ever again.

I'm also having the same issue here. Happened 8 hours ago
Logger: homeassistant.config_entries
Source: config_entries.py:594
First occurred: 5:26:00 PM (3 occurrences)
Last logged: 5:55:20 PM

Error setting up entry for panasonic_cc
Traceback (most recent call last):
  File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 64, in start_session
    await self._get_groups()
  File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 79, in _get_groups
    self._groups = await self.execute_get(
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicsession.py", line 145, in execute_get
    await check_response(response, function_description, expected_status_code)
  File "/config/custom_components/panasonic_cc/pcomfortcloud/helpers.py", line 32, in check_response
    raise exceptions.ResponseError(
custom_components.panasonic_cc.pcomfortcloud.exceptions.ResponseError: (get_groups: Expected status code 200, received: 412: {
  "code":41201,
  "message":"Precondition Failed"
}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/panasonic_cc/__init__.py", line 76, in async_setup_entry
    await api.start_session()
  File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 67, in start_session
    await self.reauthenticate()
  File "/config/custom_components/panasonic_cc/pcomfortcloud/apiclient.py", line 71, in reauthenticate
    await super().reauthenticate()
  File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicsession.py", line 68, in reauthenticate
    await self._authentication.authenticate(self._username, self._password)
  File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicauthentication.py", line 68, in authenticate
    await self._retrieve_client_acc()
  File "/config/custom_components/panasonic_cc/pcomfortcloud/panasonicauthentication.py", line 263, in _retrieve_client_acc
    await check_response(response, 'get_acc_client_id', 200)
  File "/config/custom_components/panasonic_cc/pcomfortcloud/helpers.py", line 32, in check_response
    raise exceptions.ResponseError(
custom_components.panasonic_cc.pcomfortcloud.exceptions.ResponseError: (get_acc_client_id: Expected status code 200, received: 412: {
  "code":41201,
  "message":"Precondition Failed"
}

I have same issue on Node Red. Panasonic comfort cloud is not accepting login. It tells on response "New version app is published". Something is changed on Panasonic side. This all started during the night.

That's a whole other problem.
Possibly your x-app-version header is not updated.

I wonder if we'll ever be able to manage everything just on local. ...

There IS a way to manage locally only, but it involves building your own WiFi adapter for the AC unit and replacing the original one. There is a guide somewhere, I'll see if I can find the link again.
UPDATE: Here's the link: https://www.espthings.io/index.php/2023/09/02/esphome-panasonic-climate-interface/

Thank you man!!!

This is way too complicated, at least for me. Unfortunately.  I wonder if it would be possible to use ESP as a substitute for the "Panasonic Cloud" and control AC unit that way?

Login still doesn't work here. Just updated to the latest new version, but can't log in. I still have the Unexpected error creating device.

There IS a way to manage locally only, but it involves building your own WiFi adapter for the AC unit and replacing the original one. There is a guide somewhere, I'll see if I can find the link again.
UPDATE: Here's the link: https://www.espthings.io/index.php/2023/09/02/esphome-panasonic-climate-interface/

Thank you man!!!

This is way too complicated, at least for me. Unfortunately. I wonder if it would be possible to use ESP as a substitute for the "Panasonic Cloud" and control AC unit that way?

I'm looking around as well to see what other options are out there as I agree this seems to complicated. I came across this one which is esp and looks simpler
https://github.com/DomiStyle/esphome-panasonic-ac

I'll be digging around to check if I can find what changed @sockless-coding any findings so far?

@nelsongraca it doesn't look like they have changed anything in the client request code/headers this time. Haven't had time to confirm this since I had some trouble with my request snooping setup.
But initial findings points to server side validation of the x-cfc-api-key header, but the generation of that value is handled by the Java_com_panasonic_cn_securitylib_PSecurity_createSecurityKey method located in libsecurity-lib.so...

@nelsongraca it doesn't look like they have changed anything in the client request code/headers this time. Haven't had time to confirm this since I had some trouble with my request snooping setup. But initial findings points to server side validation of the x-cfc-api-key header, but the generation of that value is handled by the Java_com_panasonic_cn_securitylib_PSecurity_createSecurityKey method located in libsecurity-lib.so...

I faced this same issue with the BYD app, as did some others with different car apps. The only solution in that case was to create an add-on which emulated, say, Android and would pass through the values from the integration to the add-on which would run that .so function and return the output back to the integration.

@codyc1515 yeah, I have a few integrations that works that way (Add on + MQTT). But I would prefer not to take that route.
The method isn't super complex, running the lib though a tool like BinaryNinja gives a fairly readable code.

I send an email to Panasonic today (translated from Dutch to English by Google Translate, so sorry for mistakes):

Dear Panasonic,
For a number of years I have been using 3 Panasonic air conditioners to my satisfaction.
I have an implementation in use via Home Assistant.
The plugin for this is https://github.com/sockless-coding/panasonic_cc
However, as a developer/hobbyist, I realize that this implementation is not official, but there are many home automation users who control their air conditioners in this way.
Since November 5 early in the morning, I/we believe that security has been further tightened and this API connection is no longer possible.
Could you undo this?
It would be better if home automation users could communicate with the WiFi modules of the air conditioner itself, without having to use the cloud.
For example, you can turn this on via the Comford Cloud app and accept a number of conditions, after which you can use the local API.
Or, a public API from the Comford Cloud. For now it would be great if you could restore the (not entirely official) API for the many Home Assistant users who want to automate something.
Thanks in advance
On behalf of many home automation enthusiasts,

------

@chamsters
I filled in the contact form on https://www.aircon.panasonic.eu/NL_nl/contact/
If I receive a ticketnumer/response, I will share it

For anyone who want to mail too: I got a file number: 00365019
<EMAIL_ADDRESS>Just put that number in the subject and body somewhere :)

Same issue here, i've just send the mail as well.

I have also send a message to the german Panasonic support.
https://www.aircon.panasonic.eu/DE_de/contact/
Sehr geehrtes Panasonic-Team,
seit einigen Jahren nutze ich mit großer Zufriedenheit eine Klimaanlage von Panasonic. Diese habe ich über Home Assistant eingebunden und verwende dazu ein Plugin, das hier verfügbar ist: https://github.com/sockless-coding/panasonic_cc. Als Entwickler und Hobbyist ist mir bewusst, dass diese Implementierung inoffiziell ist. Dennoch nutzen viele Anwender im Bereich Heimautomatisierung diese Möglichkeit, um ihre Klimaanlagen zu steuern.
Seit dem frühen Morgen des 5. November scheint es jedoch, als seien die Sicherheitsmaßnahmen verschärft worden, wodurch diese API-Verbindung nicht mehr funktioniert. Wäre es möglich, diese Änderung rückgängig zu machen?

Vielen Dank im Voraus.
Mit freundlichen Grüßen,
...
Im Namen vieler Heimautomatisierungs-Enthusiasten

Do we really have to post all this here? Can't we just stick to the issue at hand instead of posting all indivual complaints to Panasonic? Perhaps create a new ticktet for this and move that conversation over there.

Do we really have to post all this here? Can't we just stick to the issue at hand instead of posting all indivual complaints to Panasonic? Perhaps create a new ticktet for this and move that conversation over there.

If this issue is sourced on the Panasonic side and there's little we can do at our end, isn't it best we collaborate a bit to push them to resolution? Or should there be no coordinated effort, no chat against this thread (as there's potentially no technical solution at our end) and we just sit around waiting for magic to happen?

Do we really have to post all this here? Can't we just stick to the issue at hand instead of posting all indivual complaints to Panasonic? Perhaps create a new ticktet for this and move that conversation over there.

If this issue is sourced on the Panasonic side and there's little we can do at our end, isn't it best we collaborate a bit to push them to resolution? Or should there be no coordinated effort, no chat against this thread (as there's potentially no technical solution at our end) and we just sit around waiting for magic to happen?

I am afraid their intention is to block everything not coming from the app as much as possible ...they do not want to help us.

Do we really have to post all this here? Can't we just stick to the issue at hand instead of posting all indivual complaints to Panasonic? Perhaps create a new ticktet for this and move that conversation over there.

If this issue is sourced on the Panasonic side and there's little we can do at our end, isn't it best we collaborate a bit to push them to resolution? Or should there be no coordinated effort, no chat against this thread (as there's potentially no technical solution at our end) and we just sit around waiting for magic to happen?

I am afraid their intention is to block everything not coming from the app as much as possible ...they do not want to help us.

but the Google home/Alexa integration does work?

Do we really have to post all this here? Can't we just stick to the issue at hand instead of posting all indivual complaints to Panasonic? Perhaps create a new ticktet for this and move that conversation over there.

If this issue is sourced on the Panasonic side and there's little we can do at our end, isn't it best we collaborate a bit to push them to resolution? Or should there be no coordinated effort, no chat against this thread (as there's potentially no technical solution at our end) and we just sit around waiting for magic to happen?

I am afraid their intention is to block everything not coming from the app as much as possible ...they do not want to help us.

but the Google home/Alexa integration does work?

That's an official 'integration' - part of their marketing and product capabilities. So they won't block that.

They can get "Works with Home Assistant" for their marketing and product capabilities too 😉 . If everyone is writing letters to Panasonic, you could mention this https://partner.home-assistant.io/

Do we really have to post all this here? Can't we just stick to the issue at hand instead of posting all indivual complaints to Panasonic? Perhaps create a new ticktet for this and move that conversation over there.

If this issue is sourced on the Panasonic side and there's little we can do at our end, isn't it best we collaborate a bit to push them to resolution? Or should there be no coordinated effort, no chat against this thread (as there's potentially no technical solution at our end) and we just sit around waiting for magic to happen?

I am afraid their intention is to block everything not coming from the app as much as possible ...they do not want to help us.

but the Google home/Alexa integration does work?

That's an official 'integration' - part of their marketing and product capabilities. So they won't block that.

isn't there a way to use that integration within HA?

I wonder if we'll ever be able to manage everything just on local. ...

There IS a way to manage locally only, but it involves building your own WiFi adapter for the AC unit and replacing the original one. There is a guide somewhere, I'll see if I can find the link again.
UPDATE: Here's the link: https://www.espthings.io/index.php/2023/09/02/esphome-panasonic-climate-interface/

Thank you man!!!

This is way too complicated, at least for me. Unfortunately. I wonder if it would be possible to use ESP as a substitute for the "Panasonic Cloud" and control AC unit that way?

I'm looking around as well to see what other options are out there as I agree this seems to complicated. I came across this one which is esp and looks simpler
https://github.com/DomiStyle/esphome-panasonic-ac

That is the sourcecode used for the HW mentioned in the first link. The first link is details on one way of building the HW needed for the sourcecode:-) I strongly concidering to order the parts and build o couple of them myself. Need to get rid of the comfort cloud dependenciy at home.

I wonder if we'll ever be able to manage everything just on local. ...

There IS a way to manage locally only, but it involves building your own WiFi adapter for the AC unit and replacing the original one. There is a guide somewhere, I'll see if I can find the link again.
UPDATE: Here's the link: https://www.espthings.io/index.php/2023/09/02/esphome-panasonic-climate-interface/

Thank you man!!!

This is way too complicated, at least for me. Unfortunately. I wonder if it would be possible to use ESP as a substitute for the "Panasonic Cloud" and control AC unit that way?

I'm looking around as well to see what other options are out there as I agree this seems to complicated. I came across this one which is esp and looks simpler
https://github.com/DomiStyle/esphome-panasonic-ac

That is the sourcecode used for the HW mentioned in the first link. The first link is details on one way of building the HW needed for the sourcecode:-) I strongly concidering to order the parts and build o couple of them myself. Need to get rid of the comfort cloud dependenciy at home.

Yes this is the source code but it also explains how to build one. If you read some of the discussion people have it working just on an esp32 and nothing else. I've ordered one plus the required connector. I'll test it out when it arrives

Yes this is the source code but it also explains how to build one. If you read some of the discussion people have it working just on an esp32 and nothing else. I've ordered one plus the required connector. I'll test it out when it arrives

I’m still struggling to find the correct connector for my device. Ordered three different that looked that it would fit but doesn’t 😭
Have the esp already here and configured

Even if it probably won't help much, I have also opened a very detailed support ticket with Panasonic Germany (aircon_support_de@eu.panasonic.com).
Case number: 00365238
I really hope that Panasonic takes action here and doesn't leave all HomeAssitant / IO Broker users in the lurch
Perhaps @sockless-coding can still work magic

I wonder if we'll ever be able to manage everything just on local. ...

There IS a way to manage locally only, but it involves building your own WiFi adapter for the AC unit and replacing the original one. There is a guide somewhere, I'll see if I can find the link again.
UPDATE: Here's the link: https://www.espthings.io/index.php/2023/09/02/esphome-panasonic-climate-interface/

Thank you man!!!

This is way too complicated, at least for me. Unfortunately. I wonder if it would be possible to use ESP as a substitute for the "Panasonic Cloud" and control AC unit that way?

PCBWay seems to offer the PCB + Assembly and components.  (https://www.pcbway.com/project/shareproject/espthings_io_ET_P1101_ESPHome_Panasonic_Climate_Interface_4cc10e31.html)
I've requested a quote and the PCB + Assembly is $29 for 2 units, only waiting for the components quote now.

I've requested a quote and the PCB + Assembly is $29 for 2 units, only waiting for the components quote now.

I would like to discourage you, and others to not support the creator and author of this project. They are discriminating against those who can't do diy even for health or body function reasons, telling anyone who can't diy to abandon the project altogether regardless if the reason is legitimate or not. If this is the only choice, then please do not use their affiliate links as it encourages even more discrimination.

Got this answer from Panasonic Swedenm they didn't even comment on the strenghtened security as of nov 5,
"Hi Anders,
Thank you for your email.
Unfortunately, there is no open API or any plan for it to come. Sorry that's not the answer you want but unfortunately it is.
Kind regards
Frederick
Panasonic Support"

@marcel-st
PCB + Assembly include´s all parts inkl. esp?

I've requested a quote and the PCB + Assembly is $29 for 2 units, only waiting for the components quote now.

I would like to discourage you, and others to not support the creator and author of this project. They are discriminating against those who can't do diy even for health or body function reasons, telling anyone who can't diy to abandon the project altogether regardless if the reason is legitimate or not. If this is the only choice, then please do not use their affiliate links as it encourages even more discrimination.

How is this discriminating? There is a knowledge bar and skill bar that needs to be met to even start with such a project. It's simply a warning that it might be smarter to not waste your time

@marcel-st PCB + Assembly include´s all parts inkl. esp?

You only need esp32, logic converter 5v <-> 3.3v and connector. No PCB needed

@mmib
it must be DNSK-P11 or CZ-TACG1 but on my modul i dont find a model like this..... or can i use this port?

I got 3 of the boards someone else was advertising last time Panasonic borked us for a while... ya'll got it working again before my order arrived so they've just been sitting in a drawer... I've sent my email to Panasonic but meh, tomorrow I might be swapping out the wifi units.

Got this answer from Panasonic Swedenm they didn't even comment on the strenghtened security as of nov 5, "Hi Anders,
Thank you for your email.
Unfortunately, there is no open API or any plan for it to come. Sorry that's not the answer you want but unfortunately it is.
Kind regards Frederick Panasonic Support"

Let’s remeber this next time we think about buying new Panasonic equipment… There are other, better alternatives! ;)

@marcel-st PCB + Assembly include´s all parts inkl. esp?

You only need esp32, logic converter 5v <-> 3.3v and connector. No PCB needed

Is that solution working? That has code years old. Anyone using this?

I ain't admitting defeat here... ISTG, there is a way forward without having to do any hardware stuff.. Here's what I'm currently doing..
I'm using Charles proxy to proxy the requests from the panasonic comfort cloud app to my macbook. I, am then able to read all of the network requests from the panasonic comfort cloud app. What I'm trying to figure out, if there's any way to use the tokens/codes that come from logging into the panasonic comfort cloud app..
I'm working right now so I may not have time to commit to it. Sensitive information edited out. I'll continue to look into it but I'm currently at work right now so I won't have time until after to write some code to test things out.

@pacholoamit are you debugging the IOS app?
When I patch the android to support my mitm cert I get the same error in the app
{
    "code": 41201,
    "message": "Precondition Failed"
}

@sockless-coding , I'm using the Panasonic Comfort Cloud app and intercepting the network requests so hopefully I can find what's missing. I'm writing some nodejs code right now to test to see if I can control the AC  from the tokens/codes I get from the different payloads.
I'm Currently keeping a markdown file to keep track of the values. Next I'll dive into your repo to see how you're controlling the panasonic AC in python, trying to create a working PoC right now where I can change anything at all just to test out if this works.
I mainly followed this guide on youtube on intercepting network requests from the app: https://www.youtube.com/watch?v=r7aV39-CKg4

@pacholoamit yeah that is for IOS, the certificate check is a bit annoying for the Android version...
The important part is looking at the accsmart.panasonic.com calls, the auth is easy enough to handle and can be viewed in a browser if you go via https://aquarea-smart.panasonic.com/

Hmm, I set up mitmproxy to try to see, but I get this from the ios app when I run it through the proxy.
How do they detect that?

Usually by doing certificate pinning in the app annoyingly!

I was able to get the bearer token by logging out and going from the login window to another app.
curl --request GET \
  --url https://authglb.digital.panasonic.com/userinfo \
  --header 'Authorization: Bearer <token>

{
  "sub": "auth0|<string>",
  "https://digital.panasonic.com": {
    "last_login_provider": "auth0",
    "pdp_user_id": "9b66ba35c3f30034ab0783a679d3b05844bb3ae5e5fb29c14f4ef52860cdb160",
    "provider": "Panasonic ID",
    "social_only": false,
    "user_country": "<COUNTRYCODE>",
    "user_id": "<COUNTRYIDNUMBER>",
    "user_status": "valid"
  }
}

I was able to get the bearer token by logging out and going from the login window to another app.
curl --request GET \
  --url https://authglb.digital.panasonic.com/userinfo \
  --header 'Authorization: Bearer <token>

{
  "sub": "auth0|<string>",
  "https://digital.panasonic.com": {
    "last_login_provider": "auth0",
    "pdp_user_id": "<string>",
    "provider": "Panasonic ID",
    "social_only": false,
    "user_country": "<COUNTRYCODE>",
    "user_id": "<COUNTRYIDNUMBER>",
    "user_status": "valid"
  }
}

Step 1 would be to get a simple request like https://accsmart.panasonic.com/resource/resourcePath to work, this one doesn't require authentication
Headers being sent to it are:

Header
Value

x-app-type
1

x-app-version
1.22.0

accept
application/json; charset=utf-8

content-type
application/json

user-agent
G-RAC

x-app-name
Comfort Cloud

x-app-timestamp
2024-11-06 18:59:43

x-cfc-api-key
jy9757acxcfb1eve7nmoigsz8fxqqqvjj5iiu531gvyx99bwdekbutaj889ee4dx9wf

accept-encoding
gzip

Headers are generated like this
    public d0 intercept(@NonNull w.a aVar) {
        String str;
        String q10 = d.q();
        b0 request = aVar.request();
        PSecurity pSecurity = PSecurity.INSTANCE;
        int createSecurityKey = pSecurity.createSecurityKey(this.f18736a, "Comfort Cloud", q10, m.g());
        if (createSecurityKey == 0) {
            str = pSecurity.getSecurityKey();
        } else {
            str = String.valueOf(createSecurityKey);
        }
        b0.a h10 = request.h();
        h10.
		a("X-APP-TYPE", "1").
		a("X-APP-VERSION", "1.22.0").
		a("Accept", "application/json; charset=utf-8").
		a("Content-Type", "application/json").
		a("User-Agent", "G-RAC").
		a("X-APP-NAME", "Comfort Cloud").
		a("X-APP-TIMESTAMP", q10).
		a("X-CFC-API-KEY", str);
        Context context = this.f18736a;
        String i10 = PreferencesUtil.i(context, PreferencesUtil.r(context));
        if (i10 != null) {
            h10.a("X-Client-Id", i10);
        }
        return aVar.proceed(h10.b());
    }

The culprit is probably the x-cfc-api-key

Hi, I am very impressed of all your work and I believe in you.  But I would love to ;)  but agin I can see my limits.
My solution for now, in the short run to connect it to HA via IR , remote control Interface (I use Sensibo IR,  made for ac but it should be a simpler and cheeper way) . It works grate for me to send instructions to AC. No receiving of any data or sensors of course.  I can run it by using Better Thermostat Integration.....
Good luck and I will directly go back to this solution if solved. Then I can use my Sensible elsewhere :)

The X-CFC-API-KEY is a custom HTTP header utilized by Panasonic's Comfort Cloud API to authenticate and authorize client requests. This header ensures that only authorized applications can interact with the API, enhancing security by verifying the client's identity.
When making requests to the Comfort Cloud API, clients include the X-CFC-API-KEY header with a specific value that the server recognizes and validates. This mechanism helps prevent unauthorized access and ensures that only approved applications can control Panasonic's smart devices.
For example, in the python-panasonic-comfort-cloud project, the X-CFC-API-KEY header is set to "Comfort Cloud" in the HTTP requests to the API:
POST https://accsmart.panasonic.com/auth/login HTTP/1.1
X-APP-TYPE: 1
X-APP-VERSION: 1.20.1
User-Agent: G-RAC
X-APP-TIMESTAMP: 1
X-APP-NAME: Comfort Cloud
X-CFC-API-KEY: Comfort Cloud
Accept: application/json; charset=utf-8
Content-Type: application/json; charset=utf-8

This header and others like X-APP-TYPE and X-APP-VERSION form part of the request's metadata, providing the server with the necessary information to process and authenticate the request appropriately.
It's important to note that the exact value and usage of the X-CFC-API-KEY may vary depending on the specific implementation and version of the Comfort Cloud API. Developers should refer to the official Panasonic Comfort Cloud API documentation or relevant resources for the most accurate and up-to-date information.
// GPT-4

So why should it be so hard to get that from the app? If we have the bearer key?

So why should it be so hard to get that from the app? If we have the bearer key?
Because for one thing it's not documented, and two it requires external code to generate currently (as opposed to just Python).

Yes, but it should be sent with the headers, so if we do a man-in-the-middle proxy we should be able to get that? Maybe we can find the pattern if we collect some?

Yes, but it should be sent with the headers, so if we do a man-in-the-middle proxy we should be able to get that? Maybe we can find the pattern if we collect some?

As I said before, it's an external function that cannot be called natively from Python and I don't believe that the values are static, so would need to reverse engineer the .so code.

It's frustrating to see Panasonic spend their time on locking us out rather than improving the awful Comfort Cloud app.
@pacholoamit - what version of the iOS app are you running? Did you have to patch it to trust your certificate? Mine seems to be doing SSL pinning.

The X-CFC-API-KEY is based on several values:
The string constant "Comfort Cloud"
The time sent in the X-APP-TIMESTAMP header
The key access token or null if not authenticated
These values are manipulated and hashed using SHA512 manipulated some more and turned in to a 67 character long string

A few months ago there was another project where the API got hardened, and the solution then was this code.  I have no idea, tbh, but throwing out there in case it sparks some idea:
def get_api_key():
    # Get the session token
    r = requests.get('https://api.xxx.xxx/api/v1/authorization-sessions')
    api_token = r.json().get('token')

    # Shift the string by one byte
    shifted_bytes = bytearray(api_token.encode('utf-8'))[1:] + bytearray([api_token.encode('utf-8')[0]])
    shifted_string = shifted_bytes.decode('utf-8')

    # Calculate the MD5 hash of the shifted string
    md5_hash = hashlib.md5(shifted_string.encode('utf-8')).hexdigest()

    return md5_hash

It's frustrating to see Panasonic spend their time on locking us out rather than improving the awful Comfort Cloud app.

I suggested previously to disable the constant polling in this integration which would significantly reduce the load on Panasonic's servers and that was rejected. This was the natural outcome from that.

It's frustrating to see Panasonic spend their time on locking us out rather than improving the awful Comfort Cloud app.
@pacholoamit - what version of the iOS app are you running? Did you have to patch it to trust your certificate? Mine seems to be doing SSL pinning.

Hello, I was following this youtube tutorial: https://www.youtube.com/watch?v=r7aV39-CKg4
However as @sockless-coding mentioned, if we can't crack the X-CFC-API-KEY , we're kinda screwed unfortunately.

However as @sockless-coding mentioned, if we can't crack the X-CFC-API-KEY , we're kinda screwed unfortunately.

@pacholoamit if the apps can calculate it so can we it's a matter of time, I'll try to look into the APK if I find the time.
@garmck I'm pretty sure they knew about it, also let's try to stay on topic and focus our efforts on fixing this 🙂

I send an email to Panasonic today (translated from Dutch to English by Google Translate, so sorry for mistakes):
Dear Panasonic,
For a number of years I have been using 3 Panasonic air conditioners to my satisfaction. I have an implementation in use via Home Assistant. The plugin for this is https://github.com/sockless-coding/panasonic_cc However, as a developer/hobbyist, I realize that this implementation is not official, but there are many home automation users who control their air conditioners in this

So now that they have the link to the github repo - even if this is fixed, they can now see what is being done to overcome the restrictions everytime....awesome.

Do you think they didn't know before? They didn't wonder why so many "apps" connect to their servers every 30 seconds? Normally, the application is used several times a day, so it connects maybe 20-30 times per day? This integration connects 7680 times per day! Some other plugins / integrations had a refresh time of up to every 3 seconds! Why do you think they keep changing APIs?

I send an email to Panasonic today (translated from Dutch to English by Google Translate, so sorry for mistakes):
Dear Panasonic,
For a number of years I have been using 3 Panasonic air conditioners to my satisfaction. I have an implementation in use via Home Assistant. The plugin for this is https://github.com/sockless-coding/panasonic_cc However, as a developer/hobbyist, I realize that this implementation is not official, but there are many home automation users who control their air conditioners in this

So now that they have the link to the github repo - even if this is fixed, they can now see what is being done to overcome the restrictions everytime....awesome.

Do you think they didn't know before? They didn't wonder why so many "apps" connect to their servers every 30 seconds? Normally, the application is used several times a day, so it connects maybe 20-30 times per day? This integration connects 7680 times per day! Some other plugins / integrations had a refresh time of up to every 3 seconds! Why do you think they keep changing APIs?

Panasonic developers tried their best to block enthusiastic users. Meanwhile, LG released the official integration for Home Assistant. I paid a lot for five air conditioners, but I decided never to buy any Panasonic products again.
I really respect the author and all heroes to create this integration and tried hard to make it work every month.

I send an email to Panasonic today (translated from Dutch to English by Google Translate, so sorry for mistakes):
Dear Panasonic,
For a number of years I have been using 3 Panasonic air conditioners to my satisfaction. I have an implementation in use via Home Assistant. The plugin for this is https://github.com/sockless-coding/panasonic_cc However, as a developer/hobbyist, I realize that this implementation is not official, but there are many home automation users who control their air conditioners in this

So now that they have the link to the github repo - even if this is fixed, they can now see what is being done to overcome the restrictions everytime....awesome.

Do you think they didn't know before? They didn't wonder why so many "apps" connect to their servers every 30 seconds? Normally, the application is used several times a day, so it connects maybe 20-30 times per day? This integration connects 7680 times per day! Some other plugins / integrations had a refresh time of up to every 3 seconds! Why do you think they keep changing APIs?

They Could limit the amount of calls.
Then every developer would go for that max amount. and work around that given amount.
The Problem of overloaded server is fixed as well,
Without pissing off 40% ? of you Comfort Cloud Users.

I send an email to Panasonic today (translated from Dutch to English by Google Translate, so sorry for mistakes):
Dear Panasonic,
For a number of years I have been using 3 Panasonic air conditioners to my satisfaction. I have an implementation in use via Home Assistant. The plugin for this is https://github.com/sockless-coding/panasonic_cc However, as a developer/hobbyist, I realize that this implementation is not official, but there are many home automation users who control their air conditioners in this

So now that they have the link to the github repo - even if this is fixed, they can now see what is being done to overcome the restrictions everytime....awesome.

Do you think they didn't know before? They didn't wonder why so many "apps" connect to their servers every 30 seconds? Normally, the application is used several times a day, so it connects maybe 20-30 times per day? This integration connects 7680 times per day! Some other plugins / integrations had a refresh time of up to every 3 seconds! Why do you think they keep changing APIs?

They Could limit the amount of calls. Then every developer would go for that max amount. and work around that given amount. The Problem of overloaded server is fixed as well, Without pissing off 40% ? of you Comfort Cloud Users.

They could. But they don't want to. They clearly replied that they not planning an official API.

I send an email to Panasonic today (translated from Dutch to English by Google Translate, so sorry for mistakes):
Dear Panasonic,
For a number of years I have been using 3 Panasonic air conditioners to my satisfaction. I have an implementation in use via Home Assistant. The plugin for this is https://github.com/sockless-coding/panasonic_cc However, as a developer/hobbyist, I realize that this implementation is not official, but there are many home automation users who control their air conditioners in this

So now that they have the link to the github repo - even if this is fixed, they can now see what is being done to overcome the restrictions everytime....awesome.

Do you think they didn't know before? They didn't wonder why so many "apps" connect to their servers every 30 seconds? Normally, the application is used several times a day, so it connects maybe 20-30 times per day? This integration connects 7680 times per day! Some other plugins / integrations had a refresh time of up to every 3 seconds! Why do you think they keep changing APIs?

They Could limit the amount of calls. Then every developer would go for that max amount. and work around that given amount. The Problem of overloaded server is fixed as well, Without pissing off 40% ? of you Comfort Cloud Users.

40%?! You vastly over estimate the volume of nerds out there. I'd venture closer to 1%.

I send an email to Panasonic today (translated from Dutch to English by Google Translate, so sorry for mistakes):
Dear Panasonic,
For a number of years I have been using 3 Panasonic air conditioners to my satisfaction. I have an implementation in use via Home Assistant. The plugin for this is https://github.com/sockless-coding/panasonic_cc However, as a developer/hobbyist, I realize that this implementation is not official, but there are many home automation users who control their air conditioners in this

So now that they have the link to the github repo - even if this is fixed, they can now see what is being done to overcome the restrictions everytime....awesome.

Do you think they didn't know before? They didn't wonder why so many "apps" connect to their servers every 30 seconds? Normally, the application is used several times a day, so it connects maybe 20-30 times per day? This integration connects 7680 times per day! Some other plugins / integrations had a refresh time of up to every 3 seconds! Why do you think they keep changing APIs?

They Could limit the amount of calls. Then every developer would go for that max amount. and work around that given amount. The Problem of overloaded server is fixed as well, Without pissing off 40% ? of you Comfort Cloud Users.

40%?! You vastly over estimate the volume of nerds out there. I'd venture closer to 1%.

Answer yourself honestly - how many times a day will you open the Comfort Cloud application (assuming that you only use app to control the air conditioning)? 5 times a day? 20 times? Certainly not 7680 per day - this Integration does it so many times. There are plugins that read the state once an hour when the device is turned off and once every 15 minutes when turned on - that is, about 24-35 times a day. This is what you have to start with. Otherwise they will still block API.

if we would be able to redirect the calls to the panasonic cloud (using a router / DNS redirect for example), do you think it would be possible to create a mock API? This way we could still use HA and the existing hardware. Like a MITM aproach?

if we would be able to redirect the calls to the panasonic cloud (using a router / DNS redirect for example), do you think it would be possible to create a mock API? This way we could still use HA and the existing hardware. Like a MITM aproach?

this has no sense. HA can call panasonic servers directly

I think what @mmib meant, is to mimic Panasonic Cloud for the device itself, so a proxy can intercept commands and do not let them leave the house. Not sure how feasible this is and how difficult to implement.

The amount of traffic generated by this integration is negligible to Panasonic... even if it makes 7680 requests per day... that times 1350 (HA analytics) thats 10 368 000 requests per day...
How much traffic do you think the heat pump them self generate? If you look at the google play store it has 500k+ downloads...
This is some package capture from my heat pump calling home:
09:17:53.352805 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 357
09:17:53.355482 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 0
09:17:53.781406 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:17:54.080559 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:17:54.083872 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 575
09:17:54.375578 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:18.787482 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:19.081077 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:19.083206 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:19.376876 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:43.790579 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:44.083034 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:44.085094 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:44.382866 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:49.199102 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:49.499145 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:49.501807 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 453
09:18:49.769761 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 245
09:18:49.865567 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 0

Say 2 times per minute... 2880 * 500000 = 1 440 000 000 a few magnitudes more than the integration.... and thats excluding all heatpumps controlled by apple users...

@Wyger-leystra not possible, they use MTLS from the heat pump so without getting a valid certificate the heatpump wont connect.

https://tweakers.net/nieuws/228460/airconditioning-van-panasonic-is-niet-meer-aan-te-sturen-via-home-assistant.html
Got it in the news, hopefully they will answer to Tweakers :)

The amount of traffic generated by this integration is negligible to Panasonic... even if it makes 7680 requests per day... that times 1350 (HA analytics) thats 10 368 000 requests per day... How much traffic do you think the heat pump them self generate? If you look at the google play store it has 500k+ downloads... This is some package capture from my heat pump calling home:
09:17:53.352805 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 357
09:17:53.355482 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 0
09:17:53.781406 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:17:54.080559 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:17:54.083872 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 575
09:17:54.375578 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:18.787482 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:19.081077 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:19.083206 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:19.376876 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:43.790579 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:44.083034 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:44.085094 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:44.382866 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:49.199102 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 69
09:18:49.499145 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 0
09:18:49.501807 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 453
09:18:49.769761 IP <IP_ADDRESS>.443 > <IP_ADDRESS>.55188: tcp 245
09:18:49.865567 IP <IP_ADDRESS>.55188 > <IP_ADDRESS>.443: tcp 0

Say 2 times per minute... 2880 * 500000 = 1 440 000 000 a few magnitudes more than the integration.... and thats excluding all heatpumps controlled by apple users...

Getting to offtopic, I think...
Though I think the concern is not load to server. I think, they more worry about potential effect on target devices if the API is misused. This can be done by mistake of the API user, or intentionally by some intruder into home system and intentionally trying to break your system. Say, you start sending series of turn-on-off commands every 5 seconds. I believe, the device would die quite soon after this.
They worry about warranty in this case.

I think it is a good approach to try to get this into news and push Panasonic to open their API to developers or make a native HA integration. Such things work pretty well, especially if their shareholders will be at risk

I'm not sure if there is a way around the current problem, but could this be a workaround for the moment....
Control it through the integration supported by Alexa but with the HA Thermostat Card not voice? I know some entities won't be possible like power consumption or swing modes but basic control of mode, temperature and power perhaps this is possible? I have no idea if this is a massive undertaking or not?

My work around is google Home. It does work. Since ZHA is not working I
give up HA and for now move critical device to google.
Maarten
tor. 7. nov. 2024, 12:38 skrev RonnieRocket2 @.***>:

I'm not sure if there is a way around the current problem, but could this
be a workaround for the moment....
Control it through the integration supported by Alexa but with the HA
Thermostat Card not voice? I know some entities won't be possible like
power consumption or swing modes but basic control of mode, temperature and
power perhaps this is possible? I have no idea if this is a massive
undertaking or not?
—
Reply to this email directly, view it on GitHub
https://github.com/sockless-coding/panasonic_cc/issues/331#issuecomment-2462012940,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5GFP2ZF7B4OXVLG2AFXBKDZ7NGKNAVCNFSM6AAAAABRFPF4L6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRSGAYTEOJUGA
.
You are receiving this because you commented.Message ID:
@.***>

Getting to offtopic, I think... Though I think the concern is not load to server. I think, they more worry about potential effect on target devices if the API is misused. This can be done by mistake of the API user, or intentionally by some intruder into home system and intentionally trying to break your system. Say, you start sending series of turn-on-off commands every 5 seconds. I believe, the device would die quite soon after this. They worry about warranty in this case.

That should easily be caught by the api. There is a difference between GET requests, to get the status and POST requests changing settings. A simple block on 10 POST request within a period of time (just random numbers) can easily prevent your scenario.
disclaimer: if Panasonic follows the logic of GET and POST requests

I've confirmed that x-cfc-api-key is the reason for the 412 and that it is composed of x-app-name, x-app-timestamp and token from x-user-authorization-v2 (if authenticated).
The timestamp doesn't seem to be validated and can be reused. So the main thing is to figure out how the token affects the outcome.

I've confirmed that x-cfc-api-key is the reason for the 412 and that it is composed of x-app-name, x-app-timestamp and token from x-user-authorization-v2 (if authenticated). The timestamp doesn't seem to be validated and can be reused. So the main thing is to figure out how the token affects the outcome.

I decided to give it a go to try and reverse engineer libsecurity-lib.so but I don't really have any experience in reverse engineering unfortunately but I do work as an embedded developer and know a little bit of assembly. After some googling and watching a short youtube video I ended up using Ghidra and have been using it for few hours now trying to decipher the createSecurityKey function.
Unfortunately it looks quite large and I have a really hard time following everything that happens but it looks like the first thing it does is to retrieve the first package signature from "[Landroid/content/pm/Signature:". It looks like this object is an array but the first array element is retrieved from it and then it does a SHA512 on that signature and possibly a timestamp, but it doesn't look like it's the x-app-timestamp.
After this I can't quite follow what happens with this SHA512 but there's hundreds of more lines to analyze, probably with some hardcoded "magic numbers" in there.
Much further down there's also a call to a SHA256 function. It also looks like there's a case in the code from some debug build or environment where the function will just return a random string as the security key but I don't think that helps us.

I used ghidra and binary ninja to poke around last night, the first thing it seems to do is compare signatures to one of two strings (debug / production)

I used ghidra and binary ninja to poke around last night, the first thing it seems to do is compare signatures to one of two strings (debug / release)
Figured that was an attempt to prevent us from yoinking the module and just using it

Yeah I took one final look at this before bed and I think it's retrieving the APK package signature, running SHA512 on it and it might return some kind of binary representation only because it looks like FUN0011f82c and the loop it's in is used for converting this data to a hexadecimal string representation, which it then compares to two long hardcoded strings debug/release.
Then further down where it's making the real security key we see the exact same pattern but instead of SHA512 it's SHA256 with some data which looks to be based on the actual inputs to the function.
So now we need to figure out exactly how the inputs are massaged before and after the SHA256 call...

So, controlling the ACs and getting info of the temperature etc via Alexa and Google Assistant is still working, right? So, how do they do it? Panasonic has a deal with them I guess?
Is it possible to control them with HA through any of those two?

In Alexa it's called a skill. I think Panasonic implements it themselves and then provides this skill. I looked at it yesterday and you can also use ioBroker to control the devices via Alexa.

How do you get it to work in Google Home? The only option I see is Alexa, which isn't even an option in Norway. I see Tibber has also lost their connection with Panasonic after years.

How do you get it to work in Google Home? The only option I see is Alexa, which isn't even an option in Norway. I see Tibber has also lost their connection with Panasonic after years.

https://www.panasonic.com/global/hvac/products/comfort-cloud/how-to-set-up-comfort-cloud/link-panasonic-comfort-cloud-app-to-google-assistant.html

I migrated to google home/nest this week, because of The Problem discussed here.After a lot of work setting up automations trigged thermostats, i thought i had a working setup.But Panasonic fucked me yet another time - the connection between google and comfort cloud is really bad and goes up and down.Seriously panasonic - FY8 nov. 2024 kl. 10:23 skrev Roel van Bakel @.***>:
How do you get it to work in Google Home? The only option I see is Alexa, which isn't even an option in Norway. I see Tibber has also lost their connection with Panasonic after years.
https://www.panasonic.com/global/hvac/products/comfort-cloud/how-to-set-up-comfort-cloud/link-panasonic-comfort-cloud-app-to-google-assistant.html
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

I migrated to google home/nest this week, because of The Problem discussed here.After a lot of work setting up automations trigged thermostats, i thought i had a working setup.But Panasonic fucked me yet another time - the connection between google and comfort cloud is really bad and goes up and down.Seriously panasonic - FY8 nov. 2024 kl. 10:23 skrev Roel van Bakel @.>: How do you get it to work in Google Home? The only option I see is Alexa, which isn't even an option in Norway. I see Tibber has also lost their connection with Panasonic after years. https://www.panasonic.com/global/hvac/products/comfort-cloud/how-to-set-up-comfort-cloud/link-panasonic-comfort-cloud-app-to-google-assistant.html —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.>

I send them a mail, as both the google home and google assistant 50% of the time reponds with unavailable. They only send me a question, if I used Home Assistant, and if that was my problem, Which means, they are aware they fked home assistant on purpose (this was the support in Denmark). Haven't heard from them about Google Home yet.

In the google home app - search for panasonic/comfort cloud under works with google in settings Med vänlig hälsningPierre8 nov. 2024 kl. 10:44 skrev JakobAaen @.***>:
I migrated to google home/nest this week, because of The Problem discussed here.After a lot of work setting up automations trigged thermostats, i thought i had a working setup.But Panasonic fucked me yet another time - the connection between google and comfort cloud is really bad and goes up and down.Seriously panasonic - FY8 nov. 2024 kl. 10:23 skrev Roel van Bakel @.>: How do you get it to work in Google Home? The only option I see is Alexa, which isn't even an option in Norway. I see Tibber has also lost their connection with Panasonic after years. https://www.panasonic.com/global/hvac/products/comfort-cloud/how-to-set-up-comfort-cloud/link-panasonic-comfort-cloud-app-to-google-assistant.html —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.>
I send them a mail, as both the google home and google assistant 50% of the time reponds with unavailable. They only send me a question, if I used Home Assistant, and if that was my problem, Which means, they are aware they fked home assistant on purpose (this was the support in Denmark). Haven't heard from them about Google Home yet.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

In the google home app - search for panasonic/comfort cloud under works with google in settings Med vänlig hälsningPierre8 nov. 2024 kl. 10:44 skrev JakobAaen @.>: I migrated to google home/nest this week, because of The Problem discussed here.After a lot of work setting up automations trigged thermostats, i thought i had a working setup.But Panasonic fucked me yet another time - the connection between google and comfort cloud is really bad and goes up and down.Seriously panasonic - FY8 nov. 2024 kl. 10:23 skrev Roel van Bakel @.>: How do you get it to work in Google Home? The only option I see is Alexa, which isn't even an option in Norway. I see Tibber has also lost their connection with Panasonic after years. https://www.panasonic.com/global/hvac/products/comfort-cloud/how-to-set-up-comfort-cloud/link-panasonic-comfort-cloud-app-to-google-assistant.html —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.> I send them a mail, as both the google home and google assistant 50% of the time reponds with unavailable. They only send me a question, if I used Home Assistant, and if that was my problem, Which means, they are aware they fked home assistant on purpose (this was the support in Denmark). Haven't heard from them about Google Home yet. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.>

In the meantime while this is being worked on, I've reverted to use Sensibo Air to control my Panasonic AC. Works fine.

Since this is a complicated one, I guess few people trying to find temp backups. Some have already mentioned sensibo; however if have a Broadlink IR blaster or similar - then use SmartIR integration with Device Code 1022. Does not allow to control the swing, but a few hours of elbow grease can fix that if needed. I am using an old RM Mini which is about 20 bucks.

Version 2024.11.0 has been released

Version 2024.11.0 has been released

Tried re-adding the integration (deleted it when troubleshooting) and still get this error:

My only need is energy monitoring...

Thanks to all for getting this up and running again - amazing work.  All working well here with a restart after updating

Looks like its working. Thanks team :)

Yep, all working here also. Thanks very much!

Version 2024.11.0 has been released

Nailed it again! Thank you for all that you guys do despite all the complaints!
Its working perfectly now.

Looks like its working. Thanks team :)

Danke, I guess I won't be pulling apart aircons this weekend, thats great cos I have Christmas props to manufacture

Awesome work. I'll keep the ordered hardware on the shelf because i expect Panasonic isn't done messing about with their API.

@sockless-coding Great Work
pls send a paypal adress . i cant buy coffee thx

good idea, he deserves it :).

Version 2024.11.0 has been released

Wow, incredible !!😃
I followed the topic and almost gave up hope. But: you did it again! Great achievement!
Thank you so much!
Regards
Herbi

@sockless-coding Great Work
pls send a paypal adress . i cant buy coffee thx
@Garagoos, @Auka84
I will definitely send a coffee tip, too. I found the tipping link on home assistant forums (see end of his first post):
https://community.home-assistant.io/t/panasonic-comfort-cloud/229090

or just wait till he is online and confirms the link :)

Awesome job.  Thank you very much.
I ordered the hardware solution on pcbway.com. When that arrives, I can hopefully get rid of the cloud solution and access the A/Cs finally direct.

Awesome job.  Thank you very much.
I ordered the hardware solution on pcbway.com. When that arrives, I can hopefully get rid of the cloud solution and access the A/Cs finally direct.

I am also opting for the local control route, however, the fix is still much appriated! I genuinely think this is not Panasonic's last attempt to keep us out of the API..
But why do people still order the pcbway.com components? The only thing you need is an ESP32 and a connector with jumper wires to control the AC locally? https://github.com/DomiStyle/esphome-panasonic-ac/issues/111#issue-2118880716

@willie013 I think that wants to have a level shifter on it, 5v GPIO will make the ESP go bang. I am going to pop one together as I do have some level shifters sat here but a nice PCB is prettier.

@willie013 I think that wants to have a level shifter on it, 5v GPIO will make the ESP go bang. I am going to pop one together as I do have some level shifters sat here but a nice PCB is prettier.

No, most esp32 board are 5v tolerant, so that's why I don't see any benefit in the dedicated pcb..

Fair enough! I'll probably use one anyway as it's best-practice. Fun little project for this afternoon.

Awesome job.  Thank you very much.
I ordered the hardware solution on pcbway.com. When that arrives, I can hopefully get rid of the cloud solution and access the A/Cs finally direct.

I am also opting for the local control route, however, the fix is still much appriated! I genuinely think this is not Panasonic's last attempt to keep us out of the API..
But why do people still order the pcbway.com components? The only thing you need is an ESP32 and a connector with jumper wires to control the AC locally? DomiStyle/esphome-panasonic-ac#111 (comment)

Actually is it working? I have the 3.3 to 5v level shifter and couple of esp-s, but that repo has at least 3 year old code.

Awesome job.  Thank you very much.
I ordered the hardware solution on pcbway.com. When that arrives, I can hopefully get rid of the cloud solution and access the A/Cs finally direct.

I am also opting for the local control route, however, the fix is still much appriated! I genuinely think this is not Panasonic's last attempt to keep us out of the API..
But why do people still order the pcbway.com components? The only thing you need is an ESP32 and a connector with jumper wires to control the AC locally? DomiStyle/esphome-panasonic-ac#111 (comment)

Actually is it working? I have the 3.3 to 5v level shifter and couple of esp-s, but that repo has at least 3 year old code.

You don't even need the level shifter. The esp works on 5V, as you can read in the link. But if you have the hardware, why not use it. There is nothing wrong with a repo with 3 year old code if nothing has changed. And AC commands don't really change.
I have some esp's lying around for months for this but this add-on did the job. I looked for the boards yesterday but since the add-on works again, the urgency has dropped again. Seems like the esp's are going to continue to collect dust for now ;-)

AWESOME!! Thank you very much @sockless-coding!!!
And FU Panasonic!

Thank you!! 🚀

@sockless-coding  received many coffees today :D. Thx a lot again :)

Thank you very much for the fix, much appreciated.

Wow, many thanks to those contributing to fixing this one!!

Same. You guys rock. Actually I have Swedish Tibber and they have also
trouble to get it to work with Panasonic and they have tried in month. I
have complained both to them and Panasonic. You solved this in some hours.
You could sell this solution to them….
Hope you feel grate you earned it :)
fre 8 nov. 2024 kl. 18:03 skrev jaknil0 @.***>:

Wow, many thanks to those contributing to fixing this one!!
—
Reply to this email directly, view it on GitHub
https://github.com/sockless-coding/panasonic_cc/issues/331#issuecomment-2465291226,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3HNRJNXGUG5WJNOJE3R4PTZ7TVH3AVCNFSM6AAAAABRFPF4L6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRVGI4TCMRSGY
.
You are receiving this because you commented.Message ID:
@.***>

I wonder if we'll ever be able to manage everything just on local. ...

If your controller also has Bluetooth, you may be interested in this integration:
https://github.com/david-collett/panasonic_hc

@MatthK can you share the order with me? They couldn't source the ESP variant when I tried to order the same.

At first the order got stuck under review. They claimed they can't source the ESP and thus not solder it, and I also had to choose the optional temperature sensor.
I told them I'd be fine without the ESP (having the illusion I might find a way to get them myself, and solder them somehow). But in the confirmed order, they suddenly did list the ESP as well. It's in production now, so I'm cautiously optimistic to get them.
How to load the necessary code and get them working will be another task, but I'll cross that bridge when I get there.
Here is the BOM of my order.
espthings.io - ET-P1101 ESPHome Panasonic Climate Interface_BOM_PCBWay(3).xlsx

I wonder if we'll ever be able to manage everything just on local. ...

If your controller also has Bluetooth, you may be interested in this integration:
https://github.com/david-collett/panasonic_hc

@MatthK can you share the order with me? They couldn't source the ESP variant when I tried to order the same.

At first the order got stuck under review. They claimed they can't source the ESP and thus not solder it, and I also had to choose the optional temperature sensor.
I told them I'd be fine without the ESP (having the illusion I might find a way to get them myself, and solder them somehow). But in the confirmed order, they suddenly did list the ESP as well. It's in production now, so I'm cautiously optimistic to get them.
How to load the necessary code and get them working will be another task, but I'll cross that bridge when I get there.
Here is the BOM of my order.
espthings.io - ET-P1101 ESPHome Panasonic Climate Interface_BOM_PCBWay(3).xlsx

Just so you're aware, I did a similar thing  6 months ago (didn't end up getting it to work right but also couldn't be bothered once this started working again) and the screwed up the order of the wires on the connector. Just double check they got the direction of the connector right for you cause I had to snip all the wires and re do them.


OpenMP flag in compile args

Very interested in this package ... though haven't yet run it.
If I try 'pip install pyoctree' in Linux, gcc fails with error "/openmp: No such file or directory", because of the extra_compile_args=['/openmp'] in setup.py ... I am guessing this is the flag for a Windows compiler? In Linux it is "-openmp" for icc and "-fopenmp" for gcc.
Thanks, Doug

Hi Doug,
Yes, you are right. I have run it on Linux but typically use it on Windows.
I'll update it to detect the operating system so the correct openmp header
is called.
Cheers,
Michael
On Fri, Apr 28, 2017, 12:32 Doug Schouten<EMAIL_ADDRESS>wrote:

Very interested in this package ... though haven't yet run it.
If I try 'pip install pyoctree' in Linux, gcc fails with error "/openmp:
No such file or directory", because of the extra_compile_args=['/openmp']
in setup.py ... I am guessing this is the flag for a Windows compiler? In
Linux it is "-openmp" for icc and "-fopenmp" for gcc.
Thanks, Doug
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mhogg/pyoctree/issues/9, or mute the thread
https://github.com/notifications/unsubscribe-auth/ADdn-mAJmoElCVf9ZhjuPmcTvv7J5eT2ks5r0U-lgaJpZM4NK_AL
.

Hi Doug,
I have created a new branch with an updated setup.py file that supplies the correct openmp arguments for each compiler. I have tested this on Windows only so far. I will test this shortly on linux, but it should work ok. If your interested, check it out. And thanks for the feedback.
Cheers,
Michael


iPhone Respring For No Reason

RESPRING BUG
Am having the same problem too sometimes when am using the my iPhone normally it respirings out of no where please fix this bug i check the tweaks and i dont see any incompatible tweak install and my iPhone Respring Sometimes plz fix???
Screenshots
If applicable, add screenshots to help explain your problem.
Device (please complete the following information):

iOS Version: 12.4
iOS Device: iPhone XS Max
unc0ver Version: b4

Place an "x" between the brackets if true:

[X] this is a bug others will be able to reproduce
[ ] this issue is present with all tweaks uninstalled(except for default packages) or disabled
[X] this issue is present after a rootfs restore

Logs
If applicable, add logs or error messages here.

i been having This Respring Bug Since I First Jailbrake with Uncover B3 and my iPhone Respring For no Reason this issue is getting me Pissed Off how can i fix this Problem

the Issue Occurs Sometimes when i Normally Use my phone and i updated Uncover b4 and am still having this problem

any fix for this please

OK, I understand it is BETA 4, but can you send the full version number, please?


On the getting target data page getYaw() is mentioned instead of getSkew()

Here is the reference link
https://docs.photonvision.org/en/latest/docs/programming/photonlib/getting-target-data.html#getting-data-from-a-target
Current: double getYaw()/GetYaw(): The skew of the target in degrees (counter-clockwise positive).
Replacement: double getSkew()/GetSkew(): The skew of the target in degrees (counter-clockwise positive).
Thanks - great docs!

Good catch! Will fix.


Inverted colors when using PITFT 2.8" TFT 320X240 + CAPACITIVE

When using a PITFT 2.8" TFT 320X240 + CAPACITIVE ( https://www.adafruit.com/product/1983 ), colors are inverted.
disp.fill(color565(255, 0, 0))  # red => Fills the screen with blue (cyan)
disp.fill(color565(0, 0, 255))  # blue => Fills with Yellow
disp.fill(color565(0, 255, 0))  # green => Magenta

It's probably just and initialization issue, but I don't know enough to fix it myself (besides manually inverting colors).
The display is initialized with
disp = ili9341.ILI9341(
    spi,
    rotation=270,  # 2.2", 2.4", 2.8", 3.2" ILI9341
    cs=cs_pin,
    dc=dc_pin,
    rst=reset_pin,
    baudrate=BAUDRATE,
)

otherwise it's just the sample from https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display#22-24-28-32-tft
When using the sample AnimatedGif the images look inverted as well.
Thanks.

is this on a raspberry pi or...?

Yep, it's a Raspberry Pi 3B+, sorry forgetting mentioning it.

make sure you've updated all your python libraries, we've made bug fixes recently

Gosh, this is a brand new install, and though everything was up to date already, but after upgrading everything the colors are now the way they should :)
Thanks you!
For future people hitting this issue, just do:
apt update && apt dist-upgrade
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip3 install -U

In reality, I think I actually made it work because I accidentally mixed up 2 examples.
Here's what work (the provided sample still doesn't and shows, for example, green instead of blue):
import digitalio
import board

spi = board.SPI()
display = ili9341.ILI9341(
    spi,
    rotation=270,
    cs=digitalio.DigitalInOut(board.CE0),
    dc=digitalio.DigitalInOut(board.D25),
    rst=digitalio.DigitalInOut(board.D24),
    baudrate=64000000
)


Unable to build production

What
The CI of this project is showing success, however when updating to this version I'm running into a few issues:

First run of make build-production ends with: Please run Mix again. and doesn't seem to generate assets (like it used to)
A second run of make build-production results in:

yarn install v1.22.0
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/5] Validating package.json...
[2/5] Resolving packages...
success Already up-to-date.
Done in 0.91s.
yarn production
yarn run v1.22.0
$ NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
/srv/cimonitor/app/node_modules/webpack-cli/bin/cli.js:93
				throw err;
				^

Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (/srv/cimonitor/app/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/srv/cimonitor/app/back-end/domain/cimonitor/VersionChecker.js:2:16)
    at Module._compile (/srv/cimonitor/app/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (/srv/cimonitor/app/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/srv/cimonitor/app/webpack.mix.js:4:24)
    at Module._compile (/srv/cimonitor/app/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (/srv/cimonitor/app/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/srv/cimonitor/app/node_modules/laravel-mix/setup/webpack.config.js:12:1)
    at Module._compile (/srv/cimonitor/app/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (/srv/cimonitor/app/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at WEBPACK_OPTIONS (/srv/cimonitor/app/node_modules/webpack-cli/bin/utils/convert-argv.js:114:13)
    at requireConfig (/srv/cimonitor/app/node_modules/webpack-cli/bin/utils/convert-argv.js:116:6)
    at /srv/cimonitor/app/node_modules/webpack-cli/bin/utils/convert-argv.js:123:17
    at Array.forEach (<anonymous>)
    at module.exports (/srv/cimonitor/app/node_modules/webpack-cli/bin/utils/convert-argv.js:121:15)
    at yargs.parse (/srv/cimonitor/app/node_modules/webpack-cli/bin/cli.js:71:45)
    at Object.parse (/srv/cimonitor/app/node_modules/webpack-cli/node_modules/yargs/yargs.js:567:18)
    at /srv/cimonitor/app/node_modules/webpack-cli/bin/cli.js:49:8
error Command failed with exit code 1.

If I manually execute npm install semver --save and run make build-production again the build goes further and eventually finishes with  DONE  Compiled successfully in 18393ms.

All is fine, until I try to start it:

internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/srv/cimonitor/app/back-end/server.js:1:17)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

After a manual npm install Cypress is being installed and the application works fine. All runs above have been made after removing node_modules just to be sure.

Versions:

node: v10.19.0
yarn: v1.22.0
make: 4.1

Reproduction scenario
See above

@syphernl I pushed an update last night, is that what you're experiencing with that fix? I've ran a make production installation locally successfully last night

Oh by the way, this project uses Yarn, not NPM, but I see some changes now locally too, checking what's going on there

@syphernl I pushed an update last night, is that what you're experiencing with that fix? I've ran a make production installation locally successfully last night

make production or make build-production? The docs say the latter and they didn't work for me without re-running and some other manual tasks.

Oh by the way, this project uses Yarn, not NPM, but I see some changes now locally too, checking what's going on there. You shouldn't be using npm install but yarn install

make build-production is supposed to deal with everything right? The npm install was just in order to (try to) get things back to work.

@syphernl could you give https://github.com/CIMonitor/CIMonitor/pull/162 a try? I fixed the production dependencies, as some of them were in de the devDependencies, that are required for a production build. Maybe start of with a rm -rf node_modules/ just to be sure nothing is in the way of a proper install


Aliasing

I would like to see how this behaves when the user adds/drops a column using SQL API, does this work as expected?


Cluster dashboard: Alerts not showing what object is being alerted about

Internal reference: SURE-3600
Reported in 2.6.1
Alerts such as CPU throttling messages shown in the dashboard does not show what objects are being affected. This removes all value from this alerting dashboard.
Request description:
The user is looking for a summary of the alerts shown in Cluster Dashboard
Actual behavior:
Right now, alerts are displayed in Cluster Dashboard with a message field that is hidden until clicked.
Expected behavior:
A summary of the alert should be displayed to avoid the need of clicking in every alert.
Additional note:
The newly redesigned Prometheus Federator could already be of help here but we'd need to check.

For some reason, when I try to look up the internal ticket, it redirects to a different ticket. Does the ticket still exist?


fix: modernize python code

Updated Ruff and fixed all linter and formatter errors.

It looks good to me


CORE-20867 Implement retry topic to handle persistent transient RPC Client errors

initial draft, no manual test conducted yet

bump activity to avoid closure


Keep syntax highlighting on TextEdit in readonly mode

Now when in readonly mode, the syntax alpha colors will be set to 0.5, the same value used for the default read-only color.
Also took the time to reformat all comments in the file.

Thanks!


Opaque exception for mismatched Datastore projects

See https://github.com/GoogleCloudPlatform/gcloud-python/issues/1693

@bendemaree This should now be fixed --
storage.googleapis.com/gcd/tools/gcd-v1beta3-1.0.1.zip

@pcostell Excellent, thank you!
Based on the Cloud Datastore emulator guides I had inferred that directly using GCD is unsupported since it ships with gcloud; I based that partly on being unable to find a v1beta3 download link like the one you gave here. Is that the case, and if so, any guess on when it will be updated in gcloud?

@bendemaree -- We've transitioned our docs mostly to gcloud since it has a nicer update/install story than a zip download. However, gcloud beta emulators datastore is just backed by gcd.sh, so it isn't unsupported just hidden.
I don't have an update yet on when it will be in gcloud.


How can I takePicture() with front camera only?

Is there any parameter which opens the front camera directly?

Will check if this is possible to implement.


Create control to close the player and exit the current page like Instagram

There is no control in your player to close the video player. For example, suppose we are in full screen mode and we want to stop the whole player and exit it by pressing the close button, like the mode that Instagram has for its own player.

@AhmadFalahian Looks like this change needs to be scoped to just the changes to the player. Please rebase your changes from the latest master changes and re-submit this PR. Thank in advance.


Frame build time regression in flutter_gallery_ios__transition_perf

SkiaPerf is reporting regressions in average and 90th %-ile framebuild times in this benchmark:
https://flutter-flutter-perf.skia.org/e/?begin=1642956908&end=1645923376&keys=X92ead8c5190b5e262a415353fe431d08&requestType=0&xbaroffset=27665
The regression is reported on the Engine roll https://github.com/flutter/flutter/pull/98940, however there is no data for the previous two framework commits:
https://github.com/flutter/flutter/pull/98542 and https://github.com/flutter/flutter/pull/93439, however they don't look too suspicious to me.
It looks like the worst frame time has actually doubled, which is why the average is going up a lot more than the 90th %-ile:
https://flutter-flutter-perf.skia.org/e/?begin=1642789126&end=1645923376&queries=test%3Dflutter_gallery_ios__transition_perf&requestType=0
The Engine roll has mainly Dart and Skia rolls. I'm going to speculate that this is also related to recent SkParagraph changes and cc @jason-simmons.

The warmup version also regressed https://flutter-flutter-perf.skia.org/e/?begin=1645546762&end=1645602561&keys=Xcdef096590ecc6afeb803ae4e6a43c0a&num_commits=50&request_type=1&xbaroffset=27666

Bisected this to https://github.com/flutter/engine/commit/df562b8e2b7eb90b16876d4c50d7480c9294eb93

Created a revert PR.
Based on the discussion in https://github.com/flutter/engine/pull/30664 it looks like the desired effect can be achieved by calling FlutterViewController setViewOpaque:NO
@chinmaygarde @cyanglaz @dnfield

Agree on revert. This is too much of a penalty

The revert has landed. Closing.


Look and feel update

Description
Updated the look&feel (theme) of the delegates explorer, according to delegate website.
Type of change

[x ] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Minor changes (titles, detail links) in delegates_statistics, delegates_voters_list and delegates_information are Not tested!

Hi @xcash-rocks when I tested it, it looks good however I think you need to change the font color of the menu tabs, because you cant see them unless you highlight them with your mouse
picture
If you can change that, and then I can pull it in
Thanks!

Hi @xcash-rocks when I tested it, it looks good however I think you need to change the font color of the menu tabs, because you cant see them unless you highlight them with your mouse
picture

Hi @zachhildreth,
ups, it's fixed, please pull.
commit 13602c78228687b5d0e50ceefa69dc6fed3b1658
fix: sidenav bgcolor from white to primary
TY


python 2 support?

Does the project support Python 2? Or python 3 only?
Thanks!

Was trying python 2.7 and got below error message.
$ python todo.py
Traceback (most recent call last):
  File "todo.py", line 3, in <module>
    from todo.todo import main
  File "/Users/wangxu/Documents/github/todo/source/todo/todo.py", line 23
SyntaxError: Non-ASCII character '\xe2' in file /Users/wangxu/Documents/github/todo/source/todo/todo.py on line 23, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Hello,
The project is only Python 3-compatible indeed.


feat: Add vault tests

coverage: 66.503%. remained the same
when pulling 437cf2e7f2be73acdc2b07d21900751359f225bb on feat/test-vault
into 825bf062ab9006b7e2c2ef97a1915c59ea395aac on main.


feat(networks): remove the ability to create host network

Close #3754

Replaced by https://github.com/portainer/portainer/pull/3771


TryToFixCi

Description
Try to fix the CI failures

OK that was easier than I expected it to be. @kevindougherty-noaa this might be what you need to do in EMCpy too if you didn't get to a workaround yet. All comes back to the fact that we can't install a recent version of Cartopy because the GitHub servers use an old proj. Now we have to fix to an old version of matplotlib too so it's compatible with the old version of cartopy.

I went ahead and fixed the versions of all packages so we don't experience another break to CI. I'm not sure if this is a good thing to do or not since it likely means the CI environment will become quite different from the environment people will work with in practice. At some point someone will want to use a new feature that isn't available in the CI and then we'll have to revisit all this. I guess some testing is better than no testing. Maybe in the long term we should aim to use the spack-stack container in the action.

I've used a JCSDA docker container in github actions before for IODA and it was quite straightforward. If they have a spack-stack container available, we should move to that soon.

Dom is working on a spack-stack container but I don't think it's ready yet.


Double check spelling in surveys

I just found a spelling error in the demographics survey which will cause some issues in data import. https://github.com/Watts-Lab/surveyor/commit/76db62d7310b7023aae712517116e9e6a669c060
@KaranSampath or @TutiGomoka — could you double check the spelling across all the survey instruments and challenges.

I think we have done this a few times now, so marking complete.


umask 0027 and 'Permission denied' errors

When running the docker daemon with a umask of 0027, it's not possible to use a non-root user inside the container, since all directories below /var/lib/docker/<driver>/mnt have a corresponding permission mask (0750). On purpose?
The following Vagrant setup demonstrates the behavior:
# vagrant up
# vagrant ssh -- docker run ubuntu "bash -c 'useradd user ; sudo -u user whoami'"
$script = <<SCRIPT
set -e
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
echo deb https://get.docker.com/ubuntu docker main >/etc/apt/sources.list.d/docker.list
apt-get update
apt-get install -y -q lxc-docker
usermod -a -G docker vagrant
echo umask 0027 >>/etc/init/docker.conf
service docker restart
SCRIPT
Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.provision "shell", inline: $script
end

Actual result:
$ vagrant up
$ vagrant ssh -- docker run ubuntu "bash -c 'useradd user ; sudo -u user whoami'"
[...]
sudo: unable to execute /usr/bin/whoami: Permission denied

Expected result:
[...]
user

I'm not sure I understand the issue.
Setting a umask of 0027 would mean that all dirs are created as 750 and all files as 640.
Closing.


CSUB-881: creditcoin-next utils/ needs to be removed or it needs integration tests

Description of proposed changes
Remove utils directory

Practical tips for PR review & merge:

[ ] All GitHub Actions report PASS
[ ] Newly added code/functions have unit tests

[ ] Coverage tools report all newly added lines as covered
[ ] The positive scenario is exercised
[ ] Negative scenarios are exercised, e.g. assert on all possible errors
[ ] Assert on events triggered if applicable
[ ] Assert on changes made to storage if applicable

[ ] Modified behavior/functions - try to make sure above test items are covered
[ ] Integration tests are added if applicable/needed

FTR I think MegaLinter is failing on utils/README.md because the file has been removed but it still tries to scan it for errors! This can be safely ignored.


Receiving only last image selected and few queries

Hi,
I'm using this plugin for multiple image upload with thumbnail and delete button. JFiler plugin is wonderful and it helped me out of the box.
I have few queries, please let me know anyone faced this issue earlier, I request you to share your thought and workaround.

Html code generated by Jfiler

 Attach Photographs

Above snippet is used to upload multiple images, but i receive form data only for last image selected, Please let me know how to get all image data to pass to server via JSON.

After image uploaded to server, can i re-render the images with thumbnail and show in the JFiler container with some animation effects.

When user open the page, i want to show the images which are uploaded earlier.

Do i need to call
    $("#input_file").filer({
    });

again to render the html template with images or which is correct way to initialize it when page loads.

When i use $("#input_file").filer(); it is creating more  html tag inside JFiler. Due to this, more file upload dialog box opened when you click on "Attach Photographs" button.

Looking for your support as soon as possible. Thanks

try this:
uploadFile: {
success: function(data, el){
console.log(arguments);
}
}


Fix passing AWS creds through Dapper

Proposed Changes
Fix CI artifact upload. https://github.com/k3s-io/k3s/pull/6497 missed a reference.
Types of Changes
ci bugfix
Verification
Confirm that artifacts are uploaded
Testing
Linked Issues
n/a
User-Facing Change
NONE

Further Comments

Merging now. Still waiting on EIO to get the secrets added to drone-pr and made available to PRs on both.


Snap Key Not Working with Valorant on Any Key (Snap Tap v1.2.1)

I'm experiencing an issue with the Snap Key feature in Snap Tap version 1.2.1. When using the Snap Key with Valorant, the functionality doesn't work regardless of the key I bind it to. This issue persists across all key bindings.
Steps to Reproduce:
Open Snap Tap (v1.2.1).
Set up a Snap Key for use with Valorant.
Attempt to use the Snap Key in-game with any key binding.
Observe that the Snap Key does not function as expected.

Expected Behavior:
The Snap Key should trigger the assigned action in Valorant when the bound key is pressed.
Actual Behavior:
The Snap Key does not trigger any action in Valorant, regardless of the key binding.
Additional Information:
Snap Tap Version: v1.2.1
Operating System: windows 11

It sounds like the issue may be related to your setup or keyboard layout, rather than SnapKey itself. Could you please provide more information, such as:

Your keyboard layout.
Please provide a screenshot or the copy the content of your current config.cfg file.
Have you tested SnapKey in other games? If so, what were the results?
Please test SnapKey's functionality (WASD by default) using this tool: https://drakeirving.github.io/MultiKeyDisplay/
Ensure that the KeyCodes are correct by checking them here: https://www.toptal.com/developers/keycode

Also, check out the SnapKey Wiki and the Rebinding Keys guide here: https://github.com/cafali/SnapKey/wiki/Rebinding-Keys

If you've tried other games and the SnapKey is actually working fine. Then it's clear that it's how Valorant movement works in the game.
I've tried using AHK scripts before, and I quickly noticed that SnapTap doesn't work in Valorant, as counter-strafing behaves the same with or without SnapTap enabled.
However, if you hold the A key and then press D, you'll notice that the counter-strafing becomes instant. This seems to be just how Valorant handles movement. Unlike CS2, the model will counter strafe instantly the moment you pressed the opposite key.
I suggest you try test this scenario on both CS2 and Valorant without SnapKey. Try perform the counter strafe and you'll see that CS2 strafe much more faster than Valorant does.

If you've tried other games and the SnapKey is actually working fine. Then it's clear that it's how Valorant movement works in the game.
I've tried using AHK scripts before, and I quickly noticed that SnapTap doesn't work in Valorant, as counter-strafing behaves the same with or without SnapTap enabled.
However, if you hold the A key and then press D, you'll notice that the counter-strafing becomes instant. This seems to be just how Valorant handles movement. Unlike CS2, the model will counter strafe instantly the moment you pressed the opposite key.
I suggest you try test this scenario on both CS2 and Valorant without SnapKey. Try perform the counter strafe and you'll see that CS2 strafe much more faster than Valorant does.

I think what @happychristian777 means is that SnapKey is not canceling the last pressed key when a new key is pressed, as it should. The SnapKey functionality isn't working for him regardless of Valorant movement; the functionality should be there.

Hi,
so my keyboard layout is 75% (84-key) keychron k2 v2
screenshot: config.cfg
[image: image.png]
i've tested it:https://drakeirving.github.io/MultiKeyDisplay/ and it works
fine here
maybe valorant is blocking SnapKey
On Fri, Aug 16, 2024 at 9:32 PM cafali @.***> wrote:

If you've tried other games and the SnapKey is actually working fine. Then
it's clear that it's how Valorant movement works in the game.
I've tried using AHK scripts before, and I quickly noticed that SnapTap
doesn't work in Valorant, as counter-strafing behaves the same with or
without SnapTap enabled.
However, if you hold the A key and then press D, you'll notice that the
counter-strafing becomes instant. This seems to be just how Valorant
handles movement. Unlike CS2, the model will counter strafe instantly the
moment you pressed the opposite key.
I suggest you try test this scenario on both CS2 and Valorant without
SnapKey. Try perform the counter strafe and you'll see that CS2 strafe much
more faster than Valorant does.
I think what @happychristian777 https://github.com/happychristian777
means is that SnapKey is not canceling the last pressed key when a new key
is pressed, as it should. The SnapKey functionality isn't working for him
regardless of Valorant movement; the functionality should be there.
—
Reply to this email directly, view it on GitHub
https://github.com/cafali/SnapKey/issues/63#issuecomment-2293768232, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ALGXOTSOQOK7JX6TBIDTCZDZRYPB7AVCNFSM6AAAAABMUGTKW6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJTG43DQMRTGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

unable to replicate on SnapKey 1.2.1 and a Tofu60 - nothing in Valorant patch notes about blocking this feature/program either

screenshot: config.cfg
[image: image.png]

please fix your image attachment and double check if your config is set-up properly

on a secondary note, if the keys themselves stop working entirely, then we might have a situation of Valorant blocking synthetic inputs - if you can please be a little more specific as to what isn't working

There is no effect after turning on of snap key with valorant i’ve tested
it on other tools, it works fine but not in valorant so maybe vanguard or
something blocking your app
On Fri, 16 Aug 2024 at 11:35 PM, mintea @.***> wrote:

on a secondary note, if the keys themselves stop working entirely, then we
might have a situation of Valorant blocking synthetic inputs - if you can
please be a little more specific as to what isn't working
—
Reply to this email directly, view it on GitHub
https://github.com/cafali/SnapKey/issues/63#issuecomment-2293935323, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ALGXOTVYCUW4HCC4URQRCDDZRY5NNAVCNFSM6AAAAABMUGTKW6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJTHEZTKMZSGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

can't confirm without proper demonstration and so far nobody else within this issue report has been able to replicate this behavior - on this note we'll keep an eye on Vanguard compatibility but this cannot be listed as a bug

We’ll move your issue to discussions to get more feedback from others since we couldn’t recreate the problem and it seems to be working fine for others.


generated pom not uploaded

Hi!
I just integrated your plugin to my project and everything works great expect for one thing.
I see that everything is uploaded except the pom file. Do you have any idea why?
Still investigating ..

Do you have publishMavenStyle := true in your build.sbt file?

No I don't. Let me try that

It works! Thank you so much and your plugin rocks!