Mitsubishi Electric Kumo Cloud Binding (MHK2)

I’m sure this is probably all expected behavior, but in case it helps in thinking about a workaround: The below pattern of entries shows up in my openhab.log before every communication failure, and then repeats every 3 seconds for three times, then a ~30 second pause, then another 3x, then 30 second pause, and so on until the connection comes back online.

2024-05-28 19:10:21.361	
	at org.openhab.binding.mitsubishikumocloud.internal.MitsubishiKumoCloudBaseHandler.sendRequest(MitsubishiKumoCloudBaseHandler.java:93) ~[?:?]



2024-05-28 19:10:21.361	
	at org.openhab.binding.mitsubishikumocloud.internal.MitsubishiKumoCloudDeviceHandler.updateData(MitsubishiKumoCloudDeviceHandler.java:204) ~[?:?]
2024-05-28 19:10:21.361	
	at org.openhab.binding.mitsubishikumocloud.internal.MitsubishiKumoCloudBaseHandler.retrieve_attributes(MitsubishiKumoCloudBaseHandler.java:216) ~[?:?]
2024-05-28 19:10:21.361	
	at org.openhab.binding.mitsubishikumocloud.internal.MitsubishiKumoCloudBaseHandler.make_request(MitsubishiKumoCloudBaseHandler.java:142) ~[?:?]
2024-05-28 19:10:21.361	
	at org.openhab.binding.mitsubishikumocloud.internal.MitsubishiKumoCloudBaseHandler.sendRequest(MitsubishiKumoCloudBaseHandler.java:107) ~[?:?]
2024-05-28 19:10:21.361	
org.openhab.binding.mitsubishikumocloud.internal.KumoCloudCommunicationException: java.util.concurrent.ExecutionException: java.net.NoRouteToHostException: No route to host
2024-05-28 19:10:21.361	
2024-05-28 19:10:21.128 [WARN ] [nal.MitsubishiKumoCloudDeviceHandler] - Communication Failure: java.util.concurrent.ExecutionException: java.net.NoRouteToHostException: No route to host

Hi-

Yes, those are “normal”: If a request fails, it’s retried 2 times in case a temporary glitch causes the problem. The errors you’re seeing are happening because the device has actually dropped off the network, most likely because it’s rebooting.

The fix is easy. Turn off logging for the binding. I’ve been using for a while, and before that the homeassistant equivalent, and despite a noisy log, all has been stable.

@kjknauss It seems like that would just stop me from seeing the when the device goes offline and then online again. Unfortunately, that’s not the problem. I don’t care if it’s just something I see in the logs.

In this case, every time the device loses and regains connection, it turns on the heat pump. This afternoon it was happening repeatedly: the heat pump comes on–even though the current temperture is above the setpoint–it runs for about 5 to 10 minutes, then shuts off until the next offline/online cycle. When things are bad, that’s often 5 minutes later. With the ultimate effect that the heat pump and the blower fan are running far more than they have to, and the house stays a few degrees above the setpoint.

My main concerns are wear and tear on the system, and overall energy usage. So now I’m considering creating a workaround where, if the house temp is more than a degree higher than the heat setpoint, I turn the system mode to off. (When it’s set to off it doesn’t run a cycle every time the device loses connection). And then I’ll just turn it on again when the temp gets back down to the setpoint, or maybe a degree under the setpoint.

It’s either that or stop using the binding and/or kumocloud. When I deactivate the binding, the system still does the seemingly pointless cycles now and then, but it’s more like once an hour or two instead of 4 or 5 times an hour. So now I’m looking into the “Mitsubishi2MQTT” interfaces that some folks have put together, and meanwhile keeping an eye out for Mitsubishi’s replacement to kumocloud.

@hww3 Thanks again for your help with this. I’ve managed to keep the kumocloud device crashes down to reasonably minimal by setting the refresh to 600 seconds, and turning off the system when it’s reasonable to do so.

Now I’m working on an automation that involves setting the mode to “fan”. The trouble is that every time I try to set the system mode to “fan”, the fan doesn’t come on, and the system mode changes back to whatever it was before, after about a second or two.

I’ve noticed that when set the mode to fan manually (either via the thermostat or via the kumocloud app), the system mode in openHAB says “vent”. So I tried setting the system mode to “vent” in openHAB, but with the same result: It changes back after a moment, and the system doesn’t go into fan/vent mode.

I’m wondering if this is something that you’ve run across before? Is it another kumocloud bug/limitation? Or could there be something in the binding that is causing this to fail?

Hi-
It seems that Mitsubishi calls this vent (or ventilation some places) mode rather than fan. I’ve updated this mapping and it seems like it works now. Please remove your old binding jar and replace it with this one (assuming you’re running 4.0.x, if you’re running 4.1, let me know and I’ll put together one for 4.1).

http://bill.welliver.org/dist/openhab/org.openhab.binding.mitsubishikumocloud-4.0.2-SNAPSHOT.jar

Thanks! I’m actually running OH 4.3.0M3 at the moment due to some new Z-wave remotes that weren’t available in the stable release, yet. When I upgraded to 4.3.0M3, your binding continued working as it had been, even though it’s labeled as being for 4.0.2.

So, I went ahead and installed the one you just posted, to see if it would work, too. And it does! Except that the fan/vent functionality still fails by switching back to the prior setting every time.

Steps I took:

I removed the old version by changing the extension to .bak instead of .jar
I used curl to pull in the new version to the addons folder
I checked the OH UI to see if everything was still working, and it was–except for fan mode.
I then restarted OH in case it somehow hadn’t properly refreshed to the new version of the binding.
Same result. Everything works great except the fan mode.
Just to be sure, I then deleted my heatpump Thing and re-added it with the same name. Everything repopulated as expected, and I finally saw the channels for the schedule stuff that I hadn’t gotten before because the 4.1.2 version of that update that I tried at the time didn’t work for me. But because I saw those channels, I can confirm that this is definitely the new version of the binding running.

The way that I tried to set fan mode:
In the system mode item, I clicked on the current mode string, and a little menu of options popped up at the bottom. I selected “Fan”, and the mode changed to “Fan” for about a second, and then changed back to Off.
I also tried sending “fan”, "“Fan”, “vent”, “Vent” and “ventilation” via the REST API (via node-RED, where I do most of my “programming”.) Same results.

I also tried with my HVAC-related node-RED flow disabled, to make sure it wasn’t a bug in my own rules causing this to fail.

Interesting. Is it possible the new version isn’t actually running? Can you run the following from the console?

openhab> bundle:list | grep umo

You should get something like this (the version and the fact that it’s active are the parts we’re interested in):
248 │ Active │ 80 │ 4.0.2.202406182115 │ openHAB Add-ons :: Bundles :: MitsubishiKumoCloud Binding

Here’s the result I got:

335 x Active x  80 x 4.0.2.202406182115    x openHAB Add-ons :: Bundles :: MitsubishiKumoCloud Binding

So, it looks like the new version is definitely running.

