Mitsubishi MELCLOUD integration with Home Assistant

ME USA have a system Kumo Cloud that runs in parallel to MELCloud, and there’s a parallel integration in HACS for Kumo Cloud that knows about Fahrenheit. Kumo has the nice feature that once the cloud connection is established, it can switch to local networking for lower latency.

That is awesome! Wish this existed before i splurged 400 dollars on the ugly Mitsubishi one.

:joy: Sorry I’m really bad at marketing :joy:

btw: one esp32 can emulate 8 RC’s. It’s even cheaper :wink:

Well it was 2 years ago I bought it.

Still, might do this instead so I can get rid of the ugly remote. :grimacing:

What do you think about the following local MODBUS system: ONOKOM ME-1-MB-B - Шлюз для управления системами кондиционирования Mitsubishi Electric

Hi!

Why not buy the original melcobems instead of a 3rd party? For 3rd party just use an esp with free software?

Wow! Thank You!!

450USD for an interface…??? Wow…this box must contain some chunks of gold…
esp module costs a few bucks…:scream: (or am i missing something?)

no you are not, esp32 is the way to go. But that 3rd party modbus is also quite expensive, so it does not make any sense to buy it over the official one.

the esp can do more than the melcobems btw. We can retrieve data via service codes and able to get compressor starts among things.

1 Like

I’ve made it really easy now for atom s3 (with or without proxy pcb): Release ESP webtools compatible multi lang firmwares · gekkekoe/esphome-ecodan-hp · GitHub

just drag the factory.bin firmware to chrome to perform the initial flash: GitHub - gekkekoe/esphome-ecodan-hp: ESPHome Ecodan heatpump

Afterwards its upgradeable via OTA in Home assistant.

1 Like

Is someone here using more Mitsubishi Electric devices in melcloud?

I got the ecodan working quite some time now, but i recently installed a ventilation unit and a split unit.

As soon as i add them in melcloud i get the following error:

