Skip to content

Repository files navigation

Breeze

Your air conditioner, on your phone, without the cloud.

A native Flutter (Android) client for a Breeze Core server — self-hosted control for Midea air conditioners, over your own LAN.

License Latest release APK Documentation

Breeze — the control screen, network scan-to-add, and the Programs editor

Why

The vendor app sends "make it 23°" to a datacentre and back, to reach a unit in the same room as you. Breeze asks a server on your own network instead.

  • One unit per screen, swipe to switch. Each unit fills the screen, tinted to its mode. No menus, no dashboard to configure.
  • It reacts immediately — optimistic controls with haptics, and the server pushes state over SSE, so the screen is right without waiting on a poll.
  • Control it without opening it — home-screen widgets with real buttons, and an Android Auto screen that is one huge power button.
  • Schedules that don't need your phone. Favourites, schedules and temperature curves run on the server and fire with the phone off.
  • Two permissions, total: internet and vibrate. No account, no analytics, no ads, nothing to opt out of.
  • It's quiet. Beep is off unless you turn it on.
  • Material You, light/dark, °C/°F, and a real diagnostics screen when something misbehaves.

Install

Grab the APK from the latest release or from bolero:

adb install -r Breeze-2.2.6.apk

…or copy it to the phone and open it. Android 7.0+.

On first launch: enter the server address, its access key, and a device name — then an admin approves the pairing code on the LAN. That last step is the one people don't expect, and it's the point: each phone gets its own revocable credential instead of a shared password.

It needs a Breeze Core server on your network — a Pi, NAS or old laptop is plenty. Control, pairing and diagnostics work against any server version; ≥ 3.0.0 adds Ed25519 signing, live updates, scan-to-add and per-command beep.

Documentation

Everything lives in the wiki:

Installing it · Version history getting started, and what changed when
The control screen · Programs using it day to day
Home-screen widgets · Android Auto controlling it without opening it
Diagnostics and the Nerd screen · Multiple servers when something's off, and running more than one server
Security how credentials are held, and how a 401 is handled
Architecture · Building and releasing working on it
iOS port (plan) what an iOS build would take

Honest limits

It needs a server somebody runs. Android only — other platforms get the server's web panel. Away from home you need a VPN or a proxy you've secured. Pairing takes an admin on the LAN. If the server is down, the app can't do anything (your remote still can). And the units must reach Wi-Fi through the vendor app once, first — Breeze can't onboard a factory-fresh unit.

The full comparison, drawbacks included: Compared to NetHome Plus.

Build it yourself

flutter pub get
flutter build apk --release     # → build/app/outputs/flutter-apk/app-release.apk

Flutter 3.44+, Android SDK (API 36), JDK 17/21. Release signing, icons and CI: Building and releasing.

License

AGPL-3.0, same as the server. Every dependency is permissive — BSD-3 (Flutter, http, shared_preferences, flutter_secure_storage, package_info_plus, home_widget), MIT (cupertino_icons, workmanager, pointycastle) and Apache-2.0 (dynamic_color, cryptography, and the AndroidX Car App Library behind Android Auto) — which AGPL-3.0 permits. The full texts are in the app under Settings → Licences. Found a vulnerability? SECURITY.md — privately, please.

About

Native Android (Flutter) client for a Breeze Core server — control Midea ACs, with Material You theming. AGPL-3.0.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages