Skip to content

Homebridge plugin for Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation, publish as dynamic external platform accessory.

License

Notifications You must be signed in to change notification settings

grzegorz914/homebridge-melcloud-control

Repository files navigation

Homebridge MELCloud Control

verified-by-homebridge npm npm npm GitHub pull requests GitHub issues

Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation Lossnay, manufactured by Mistsubishi and connected to MELCloud.

Package Requirements

Package Installation Role Required
Homebridge v2.0 Homebridge Wiki HomeKit Bridge Required ab v3.0.0
Config UI X Config UI X Wiki Homebridge Web User Interface Required ab v3.0.0
MELCloud Plug-In Wiki Homebridge Plug-In Required

About The Plugin

  • All devices are detected automatically.
  • Control devices over MELCloud server.
  • Support multiple accounts, buildings, floors, areas.
  • Support temperature display units Celsius/Fahrenheit.
  • Support assing inividual operating mode for Heat/Cool/Auto.
  • Support direct Presets control using extra Buttons, switch it to OFF restore previous device state.
  • Support direct Functions control using extra Buttons, switch it to OFF restore previous device state.
  • Support detect all device states using extra Sensors.
  • Support automations, shortcuts and Siri.
  • Support external integrations, RESTFul, MQTT.
  • Control devices over local network You need use ESP module and Tasmota Control plugin.