Hmm. Away from my usual computer so doing this from memory…

Could you turn debugging on for the binding?

log:set DEBUG org.openhab.binding.mitsubishikumocloud

and then try setting vent/fan mode? The UI should display the mode option as “Fan” but the command sent should be “vent”. I’ve confirmed that works here.

Also, can you look at your think properties and make sure that there’s a property that says that ventilation mode is supported? Apparently it’s not always available on every unit.

Hello all,

I haven’t started updating my system to OpenHAB 4.2, but in case you have and run into difficulty getting it to start up, I’ve recompiled this binding against the 4.2 libraries. No other changes were made, so hopefully things won’t break. If you try this and run into any problems (or it works, for that matter), please let me know!

http://bill.welliver.org/dist/openhab/org.openhab.binding.mitsubishikumocloud-4.2.0.jar

Hi Chad-

I think I’ve reached a point of maximum frustration dealing with the Mitsubishi hardware going offline, so I’m exploring the possibility of putting together an alternate interface and binding for controlling these devices without having to go through the KumoCloud/RedNet hardware. Others have gone down this path and report success, but it’s a more home-brewed solution. I’d like to get a more professional PCB put together along with a proper OpenHAB binding. It’s possible to get a “CN105 splitter” so that you can just plug it in next to your existing Kumo device. Will probably take a month or two for me to get that put together but will report back here when I have something to show.

Bill

Awesome, I’m definitely interested in that alternate interface option. I’ll keep an eye out for your update!

Not sure how I missed it, but I didn’t see your response about turning on debugging until just now. In case it matters at all, I turned on debug mode and tried setting fan/vent mode. Same as always, it appears to work, but then switches back to whatever the last setting was. In the logs, it appears to send an empty request? I’m not used to reading these debug-level logs. But it looks like the request is empty–at least that’s how I interpret the line that says “post_data {“c”:{}}”. And the response says that the mode is “cool” instead of “vent.”

I definitely have “hasmodevent = true” in the debug logs. And I can set the mode to vent reliably if I do it manually via the MHK2 or KumoCloud. In that case, it shows up as “vent” in the openhab logs and “Fan” in the UI. I just can’t seem to set it that way from openHAB.

Here’s the debug output of setting mode to fan via the UI:

