App+driver for Panasonic HVAC units / Panasonic comfort cloud

Hi There, i have succesfully created control for my Panasonic heatpump nz25-vke which Can be controlled via API through the Panasonic Comfort Cloud...
I have done This by making the post requests in WebCore connected to virtuel button

However, i would like to create a real app / driver for Hubitat...
Since there is a lot of Logic stored in the webcore Code for this to work as intended...

Where to start ?

The post strings are fairly simple, so it would need and app to create the user and password for tolken, and create an aircondition device, which exposes heat/Cooling level, fan level, swing, mode...

Perhaps there already is some driver i Can rewrite?

Best Regards
Dion, loving Hubitat!

3 Likes

If anyone is interested the POST queries for ComfortCloud:

Following URLS must be used:
@aircon_login_url = https://accsmart.panasonic.com/auth/login/
@aircon_control_url = https://accsmart.panasonic.com/deviceStatus/control/
@aircon_status_url = https://accsmart.panasonic.com/deviceStatus/

authorization header:

'{
"X-APP-TYPE": "1",
"X-APP-VERSION": "2.0.0",
"Accept":"application/json",
"Content-Type":"application/json",
"X-User-Authorization": "{@aircon_uToken}"
}'

Body contents

{"deviceGuid":"CS-NZ25VKE+4971106100","parameters":{"operate":1,"operationMode":{current_operation_mode},"ecoMode":null,"temperatureSet":{current_temperatureset},"airSwingUD":2,"airSwingLR":2,"fanAutoMode":null,"fanSpeed":3}}

the token must be refreshed every night.

the post request for controlling

ref for the API:

1 Like

Hi @diondp I'm trying to create the POST queries for ComfortCloud like you have posted. I am using ST and not Hubitat, but this should make no difference? Could you please post a copy of your WebCore piston so I can make it working for me? Takk!

please make sure that you have a secondary login for the ComfortCloud, otherwise this script will log you out every time from the normal ComfortCloud (thats just the way they handle Tokens)

I have one which i use for my comfortcloud, and a secondary which i then use for this WebCore piston... then it works without any problems

note this piston will fetch a new Token at every run, but this is just so you can see a working example... i have made a seperate piston to refresh the token once every 4 hours or so... and update it to a global var in WebCore

the DeviceGuid is also fetched at every run, but in my experience this is static, so once fetched, you can just hardcode that part (everything is posted to the log and variables in my piston)

replace the login and password with your own values, and see the magic (just run the piston by pressing "Test"), change the on_off_status to 0 and runt "Test" again to turn off the device.

you would make a trigger on the last "POST" part to trigger the aircondition.. it could be a button, or a seperate piston... i have made som Variables which you can change... temperature, mode (heating/cooling) and operate (on/off), fanspeed 1-5

operation_mode: 2 = Cooling, 3 = Heating.

the other variables shouldnt be touched (aircon:_token, and deviceGuid is automatically updated by the JSON request)

Thank you so much for your help @diondp However I cannot seem to get this to work. I have imported your Piston and added my secondary login for ComfortCloud with password. I have been using this same login and password before and know it is working.

When I test the piston I see the deviceGuid is missing in the log. Attached a picture of the logfile panasonic_aircon_log|690x397
Hope you can help,

PS: er du forresten dansk? Jeg er norsk - jeg kan også sende deg mitt Panasonic brukernavn og passord for innlogging om du trenger dette for å teste. Send meg en PM

Also I should mention this. When importing your piston I get promted to insert 3 different URLs. Maybe this is the reason why it's not working
t56h_import|690x319

Yes jeg er Dansk :slight_smile:

har du fundet de URLs der skal bruges?

Med deviceGuid, der kan du evt prøve at fjerne variablerne så det kun er {response} der vises..

Så kan du lige se i loggen om den viser noget feedback...

Når du mener "har du fundet de URLs der skal bruges" mener du da disse?
panasonic_urls|513x51

Kan du også forklare meg hvilken linje jeg må endre på og hva jeg må endre for at det kun er {response} som skal vises for deviceGuid?

Jeg er helt "grønn" på webcore, setter pris på din hjelp!

Ja det er de urls der skal bruges...

Den der hedder {$response.grouplist.devicelist.deviceguid}
Prøv at ændre den til
{$response}

Og giv mig et screenshot af loggen...

Henter den en token som den skal?

Endret linje 34 til Log info "{response}"; men det ser ikke ut som om den henter noen token når jeg ser på loggen panasonic_aircon_log|690x418

I've just installed two Panasonic units in my house that I can control via the comfort cloud app - this sounds like it might work. How did it go in the end, everything work out ok?

No, unfortunately I never managed to get this to work. If you get it working I would appreciate if you could let me know!

I had next to no luck unfortunately! I saw that home assistant crowd has theirs working. Wonder if we could use that and convert it to groovy... Probably not now I think about it

Hope we can get som help from @diondp

i did not have much time lately as i am very busy at work, and at home with small children....

i have the aircondition working by webcore through some json webcalls to the comfortcloud api, i have little to no experience in groovy, but i suspect it could be fairly easy to manage if there is an example guide with a http call in some driver...