-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
Where Breeze Core keeps its state, and every environment variable that changes
how it behaves. The file is written by breeze-core pair; the variables are read
once at startup.
config.json — written and maintained by setup_device.py (or breeze-core pair), read and validated by the app. Its location is set by AC_CONFIG
(this guide uses /etc/breeze-core/config.json).
{
"api_key": "randomly-generated-urlsafe-string",
"units": [
{ "name": "Living Room", "ip": "192.168.1.73", "port": 6444,
"id": 153931628470980, "token": null, "key": null }
]
}| Field | Notes |
|---|---|
api_key |
The enrollment secret — needed to begin pairing (see Authentication). Generated by setup_device.py. |
units[].name/ip/port/id |
Friendly name, LAN IP, control port (usually 6444), Midea device id. |
units[].token/key |
V3 auth credentials (null for V1/V2). Back these up — they can't be re-derived if the Midea cloud is unreachable. |
Read once at startup. Defaults are safe for public exposure (docs off, headers on, LAN-only approval).
| Var | Default | Purpose |
|---|---|---|
AC_CONFIG |
/etc/meow-ac/config.json |
config file path |
AC_DEVICES |
<config dir>/devices.json |
per-device token store (app-written) |
AC_PROGRAMS |
<config dir>/programs.json |
favourites/schedules/curves (app-written) |
AC_SCHED_TICK |
30 |
scheduler evaluation interval (seconds) |
AC_TIMERS |
<config dir>/timers.json |
one-shot timers (Timers), app-written |
AC_TIMER_TICK |
15 |
how often one-shot timers are checked (seconds) |
AC_DOCS |
off | set 1 to expose /docs (dev only) |
AC_SECURITY_HEADERS |
on | emit CSP/HSTS/etc. (turn off if your proxy sets them) |
AC_TRUSTED_HOSTS |
any | CSV Host allow-list (TrustedHostMiddleware) |
AC_BEHIND_PROXY |
off | trust X-Forwarded-For for the real client IP |
AC_ENROLL_LAN_ONLY |
on | pairing approval must come from a private/LAN address |
AC_CODE_TTL |
60 |
pairing-code lifetime (seconds) |
AC_TOKEN_TTL_DAYS |
90 |
device-token lifetime; 0 = never expires |
AC_MIN_AUTH_VERSION |
1 |
minimum device auth-version accepted (see Authentication). 1 = accept legacy bearer and Ed25519 v2; 2 = refuse v1 with 426 |
AC_HISTORY_SIZE |
720 |
per-unit in-memory history samples kept for /history and /metrics (~1h at the app's 5s poll) |
AC_STREAM_TICK |
5 |
how often the SSE broadcaster (/api/units/stream) polls the units while ≥1 client is connected (seconds) |
AC_AUTH_SKEW_SECONDS |
60 |
how far a v2 signed request's timestamp may be from server time, either way. Raising it widens the replay window; the nonce cache is sized from it. Only raise if clients genuinely can't keep time |
Point them at your chosen config dir, e.g.
AC_CONFIG=/etc/breeze-core/config.json—AC_DEVICES/AC_PROGRAMSthen default alongside it. (The native packages set all of this up in/etc/breeze-core/breeze-core.env— see PACKAGES.md.)
Breeze Core · Breeze for Android · Packages · AGPL-3.0
Start here
Install it
Use it
Reference
Run it safely
Develop and port