Control Mode

  • Air Conditioner:
    • Heater Cooler:
      • Power ON/OFF.
      • Operating mode AUTO/HEAT/COOL/POWER OFF.
      • Temperature HEATING/COOLING/AUTO.
      • Fan speed OFF/1/2/3/4/5/AUTO.
      • Swing mode AUTO/SWING.
      • Physical lock controls LOCK/UNLOCK.
      • Temperature display unit °F/°C.
    • Thermostat:
      • Power ON/OFF.
      • Operating mode POWER OFF/HEAT/COOL/AUTO.
      • Temperature HEATING/COOLING/AUTO.
      • Temperature display unit °F/°C.
      • Assign operating mode for HEAT/AUTO
    • Buttons:
      • For direct device control.
        • Power ON/OFF.
        • Operating mode HEAT/DRY/COOL/FAN/AUTO.
        • Physical lock controls LOCK/UNLOCK.
        • Vane H mode AUTO/1/2/3/4/5/SPLIT/SWING.
        • Vane V mode AUTO/1/2/3/4/5/SWING.
        • Fan speed mode AUTO/1/2/3/4/5.
        • Presets SET/UNSET.
    • Sensors:
      • For automation and notifications.
        • Power ON/OFF.
        • Operating mode HEAT/DRY/COOL/FAN/AUTO.
        • Physical lock controls LOCK/UNLOCK.
        • Vane H mode AUTO/1/2/3/4/5/SPLIT/SWING.
        • Vane V mode AUTO/1/2/3/4/5/SWING.
        • Fan speed mode AUTO/1/2/3/4/5/.
        • Presets ACTIV/UNACTIV.
        • Room temperature.
        • Outdoor temperature.
  • Heat Pump:
    • Heater Cooler:
      • Heat Pump:
        • Power ON/OFF.
        • Operating mode HEAT/COOL.
        • Outdoor temperature GET.
        • Physical lock controls all Zones and Hot Water Tank LOCK/UNLOCK.
        • Temperature display unit °F/°C.
      • Zone 1 and 2:
        • Operating mode heat AUTO/HEAT/COOL - CURVE/HEAT THERMOSTAT/HEAT FLOW.
        • Operating mode cool HEAT/COOL - COOL THERMOSTAT/COOL FLOW.
        • Temperature HEATING/COOLING.
        • Physical lock controls LOCK/UNLOCK.
      • Hot Water Tank:
        • Operating mode AUTO/HEAT - AUTO/HEAT NOW.
        • Temperature SET/GET.
        • Physical lock controls LOCK/UNLOCK.
    • Thermostat:
      • Heat Pump:
        • Power ON/OFF.
        • Operating mode HEAT/COOL.
        • Outdoor temperature GET.
        • Temperature display unit °F/°C.
      • Zone 1 and 2:
        • Operating mode heat HEAT/COOL/AUTO - HEAT THERMOSTAT/HEAT FLOW/CURVE.
        • Operating mode cool HEAT/COOL - COOL THERMOSTAT/COOL FLOW.
        • Temperature HEATING/COOLING.
      • Hot Water Tank:
        • Operating mode HEAT/AUTO - HEAT NOW, AUTO.
        • Temperature SET/GET.
    • Buttons:
      • For direct device control.
        • Power ON/OFF.
        • Operating mode HEAT/COOL/CURVE/HOLIDAY/AUTO HOT WATER/ECO HOT WATER/FORCE HOT WATER.
        • Physical lock controls LOCK/UNLOCK.
        • Presets SET/UNSET.
    • Sensors:
      • For automation and notifications.
        • Power ON/OFF.
        • Operating mode HEAT/COOL/CURVE/HOLIDAY/AUTO HOT WATER/ECO HOT WATER/FORCE HOT WATER.
        • Physical lock controls LOCK/UNLOCK.
        • Presets ACTIV/UNACTIV.
        • Outdoor temperature.
        • Zone 1 temperature.
        • Zone 2 temperature.
        • Water tank temperature.
        • Flow Temperature Zone 1, 2, Hot Water.
        • Return Temperature Zone 1, 2, Hot Water.
  • Energy Recovery Ventilation Lossnay:
    • Heater Cooler:
      • Power ON/OFF.
      • Operating mode AUTO/HEAT/COOL/POWER OFF - AUTO, LOSSNAY, BYPASS, POWER OFF.
      • Fan speed OFF/1/2/3/4/AUTO.
      • Temperature display unit °F/°C.
    • Thermostat:
      • Power ON/OFF.
      • Operating mode POWER OFF/HEAT/COOL/AUTO - POWER OFF, LOSSNAY, BYPASS, AUTO.
      • Temperature display unit °F/°C.
    • Buttons:
      • For direct device control.
        • Power ON/OFF.
        • Operating mode LOSSNAY/BYPASS/AUTO/NIGHT PURGE.
        • Fan speed mode AUTO/1/2/3/4.
        • Presets SET/UNSET.
    • Sensors:
      • For automation and notifications.
        • Power ON/OFF.
        • Operating mode LOSSNAY/BYPASS/AUTO/NIGHT PURGE.
        • Fan speed mode AUTO/1/2/3/4.
        • Presets ACTIV/UNACTIV.
        • Room temperature.
        • Outdoor temperature.
        • Supply temperature.
        • Core maintenance.
        • Filter maintenance.
        • CO2 detected and level.
        • PM2.5 air quality and level.

HOME app current device mode display

  • In AUTO mode, the tile display current state based on current mode:
  • In HEATING mode, th tile display current state as HEATING - orange
  • In COOLING mode, the tile display current state as COOLING - blue
  • In DRY mode, the tile display current state as IDLE - black
  • In FAN mode, the tile display current state as IDLE - black
  • In IDLE mode, the tile display current state as IDLE - black
  • In INACTIVE mode, the tile display current state as INACTIVE - transparent

AUTO Mode

  • Heather/Cooler
    • In this mode we can set heathing threshold and cooling threshold temperature:
    • Target temperature is calculated as a middle value between LO and HI and the rest is calculated internally.
  • Thermostat
    • In this mode we can set only target temperature:
    • Target temperature issend to device and calculated internally:
  • Calculation method in device internally:
    • If the room temperature < Heating Setpoint, the unit will be set to HEAT with a setpoint of 23°C.
    • In HEAT, if the room temperature > Heating Setpoint + 1°C, the unit will be set to FAN.
    • In FAN, if the room temperature > Cooling Setpoint, the unit will be set to COOL with a setpoint of 19°C.
    • In COOL, if the room temperature < Cooling Setpoint - 1°C, the unit will be set to FAN.
    • In FAN, if the room temperature < Heating Setpoint, the unit will be set to HEAT with a setpoint of 23°C.
  • The image shows Heating Setpoint of 19°C and a Cooling Setpoint of 23°C.

