-
Notifications
You must be signed in to change notification settings - Fork 0
First run and pairing
Everything between "it's installed" and "I'm changing the temperature from my phone". Three things happen, in this order: the server finds your units, you get an enrolment key, and each client you want to use gets approved once from the LAN.
- The units must already be on your Wi-Fi. That part only the vendor's NetHome Plus app can do. Do it once, then you never need it again.
- Give them static DHCP leases in your router, or they will wander to new addresses and Breeze Core will look broken.
-
V3 units need one internet-connected discovery run. msmart-ng fetches each
unit's
tokenandkeythrough the Midea cloud during discovery. That is the one online step; everything afterwards is offline. Back the credentials up — they cannot be re-derived if the cloud is unreachable.
sudo breeze-core pair # broadcast, finds everything
sudo breeze-core pair --ip 192.168.1.73 # or one unit by addressThis writes config.json — the unit list plus a generated API key — and
tells you where. The broadcast is a UDP broadcast, so it has to run on the same
L2 network as the units: in a container that means host networking, and in a VM
a bridged adapter rather than NAT.
In the container images this is docker exec -it breeze-core breeze-setup, which
wraps the whole of this page.
sudo systemctl enable --now breeze-coreThen open http://<server>:8420. The panel asks for the API key from step 1.
The API key alone is not enough to control anything — it only lets a client begin pairing. That is deliberate: a key that leaks off a phone is not a working credential on its own.
So the panel shows a short code, and an admin on the LAN approves it:
breeze-core approve # prompts for the code
breeze-core approve BONG-W3GN # or give it directly
breeze-core devices # what is enrolled
breeze-core revoke <token-id> # take one awayThe code lasts about 60 seconds and is single-use. Approval must come from a private address — that is the LAN gate, and it is what makes the whole model work. Full mechanics: Authentication and pairing.
Repeat step 3 for each browser, phone, or tool. Each gets its own credential, and each can be revoked on its own without disturbing the others.
breeze-core diag --autoAuth posture, per-unit latency, capability probing, input validation. It is the closest thing to a test suite this project has, and it is the first thing to run when something feels wrong.
- The web panel — what the interface does.
- Programs, schedules, curves — automation that runs on the server, not on your phone.
- The Android app ↗ — widgets, Android Auto, one unit per screen.
- Exposing it safely — read this before trying to reach it from outside the house.
In order of likelihood: the container or VM is not on the LAN (bridge networking
cannot carry a broadcast), the units are on a different VLAN or a guest network
with client isolation, or a host firewall is dropping the reply. Pair by address
with --ip to sidestep discovery entirely, and see
Troubleshooting.
Breeze Core · Breeze for Android · Packages · AGPL-3.0
Start here
Install it
Use it
Reference
Run it safely
Develop and port