Unable to parse output as JSON: { "PCycleActual": 0, "ErrorMessages": "", "DeviceType": 1, "FTCVersion": 1301, "FTCRevision": "r0", "LastFTCVersion": 0, "LastFTCRevision": null, "FTCModel": 3, "RefridgerentAddress": 0, "SystemMaxFlowTemp": 0, "RefrigerantType": 0, "DipSwitch1": 54, "DipSwitch2": 173, "DipSwitch3": 84, "DipSwitch4": 0, "DipSwitch5": 38, "DipSwitch6": 4, "HasThermostatZone1": true, "HasThermostatZone2": true, "TemperatureIncrement": 0.5, "DefrostMode": 2, "HeatPumpFrequency": 56, "MaxSetTemperature": 35.0, "MinSetTemperature": 20.0, "RoomTemperatureZone1": 19.5, "RoomTemperatureZone2": -39.0, "OutdoorTemperature": 16.0, "FlowTemperature": 24.5, "FlowTemperatureZone1": 26.5, "FlowTemperatureZone2": 25.0, "FlowTemperatureBoiler": 25.0, "ReturnTemperature": 28.0, "ReturnTemperatureZone1": 24.0, "ReturnTemperatureZone2": 25.0, "ReturnTemperatureBoiler": 25.0, "BoilerStatus": false, "BoosterHeater1Status": false, "BoosterHeater2Status": false, "BoosterHeater2PlusStatus": false, "ImmersionHeaterStatus": false, "WaterPump1Status": true, "WaterPump2Status": true, "WaterPump3Status": false, "ValveStatus3Way": false, "ValveStatus2Way": true, "WaterPump4Status": false, "ValveStatus2Way2a": false, "ValveStatus2Way2b": false, "TankWaterTemperature": 35.5, "UnitStatus": 0, "HeatingFunctionEnabled": true, "ServerTimerEnabled": false, "ThermostatStatusZone1": false, "ThermostatStatusZone2": false, "ThermostatTypeZone1": 0, "ThermostatTypeZone2": 0, "MixingTankWaterTemperature": 95.61, "CondensingTemperature": 2.94, "DemandPercentage": 70, "ConfiguredDemandPercentage": null, "HasDemandSideControl": true, "DailyHeatingEnergyConsumed": 20.51, "DailyCoolingEnergyConsumed": 0.0, "DailyHotWaterEnergyConsumed": 3.99, "DailyHeatingEnergyProduced": 48.33, "DailyCoolingEnergyProduced": 0.0, "DailyHotWaterEnergyProduced": 6.74, "DailyLegionellaActivationCounter": 1, "LastLegionellaActivationTime": "2025-02-03T14:03:00Z", "EffectiveFlags": 0, "LastEffectiveFlags": 0, "Power": true, "EcoHotWater": true, "OperationMode": 1, "OperationModeZone1": 2, "OperationModeZone2": 1, "SetTemperatureZone1": 19.0, "SetTemperatureZone2": 20.0, "SetTankWaterTemperature": 51.0, "TargetHCTemperatureZone1": 35.0, "TargetHCTemperatureZone2": 20.0, "ForcedHotWaterMode": false, "HolidayMode": false, "ProhibitHotWater": false, "ProhibitHeatingZone1": false, "ProhibitHeatingZone2": false, "ProhibitCoolingZone1": false, "ProhibitCoolingZone2": false, "ServerTimerDesired": false, "SecondaryZoneHeatCurve": false, "SetHeatFlowTemperatureZone1": 35.0, "SetHeatFlowTemperatureZone2": 20.0, "SetCoolFlowTemperatureZone1": 20.0, "SetCoolFlowTemperatureZone2": 20.0, "DECCReport": false, "CSVReport1min": false, "Zone2Master": false, "DailyEnergyConsumedDate": "2025-03-02T00:00:00", "DailyEnergyProducedDate": "2025-03-02T00:00:00", "CurrentEnergyConsumed": 0, "CurrentEnergyProduced": 0, "CurrentEnergyMode": null, "HeatingEnergyConsumedRate1": 0, "HeatingEnergyConsumedRate2": 0, "CoolingEnergyConsumedRate1": 0, "CoolingEnergyConsumedRate2": 0, "HotWaterEnergyConsumedRate1": 0, "HotWaterEnergyConsumedRate2": 0, "HeatingEnergyProducedRate1": 0, "HeatingEnergyProducedRate2": 0, "CoolingEnergyProducedRate1": 0, "CoolingEnergyProducedRate2": 0, "HotWaterEnergyProducedRate1": 0, "HotWaterEnergyProducedRate2": 0, "ErrorCode2Digit": 0, "SpSubDivisionsToWrite": 0, "SpSubDivisionsToRead": 0, "SpState": 0, "SpSubDivisionsWriteInProgress": 0, "SpSubDivisionsReadInProgress": 0, "InitialSettingsData": null, "InitialSettingsTimestamp": null, "SupportsHourlyEnergyReport": false, "HasZone2": false, "HasSimplifiedZone2": false, "CanHeat": true, "CanCool": true, "HasHotWaterTank": true, "CanSetTankTemperature": true, "CanSetEcoHotWater": true, "HasEnergyConsumedMeter": true, "HasEnergyProducedMeter": true, "CanMeasureEnergyProduced": false, "CanMeasureEnergyConsumed": false, "Zone1InRoomMode": false, "Zone2InRoomMode": false, "Zone1InHeatMode": true, "Zone2InHeatMode": true, "Zone1InCoolMode": false, "Zone2InCoolMode": false, "AllowDualRoomTemperature": false, "IsGeodan": false, "HasEcoCuteSettings": false, "HasFTC45Settings": true, "HasFTC6Settings": true, "CanEstimateEnergyUsage": true, "CanUseRoomTemperatureCooling": true, "IsFtcModelSupported": true, "SystemMaxFlowTemperature": null, "MaxTankTemperature": 60.0, "IdleZone1": false, "IdleZone2": true, "MinPcycle": 1, "MaxPcycle": 1, "MaxOutdoorUnits": 255, "MaxIndoorUnits": 255, "MaxTemperatureControlUnits": 0, "ModelCode": "027a", "DeviceID": 23039004, "MacAddress": "74:7a:90:e2:83:c3", "SerialNumber": "2103158116", "TimeZoneID": 119, "DiagnosticMode": 0, "DiagnosticEndDate": null, "ExpectedCommand": 1, "Owner": 411295, "DetectedCountry": null, "AdaptorType": -1, "FirmwareDeployment": null, "FirmwareUpdateAborted": false, "LinkedDevice": null, "WifiSignalStrength": -58, "WifiAdapterStatus": "NORMAL", "Position": "Unknown", "PCycle": 2, "PCycleConfigured": null, "RecordNumMax": 1, "LastTimeStamp": "2025-03-03T00:40:00", "ErrorCode": 8000, "HasError": false, "LastReset": "2023-04-23T05:59:18.502", "FlashWrites": 15, "Scene": null, "TemperatureIncrementOverride": 0, "SSLExpirationDate": "2037-12-31T00:00:00", "SPTimeout": 1, "Passcode": null, "ServerCommunicationDisabled": false, "ConsecutiveUploadErrors": 0, "DoNotRespondAfter": null, "OwnerRoleAccessLevel": 1, "OwnerCountry": 159, "HideEnergyReport": false, "ExceptionHash": null, "ExceptionDate": null, "ExceptionCount": null, "Rate1StartTime": null, "Rate2StartTime": null, "ProtocolVersion": 0, "UnitVersion": 0, "FirmwareAppVersion": 19000, "FirmwareWebVersion": 0, "FirmwareWlanVersion": 0, "LinkToMELCloudHome": false, "LinkedByUserFromMELCloudHome": "00000000-0000-0000-0000-000000000000", "EffectivePCycle": 1, "MqttFlags": 9, "HasErrorMessages": false, "Offline": false, "Units": [ { "ID": 1, "Device": 0, "SerialNumber": "13P01261", "ModelNumber": 959, "Model": "SUZ-SWM80VA", "UnitType": 0, "IsIndoor": false }, { "ID": 2, "Device": 0, "SerialNumber": "1E01255", "ModelNumber": 822, "Model": "ERST20D-VM2D", "UnitType": 1, "IsIndoor": true } ] } { "PCycleActual": 0, "ErrorMessages": "", "DeviceType": 0, "CanCool": true, "CanHeat": true, "CanDry": true, "CanAuto": false, "HasAutomaticFanSpeed": true, "AirDirectionFunction": true, "SwingFunction": true, "NumberOfFanSpeeds": 4, "UseTemperatureA": true, "TemperatureIncrementOverride": 0, "TemperatureIncrement": 0.5, "MinTempCoolDry": 16.0, "MaxTempCoolDry": 31.0, "MinTempHeat": 10.0, "MaxTempHeat": 31.0, "MinTempAutomatic": 16.0, "MaxTempAutomatic": 31.0, "LegacyDevice": false, "UnitSupportsStandbyMode": true, "IsSplitSystem": false, "HasHalfDegreeIncrements": true, "HasOutdoorTemperature": true, "ModelIsAirCurtain": false, "ModelSupportsFanSpeed": true, "ModelSupportsAuto": true, "ModelSupportsHeat": true, "ModelSupportsDry": true, "ModelSupportsVaneVertical": true, "ModelSupportsVaneHorizontal": true, "ModelSupportsWideVane": false, "ModelDisableEnergyReport": false, "ModelSupportsStandbyMode": true, "ModelSupportsEnergyReporting": true, "ProhibitSetTemperature": false, "ProhibitOperationMode": false, "ProhibitPower": false, "Power": false, "RoomTemperature": 13.5, "OutdoorTemperature": null, "SetTemperature": 18.0, "ActualFanSpeed": 0, "FanSpeed": 1, "AutomaticFanSpeed": false, "VaneVerticalDirection": 0, "VaneVerticalSwing": false, "VaneHorizontalDirection": 3, "VaneHorizontalSwing": false, "OperationMode": 1, "EffectiveFlags": 0, "LastEffectiveFlags": 0, "InStandbyMode": false, "DemandPercentage": 100, "ConfiguredDemandPercentage": null, "HasDemandSideControl": false, "DefaultCoolingSetTemperature": 21.0, "DefaultHeatingSetTemperature": 23.0, "RoomTemperatureLabel": 0, "HeatingEnergyConsumedRate1": 0, "HeatingEnergyConsumedRate2": 0, "CoolingEnergyConsumedRate1": 0, "CoolingEnergyConsumedRate2": 0, "AutoEnergyConsumedRate1": 0, "AutoEnergyConsumedRate2": 0, "DryEnergyConsumedRate1": 0, "DryEnergyConsumedRate2": 0, "FanEnergyConsumedRate1": 0, "FanEnergyConsumedRate2": 0, "OtherEnergyConsumedRate1": 0, "OtherEnergyConsumedRate2": 0, "EstimateAtaEnergyProduction": false, "EstimateAtaEnergyProductionOptIn": false, "EstimateAtaEnergyProductionOptInTimestamp": null, "WeatherForecast": [], "HasEnergyConsumedMeter": true, "CurrentEnergyConsumed": 13100, "CurrentEnergyMode": 1, "CoolingDisabled": false, "EnergyCorrectionModel": null, "EnergyCorrectionActive": false, "MinPcycle": 1, "MaxPcycle": 1, "EffectivePCycle": 1, "MaxOutdoorUnits": 255, "MaxIndoorUnits": 255, "MaxTemperatureControlUnits": 0, "ModelCode": "0130", "DeviceID": 137776630, "MacAddress": "e8:c7:cf:1f:d0:9f", "SerialNumber": "2254312187", "TimeZoneID": 119, "DiagnosticMode": 0, "DiagnosticEndDate": null, "ExpectedCommand": 1, "Owner": 411295, "DetectedCountry": null, "AdaptorType": 3, "FirmwareDeployment": null, "FirmwareUpdateAborted": false, "LinkedDevice": null, "WifiSignalStrength": -56, "WifiAdapterStatus": "NORMAL", "Position": "Unknown", "PCycle": 10, "PCycleConfigured": null, "RecordNumMax": 0, "LastTimeStamp": "2025-03-03T00:40:00", "ErrorCode": 8000, "HasError": false, "LastReset": "2025-03-01T00:44:42.365", "FlashWrites": 2, "Scene": null, "SSLExpirationDate": "2037-12-31T00:00:00", "SPTimeout": 1, "Passcode": null, "ServerCommunicationDisabled": false, "ConsecutiveUploadErrors": 0, "DoNotRespondAfter": null, "OwnerRoleAccessLevel": 1, "OwnerCountry": 159, "HideEnergyReport": false, "ExceptionHash": null, "ExceptionDate": null, "ExceptionCount": null, "Rate1StartTime": null, "Rate2StartTime": null, "ProtocolVersion": 0, "UnitVersion": 0, "FirmwareAppVersion": 37000, "FirmwareWebVersion": 0, "FirmwareWlanVersion": 0, "LinkToMELCloudHome": false, "LinkedByUserFromMELCloudHome": "00000000-0000-0000-0000-000000000000", "MqttFlags": 9, "HasErrorMessages": false, "HasZone2": false, "Offline": false, "SupportsHourlyEnergyReport": true, "Units": [ { "ID": 1, "Device": 0, "SerialNumber": "3C122988TR", "ModelNumber": 758, "Model": "MUZ-HR35VF", "UnitType": 0, "IsIndoor": false }, { "ID": 2, "Device": 0, "SerialNumber": "4E002592TR", "ModelNumber": 755, "Model": "MSZ-HR35VFK", "UnitType": 1, "IsIndoor": true } ] }

I am using the curl, when i run it in the terminal i get all the information from the 3 devices.

curl -v -H "X-MitsContextKey: xxx" "https://app.melcloud.com/Mitsubishi.Wifi.Client/user/ListDevices?id=xxxxxxx&buildingID=xxxxxx"| jq ".[].Structure.Devices[].Device"

Good afternoon, I don’t know if you’ve already been able to do what you intended. I can assure you that by following this guide, I was able to do what you wanted.

Using an M5 AtomS3 Lite, connected to the cn105 connector of my ECODAN machine and Home Assistant, I was able to monitor it and perform all sorts of actions.

I moved to my own thread here: ESPHome Mitsubishi Ecodan and remote thermostat integrations