Configuration

  • Run this plugin as a Child Bridge (Highly Recommended), this prevent crash Homebridge if plugin crashes.
  • Install and use Homebridge Config UI X to configure this plugin, required for version v3 and above.
  • The sample-config.json can be edited and used as an alternative.

Key Description
name Here set the own account name.
user Here set the MELCloud username.
passwd Here set the MELCloud password.
language Here select the MELCloud language.
ataDevices Array of ATA devices created automatically after login to MELCloud from plugin config UI.
ataDevices.id Read only data, do not change it.
ataDevices.type Read only data, do not change it.
ataDevices.typeString Read only data, do not change it.
ataDevices.name Here You can schange the Accessory Name which is exposed to the Homebridge/HomeKit.
ataDevices.displayMode Here select device control mode None/Disabled, Heater/Cooler, Thermostat.
ataDevices.heatDryFanMode Here select the operatiing mode for Heat, if this mode is not supported, it will be disabled.
ataDevices.coolDryFanMode Here select the operatiing mode for Cool, if this mode is not supported, it will be disabled.
ataDevices.autoDryFanMode Here select the operatiing mode for Auto, if this mode is not supported, it will be disabled..
ataDevices.temperatureSensor This enable extra Room temperature sensors to use with automations in HomeKit app.
ataDevices.temperatureSensorOutdoor This enable extra Outdoor temperature sensors to use with automations in HomeKit app.
ataDevices.refreshInterval Here set the background devices state refresh time in (sec), default 5s.
ataDevices.presets Array of ATA device Presets created automatically after login to MELCloud from plugin config UI.
ataDevices.presets.id Read only data, do not change it.
ataDevices.presets.name Here You can schange the Preset Name which is exposed to the Homebridge/HomeKit.
ataDevices.presets.displayType Here select display type in HomeKit, 0 - None/Disabled, 1 - Outlet, 2 - Switch, 3 - Motion Sensor, 4 - Occupancy Sensor, 5 - Contact Sensor.
buttonsSensors Array of buttons sensors.
buttonsSensors.name Here set Button Name which You want expose to the Homebridge/HomeKit.
buttonsSensors.mode Here select button mode, VH - Vane Horizontal, VV - Vane Horizontal.
buttonsSensors.displayType Here select display type in HomeKit, 0 - None/Disabled, 1 - Outlet, 2 - Switch, 3 - Motion Sensor, 4 - Occupancy Sensor, 5 - Contact Sensor.
buttonsSensors.namePrefix Here enable/disable the accessory name as a prefix for button/sensor name.
atwDevices Array of ATA devices created automatically after login to MELCloud from plugin config UI.
atwDevices.id Read only data, do not change it.
atwDevices.type Read only data, do not change it.
atwDevices.typeString Read only data, do not change it.
atwDevices.name Here You can schange the Accessory Name which is exposed to the Homebridge/HomeKit.
atwDevices.displayMode Here select main control mode None/Disabled, Heater/Cooler, Thermostat.
atwDevices.temperatureSensor This enable extra Room temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorFlow This enable extra Flow temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorReturn This enable extra Return temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorFlowZone1 This enable extra Flow Zone 1 temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorReturnZone1 This enable extra Return Zone 1 temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorFlowWaterTank This enable extra Flow Water Tank temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorReturnWaterTank This enable extra Return Water Tank temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorFlowZone2 This enable extra Flow Zone 2 temperature sensors to use with automations in HomeKit app.
atwDevices.temperatureSensorReturnZone2 This enable extra Return Zone 2 temperature sensors to use with automations in HomeKit app.
atwDevices.refreshInterval Here set the background devices state refresh time in (sec), default 5s.
atwDevices.presets Array of ATA device Presets created automatically after login to MELCloud from plugin config UI.
atwDevices.presets.id Read only data, do not change it.
atwDevices.presets.name Here You can schange the Preset Name which is exposed to the Homebridge/HomeKit.
atwDevices.presets.displayType Here select display type in HomeKit, 0 - None/Disabled, 1 - Outlet, 2 - Switch, 3 - Motion Sensor, 4 - Occupancy Sensor, 5 - Contact Sensor.
buttonsSensors Array of buttons sensors.
buttonsSensors.name Here set Button Name which You want expose to the Homebridge/HomeKit.
buttonsSensors.mode Here select button mode.
buttonsSensors.displayType Here select display type in HomeKit, 0 - None/Disabled, 1 - Outlet, 2 - Switch, 3 - Motion Sensor, 4 - Occupancy Sensor, 5 - Contact Sensor.
buttonsSensors.namePrefix Here enable/disable the accessory name as a prefix for button/sensor name.
ervDevices Array of ATA devices created automatically after login to MELCloud from plugin config UI.
ervDevices.id Read only data, do not change it.
ervDevices.type Read only data, do not change it.
ervDevices.typeString Read only data, do not change it.
ervDevices.name Here You can schange the Accessory Name which is exposed to the Homebridge/HomeKit.
ervDevices.displayMode Here select main control mode None/Disabled, Heater/Cooler, Thermostat.
ervDevices.temperatureSensor This enable extra Room temperature sensors to use with automations in HomeKit app.
ervDevices.temperatureSensorOutdoor This enable extra Outdoor temperature sensors to use with automations in HomeKit app.
ervDevices.temperatureSensorSupply This enable extra Supply temperature sensors to use with automations in HomeKit app.
ervDevices.refreshInterval Here set the background devices state refresh time in (sec), default 5s.
ervDevices.presets Array of ATA device Presets created automatically after login to MELCloud from plugin config UI.
ervDevices.presets.id Read only data, do not change it.
ervDevices.presets.name Here You can schange the Preset Name which is exposed to the Homebridge/HomeKit.
ervDevices.presets.displayType Here select display type in HomeKit, 0 - None/Disabled, 1 - Outlet, 2 - Switch, 3 - Motion Sensor, 4 - Occupancy Sensor, 5 - Contact Sensor.
buttonsSensors Array of buttons sensors.
buttonsSensors.name Here set Button Name which You want expose to the Homebridge/HomeKit.
buttonsSensors.mode Here select button mode.
buttonsSensors.displayType Here select display type in HomeKit, 0 - None/Disabled, 1 - Outlet, 2 - Switch, 3 - Motion Sensor, 4 - Occupancy Sensor, 5 - Contact Sensor.
buttonsSensors.namePrefix Here enable/disable the accessory name as a prefix for button/sensor name.
refreshInterval Here set the background account data refresh time in (sec), default 120s.
enableDebugMode This enable deep log in homebridge console.
disableLogInfo This disable display log values and states on every it change.
disableLogDeviceInfo This disable display log device info on plugin start.
restFul This is RSTful server.
restFul.enable If enabled, RESTful server will start automatically and respond to any path request.
restFul.port Here set the listening Port for RESTful server.
restFul.debug If enabled, deep log will be present in homebridge console for RESTFul server.
mqtt This is MQTT Broker.
mqtt.enable If enabled, MQTT Broker will start automatically and publish all awailable PV data.
mqtt.host Here set the IP Address or Hostname for MQTT Broker.
mqtt.port Here set the Port for MQTT Broker, default 1883.
mqtt.clientId Here optional set the Client Id of MQTT Broker.
mqtt.prefix Here set the Prefix for Topic or leave empty.
mqtt.auth If enabled, MQTT Broker will use authorization credentials.
mqtt.user Here set the MQTT Broker user.
mqtt.passwd Here set the MQTT Broker password.
mqtt.debug If enabled, deep log will be present in homebridge console for MQTT.

