UNPKG

homebridge-melcloud-control

Version:

Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.

250 lines (241 loc) 14.2 kB
export const PlatformName = "melcloudcontrol"; export const PluginName = "homebridge-melcloud-control"; export const ApiUrls = { Base: "https://app.melcloud.com/Mitsubishi.Wifi.Client", Get: { UserDetails: "/User/GetUserDetails", ListDevices: "/User/ListDevices", ListDeviceUnits: "/Device/ListDeviceUnits", RefreshUnit: "/Device/RequestRefresh?id=deviceid", DeviceState: "/Device/Get?id=DID&buildingID=BID", TileState: "/Tile/Get2?id=DID&buildingID=BID", Scenes: "/Scene/List" }, Post: { ClientLogin: "/Login/ClientLogin", Ata: "/Device/SetAta", Atw: "/Device/SetAtw", Erv: "/Device/SetErv", UpdateApplicationOptions: "/User/UpdateApplicationOptions", HolidayMode: "/HolidayMode/Update", EnergyCostReport: "/EnergyCost/Report", }, Home: { UserAgent: "MonitorAndControl.App.Mobile/52 CFNetwork/3860.400.51 Darwin/25.3.0", Base: "https://mobile.bff.melcloudhome.com", AuthBase: "https://auth.melcloudhome.com", OauthClientId: "homemobile", OauthRedirectUri: "melcloudhome://", OauthScopes: "openid profile email offline_access IdentityServerApi", CognitoBase: "https://live-melcloudhome.auth.eu-west-1.amazoncognito.com", CognitoDomainSuffix: ".amazoncognito.com", WebSocket: "wss://ws.melcloudhome.com/?hash=", Get: { Config: "/config", //{"feature_management":{"feature_flags":[{"id":"energyProduced","enabled":"true"},{"id":"enableManual4thGenClaiming","enabled":"false"}]},"sentryLogging":{"enableSentryLogging":"/mch/monitorAndControlMobile/enableSentryLogging"}} Context: "/context", //{} Scenes: "/monitor/user/scenes", //[{}] SystemInvites: "/monitor/user/systeminvites", //[] NotificationSettings: "/monitor.user/notificationsettings", //{"054dd950-f6e0-4195-bea7-59d8ea0668c2": true TelemetryEnergy: "/telemetry/telemetry/energy/deviceid", TelemetryActual: "/telemetry/telemetry/actual/deviceid", ReportTrendSummary: "/report/v1/trendsummary" }, Post: { ProtectionFrost: "/monitor/protection/frost", //{"enabled":true,"min":13,"max":16,"units":{"ATA":["deviceid"]}} ProtectionOverheat: "/monitor/protection/overheat", //{"enabled":true,"min":32,"max":35,"units":{"ATA":["deviceid"]}} HolidayMode: "/monitor/holidaymode", //{"enabled":true,"startDate":"2025-11-11T17:42:24.913","endDate":"2026-06-01T09:18:00","units":{"ATA":["deviceid"]}} Schedule: "/monitor/cloudschedule/deviceid", //{"days":[2],"time":"17:59:00","enabled":true,"id":"scheduleid","power":false,"operationMode":null,"setPoint":null,"vaneVerticalDirection":null,"vaneHorizontalDirection":null,"setFanSpeed":null} Scene: "/monitor/scene", //{"id": "sceneid", "userId": "userid","name": "Poza domem","enabled": false,"icon": "AwayIcon","ataSceneSettings": [{"unitId": "deviceid","ataSettings": { "power": false, "operationMode": "heat","setFanSpeed": "auto","vaneHorizontalDirection": "auto", "vaneVerticalDirection": "auto", "setTemperature": 21,"temperatureIncrementOverride": null,"inStandbyMode": null},"previousSettings": null}],"atwSceneSettings": []} }, Put: { Ata: "/monitor/ataunit/deviceid", //{ power: true,setTemperature: 22, setFanSpeed: "auto", operationMode: "heat", vaneHorizontalDirection: "auto",vaneVerticalDirection: "auto", temperatureIncrementOverride: null, inStandbyMode: null} Atw: "/monitor/atwunit/deviceid", Erv: "/monitor/ervunit/deviceid", ScheduleEnabled: "/monitor/cloudschedule/deviceid/enabled", // {"enabled": true} SceneEnableDisable: "/monitor/scene/sceneid", //https://mobile.bff.melcloudhome.com/monitor/scene/sceneid/enable or disable }, Delete: { Schedule: "/monitor/cloudschedule/deviceid/scheduleid", Scene: "/monitor/scene/sceneid" }, Referers: { GetPutScenes: "https://melcloudhome.com/scenes", PostHolidayMode: "https://melcloudhome.com/ata/deviceid/holidaymode", PostProtectionFrost: "https://melcloudhome.com/ata/deviceid/frostprotection", PostProtectionOverheat: "https://melcloudhome.com/ata/deviceid/overheatprotection", PutDeviceSettings: "https://melcloudhome.com/dashboard", PutScheduleEnabled: "https://melcloudhome.com/ata/deviceid/schedule" } } }; export const DeviceType = { 0: "Air Conditioner", 1: "Heat Pump", 2: "Unknown", 3: "Energy Recovery Ventilation" }; export const AirConditioner = { SystemMapEnumToStringInfo: { 0: "Air Conditioner Off", 1: "Air Conditioner On", 2: "Air Conditioner Offline" }, OperationModeMapStringToEnum: { "0": 0, "Heat": 1, "Dry": 2, "Cool": 3, "4": 4, "5": 5, "6": 6, "Fan": 7, "Automatic": 8, "Heat Isee": 9, "Dry Isee": 10, "Cool Isee": 11 }, OperationModeMapEnumToString: { 0: "0", 1: "Heat", 2: "Dry", 3: "Cool", 4: "4", 5: "5", 6: "6", 7: "Fan", 8: "Automatic", 9: "Heat Isee", 10: "Dry Isee", 11: "Cool Isee" }, OperationModeMapEnumToEnumWs: { 0: 0, 1: 1, 2: 2, 3: 3, 4: 7, 5: 8 }, FanSpeedMapStringToEnum: { "Auto": 0, "One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5, "0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5 }, FanSpeedMapEnumToString: { 0: "Auto", 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five" }, SetFanSpeedMapStringToEnum: { "Auto": 0, "One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5, "0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5 }, SetFanSpeedMapEnumToString: { 0: "Auto", 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five" }, AktualFanSpeedMapStringToEnum: { "Auto": 0, "One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5, "Off": 6, "0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5 }, AktualFanSpeedMapEnumToString: { 0: "Quiet", 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five", 6: "Off" }, VaneVerticalDirectionMapStringToEnum: { "Auto": 0, "One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5, "Six": 6, "Swing": 7 }, VaneVerticalDirectionMapEnumToString: { 0: "Auto", 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five", 6: "Six", 7: "Swing" }, VaneVerticalDirectionMapEnumToEnumWs: { 6: 7 }, VaneHorizontalDirectionMapStringToEnum: { "Auto": 0, "Left": 1, "LeftCentre": 2, "Centre": 3, "RightCentre": 4, "Right": 5, "Six": 6, "Seven": 7, "Split": 8, "Nine": 9, "Ten": 10, "Eleven": 11, "Swing": 12 }, VaneHorizontalDirectionMapEnumToString: { 0: "Auto", 1: "Left", 2: "LeftCentre", 3: "Centre", 4: "RightCentre", 5: "Right", 6: "Six", 7: "Seven", 8: "Split", 9: "Nine", 10: "Ten", 11: "Eleven", 12: "Swing" }, VaneHorizontalDirectionMapEnumToEnumWs: { 7: 12 }, AirDirectionMapEnumToString: { 0: "Auto", 1: "Swing" }, CurrentOperationModeMapEnumToStringHeatherCooler: { 0: "Inactive", 1: "Idle", 2: "Heating", 3: "Cooling" }, CurrentOperationModeMapEnumToStringThermostat: { 0: "Inactive", 1: "Heating", 2: "Cooling" }, EffectiveFlags: { Power: 1, OperationMode: 2, PowerOperationMode: 3, SetTemperature: 4, PowerSetTemperature: 5, OperationModeSetTemperature: 6, PowerOperationModeSetTemperature: 7, SetFanSpeed: 8, PowerSetFanSpeed: 9, VaneVertical: 16, PowerVaneVertical: 17, Prohibit: 64, VaneHorizontal: 256, PowerVaneHorizontal: 257, VaneVerticalVaneHorizontal: 272, Presets: 287, HolidayMode: 131072, All: 281483566710825 }, }; export const HeatPump = { ZoneNameMapEnumToString: { 0: "Heat Pump", 1: "Zone 1", 2: "Hot Water", 3: "Zone 2" }, UnitStatusMapEnumToString: { 0: "Heat", 2: "Cool" }, SystemMapEnumToStringInfo: { 0: "Off", 1: "On", 2: "Emergency Run", 3: "Test Run" }, DefrostMapStringToEnum: { "Normal": 0, "Standby": 1, "Defrost": 2, "Waiting Restart": 3 }, DefrostMapEnumToString: { 0: "Normal", 1: "Standby", 2: "Defrost", 3: "Waiting Restart" }, OperationModeHeatPumpMapEnumToStringInfo: { 0: "Off", 1: "Heat", 2: "Cool", 3: "Auto" }, OperationModeMapStringToEnum: { "Stop": 0, "HotWater": 1, "Heating": 2, "Cooling": 3, "HotWaterStorage": 4, "FreezeStat": 5, "Legionella": 6, "HeatEco": 7, "Mode1": 8, "Mode2": 9, "Mode3": 10, "HeatUp": 11 }, OperationModeMapEnumToString: { 0: "Stop", 1: "HotWater", 2: "Heating", 3: "Cooling", 4: "HotWaterStorage", 5: "FreezeStat", 6: "Legionella", 7: "HeatEco", 8: "Mode1", 9: "Mode2", 10: "Mode3", 11: "HeatUp" }, OperationModeMapEnumToStringInfo: { 0: "Stop", 1: "Hot Water", 2: "Heating", 3: "Cooling", 4: "Hot Water Storage", 5: "Freeze Stat", 6: "Legionella", 7: "Heat Eco", 8: "Mode 1", 9: "Mode 2", 10: "Mode 3", 11: "Heat Up" }, OperationModeZoneMapStringToEnum: { "HeatRoomTemperature": 0, "HeatFlowTemperature": 1, "HeatCurve": 2, "CoolRoomTemperature": 3, "CoolFlowTemperature": 4, "FloorDryUp": 5, "Stop": 6 }, OperationModeZoneMapEnumToString: { 0: "HeatRoomTemperature", 1: "HeatFlowTemperature", 2: "HeatCurve", 3: "CoolRoomTemperature", 4: "CoolFlowTemperature", 5: "FloorDryUp", 6: "Stop" }, OperationModeZoneMapEnumToStringInfo: { 0: "Heat Room Temperature", 1: "Heat Flow Temperature", 2: "Heat Curve", 3: "Cool Room Temperature", 4: "Cool Flow Temperature", 5: "Floor Dry Up", 6: "Stop" }, OperationModeDhwMapStringToEnum: { "Normal": 0, "Eco": 1 }, OperationModeDhwMapEnumToString: { 0: "Normal", 1: "Eco" }, ForceDhwMapStringToEnum: { "Normal": 0, "HeatNow": 1 }, ForceDhwMapEnumToString: { 0: "Normal", 1: "HeatNow" }, ForceDhwMapEnumToStringInfo: { 0: "Normal", 1: "Heat Now" }, HolidayMapStringToEnum: { "Normal": 0, "Holiday": 1 }, HolidayMapEnumToString: { 0: "Normal", 1: "Holiday" }, EffectiveFlags: { Power: 1, OperationMode: 2, EcoHotWater: 4, OperationModeZone1: 8, OperationModeZone2: 16, SetTankWaterTemperature: 32, Prohibit: 64, TargetHCTemperatureZone1: 128, TargetHCTemperatureZone2: 512, ForcedHotWaterMode: 65536, HolidayMode: 131072, ProhibitHotWater: 262144, ProhibitHeatingZone1: 524288, ProhibitCoolingZone1: 1048576, ProhibitHeatingZone2: 2097152, ProhibitCoolingZone2: 4194304, Demand: 67108864, SetTemperatureZone1: 8589934720, SetTemperatureZone2: 34359738880, ThermostatTemperatureZone1: 8589934592, ThermostatTemperatureZone2: 34359738368, SetHeatFlowTemperatureZone1: 281474976710656, SetHeatFlowTemperatureZone2: 281474976710656, SetCoolFlowTemperatureZone1: 281474976710656, SetCoolFlowTemperatureZone2: 281474976710656, Presets: 281517926449852, All: 281483566710825 } }; export const Ventilation = { SystemMapEnymToString: { 0: "Ventilation Off", 1: "Ventilation On", 2: "Ventilation Offline" }, OperationModeMapStringToEnum: { "0": 0, "HEAT": 1, "2": 2, "COOL": 3, "4": 4, "5": 5, "6": 6, "Fan": 7, "Auto": 8 }, OperationModeMapEnumToString: { 0: "0", 1: "Heat", 2: "2", 3: "Cool", 4: "4", 5: "5", 6: "6", 7: "Fan", 8: "Auto" }, ActualOperationModeMapStringToEnum: { "Not Auto": 0, "Deterermining": 1, "Heating": 2, "Cooling": 3 }, ActualOperationModeMapEnumToString: { 0: "Not Auto", 1: "Deterermining", 2: "Heating", 3: "Cooling" }, AutoFanSpeedControlMapStringToEnum: { "Not Available": 0, "Available": 1 }, AutoFanSpeedControlMapEnumToString: { 0: "Not Available", 1: "Available" }, NightPurgeMapStringToEnum: { "Normal": 0, "Night Purge": 1 }, NightPurgeMapEnumToString: { 0: "Normal", 1: "Night Purge" }, VentilationModeMapStringToEnum: { "Lossnay": 0, "Bypass": 1, "Auto": 2 }, VentilationModeMapEnumToString: { 0: "Lossnay", 1: "Bypass", 2: "Auto" }, FanSpeedMapStringToEnum: { "Auto": 0, "1": 1, "2": 2, "3": 3, "4": 4, "Off": 5 }, FanSpeedMapEnumToString: { 0: "Auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "Off" }, ActualVentilationModeMapStringToEnum: { "Lossnay": 0, "Bypass": 1 }, ActualVentilationModeMapEnumToString: { 0: "Lossnay", 1: "Bypass" }, ActualSupplyFanSpeed: ["STOP", "1", "2", "3", "4"], ActualExtractFanSpeed: ["STOP", "1", "2", "3", "4"], Co2DetectedMapStringToEnum: { "NO": 0, "YES": 1 }, Co2DetectedMapEnumToString: { 0: "NO", 1: "YES" }, PM25AirQualityMapStringToEnum: { "Unknown": 0, "Excellent": 1, "Good": 2, "Fair": 3, "Inferior": 4, "Poor": 5 }, PM25AirQualityMapEnumToString: { 0: "Unknown", 1: "Excellent", 2: "Good", 3: "Fair", 4: "Inferior", 5: "Poor" }, CoreMaintenanceMapStringToEnum: { "All Ok": 0, "Required": 1 }, CoreMaintenanceMapEnumToString: { 0: "All Ok", 1: "Required" }, FilterMaintenanceMapStringToEnum: { "All Ok": 0, "Required": 1 }, FilterMaintenanceMapEnumToString: { 0: "All Ok", 1: "Required" }, EffectiveFlags: { Power: 1, OperationMode: 2, VentilationMode: 4, SetFanSpeed: 8, SetTemperature: 16, NightPurgeMode: 32, Prohibit: 64, HolidayMode: 131072, All: 281483566710825 } }; export const TemperatureDisplayUnits = { 0: "°C", 1: "°F" }; export const AccessLevel = { Quest: 3, Owner: 4 }; export const LanguageLocaleMap = { "0": "en-US,en;q=0.9", "1": "bg-BG,bg;q=0.9", "2": "cs-CZ,cs;q=0.9", "3": "da-DK,da;q=0.9", "4": "de-DE,de;q=0.9", "5": "et-EE,et;q=0.9", "6": "es-ES,es;q=0.9", "7": "fr-FR,fr;q=0.9", "8": "hy-AM,hy;q=0.9", "9": "lv-LV,lv;q=0.9", "10": "lt-LT,lt;q=0.9", "11": "hu-HU,hu;q=0.9", "12": "nl-NL,nl;q=0.9", "13": "no-NO,no;q=0.9", "14": "pl-PL,pl;q=0.9", "15": "pt-PT,pt;q=0.9", "16": "ru-RU,ru;q=0.9", "17": "fi-FI,fi;q=0.9", "18": "sv-SE,sv;q=0.9", "19": "it-IT,it;q=0.9", "20": "uk-UA,uk;q=0.9", "21": "tr-TR,tr;q=0.9", "22": "el-GR,el;q=0.9", "23": "hr-HR,hr;q=0.9", "24": "ro-RO,ro;q=0.9", "25": "sl-SI,sl;q=0.9" };