Panasonic Comfort Cloud binding

Hi,

I got this after a restart of my OH3-server.
Can’t get the heater to go online, its “HANDLER_INITIALIZING_ERROR”
The cloud service is online.
Any idea whats up?

Exception occurred while initializing handler of thing 'panasoniccomfortcloud:aircondition:e05970b697:CS-HZ35XKE-"RemovedMySerial"': null
java.lang.NullPointerException: null
	at org.openhab.binding.panasoniccomfortcloud.internal.model.Device.mergeFromDeviceDetails(Device.java:83) ~[?:?]
	at org.openhab.binding.panasoniccomfortcloud.internal.handler.PanasonicComfortCloudBaseThingHandler.loadFromServer(PanasonicComfortCloudBaseThingHandler.java:67) ~[?:?]
	at org.openhab.binding.panasoniccomfortcloud.internal.handler.PanasonicComfortCloudAirconditionHandler.lambda$0(PanasonicComfortCloudAirconditionHandler.java:81) ~[?:?]
	at java.util.Optional.ifPresent(Optional.java:183) ~[?:?]
	at org.openhab.binding.panasoniccomfortcloud.internal.handler.PanasonicComfortCloudAirconditionHandler.initialize(PanasonicComfortCloudAirconditionHandler.java:80) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]

Could you verify that you are running the latest version as this was supposed to be fixed some weeks ago.

Cheers

3.4.0.202207220924
:slight_smile:

Added a new version with a few minor fixes, see changelog at top.

I use a CZ-TAW1 to connect my WH-MDC07J3E5 in the panasonic cloud.

The thing shows

Error retrieving data from server: Error sending request to server. Server responded with 403 and payload {“message”:“Have no authority to the request”,“code”:4300}

Would there be future extensions possibe for heat pumps or would there only information about target temperature / outdoor temperature be possible?

Have not seen this error message before. Could you enable debug logging for the binding and send the logs to me in a PM?

The model in question is a air to water heat pump which uses a different API. Currently unsupported.

New version released with bumped API version number.

1 Like

My problem above (HANDLER_INITIALIZING_ERROR) is now resolved. Thank you!
I had to remove and reinstall the binding to get it working.
Is this necessary in the future or should the binding auto-update?

I actually have no idea of how updating happens via marketplace :innocent:. But apparently something I need to look into. I also noticed the binding getting stuck the last time now, and had to force stop it.

Will look into it at some point in time.

No worries :blush:
I’m just happy to get my heatpump going again :ok_hand:
Thanks again.

I’m having mixed success with this.

Openhab 3.3.0
Binding installed through UI.

Bridge thing is online, so is the aircon thing itself.

I’ve created and linked the relevant items. They show the correct information and track what the air con is doing (i.e. when I switch it off, the master switch changes to off eventually; same with the temperature set point).

However, it does seem to work unidirectionally only.

When I change the master switch to OFF, the air con doesn’t react. The switch comes back on after a short while.

When I change the setpoint, same thing. It updates back to current values after a short while.

I’ve restarted the binding to no avail.

Has anybody experienced the same?

Hi @mri_ice,

could you set the log level to DEBUG for this binding and post the logs as a private message?

Arne

Hi @seime,

Thank you so much.

I’ve set the log level to DEBUG but don’t see anything specific to this binding logged to openhab.log at all.

What am I doing wrong?

Try reloading the bundle. Should produce something in your log file. If not check your log4j xml file.

Many thanks. I ended up logging to a separate file through the log4j config.

This is where it errors:

2022-11-11 19:15:32.281 [DEBUG] [sonicComfortCloudAirconditionHandler] - Error updating AC parameter
org.openhab.binding.panasoniccomfortcloud.internal.CommunicationException: Error sending request to server. Server responded with 500 and payload {"message":"Adapter internal error","code":5006}

I’ll PM you the full log file.

API changed, bundle updated.

Includes fix for @mri_ice issue + a regression regarding temperature setpoint

Star, thank you. Working now!

Exploring a little more now it’s working.

This might well be user error, but what is the intended way to change multiple parameters at once?
Let’s say the aircon was last used for cooling, so current settings:

Power = Off
Mode = Cool
Target Temp = 20

I want to heat now. If I send just a single command (i.e. power = ON), that command is received fine. But what if I need to send multiple?

Observed behaviour:

With the current settings as above, I send OpMode = HEAT, TargetTemp = 22, Power = ON to the relevant items.

OpenHAB Items change to their desired value.
AirCon registered correct first value (in my case OpMode = HEAT). But then when TargetTemp = 22 is sent (even though OpMode is correctly showing as HEAT in OpenHAB), this reverts back to COOL (which it was originally). OpenHAB values eventually change to match AirCon when the next set of values are received.

In the logs:

2022-11-12 22:23:19.188 [DEBUG] [soniccomfortcloud.internal.ApiBridge] - {
  "deviceGuid": "xxxx",
  "parameters": {
    "operationMode": 3,
    "operate": 0
  }

(sending “HEAT” → opMode = 3)

Then sending 22 Degrees:

2022-11-12 22:23:19.814 [DEBUG] [soniccomfortcloud.internal.ApiBridge] - {
  "deviceGuid": "xxxx,
  "parameters": {
    "operationMode": 2,
    "temperatureSet": 22.0,
    "operate": 0
  }
}

OpMode becomes 2 again.

If I wait 1-2 minutes between sending each command, everything seems works well.

Am I trying to use this the wrong way or is this a binding issue?

I probably need to do some bigger changes to the binding then. Until a few days ago the approach was to send all parameters at once, but the API started rejecting that. I see in the current Android app that only a few parameters are sent at the same time, depending on the state in the app.

Regards