RESTful Integration

  • Port: last 4 numbers of device Id, displayed in HB log during start.
  • POST data as a JSON Object {OperationMode: 8}
Method URL Path Response Type
GET http//ip:port Info, State {"Power": true, "SetTemperature": 21.5} JSON object.
Method URL Key Value Type Description
Air Conditioner
POST http//ip:port Power true, false boolean Power state.
http//ip:port HideVaneControls true, false boolean Hide vane controls.
http//ip:port HideDryModeControl true, false boolean Hide dry mode control.
http//ip:port ProhibitSetTemperature true, false boolean Lock set temperature.
http//ip:port ProhibitOperationMode true, false boolean Lock set operating mode.
http//ip:port ProhibitPower true, false boolean Lock set power.
http//ip:port OperationMode 1 - Heat, 2 - Dry, 3 - Cool, 7 - Fan, 8 - Auto integer Operating mode.
http//ip:port FanSpeed 0 - Auto, 1, 2, 3, 4, 5, 6 integer Fan speed.
http//ip:port VaneHorizontalDirection 0, 1, 2, 3, 4, 5, 8 - Split, 12 - Swing integer Vane H mode.
http//ip:port VaneVerticalDirection 0, 1, 2, 3, 4, 5, 7 - Swing integer Vane V mode.
http//ip:port SetTemperature 0.0 float Room temperature.
http//ip:port DefaultCoolingSetTemperature 0.0 float Default cooling temperature.
http//ip:port DefaultHeatingSetTemperature 0.0 float Default heating temperature.
Heat Pump
POST http//ip:port Power true, false boolean Power state.
http//ip:port ForcedHotWaterMode true, false boolean Force hot water.
http//ip:port EcoHotWater true, false boolean Eco hot water.
http//ip:port HolidayMode true, false boolean Holiday mode.
http//ip:port ProhibitZone1 true, false boolean Lock control zone 1.
http//ip:port ProhibitZone2 true, false boolean Lock control zone 2.
http//ip:port ProhibitHotWater true, false boolean Lock control hot water.
http//ip:port OperationMode 0 - Auto, 1 - Heat, 2 - Cool integer Operating mode heat pump.
http//ip:port OperationModeZone1 0 - Heat Thermostat, 1 - Heat Flow, 2 - Heat Curve, 3 - Cool Thermostat, 4 - Cool Flow, 5 - Flor Dry Up integer Operating mode zone 1.
http//ip:port OperationModeZone2 0 - Heat Thermostat, 1 - Heat Flow, 2 - Heat Curve, 3 - Cool Thermostat, 4 - Cool Flow, 5 - Flor Dry Up integer Operating mode zone 2.
http//ip:port SetTemperatureZone1 0.0 float Temperature zone 1.
http//ip:port SetTemperatureZone2 0.0 float Temperature zone 2.
http//ip:port SetHeatFlowTemperatureZone1 0.0 float Heat flow temperature zone 1.
http//ip:port SetHeatFlowTemperatureZone2 0.0 float Heat flow temperature zone 2.
http//ip:port SetCoolFlowTemperatureZone1 0.0 float Cool flow temperature zone 1.
http//ip:port SetCoolFlowTemperatureZone2 0.0 float Cool flow temperature zone 2.
http//ip:port SetTankWaterTemperature 0.0 float Hot water temperature.
Energy Recovery Ventilation
POST http//ip:port Power true, false boolean Power state.
http//ip:port NightPurgeMode true, false boolean Night purge mode.
http//ip:port HideRoomTemperature true, false boolean Hide room temperature.
http//ip:port HideSupplyTemperature true, false boolean Hide supply temperature.
http//ip:port HideOutdoorTemperature true, false boolean Hide outdoor temperature.
http//ip:port OperationMode 1 - Heat, 3 - Cool, 7 - Fan, 8 - Auto integer Operating mode.
http//ip:port VentilationMode 0 - Lossnay, 1 - Bypass, 2 - Auto integer Ventilation mode.
http//ip:port SetFanSpeed 0 - Auto, 1, 2, 3, 4 integer Fan speed.
http//ip:port SetTemperature 0.0 float Room temperature.
http//ip:port DefaultCoolingSetTemperature 0.0 float Default cooling temperature.
http//ip:port DefaultHeatingSetTemperature 0.0 float Default heating temperature.