2024-07-10 12:05:43.666 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - updateData
2024-07-10 12:05:43.666 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - password=[redacted], cryptoSerial=[redacted]
2024-07-10 12:05:43.666 [DEBUG] [subishikumocloud.internal.KumoHelper] - buffer has remaining 0
2024-07-10 12:05:43.666 [DEBUG] [subishikumocloud.internal.KumoHelper] - Token: [redacted]
2024-07-10 12:05:43.666 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - post_data  {"c":{}}
2024-07-10 12:05:43.666 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - url http://192.168.1.102/api?m=[token-redacted]
2024-07-10 12:05:43.666 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - attempt: 1
2024-07-10 12:05:43.667 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - sendRequest: requesting http://192.168.1.102/api?m=[token-redacted]
2024-07-10 12:05:43.889 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - Response code 200
2024-07-10 12:05:43.889 [DEBUG] [nal.MitsubishiKumoCloudDeviceHandler] - sendRequest: response {"r":{"indoorUnit":{"status":{"roomTemp":22,"mode":"cool","spCool":22,"spHeat":16,"vaneDir":"horizontal","fanSpeed":"quiet","tempSource":"unset","activeThermistor":"unset","filterDirty":false,"hotAdjust":false,"defrost":false,"standby":false,"runTest":0,"humidTest":0},"info":{},"settings":{"rawITPFrame":{"frame":"fc61013010000000000000000000000000000000005e","len":22,"id":0}},"profile":{"hasModeDry":true,"hasModeHeat":true,"hasVaneDir":false,"hasVaneSwing":false,"hasModeVent":true,"hasFanSpeedAuto":true,"hasInitialSettings":true,"hasModeTest":true,"numberOfFanSpeeds":3,"extendedTemps":true,"usesSetPointInDryMode":true,"hasHotAdjust":true,"hasDefrost":true,"hasStandby":true,"maximumSetPoints":{"cool":30,"heat":28,"auto":28},"minimumSetPoints":{"cool":19,"heat":10,"auto":19}},"initialSettings":{"1":2,"2":3,"3":1,"4":1,"5":0,"6":0,"7":3,"8":3,"9":0,"10":1,"11":1,"12":1,"13":2,"14":0,"15":2,"16":1,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":1,"24":1,"25":2,"26":1,"27":2,"28":2,"29":255,"30":255,"31":255},"schedule":{"events":{"1":{"active":false,"inUse":true,"day":"SuMoTuWeThFrSa","time":"0800","settings":{"mode":"heat","spCool":null,"spHeat":17.500000,"vaneDir":"auto","fanSpeed":"auto"}},"2":{"active":false,"inUse":true,"day":"SuMoTuWeThFrSa","time":"2200","settings":{"mode":"heat","spCool":null,"spHeat":15.500000,"vaneDir":"auto","fanSpeed":"auto"}},"3":{"active":false,"inUse":true,"day":"SuMoTuWeThFrSa","time":"0630","settings":{"mode":"heat","spCool":null,"spHeat":16.500000,"vaneDir":"auto","fanSpeed":"auto"}},"4":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"5":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"6":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"7":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"8":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"9":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"10":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"11":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"12":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"13":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"14":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"15":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"16":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"17":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"18":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"19":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"20":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"21":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"22":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"23":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"24":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"25":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"26":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"27":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}},"28":{"active":false,"inUse":false,"day":"","time":"0000","settings":{"mode":"heat","spCool":null,"spHeat":null,"vaneDir":"auto","fanSpeed":"auto"}}}},"errorHistory":{"errors":{"1":{"error2char":"A0","error4char":32768,"timestamp":1720636802},"2":{"error2char":"A0","error4char":0,"timestamp":0},"3":{"error2char":"A0","error4char":0,"timestamp":0},"4":{"error2char":"A0","error4char":0,"timestamp":0},"5":{"error2char":"A0","error4char":0,"timestamp":0},"6":{"error2char":"A0","error4char":0,"timestamp":0},"7":{"error2char":"A0","error4char":0,"timestamp":0},"8":{"error2char":"A0","error4char":0,"timestamp":0},"9":{"error2char":"A0","error4char":0,"timestamp":0},"10":{"error2char":"A0","error4char":0,"timestamp":0}}},"prohibits":{"global":{"power":false,"mode":false,"setpoint":false},"local":{"power":false,"mode":false,"setpoint":false},"effective":{"power":false,"mode":false,"setpoint":false}},"acoil":"__action_failed"},"adapter":{"status":{"localNetwork":{"stationMode":{"RSSI":-41,"SSID":"ufo-extras"}},"autoModePrevention":false,"userMinCoolSetPoint":20,"userMaxHeatSetPoint":25.500000,"name":"House","runState":"normal","uptime":1554,"roomTempOffset":0,"password":"__invalid_api_request","userHasModeDry":true,"userHasModeHeat":true,"ledDisabled":false,"serverHostname":"geo-rev2-b.kumocloud.com","receiverRelay":"MHK2"},"info":{"macAddress":"24:CD:8D:58:3A:03","serialNumber":"3634P0087100269F","isTestMode":false,"firmwareVersion":"02.06.12","hardwareVersion":"00.00.02"},"led":{"1":{"onPeriod":"__ungettable","offPeriod":"__ungettable","count":"__ungettable","delay":"__ungettable","repeat":"__ungettable"},"2":{"onPeriod":"__ungettable","offPeriod":"__ungettable","count":"__ungettable","delay":"__ungettable","repeat":"__ungettable"}},"autodry":{"enable":false,"targetHumid":60,"overcool":1.500000,"offset":4,"active":false}},"time":"__function_removed","wallClock":{"posix":1720638336,"offset":-25200,"nextChange":1730624400,"nextOffset":-28800,"local":"Wed Jul 10 12:05:36 2024"},"initialSettings":{},"users":"__not_implemented","userCredentials":{},"test":{"button1count":0,"button2count":0,"spiFlashResult":"failed","ssid":"KUMO-583A03","ble":{"lastStartup":0,"lastStackReadyStatus":0,"lastObserveStatus":0,"stackReadyEventCount":0,"scansCompleted":0,"report":{"broadcaster":0,"magic":0,"rssi":0,"battery":0}}},"memoryChecksum":{"offset":0,"length":0,"count":0},"fwUpgrade":{"firmwareVersion":"__not_implemented","hardwareVersion":"__not_implemented","downloadURL":"__not_implemented","downloadMAC":"__not_implemented"},"provision":"__invalid_api_request","eqc":{"reporting":{"1":"","2":"","3":"","4":"","5":""},"heatModeDisable":false,"connected":false,"oat":null,"tempSource":"tb24","sourceReport":{"serial":"__ungettable","roomTemp":"__ungettable","setPoint":"__ungettable","error":"__ungettable","mode":"__ungettable","defrost":"__ungettable","humidity":"__ungettable"},"channels":{"1":{"permission":"off","status":"off","sourceZone":{"serial":"","setPoint":0,"roomTemp":0,"mode":0,"error":false,"defrost":false,"humidity":null},"ductHeater":false,"type":"unset","heaterOptions":{"lockout":0,"hpBalance":0,"stage":0,"delay":0},"depZones":{"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""},"ventOptions":{"airCycle":0,"duration":0,"remaining":0,"start":"0000","end":"0000"},"ductHumid":false,"humidOptions":{"auto":false,"autoset":0},"hydronicOptions":{"lockout":0,"hpBalance":0,"delay":0,"bumpDuty":0,"bumpPeriod":0,"bumpTime":"0000","bumping":false}},"2":{"permission":"off","status":"off","sourceZone":{"serial":"","setPoint":0,"roomTemp":0,"mode":0,"error":false,"defrost":false,"humidity":null},"ductHeater":false,"type":"unset","heaterOptions":{"lockout":0,"hpBalance":0,"stage":0,"delay":0},"depZones":{"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""},"ventOptions":{"airCycle":0,"duration":0,"remaining":0,"start":"0000","end":"0000"},"ductHumid":false,"humidOptions":{"auto":false,"autoset":0},"hydronicOptions":{"lockout":0,"hpBalance":0,"delay":0,"bumpDuty":0,"bumpPeriod":0,"bumpTime":"0000","bumping":false}},"3":{"permission":"off","status":"off","sourceZone":{"serial":"","setPoint":0,"roomTemp":0,"mode":0,"error":false,"defrost":false,"humidity":null},"ductHeater":false,"type":"unset","heaterOptions":{"lockout":0,"hpBalance":0,"stage":0,"delay":0},"depZones":{"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""},"ventOptions":{"airCycle":0,"duration":0,"remaining":0,"start":"0000","end":"0000"},"ductHumid":false,"humidOptions":{"auto":false,"autoset":0},"hydronicOptions":{"lockout":0,"hpBalance":0,"delay":0,"bumpDuty":0,"bumpPeriod":0,"bumpTime":"0000","bumping":false}},"4":{"permission":"off","status":"off","sourceZone":{"serial":"","setPoint":0,"roomTemp":0,"mode":0,"error":false,"defrost":false,"humidity":null},"ductHeater":false,"type":"unset","heaterOptions":{"lockout":0,"hpBalance":0,"stage":0,"delay":0},"depZones":{"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""},"ventOptions":{"airCycle":0,"duration":0,"remaining":0,"start":"0000","end":"0000"},"ductHumid":false,"humidOptions":{"auto":false,"autoset":0},"hydronicOptions":{"lockout":0,"hpBalance":0,"delay":0,"bumpDuty":0,"bumpPeriod":0,"bumpTime":"0000","bumping":false}}}},"sensors":{"subsysActive":true,"systemEnabled":true,"scansCompleted":148,"0":{"uuid":null,"rssi":null,"txPower":null,"battery":null,"temperature":null,"humidity":null},"1":{"uuid":null,"rssi":null,"txPower":null,"battery":null,"temperature":null,"humidity":null},"2":{"uuid":null,"rssi":null,"txPower":null,"battery":null,"temperature":null,"humidity":null},"3":{"uuid":null,"rssi":null,"txPower":null,"battery":null,"temperature":null,"humidity":null}},"systemChangeover":{"masterZone":"","maxStandbyMinutes":0,"minRuntimeMinutes":0,"priority":0,"disable":"notset","dependents":"__ungettable","lastReported":"__ungettable","sourceReport":{"serial":"__ungettable","disabled":"__ungettable","mode":"__ungettable","delta":"__ungettable","priority":"__ungettable","runtime":"__ungettable","standby":"__ungettable","remaining":"__ungettable"},"masterInfo":{"activeMode":"__ungettable","durActive":"__ungettable","durInactive":"__ungettable"}},"mhk2":{"status":{"outdoorTemp":null,"outdoorHumid":null,"indoorHumid":61},"info":{"model":"MHK2","serial":"319LBL002416","firmware":"1.1.1"},"auto":{"owner":"none","status":"inactive","heatSetpoint":null,"coolSetpoint":null},"schedule":{"owner":"adapter","enabled":"disabled"},"hold":{"adapter":{"cancelMHK2":false,"endTime":0},"mhk2":{"cancelAdapter":false,"endTime":0}},"connected":{"thermostat":true,"thermostatBattery":"ok","outdoorAir":false,"outdoorAirBattery":"unset","indoorAir":false,"indoorAirBattery":"unset"},"dr":{"override":false,"event":"none"}}}}

No worries if it’s not worth your time to look at this now that you’ve decided on another path with the alternate interface. Just figured I’d follow up in case you’re curious.

That’s a real head-scratcher… After I sent my response the other day I turned mine up to debug just to confirm it was working properly here, and it seemed correct. I’ll take a look over the next few days to see if there’s an obvious cause for your problem. Stay tuned!

This project seems cool. I just gave it a try and got null pointer exception because cryptoSerial was not in the response. Perhaps my wifi devices are too old? I got them in 2016 and the model is: PAC-WHS01WF-E.

I’ve included the trace log for discovery in case you see anything. I’ve redacted any personal info.

14:01:46.380 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mitsubishikumocloud:account:f645cff6a5' changed from UNINITIALIZED (DISABLED) to INITIALIZING
14:01:46.381 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mitsubishikumocloud:account:f645cff6a5' changed from INITIALIZING to ONLINE
14:01:51.381 [DEBUG] [nal.MitsubishiKumoCloudAccountHandler] - updateData
14:01:51.382 [DEBUG] [nal.MitsubishiKumoCloudAccountHandler] - body: {"password":"***","appVersion":"2.2.0","username":"****"}
14:01:51.383 [DEBUG] [nal.MitsubishiKumoCloudAccountHandler] - request: HttpRequest[POST /login HTTP/1.1]@3563aa09
14:01:51.383 [TRACE] [nal.MitsubishiKumoCloudAccountHandler] - sendRequest: requesting https://geo-c.kumocloud.com/login
14:01:53.033 [TRACE] [nal.MitsubishiKumoCloudAccountHandler] - Response code 200
14:01:53.034 [TRACE] [nal.MitsubishiKumoCloudAccountHandler] - sendRequest: response [{"token":"***","username":"****","device":null,"emailIsVerified":true},{"lastUpdate":1466552482281},{"lastScheduleChange":0,"zoneTable":{},"children":[{"lastScheduleChange":0,"zoneTable":{"1508240242":{"serial":"***","lastUpdate":1720877390410,"label":"Base kumo","mac":"00:1d:c9:93:d2:9d","localAdapterStatus":"NORMAL","profileCodeFrames":["fc7b013010c9030020001407758c25a0be94bea0be09","fc7b013010cda0bea0bea0be18000000000000000045"],"optimalStart":false,"desiredConditionStack":[],"reportedCondition":{"more":{"operation_mode_text":"i-see Cool","fan_speed_text":"High","air_direction_text":"Auto","power_on":false},"_created":1720877390405,"status_display":{"filter":false,"defrost":false,"hot_adjust":false,"standby":false,"code":0},"unusual_figures":{"code":32768,"normal":true},"two_figures_code":{"normal":true,"text":"A0","code":0},"prohibit_local_remote_control":{"set_temp":false,"set_operation_mode":false,"set_power":false,"code":0},"set_temp":22,"operation_mode":11,"fan_speed":5,"room_temp":24.5,"air_direction":0,"power":0},"overrideSettings":{},"forceCloudUpdates":false,"address":"192.168.254.106","errorHandler":{"1":{"error2char":"A0","error4char":"8000","code":"8000","text":"8000"}},"rssi":{},"sendDesiredConditionsPending":false,"sendDesiredConditionsTime":"2024-05-29T21:10:46.082Z","equipmentControllerSettings":{},"hasElectricHeatingOption":false,"port":80,"systemChangeoverSettings":{"masterZone":{"minRuntime":20,"maxStandby":180,"activeMode":null,"durActive":null,"durInactive":null},"priority":1},"programEventSettings":{"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null,"8":null,"9":null,"10":null,"11":null,"12":null,"13":null,"14":null,"15":null,"16":null,"17":null,"18":null,"19":null,"20":null,"21":null,"22":null,"23":null,"24":null,"25":null,"26":null,"27":null,"28":null},"$$hashKey":"object:345","eqcStageThreeBacksupChannels":{"1":0,"2":0,"3":0,"4":0},"eqcUpdatedLocally":{"1":false,"2":false,"3":false,"4":false},"ledDisabled":false,"mhk2Settings":{"auto":{"owner":"","status":"","heatSetpoint":null,"coolSetpoint":null},"connected":{"thermostat":false,"thermostatBattery":"","outdoorAir":false,"outdoorAirBattery":"","indoorAir":false,"indoorAirBattery":""},"dr":{"override":false,"event":""},"hold":{"adapter":{"cancelMHK2":false,"endTime":0},"mhk2":{"cancelAdapter":false,"endTime":0}},"info":{"model":"","serial":"","firmware":""},"schedule":{"owner":"","enabled":""},"status":{"outdoorTemp":0,"outdoorHumid":null,"indoorHumid":null}},"prohibits":{"global":{"power":false,"mode":false,"setpoint":false},"local":{"power":false,"mode":false,"setpoint":false},"effective":{"power":false,"mode":false,"setpoint":false}},"prohibitsChanged":0,"holdChanged":0,"timezone":null,"acoilSettings":{"isAcoil":false,"inputs":{"humidistat":false,"ervSwitch":false,"floatSwitchWet":false},"outputs":{"w1":false,"w2":false,"y":false,"g":false,"erv":false,"humidifer":false,"heartbeat":false},"humidifier":{"targetPcr":0,"source":null,"enable":false},"erv":{"mode":"classic"},"ytoo":{"fan":false,"humidifier":false,"erv":false},"cbp":0,"oat":0,"bpcr":"off","ebp":false,"fDelay":0},"autoDrySettings":{"isAutoDry":true,"enable":false,"targetHumid":0,"overcool":0,"offset":0,"active":false,"lastUpdated":1720877389979,"hasUpdated":false},"kumoSensorSettings":{"uuid":0,"humidity":0},"_requestRescan":0,"_isRespondingLocally":null},"1510300063":{"serial":"***","lastUpdate":1720877390410,"label":"First Kumo","mac":"00:1d:c9:97:9b:af","localAdapterStatus":"NORMAL","profileCodeFrames":["fc7b013010c9030020001407758c25a0be94bea0be09","fc7b013010cda0bea0bea0be0000000000000000005d"],"$$hashKey":"object:352","optimalStart":false,"desiredConditionStack":[],"reportedCondition":{"more":{"operation_mode_text":"Cool","fan_speed_text":"Auto","air_direction_text":"Swing","power_on":true},"_created":1720877392055,"status_display":{"filter":false,"defrost":false,"hot_adjust":false,"standby":false,"code":0},"unusual_figures":{"code":32768,"normal":true},"two_figures_code":{"normal":true,"text":"A0","code":0},"prohibit_local_remote_control":{"set_temp":false,"set_operation_mode":false,"set_power":false,"code":0},"set_temp":23,"operation_mode":3,"fan_speed":0,"room_temp":23,"air_direction":7,"power":1},"overrideSettings":{},"forceCloudUpdates":false,"address":"192.168.254.120","errorHandler":{"1":{"error2char":"A0","error4char":"8000","code":"8000","text":"8000"}},"rssi":{"rssi":"-63","string":"Strong","image":"images/signal-strong-ondark-50x50.svg"},"sendDesiredConditionsPending":false,"sendDesiredConditionsTime":"2024-07-10T19:09:33.265Z","equipmentControllerSettings":{},"hasElectricHeatingOption":false,"port":80,"systemChangeoverSettings":{"masterZone":{"minRuntime":20,"maxStandby":180,"activeMode":null,"durActive":null,"durInactive":null},"priority":1},"programEventSettings":{"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null,"8":null,"9":null,"10":null,"11":null,"12":null,"13":null,"14":null,"15":null,"16":null,"17":null,"18":null,"19":null,"20":null,"21":null,"22":null,"23":null,"24":null,"25":null,"26":null,"27":null,"28":null},"eqcStageThreeBacksupChannels":{"1":0,"2":0,"3":0,"4":0},"eqcUpdatedLocally":{"1":false,"2":false,"3":false,"4":false},"ledDisabled":false,"mhk2Settings":{"auto":{"owner":"","status":"","heatSetpoint":null,"coolSetpoint":null},"connected":{"thermostat":false,"thermostatBattery":"","outdoorAir":false,"outdoorAirBattery":"","indoorAir":false,"indoorAirBattery":""},"dr":{"override":false,"event":""},"hold":{"adapter":{"cancelMHK2":false,"endTime":0},"mhk2":{"cancelAdapter":false,"endTime":0}},"info":{"model":"","serial":"","firmware":""},"schedule":{"owner":"","enabled":""},"status":{"outdoorTemp":0,"outdoorHumid":null,"indoorHumid":null}},"prohibits":{"global":{"power":false,"mode":false,"setpoint":false},"local":{"power":false,"mode":false,"setpoint":false},"effective":{"power":false,"mode":false,"setpoint":false}},"prohibitsChanged":0,"holdChanged":0,"timezone":null,"acoilSettings":{"isAcoil":false,"inputs":{"humidistat":false,"ervSwitch":false,"floatSwitchWet":false},"outputs":{"w1":false,"w2":false,"y":false,"g":false,"erv":false,"humidifer":false,"heartbeat":false},"humidifier":{"targetPcr":0,"source":null,"enable":false},"erv":{"mode":"classic"},"ytoo":{"fan":false,"humidifier":false,"erv":false},"cbp":0,"oat":0,"bpcr":"off","ebp":false,"fDelay":0},"autoDrySettings":{"isAutoDry":true,"enable":false,"targetHumid":0,"overcool":0,"offset":0,"active":false,"lastUpdated":1720877389980,"hasUpdated":false},"kumoSensorSettings":{"uuid":0,"humidity":0},"_requestRescan":0,"_isRespondingLocally":true},"1510300110":{"serial":"***","lastUpdate":1720877390410,"label":"2nd Kumo","mac":"00:1d:c9:97:92:86","localAdapterStatus":"NORMAL","profileCodeFrames":["fc7b013010c9030020001407750c05a0be94bea0bea9","fc7b013010cda0bea0bea0be0000000000000000005d"],"optimalStart":false,"desiredConditionStack":[],"reportedCondition":{"more":{"operation_mode_text":"Cool","fan_speed_text":"Auto","air_direction_text":"Position 2","power_on":true},"_created":1720877391225,"status_display":{"filter":false,"defrost":false,"hot_adjust":false,"standby":false,"code":0},"unusual_figures":{"code":32768,"normal":true},"two_figures_code":{"normal":true,"text":"A0","code":0},"prohibit_local_remote_control":{"set_temp":false,"set_operation_mode":false,"set_power":false,"code":0},"set_temp":22,"operation_mode":3,"fan_speed":0,"room_temp":22,"air_direction":2,"power":1},"overrideSettings":{},"forceCloudUpdates":false,"address":"192.168.254.52","errorHandler":{"1":{"error2char":"A0","error4char":"8000","code":"8000","text":"8000"}},"rssi":{"rssi":"-43","string":"Very strong","image":"images/signal-verystrong-ondark-50x50.svg"},"sendDesiredConditionsPending":false,"sendDesiredConditionsTime":"2024-07-07T23:03:37.062Z","equipmentControllerSettings":{},"hasElectricHeatingOption":false,"port":80,"systemChangeoverSettings":{"masterZone":{"minRuntime":20,"maxStandby":180,"activeMode":null,"durActive":null,"durInactive":null},"priority":1},"programEventSettings":{"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null,"8":null,"9":null,"10":null,"11":null,"12":null,"13":null,"14":null,"15":null,"16":null,"17":null,"18":null,"19":null,"20":null,"21":null,"22":null,"23":null,"24":null,"25":null,"26":null,"27":null,"28":null},"$$hashKey":"object:344","eqcStageThreeBacksupChannels":{"1":0,"2":0,"3":0,"4":0},"eqcUpdatedLocally":{"1":false,"2":false,"3":false,"4":false},"ledDisabled":false,"mhk2Settings":{"auto":{"owner":"","status":"","heatSetpoint":null,"coolSetpoint":null},"connected":{"thermostat":false,"thermostatBattery":"","outdoorAir":false,"outdoorAirBattery":"","indoorAir":false,"indoorAirBattery":""},"dr":{"override":false,"event":""},"hold":{"adapter":{"cancelMHK2":false,"endTime":0},"mhk2":{"cancelAdapter":false,"endTime":0}},"info":{"model":"","serial":"","firmware":""},"schedule":{"owner":"","enabled":""},"status":{"outdoorTemp":0,"outdoorHumid":null,"indoorHumid":null}},"prohibits":{"global":{"power":false,"mode":false,"setpoint":false},"local":{"power":false,"mode":false,"setpoint":false},"effective":{"power":false,"mode":false,"setpoint":false}},"prohibitsChanged":0,"holdChanged":0,"timezone":null,"acoilSettings":{"isAcoil":false,"inputs":{"humidistat":false,"ervSwitch":false,"floatSwitchWet":false},"outputs":{"w1":false,"w2":false,"y":false,"g":false,"erv":false,"humidifer":false,"heartbeat":false},"humidifier":{"targetPcr":0,"source":null,"enable":false},"erv":{"mode":"classic"},"ytoo":{"fan":false,"humidifier":false,"erv":false},"cbp":0,"oat":0,"bpcr":"off","ebp":false,"fDelay":0},"autoDrySettings":{"isAutoDry":true,"enable":false,"targetHumid":0,"overcool":0,"offset":0,"active":false,"lastUpdated":1720877389980,"hasUpdated":false},"kumoSensorSettings":{"uuid":0,"humidity":0},"_requestRescan":0,"_isRespondingLocally":true}},"children":[],"id":"1466552482281-800995590","lastUpdate":1590848005010,"label":"Home","version":868,"$$hashKey":"object:47","level":2,"v1.2+":1}],"id":"1477158635949-3315234884","lastUpdate":1720980112291,"label":"kumo cloud","version":12341,"level":1,"v1.2+":1},"no device token",{"userDetails":{"firstName":"James","lastName":"James","phone":"***","email":"****","IsPersonAccount":true},"siteDetails":[]}]
14:01:53.035 [DEBUG] [nal.MitsubishiKumoCloudAccountHandler] - Json: [{"token":"***","username":"****","device":null,"emailIsVerified":true},{"lastUpdate":1466552482281},{"lastScheduleChange":0,"zoneTable":{},"children":[{"lastScheduleChange":0,"zoneTable":{"1508240242":{"serial":"***","lastUpdate":1720877390410,"label":"Base kumo","mac":"00:1d:c9:93:d2:9d","localAdapterStatus":"NORMAL","profileCodeFrames":["fc7b013010c9030020001407758c25a0be94bea0be09","fc7b013010cda0bea0bea0be18000000000000000045"],"optimalStart":false,"desiredConditionStack":[],"reportedCondition":{"more":{"operation_mode_text":"i-see Cool","fan_speed_text":"High","air_direction_text":"Auto","power_on":false},"_created":1720877390405,"status_display":{"filter":false,"defrost":false,"hot_adjust":false,"standby":false,"code":0},"unusual_figures":{"code":32768,"normal":true},"two_figures_code":{"normal":true,"text":"A0","code":0},"prohibit_local_remote_control":{"set_temp":false,"set_operation_mode":false,"set_power":false,"code":0},"set_temp":22,"operation_mode":11,"fan_speed":5,"room_temp":24.5,"air_direction":0,"power":0},"overrideSettings":{},"forceCloudUpdates":false,"address":"192.168.254.106","errorHandler":{"1":{"error2char":"A0","error4char":"8000","code":"8000","text":"8000"}},"rssi":{},"sendDesiredConditionsPending":false,"sendDesiredConditionsTime":"2024-05-29T21:10:46.082Z","equipmentControllerSettings":{},"hasElectricHeatingOption":false,"port":80,"systemChangeoverSettings":{"masterZone":{"minRuntime":20,"maxStandby":180,"activeMode":null,"durActive":null,"durInactive":null},"priority":1},"programEventSettings":{"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null,"8":null,"9":null,"10":null,"11":null,"12":null,"13":null,"14":null,"15":null,"16":null,"17":null,"18":null,"19":null,"20":null,"21":null,"22":null,"23":null,"24":null,"25":null,"26":null,"27":null,"28":null},"$$hashKey":"object:345","eqcStageThreeBacksupChannels":{"1":0,"2":0,"3":0,"4":0},"eqcUpdatedLocally":{"1":false,"2":false,"3":false,"4":false},"ledDisabled":false,"mhk2Settings":{"auto":{"owner":"","status":"","heatSetpoint":null,"coolSetpoint":null},"connected":{"thermostat":false,"thermostatBattery":"","outdoorAir":false,"outdoorAirBattery":"","indoorAir":false,"indoorAirBattery":""},"dr":{"override":false,"event":""},"hold":{"adapter":{"cancelMHK2":false,"endTime":0},"mhk2":{"cancelAdapter":false,"endTime":0}},"info":{"model":"","serial":"","firmware":""},"schedule":{"owner":"","enabled":""},"status":{"outdoorTemp":0,"outdoorHumid":null,"indoorHumid":null}},"prohibits":{"global":{"power":false,"mode":false,"setpoint":false},"local":{"power":false,"mode":false,"setpoint":false},"effective":{"power":false,"mode":false,"setpoint":false}},"prohibitsChanged":0,"holdChanged":0,"timezone":null,"acoilSettings":{"isAcoil":false,"inputs":{"humidistat":false,"ervSwitch":false,"floatSwitchWet":false},"outputs":{"w1":false,"w2":false,"y":false,"g":false,"erv":false,"humidifer":false,"heartbeat":false},"humidifier":{"targetPcr":0,"source":null,"enable":false},"erv":{"mode":"classic"},"ytoo":{"fan":false,"humidifier":false,"erv":false},"cbp":0,"oat":0,"bpcr":"off","ebp":false,"fDelay":0},"autoDrySettings":{"isAutoDry":true,"enable":false,"targetHumid":0,"overcool":0,"offset":0,"active":false,"lastUpdated":1720877389979,"hasUpdated":false},"kumoSensorSettings":{"uuid":0,"humidity":0},"_requestRescan":0,"_isRespondingLocally":null},"1510300063":{"serial":"***","lastUpdate":1720877390410,"label":"First Kumo","mac":"00:1d:c9:97:9b:af","localAdapterStatus":"NORMAL","profileCodeFrames":["fc7b013010c9030020001407758c25a0be94bea0be09","fc7b013010cda0bea0bea0be0000000000000000005d"],"$$hashKey":"object:352","optimalStart":false,"desiredConditionStack":[],"reportedCondition":{"more":{"operation_mode_text":"Cool","fan_speed_text":"Auto","air_direction_text":"Swing","power_on":true},"_created":1720877392055,"status_display":{"filter":false,"defrost":false,"hot_adjust":false,"standby":false,"code":0},"unusual_figures":{"code":32768,"normal":true},"two_figures_code":{"normal":true,"text":"A0","code":0},"prohibit_local_remote_control":{"set_temp":false,"set_operation_mode":false,"set_power":false,"code":0},"set_temp":23,"operation_mode":3,"fan_speed":0,"room_temp":23,"air_direction":7,"power":1},"overrideSettings":{},"forceCloudUpdates":false,"address":"192.168.254.120","errorHandler":{"1":{"error2char":"A0","error4char":"8000","code":"8000","text":"8000"}},"rssi":{"rssi":"-63","string":"Strong","image":"images/signal-strong-ondark-50x50.svg"},"sendDesiredConditionsPending":false,"sendDesiredConditionsTime":"2024-07-10T19:09:33.265Z","equipmentControllerSettings":{},"hasElectricHeatingOption":false,"port":80,"systemChangeoverSettings":{"masterZone":{"minRuntime":20,"maxStandby":180,"activeMode":null,"durActive":null,"durInactive":null},"priority":1},"programEventSettings":{"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null,"8":null,"9":null,"10":null,"11":null,"12":null,"13":null,"14":null,"15":null,"16":null,"17":null,"18":null,"19":null,"20":null,"21":null,"22":null,"23":null,"24":null,"25":null,"26":null,"27":null,"28":null},"eqcStageThreeBacksupChannels":{"1":0,"2":0,"3":0,"4":0},"eqcUpdatedLocally":{"1":false,"2":false,"3":false,"4":false},"ledDisabled":false,"mhk2Settings":{"auto":{"owner":"","status":"","heatSetpoint":null,"coolSetpoint":null},"connected":{"thermostat":false,"thermostatBattery":"","outdoorAir":false,"outdoorAirBattery":"","indoorAir":false,"indoorAirBattery":""},"dr":{"override":false,"event":""},"hold":{"adapter":{"cancelMHK2":false,"endTime":0},"mhk2":{"cancelAdapter":false,"endTime":0}},"info":{"model":"","serial":"","firmware":""},"schedule":{"owner":"","enabled":""},"status":{"outdoorTemp":0,"outdoorHumid":null,"indoorHumid":null}},"prohibits":{"global":{"power":false,"mode":false,"setpoint":false},"local":{"power":false,"mode":false,"setpoint":false},"effective":{"power":false,"mode":false,"setpoint":false}},"prohibitsChanged":0,"holdChanged":0,"timezone":null,"acoilSettings":{"isAcoil":false,"inputs":{"humidistat":false,"ervSwitch":false,"floatSwitchWet":false},"outputs":{"w1":false,"w2":false,"y":false,"g":false,"erv":false,"humidifer":false,"heartbeat":false},"humidifier":{"targetPcr":0,"source":null,"enable":false},"erv":{"mode":"classic"},"ytoo":{"fan":false,"humidifier":false,"erv":false},"cbp":0,"oat":0,"bpcr":"off","ebp":false,"fDelay":0},"autoDrySettings":{"isAutoDry":true,"enable":false,"targetHumid":0,"overcool":0,"offset":0,"active":false,"lastUpdated":1720877389980,"hasUpdated":false},"kumoSensorSettings":{"uuid":0,"humidity":0},"_requestRescan":0,"_isRespondingLocally":true},"1510300110":{"serial":"***","lastUpdate":1720877390410,"label":"2nd Kumo","mac":"00:1d:c9:97:92:86","localAdapterStatus":"NORMAL","profileCodeFrames":["fc7b013010c9030020001407750c05a0be94bea0bea9","fc7b013010cda0bea0bea0be0000000000000000005d"],"optimalStart":false,"desiredConditionStack":[],"reportedCondition":{"more":{"operation_mode_text":"Cool","fan_speed_text":"Auto","air_direction_text":"Position 2","power_on":true},"_created":1720877391225,"status_display":{"filter":false,"defrost":false,"hot_adjust":false,"standby":false,"code":0},"unusual_figures":{"code":32768,"normal":true},"two_figures_code":{"normal":true,"text":"A0","code":0},"prohibit_local_remote_control":{"set_temp":false,"set_operation_mode":false,"set_power":false,"code":0},"set_temp":22,"operation_mode":3,"fan_speed":0,"room_temp":22,"air_direction":2,"power":1},"overrideSettings":{},"forceCloudUpdates":false,"address":"192.168.254.52","errorHandler":{"1":{"error2char":"A0","error4char":"8000","code":"8000","text":"8000"}},"rssi":{"rssi":"-43","string":"Very strong","image":"images/signal-verystrong-ondark-50x50.svg"},"sendDesiredConditionsPending":false,"sendDesiredConditionsTime":"2024-07-07T23:03:37.062Z","equipmentControllerSettings":{},"hasElectricHeatingOption":false,"port":80,"systemChangeoverSettings":{"masterZone":{"minRuntime":20,"maxStandby":180,"activeMode":null,"durActive":null,"durInactive":null},"priority":1},"programEventSettings":{"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null,"8":null,"9":null,"10":null,"11":null,"12":null,"13":null,"14":null,"15":null,"16":null,"17":null,"18":null,"19":null,"20":null,"21":null,"22":null,"23":null,"24":null,"25":null,"26":null,"27":null,"28":null},"$$hashKey":"object:344","eqcStageThreeBacksupChannels":{"1":0,"2":0,"3":0,"4":0},"eqcUpdatedLocally":{"1":false,"2":false,"3":false,"4":false},"ledDisabled":false,"mhk2Settings":{"auto":{"owner":"","status":"","heatSetpoint":null,"coolSetpoint":null},"connected":{"thermostat":false,"thermostatBattery":"","outdoorAir":false,"outdoorAirBattery":"","indoorAir":false,"indoorAirBattery":""},"dr":{"override":false,"event":""},"hold":{"adapter":{"cancelMHK2":false,"endTime":0},"mhk2":{"cancelAdapter":false,"endTime":0}},"info":{"model":"","serial":"","firmware":""},"schedule":{"owner":"","enabled":""},"status":{"outdoorTemp":0,"outdoorHumid":null,"indoorHumid":null}},"prohibits":{"global":{"power":false,"mode":false,"setpoint":false},"local":{"power":false,"mode":false,"setpoint":false},"effective":{"power":false,"mode":false,"setpoint":false}},"prohibitsChanged":0,"holdChanged":0,"timezone":null,"acoilSettings":{"isAcoil":false,"inputs":{"humidistat":false,"ervSwitch":false,"floatSwitchWet":false},"outputs":{"w1":false,"w2":false,"y":false,"g":false,"erv":false,"humidifer":false,"heartbeat":false},"humidifier":{"targetPcr":0,"source":null,"enable":false},"erv":{"mode":"classic"},"ytoo":{"fan":false,"humidifier":false,"erv":false},"cbp":0,"oat":0,"bpcr":"off","ebp":false,"fDelay":0},"autoDrySettings":{"isAutoDry":true,"enable":false,"targetHumid":0,"overcool":0,"offset":0,"active":false,"lastUpdated":1720877389980,"hasUpdated":false},"kumoSensorSettings":{"uuid":0,"humidity":0},"_requestRescan":0,"_isRespondingLocally":true}},"children":[],"id":"1466552482281-800995590","lastUpdate":1590848005010,"label":"Home","version":868,"$$hashKey":"object:47","level":2,"v1.2+":1}],"id":"1477158635949-3315234884","lastUpdate":1720980112291,"label":"kumo cloud","version":12341,"level":1,"v1.2+":1},"no device token",{"userDetails":{"firstName":"James","lastName":"James","phone":"****","email":"****","IsPersonAccount":true},"siteDetails":[]}]
14:01:53.037 [DEBUG] [nal.MitsubishiKumoCloudAccountHandler] - Serial: *** => {serial=***, lastUpdate=1.72087739041E12, label=Base kumo, mac=***, localAdapterStatus=NORMAL, profileCodeFrames=[fc7b013010c9030020001407758c25a0be94bea0be09, fc7b013010cda0bea0bea0be18000000000000000045], optimalStart=false, desiredConditionStack=[], reportedCondition={more={operation_mode_text=i-see Cool, fan_speed_text=High, air_direction_text=Auto, power_on=false}, _created=1.720877390405E12, status_display={filter=false, defrost=false, hot_adjust=false, standby=false, code=0.0}, unusual_figures={code=32768.0, normal=true}, two_figures_code={normal=true, text=A0, code=0.0}, prohibit_local_remote_control={set_temp=false, set_operation_mode=false, set_power=false, code=0.0}, set_temp=22.0, operation_mode=11.0, fan_speed=5.0, room_temp=24.5, air_direction=0.0, power=0.0}, overrideSettings={}, forceCloudUpdates=false, address=***, errorHandler={1={error2char=A0, error4char=8000, code=8000, text=8000}}, rssi={}, sendDesiredConditionsPending=false, sendDesiredConditionsTime=2024-05-29T21:10:46.082Z, equipmentControllerSettings={}, hasElectricHeatingOption=false, port=80.0, systemChangeoverSettings={masterZone={minRuntime=20.0, maxStandby=180.0, activeMode=null, durActive=null, durInactive=null}, priority=1.0}, programEventSettings={1=null, 2=null, 3=null, 4=null, 5=null, 6=null, 7=null, 8=null, 9=null, 10=null, 11=null, 12=null, 13=null, 14=null, 15=null, 16=null, 17=null, 18=null, 19=null, 20=null, 21=null, 22=null, 23=null, 24=null, 25=null, 26=null, 27=null, 28=null}, $$hashKey=object:345, eqcStageThreeBacksupChannels={1=0.0, 2=0.0, 3=0.0, 4=0.0}, eqcUpdatedLocally={1=false, 2=false, 3=false, 4=false}, ledDisabled=false, mhk2Settings={auto={owner=, status=, heatSetpoint=null, coolSetpoint=null}, connected={thermostat=false, thermostatBattery=, outdoorAir=false, outdoorAirBattery=, indoorAir=false, indoorAirBattery=}, dr={override=false, event=}, hold={adapter={cancelMHK2=false, endTime=0.0}, mhk2={cancelAdapter=false, endTime=0.0}}, info={model=, serial=, firmware=}, schedule={owner=, enabled=}, status={outdoorTemp=0.0, outdoorHumid=null, indoorHumid=null}}, prohibits={global={power=false, mode=false, setpoint=false}, local={power=false, mode=false, setpoint=false}, effective={power=false, mode=false, setpoint=false}}, prohibitsChanged=0.0, holdChanged=0.0, timezone=null, acoilSettings={isAcoil=false, inputs={humidistat=false, ervSwitch=false, floatSwitchWet=false}, outputs={w1=false, w2=false, y=false, g=false, erv=false, humidifer=false, heartbeat=false}, humidifier={targetPcr=0.0, source=null, enable=false}, erv={mode=classic}, ytoo={fan=false, humidifier=false, erv=false}, cbp=0.0, oat=0.0, bpcr=off, ebp=false, fDelay=0.0}, autoDrySettings={isAutoDry=true, enable=false, targetHumid=0.0, overcool=0.0, offset=0.0, active=false, lastUpdated=1.720877389979E12, hasUpdated=false}, kumoSensorSettings={uuid=0.0, humidity=0.0}, _requestRescan=0.0, _isRespondingLocally=null}
14:01:53.038 [TRACE] [l.MitsubishiKumoCloudDiscoveryService] - Got discovered device.
14:01:53.038 [DEBUG] [l.MitsubishiKumoCloudDiscoveryService] - reported Profile: null
14:01:53.038 [WARN ] [ommon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: The validated object is null
        at java.util.Objects.requireNonNull(Objects.java:336) ~[?:?]
        at org.apache.commons.lang3.Validate.notNull(Validate.java:1037) ~[?:?]
        at org.apache.commons.lang3.Validate.notNull(Validate.java:1019) ~[?:?]
        at org.openhab.binding.mitsubishikumocloud.internal.MitsubishiKumoCloudDiscoveryService.unitDiscovered(MitsubishiKumoCloudDiscoveryService.java:67) ~[?:?]
        at org.openhab.binding.mitsubishikumocloud.internal.MitsubishiKumoCloudAccountHandler.updateData(MitsubishiKumoCloudAccountHandler.java:223) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
        at java.lang.Thread.run(Thread.java:840) [?:?]

Hi-

It looks like your device uses a different means of communication than the Kumo cloud interface I’ve got. I did a little looking around and it doesn’t appear that anyone has managed to control that generation directly. I think kumocloud can be used with ifttt, so you might be able to install the ifttt and communicate with it that way. You might also have luck using a solution that communicates over CN105 to talk directly you your indoor units. I’m looking into a CN105 solution myself to see if it’s more reliable than the kumo cloud mechanism, which isn’t very reliable. If you follow this thread, you’ll get updates as I have time to investigate.

Thanks. That’s what i figured. I just have a bunch of ugly rules that send post requests that i captured from the web client so I can automate right now. Your binding seemed like a lot better solution though. I do have one head that has an esp8266 talking over serial interface but i haven’t been able to get mqtt device working on openhab yet.

If you can send me the requests you’re currently using, I can see if there’s a way to get them working with the current binding (it may not be possible).

I’m also working on a better solution with a custom cn105 adapter that doesn’t involve messing around with the mqtt binding. That might take a few months but I’ll post back on this thread when I have something working.

1 Like

Web client is here: kumo cloud

I just captured everything using dev tools in browser. These are the POSTS I use in my rules. Syntax for sendHttpPostRequest is: URL, content type, payload. I stripped hardcoded values and replaced with labels. The POSTS frequently fail likely due to device restarting. I poll the status fairly infrequently (e.g. 5 minutes).

// Get status of everything (include all serial numbers)
var json = sendHttpPostRequest("https://[email]:[password]@geo-c.kumocloud.com/getDeviceUpdates",
	"application/json",
	"[" + token + ",[\"[serial1]\", \"[serial2]\", \"[serial3]\"]]")

// Power on
sendHttpPostRequest("https://[email]:[password]@geo-c.kumocloud.com/sendDeviceCommands/v2",
	"application/json",
	"[" + token + ",{\"[serial1]\":{\"power\":1}}]")

// Set temp in celsius
sendHttpPostRequest("https://[email]:[password]@geo-c.kumocloud.com/sendDeviceCommands/v2",
	"application/json",
	"[" + token + ",{\"[serial1]\":{\"setTemp\":" + tempInCelsius + "}}]")

// Fan speed (0 is auto)
sendHttpPostRequest("https://[email]:[password]@geo-c.kumocloud.com/sendDeviceCommands/v2",
	"application/json",
	"[" + token + ",{\"[serial1]\":{\"fanSpeed\":" + [0-6] + "}}]")

// Set mode (1=Heat, 2=Dehumidify, 3=Cool, 7=Fan, 8=Auto)
sendHttpPostRequest("https://[email]:[password]@geo-c.kumocloud.com/sendDeviceCommands/v2",
	"application/json",
	"[" + token + ",{\"[serial1]\":{\"operationMode\":" + [12378] + "}}]")

Ok, I see what’s going on. The original kumo enabled hardware communicates exclusively via the kumocloud infrastructure. The v2 hardware is accessed locally whenever possible, and that communication is done via requests that are cryptographically signed. I could put in some checks that would bypass that step for devices that don’t have the keys associated with them. I wouldn’t count on that working, simply because these requests look so different. If that’s how it plays out, going to a custom built CN105 device will probably be the ultimate solution.

On that front, I’ve figured out the parts required to make cables to connect to the CN105 port, and I’ve also got a CN105 splitter, which allows whatever I come up with to coexist with the Mitsubishi controller, so that might be something for you to consider as well. Think the hardware cost of the custom controller will be pretty modest, definitely under 50 bucks, with a bit of luck, it will be considerably less.