A Homey app extending the MELCloud app with automatic cooling adjustment based on the outdoor temperature.
This app auto-adjusts the target temperature of your air-to-air devices — paired through either a MELCloud (classic) or a MELCloud Home account — to keep cooling within 8 °C of the outdoor temperature. Outdoor sources are picked per MELCloud building: the weather at your Homey's location, any temperature capability you like (useful when your units are not all in the same place), or nothing at all — new buildings start disabled, so the app never adjusts a device you did not opt in, and devices added to a building inherit its setting.
Why?
- Because it's better for your heat pumps.
- Because it's better for your health.
- Because it's better for the environment.
- You must have a Homey Pro.
- Install the MELCloud Homey app from the Homey App Store.
- Pair your devices.
- Install the MELCloud Homey app extension from the Homey App Store.
- Configure the outdoor temperature source of each MELCloud building in the settings of the MELCloud Homey app extension.
Arabic, Danish, Dutch, English, French, German, Italian, Korean, Norwegian, Polish, Russian, Spanish, Swedish.
Requirements: Node.js 22 (see .nvmrc) and the Homey CLI (npx homey).
npm ci # install dependencies
npm test # run the test suite (vitest)
npm run typecheck # type-check with the native TypeScript compiler
npm run lint # eslint (TS, HTML, CSS, JSON, YAML, Markdown)
npm run build # bundle the settings page (esbuild) + native tsc compile
npm run homey:start # run the app on your Homey (remote)Architecture notes:
- The MELCloud dependency is wire-level, not npm: devices are reached through Homey's local API (
homey-api), buildings through the MELCloud app's own API (app idcom.mecloud), and every consumed shape is sanitized at entry so version skew degrades instead of failing. - The settings page (
settings/) is bundled byscripts/bundle.mtsinto a compat pair — a classic IIFEindex.js(what the shipped HTML loads) plus an ESM twinindex.mjsfor phone-cached copies of the page (shipped bundle filenames are a compatibility contract) — emitted into.homeybuild, the packaged app, never into the source tree;npm run buildproduces them, and the Homey CLI runs it automatically on validate/publish. - Both the build and
npm run typecheckuse the native TypeScript 7 compiler (typescript@7aliased as@typescript/native) for speed;typescript@6remains alongside it for tools that need the JS API (typescript-eslint). - Test coverage is enforced at 100% for backend code; browser glue (
settings/) is excluded from coverage.
This app is not endorsed, verified or approved by Mitsubishi Electric Corporation. Mitsubishi cannot be held liable for any claims or damages that may occur when using this app to control MELCloud devices.
GPL-3.0-only