MQTT Integration

  • Subscribe data as a JSON Object {"Power": true}
Direction Topic Message Type
Publish Info, State {"Power": true, "SetTemperature": 21.5} JSON object.
Method Topic Key Value Type Description
Air Conditioner
Subscribe Set Power true, false boolean Power state.
Set HideVaneControls true, false boolean Hide vane controls.
Set HideDryModeControl true, false boolean Hide dry mode control.
Set ProhibitSetTemperature true, false boolean Lock set temperature.
Set ProhibitOperationMode true, false boolean Lock set operating mode.
Set ProhibitPower true, false boolean Lock set power.
Set OperationMode 1 - Heat, 2 - Dry, 3 - Cool, 7 - Fan, 8 - Auto integer Operating mode.
Set FanSpeed 0 - Auto, 1, 2, 3, 4, 5, 6 integer Fan speed.
Set VaneHorizontalDirection 0, 1, 2, 3, 4, 5, 8 - Split, 12 - Swing integer Vane H mode.
Set VaneVerticalDirection 0, 1, 2, 3, 4, 5, 7 - Swing integer Vane V mode.
Set SetTemperature 0.0 float Room temperature.
Set DefaultCoolingSetTemperature 23.0 float Default cooling temperature.
Set DefaultHeatingSetTemperature 21.0 float Default heating temperature.
Heat Pump
Subscribe Set Power true, false boolean Power state.
Set ForcedHotWaterMode true, false boolean Force hot water.
Set EcoHotWater true, false boolean Eco hot water.
Set HolidayMode true, false boolean Holiday mode.
Set ProhibitZone1 true, false boolean Lock control zone 1.
Set ProhibitZone2 true, false boolean Lock control zone 2.
Set ProhibitHotWater true, false boolean Lock control hot water.
Set OperationMode 0 - Auto, 1 - Heat, 2 - Cool integer Operating mode heat pump.
Set OperationModeZone1 0 - Heat Thermostat, 1 - Heat Flow, 2 - Heat Curve, 3 - Cool Thermostat, 4 - Cool Flow, 5 - Flor Dry Up integer Operating mode zone 1.
Set OperationModeZone2 0 - Heat Thermostat, 1 - Heat Flow, 2 - Heat Curve, 3 - Cool Thermostat, 4 - Cool Flow, 5 - Flor Dry Up integer Operating mode zone 2.
Set SetTemperatureZone1 0.0 float Temperature zone 1.
Set SetTemperatureZone2 0.0 float Temperature zone 2.
Set SetHeatFlowTemperatureZone1 0.0 float Heat flow temperature zone 1.
Set SetHeatFlowTemperatureZone2 0.0 float Heat flow temperature zone 2.
Set SetCoolFlowTemperatureZone1 0.0 float Cool flow temperature zone 1.
Set SetCoolFlowTemperatureZone2 0.0 float Cool flow temperature zone 2.
Set SetTankWaterTemperature 0.0 float Hot water temperature.
Energy Recovery Ventilation
Subscribe Set Power true, false boolean Power state.
Set NightPurgeMode true, false boolean Night purge mode.
Set HideRoomTemperature true, false boolean Hide room temperature.
Set HideSupplyTemperature true, false boolean Hide supply temperature.
Set HideOutdoorTemperature true, false boolean Hide outdoor temperature.
Set OperationMode 1 - Heat, 3 - Cool, 7 - Fan, 8 - Auto integer Operating mode.
Set VentilationMode 0 - Lossnay, 1 - Bypass, 2 - Auto integer Ventilation mode.
Set SetFanSpeed 0 - Auto, 1, 2, 3, 4 integer Fan speed.
Set SetTemperature 0.0 float Room temperature.
Set DefaultCoolingSetTemperature 23.0 float Default cooling temperature.
Set DefaultHeatingSetTemperature 21.0 float Default heating temperature.

About

Homebridge plugin for Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation, publish as dynamic external platform accessory.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •