homebridge-melcloud-control
Version:
Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.
492 lines (460 loc) • 36.4 kB
Markdown
<p align="center">
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/homebridge-melcloud-control.png" width="540"></a>
</p>
<span align="center">
# MELCloud Control
[](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
[](https://www.npmjs.com/package/homebridge-melcloud-control)
[](https://www.npmjs.com/package/homebridge-melcloud-control)
[](https://www.npmjs.com/package/homebridge-melcloud-control)
[](https://github.com/grzegorz914/homebridge-melcloud-control/pulls)
[](https://github.com/grzegorz914/homebridge-melcloud-control/issues)
<a href="https://buycoffee.to/grzegorz914" target="_blank"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/buycoffee-button.png" style="width: 234px; height: 61px" alt="Supports My Work"></a> <a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/QR_buycoffee.png" width="61"></a>
</span>
## Package Requirements
| Package | Installation | Role | Required |
| --- | --- | --- | --- |
| [Homebridge v2.0.0](https://github.com/homebridge/homebridge) | [Homebridge Wiki](https://github.com/homebridge/homebridge/wiki) | HomeKit Bridge | Required |
| [Homebridge UI](https://github.com/homebridge/homebridge-config-ui-x) | [Homebridge UI Wiki](https://github.com/homebridge/homebridge-config-ui-x/wiki) | Homebridge User Interface | Required plugin |
| [MELCloud](https://github.com/grzegorz914/homebridge-melcloud-control) | [Plug-In Wiki](https://github.com/grzegorz914/homebridge-melcloud-control/wiki) | Plug-In | Required |
## Warning
* For plugin < v4.6.0 use Homebridge UI <= v5.5.0.
* For plugin >= v4.6.0 use Homebridge UI >= v5.13.0.
### About The Plugin
* Support:
* Devices connected to MELCloud or MELCloud Home.
* Multiple accounts, buildings, floors, areas.
* Temperature display units `Celsius/Fahrenheit`.
* Assing individual operating mode for `Heat/Cool/Auto`.
* Presets, only MELCloud.
* Scenes, only MELCloud Home.
* Frost protection, only MELCloud Home.
* Overheat Protection, only MELCloud Home.
* Holiday Mode, only MELCloud Home.
* Physical lock controls `LOCK/UNLOCK`, only MELCloud.
* Functions, using extra `Buttons`, switch to `OFF` restore previous state.
* Automations, shortcuts and Siri.
* External integrations, [RESTFul](https://github.com/grzegorz914/homebridge-melcloud-control?tab=readme-ov-file#restful-integration), [MQTT](https://github.com/grzegorz914/homebridge-melcloud-control?tab=readme-ov-file#mqtt-integration).
* Control devices over local network You need use ESP module and [Tasmota Control](https://github.com/grzegorz914/homebridge-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 `AUTO/1/2/3/4/5`.
* 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`.
* 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`.
* Preset `SET/UNSET`
* Frost protection `ON/OFF/MINTEMP/MAXTEMP`.
* Overheat protection `ON/OFF/MINTEMP/MAXTEMP`.
* Holiday mode `ON/OFF`.
* Schedules `ON/OFF`.
* Scene `ON/OFF`.
* 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/`.
* Preset `ACTIV/UNACTIV`.
* Room temperature.
* Outdoor temperature.
* Frost protection.
* Overheat protection.
* Holiday mode.
* Shedules control.
* Shedule active.
* Scene control.
* In standby.
* Is connected.
* Error.
* Heat Pump:
* Heater Cooler:
* Heat Pump:
* Power `ON/OFF`.
* Operating mode `AUTO/HEAT/COOL` - `POWER OFF/ON/ON`.
* 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 ROOM/HEAT FLOW`.
* Operating mode cool `HEAT/COOL` - `FLOOR DRY UP/COOL ROOM/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 `AUTO/HEAT/COOL` - `POWER OFF/ON/ON`.
* Outdoor temperature `GET`.
* Temperature display unit `°F/°C`.
* Zone 1 and 2:
* Operating mode heat `HEAT/COOL/AUTO` - `HEAT ROOM/HEAT FLOW/CURVE`.
* Operating mode cool `HEAT/COOL/AUTO` - `COOL ROOM/COOL FLOW/FLOOR DRY UP`.
* 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`.
* Preset `SET/UNSET`.
* Frost protection `ON/OFF/MINTEMP/MAXTEMP`.
* Holiday mode `ON/OFF`.
* Schedules `ON/OFF`.
* Scene `ON/OFF`.
* 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`.
* Preset `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.
* Frost protection.
* Holiday mode.
* Shedules control.
* Shedule active.
* Scene control.
* In standby.
* Is connected.
* Error.
* Energy Recovery Ventilation Lossnay:
* Heater Cooler:
* Power `ON/OFF`.
* Operating mode `AUTO/HEAT/COOL/POWER OFF` - `AUTO, LOSSNAY, BYPASS, POWER OFF`.
* Fan speed `AUTO/1/2/3/4`.
* 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`.
* Preset `SET/UNSET`.
* Holiday mode `ON/OFF`.
* Schedules `ON/OFF`.
* Scene `ON/OFF`.
* 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.
* Holiday mode.
* Shedules control.
* Shedule active.
* Scene control.
* In standby.
* Is connected.
* Error.
### HOME app current device mode display
* In AUTO mode, the tile display current state based on current mode:
* HEATING mode, th tile display current state as HEATING - orange
* COOLING mode, the tile display current state as COOLING - blue
* DRY mode, the tile display current state as IDLE - black
* FAN mode, the tile display current state as IDLE - black
* IDLE mode, the tile display current state as IDLE - black
* 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 is send 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.
<p align="center">
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/auto.png" width="840"></a>
</p>
### Configuration
* Run this plugin as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) (Highly Recommended), this prevent crash Homebridge if plugin crashes.
* Install and use [Homebridge UI](https://github.com/homebridge/homebridge-config-ui-x/wiki) to configure this plugin.
* The `sample-config.json` can be edited and used as an alternative.
<p align="center">
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/ustawienia.png" width="840"></a>
</p>
<p align="center">
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/homekit.png" width="375"></a>
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings.png" width="132"></a>
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings1.png" width="132"></a>
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings2.png" width="132"></a>
</p>
| Key | Description |
| --- | --- |
| `name` | Here set the own account name. |
| `user` | Here set the account credential (username). |
| `passwd` | Here set the account credential (password). |
| `language` | Here select the account language. |
| `type` | Here select the account type `0 - None / Disabled`, `1 - MELCloud`, `2 - MELCloud Home`. |
| `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[].name` | Here set Your own name `Accessory Name` which is exposed to the `Homebridge / HomeKit`. |
| `ataDevices[].displayType` | Here select device control mode `0 - None / Disabled`, `1 - Heater / Cooler`, `2 - 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 sensor to use with HomeKit automations. |
| `ataDevices[].temperatureOutdoorSensor` | This enable extra `Outdoor` temperature sensor to use with HomeKit automations. |
| `ataDevices[].inStandbySensor` | This enable `In Standby Mode` sensor to use with HomeKit automations. |
| `ataDevices[].connectSensor` | This enable `Connect State` sensor to use with HomeKit automations. |
| `ataDevices[].errorSensor` | This enable `Error` sensor to use with HomeKit automations. |
| `ataDevices[].remoteRoomTemperatureSupport` | This enable support to update `Room Temperature` with `MQTT` or `RESTFul`. |
| `ataDevices[].frostProtectionSupport` | This enable extra `Frost Protection` control and sensors to use with HomeKit automations. |
| `ataDevices[].overheatProtectionSupport` | This enable extra `Overheat Protection` control and sensors to use with HomeKit automations. |
| `ataDevices[].holidayModeSupport` | This enable extra `Holiday Mode` control and sensors to use with HomeKit automations. |
| `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 set Your own name `Preset Name` which is exposed to the `Homebridge / HomeKit`. |
| `ataDevices[].presets[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ataDevices[].schedules[]` | Array of ATA device `Schedules` created automatically after login to MELCloud Home from plugin config UI. |
| `ataDevices[].schedules[].id` | Read only data, do not change it. |
| `ataDevices[].schedules[].name` | Here set Your own name `Schedule Name` which is exposed to the `Homebridge / HomeKit`. |
| `ataDevices[].schedules[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ataDevices[].scenes[].id` | Read only data, do not change it. |
| `ataDevices[].scenes[].name` | Here set Your own name `Scene Name` which is exposed to the `Homebridge / HomeKit`. |
| `ataDevices[].scenes[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ataDevices[].buttonsSensors[]` | Array of buttons sensors. |
| `ataDevices[].buttonsSensors[].name` | Here set `Button Name` which You want expose to the `Homebridge / HomeKit`. |
| `ataDevices[].buttonsSensors[].mode` | Here select button mode, VH - Vane Horizontal, VV - Vane Horizontal. |
| `ataDevices[].buttonsSensors[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ataDevices[].buttonsSensors[].namePrefix` | Here enable 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[].name` | Here set Your own name `Accessory Name` which is exposed to the `Homebridge / HomeKit`. |
| `atwDevices[].displayType` | Here select main control mode `None / Disabled`, `Heater / Cooler`, `Thermostat`. |
| `atwDevices[].hideZone` | Here select which zone need to be hidden `None / Disabled`, `Heat Pump`, `Heat Pump / Zone 1`, `Heat Pump / Zone 1 / Hot Water`, `Heat Pump / Zone 1 / Zone 2`, `Heat Pump / Hot Water`,`Heat Pump / Hot Water / Zone 2`, `Heat Pump / Zone 2`, `Zone 1`, `Zone 1 / Hot Water`, `Zone 1 / Hot Water / Zone 2`, `Zone 1 / Zone 2`, `Hot Water`, `Hot Water / Zone 2`, `Zone 2`, `All`. |
| `atwDevices[].temperatureSensor` | This enable extra `Room` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureFlowSensor` | This enable extra `Flow` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureReturnSensor` | This enable extra `Return` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureFlowZone1Sensor` | This enable extra `Flow Zone 1` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureReturnZone1Sensor` | This enable extra `Return Zone 1` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureFlowWaterTankSensor` | This enable extra `Flow Water Tank` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureReturnWaterTankSensor` | This enable extra `Return Water Tank` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureFlowZone2Sensor` | This enable extra `Flow Zone 2` temperature sensor to use with HomeKit automations. |
| `atwDevices[].temperatureReturnZone2Sensor` | This enable extra `Return Zone 2` temperature sensor to use with HomeKit automations. |
| `atwDevices[].inStandbySensor` | This enable `In Standby Mode` sensor to use with HomeKit automations. |
| `atwDevices[].connectSensor` | This enable `Connect State` sensor to use with HomeKit automations. |
| `atwDevices[].errorSensor` | This enable `Error` sensors to use with HomeKit automations. |
| `atwDevices[].holidayModeSupport` | This enable extra `Holiday Mode` control and sensors to use with HomeKit automations. |
| `atwDevices[].presets[]` | Array of ATW 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 set Your own name `Preset Name` which is exposed to the `Homebridge/HomeKit`. |
| `atwDevices[].presets[].displayType` | Here select display type in HomeKit, `0 - None/Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `atwDevices[].schedules[]` | Array of ATW device `Schedules` created automatically after login to MELCloud Home from plugin config UI. |
| `atwDevices[].schedules[].id` | Read only data, do not change it. |
| `atwDevices[].schedules[].name` | Here set Your own name `Schedule Name` which is exposed to the `Homebridge/HomeKit`. |
| `atwDevices[].schedules[].displayType` | Here select display type in HomeKit, `0 - None/Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `atwDevices[].scenes[].id` | Read only data, do not change it. |
| `atwDevices[].scenes[].name` | Here set Your own name `Scene Name` which is exposed to the `Homebridge/HomeKit`. |
| `atwDevices[].scenes[].displayType` | Here select display type in HomeKit, `0 - None/Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `atwDevices[].buttonsSensors[]` | Array of buttons sensors. |
| `atwDevices[].buttonsSensors[].name` | Here set `Button Name` which You want expose to the `Homebridge / HomeKit`. |
| `atwDevices[].buttonsSensors[].mode` | Here select button mode. |
| `atwDevices[].buttonsSensors[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `atwDevices[].buttonsSensors[].namePrefix` | Here enable 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[].name` | Here set Your own name `Accessory Name` which is exposed to the `Homebridge / HomeKit`. |
| `ervDevices[].displayType` | Here select main control mode `None / Disabled`, `Heater / Cooler`, `Thermostat`. |
| `ervDevices[].temperatureSensor` | This enable extra `Room` temperature sensor to use with HomeKit automations. |
| `ervDevices[].temperatureOutdoorSensor` | This enable extra `Outdoor` temperature sensor to use with HomeKit automations. |
| `ervDevices[].temperatureSupplySensor` | This enable extra `Supply` temperature sensor to use with HomeKit automations. |
| `atwDevices[].inStandbySensor` | This enable `In Standby Mode` sensor to use with HomeKit automations. |
| `ervDevices[].connectSensor` | This enable `Connect State` sensor to use with HomeKit automations. |
| `ervDevices[].errorSensor` | This enable `Error` sensors to use with HomeKit automations. |
| `ervDevices[].holidayModeSupport` | This enable extra `Holiday Mode` control and sensors to use with HomeKit automations. |
| `ervDevices[].presets[]` | Array of ERV 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 set Your own name `Preset Name` which is exposed to the `Homebridge / HomeKit`. |
| `ervDevices[].presets[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ervDevices[].schedules[]` | Array of ERV device `Schedules` created automatically after login to MELCloud Home from plugin config UI. |
| `ervDevices[].schedules[].id` | Read only data, do not change it. |
| `ervDevices[].schedules[].name` | Here set Your own name `Schedule Name` which is exposed to the `Homebridge / HomeKit`. |
| `ervDevices[].schedules[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ervDevices[].scenes[].id` | Read only data, do not change it. |
| `ervDevices[].scenes[].name` | Here set Your own name `Scene Name` which is exposed to the `Homebridge / HomeKit`. |
| `ervDevices[].scenes[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ervDevices[].buttonsSensors[]` | Array of buttons sensors. |
| `ervDevices[].buttonsSensors[].name` | Here set `Button Name` which You want expose to the `Homebridge / HomeKit`. |
| `ervDevices[].buttonsSensors[].mode` | Here select button mode. |
| `ervDevices[].buttonsSensors[].displayType` | Here select display type in HomeKit, `0 - None / Disabled`, `1 - Motion Sensor`, `2 - Occupancy Sensor`, `3 - Contact Sensor`, `4 - Switch + Motion Sensor`, `5 - Switch + Occupancy Sensor`, `6 - Switch + Contact Sensor`, `7 - Switch`. |
| `ervDevices[].buttonsSensors[].namePrefix` | Here enable the accessory name as a prefix for button / sensor name. |
| `refreshInterval` | Here set the background account data refresh time in (sec) , only for old MELCLoud, default `120s`. |
| `log{}` | Log object. |
| `log.deviceInfo` | This enable log device info will be displayed by every connections device to the network. |
| `log.success` | This enable success log will be displayed in console. |
| `log.info` | This enable info log will be displayed in console. |
| `log.warn` | This enable warn log will be displayed in console. |
| `log.error` | This enable error log will be displayed in console. |
| `log.debug` | This enable debug log will be displayed in console. |
| `restFul{}` | RSTful object. |
| `restFul.enable` | This enable RESTful server will start automatically and respond to any path request. |
| `mqtt{}` | MQTT object. |
| `mqtt.enable` | This enable 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{}` | MQTT authorization object. |
| `mqtt.auth.enable` | Here enable authorization for MQTT Broker. |
| `mqtt.auth.user` | Here set the MQTT Broker user. |
| `mqtt.auth.passwd` | Here set the MQTT Broker password. |
### RESTful Integration
* Port:
* MELCLoud, last 4 numbers of `device Id`, correct port is displayed in HB log during start.
* MELCLoud Home, start at `30000`, correct port is displayed in HB log during start.
* POST data as a JSON Object `{OperationMode: 8}`.
* Header content type must be `application/json`.
* Path `status` response all available paths.
| 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` | `ProhibitSetTemperature` | `true`, `false` | boolean | Lock set temperature (Only MELCloud). |
| | `http//ip:port` | `ProhibitOperationMode` | `true`, `false` | boolean | Lock set operating mode (Only MELCloud). |
| | `http//ip:port` | `ProhibitPower` | `true`, `false` | boolean | Lock set power (Only MELCloud). |
| | `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. |
| | `http//ip:port` | `FrostProtection` | `true`, `false` | boolean | Frost protectin (Only MELCloud Home). |
| | `http//ip:port` | `OverheatProtection` | `true`, `false` | boolean | Overheat protection (Only MELCloud Home). |
| | `http//ip:port` | `Schedules` | `true`, `false` | boolean | Schedules (Only MELCloud Home). |
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
| | `http//ip:port` | `RemoteRoomTemperature` | `23.0` | float | Remote room temperature. |
| Heat Pump | | | | | |
| POST | `http//ip:port` | `Power` | `true`, `false` | boolean | Power state. |
| | `http//ip:port` | `OperationModeZone1` | `0 - Heat Room`, `1 - Heat Flow`, `2 - Heat Curve`, `3 - Cool Room`, `4 - Cool Flow`, `5 - Flor Dry Up` | integer | Operating mode zone 1. |
| | `http//ip:port` | `SetTemperatureZone1` | `0.0` | float | Temperature zone 1. |
| | `http//ip:port` | `SetHeatFlowTemperatureZone1` | `0.0` | float | Heat flow temperature zone 1. |
| | `http//ip:port` | `SetCoolFlowTemperatureZone1` | `0.0` | float | Cool flow temperature zone 1. |
| | `http//ip:port` | `ProhibitZone1` | `true`, `false` | boolean | Lock control zone 1 (Only MELCloud). |
| | `http//ip:port` | `ForcedHotWaterMode` | `true`, `false` | boolean | Force hot water. |
| | `http//ip:port` | `EcoHotWater` | `true`, `false` | boolean | Eco hot water (Only MELCloud). |
| | `http//ip:port` | `SetTankWaterTemperature` | `0.0` | float | Hot water temperature. |
| | `http//ip:port` | `ProhibitHotWater` | `true`, `false` | boolean | Lock control hot water. |
| | `http//ip:port` | `OperationModeZone2` | `0 - Heat Room`, `1 - Heat Flow`, `2 - Heat Curve`, `3 - Cool Room`, `4 - Cool Flow`, `5 - Flor Dry Up` | integer | Operating mode zone 2. |
| | `http//ip:port` | `SetTemperatureZone2` | `0.0` | float | Temperature zone 2. |
| | `http//ip:port` | `SetHeatFlowTemperatureZone2` | `0.0` | float | Heat flow temperature zone 2. |
| | `http//ip:port` | `SetCoolFlowTemperatureZone2` | `0.0` | float | Cool flow temperature zone 2. |
| | `http//ip:port` | `ProhibitZone2` | `true`, `false` | boolean | Lock control zone 2 (Only MELCloud). |
| | `http//ip:port` | `FrostProtection` | `true`, `false` | boolean | Frost protectin (Only MELCloud Home). |
| | `http//ip:port` | `Schedules` | `true`, `false` | boolean | Schedules (Only MELCloud Home). |
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
| 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` | `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. |
| | `http//ip:port` | `Schedules` | `true`, `false` | boolean | Schedules (Only MELCloud Home). |
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
### 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` | `ProhibitSetTemperature` | `true`, `false` | boolean | Lock set temperature (Only MELCloud). |
| | `Set` | `ProhibitOperationMode` | `true`, `false` | boolean | Lock set operating mode (Only MELCloud). |
| | `Set` | `ProhibitPower` | `true`, `false` | boolean | Lock set power (Only MELCloud). |
| | `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. |
| | `Set` | `FrostProtection` | `true`, `false` | boolean | Frost protectin (Only MELCloud Home). |
| | `Set` | `OverheatProtection` | `true`, `false` | boolean | Overheat protection (Only MELCloud Home). |
| | `Set` | `Schedules` | `true`, `false` | boolean | Schedules (Only MELCloud Home). |
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
| | `Set` | `RemoteRoomTemperature` | `23.0` | float | Remote room temperature. |
| Heat Pump | | | | | |
| Subscribe | `Set` | `Power` | `true`, `false` | boolean | Power state. |
| | `Set` | `OperationModeZone1` | `0 - Heat Room`, `1 - Heat Flow`, `2 - Heat Curve`, `3 - Cool Room`, `4 - Cool Flow`, `5 - Flor Dry Up` | integer | Operating mode zone 1. |
| | `Set` | `SetTemperatureZone1` | `0.0` | float | Temperature zone 1. |
| | `Set` | `SetHeatFlowTemperatureZone1` | `0.0` | float | Heat flow temperature zone 1. |
| | `Set` | `SetCoolFlowTemperatureZone1` | `0.0` | float | Cool flow temperature zone 1. |
| | `Set` | `ProhibitZone1` | `true`, `false` | boolean | Lock control zone 1 (Only MELCloud). |
| | `Set` | `ForcedHotWaterMode` | `true`, `false` | boolean | Force hot water. |
| | `Set` | `EcoHotWater` | `true`, `false` | boolean | Eco hot water (Only MELCloud). |
| | `Set` | `SetTankWaterTemperature` | `0.0` | float | Hot water temperature. |
| | `Set` | `ProhibitHotWater` | `true`, `false` | boolean | Lock control hot water. |
| | `Set` | `OperationModeZone2` | `0 - Heat Room`, `1 - Heat Flow`, `2 - Heat Curve`, `3 - Cool Room`, `4 - Cool Flow`, `5 - Flor Dry Up` | integer | Operating mode zone 2. |
| | `Set` | `SetTemperatureZone2` | `0.0` | float | Temperature zone 2. |
| | `Set` | `SetHeatFlowTemperatureZone2` | `0.0` | float | Heat flow temperature zone 2. |
| | `Set` | `SetCoolFlowTemperatureZone2` | `0.0` | float | Cool flow temperature zone 2. |
| | `Set` | `ProhibitZone2` | `true`, `false` | boolean | Lock control zone 2 (Only MELCloud). |
| | `Set` | `FrostProtection` | `true`, `false` | boolean | Frost protectin (Only MELCloud Home). |
| | `Set` | `Schedules` | `true`, `false` | boolean | Schedules (Only MELCloud Home). |
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
| Energy Recovery Ventilation | | | | | |
| Subscribe | `Set` | `Power` | `true`, `false` | boolean | Power state. |
| | `Set` | `NightPurgeMode` | `true`, `false` | boolean | Night purge mode. |
| | `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. |
| | `Set` | `Schedules` | `true`, `false` | boolean | Schedules (Only MELCloud Home). |
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |