Releases: dongnh/matter_webcontrol
Releases · dongnh/matter_webcontrol
Release list
v0.26.1
First release since v0.24.0 — bundles v0.25.0, v0.25.1, v0.26.0, v0.26.1.
v0.26.1
GET /api/climate— unified temperature (°C) and humidity (%) read across thermostatlocal_temperatureplus standalone temp/humidity sensors.?id=…returns one device. Each entry tagskind=thermostatorsensor. New MCP tool:get_climate.
v0.26.0
- Native Thermostat / AC control — Matter Thermostat endpoints (cluster 513) are first-class. New
GET /api/acs,GET/POST /api/ac(on,mode,setpointin °C). New MCP tools:list_acs,get_ac,set_ac./api/toggleand/api/set(brightness 0/1) on a thermostat ID map to on/off viasystem_mode./api/statusaddsacs_on/acs_off. Verified on Aqara Hub M200 + Climate Sensor W100 — Aqara hubs expose paired IR ACs through this path (no Scenes cluster is exposed by Aqara).
v0.25.1
- Auto-dedupe on re-pair: after
commission_with_code, any older fabric node sharing the new node's endpoint-0 UniqueID/SerialNumber is automatically unpaired. GET /api/unregister?node_id=Nfor manual phantom-node cleanup.
v0.25.0 (breaking)
- Federation no longer uses embedded scripts —
/api/metadataemitscapabilities+states; peers call standard REST. Removes RCE risk. - Default bind
127.0.0.1. Pass--host 0.0.0.0to expose on LAN; doing so without--api-keywarns. - API key auth:
--api-key/MATTER_SRV_KEYrequiresX-API-Keyon every request. Federation forwards keys. - SSE keepalive on
/api/subscribe. - Logical-first routing in
_find_state/get_sensor. Parallel/api/batch. Mireds clamped to [153, 500].get_statusdedup. Logical-bridge cache. Atomic + resilientbridge_cache.json.
v0.24.0
v0.24.0
New Features
- MCP server — New
matter-mcpcommand connects to a running HTTP server and exposes all device operations as MCP tools for LLM integration - Toggle —
GET /api/toggle?id=to flip device on/off without specifying brightness - Batch control —
POST /api/batchto control multiple devices in one request - Status summary —
GET /api/statusreturns quick counts (lights on/off, sensors, bridges) - Remove alias —
GET /api/name/remove?id=&name=to delete a device alias - Remove bridge —
GET /api/bridge/remove?ip=&port=to unregister a logical bridge
Breaking Changes
- Aliases are display-only — All API endpoints now require the canonical
dev_*device ID. Aliases set via/api/nameare no longer resolved as IDs.
Architecture
- Shared core — Extracted all business logic into
cli/core.py(DeviceControllerclass). Bothserver.py(FastAPI) andmcp_server.py(MCP) are thin wrappers with zero duplicated logic. - MCP as HTTP client —
matter-mcpconnects to a runningmatter-srvvia HTTP instead of initializing its own Matter bridge. Supports--hostand--portoptions.
v0.23.0
v0.23.0
Breaking Changes
- Stable device IDs — Physical Matter devices now use hash-based IDs derived from hardware UniqueID (e.g.
dev_a3f7c1b2) instead ofdev_{node_id}_{endpoint_id}. Existing cache keys (names, occupancy history) are auto-migrated on first run. External systems referencing old-format IDs will need to update — alias-based references are unaffected.
New Features
--fabricoption — Set the Matter fabric label at startup:matter-srv --fabric "Home Lab"
Improvements
- Codebase refactor — Extracted shared helpers to reduce code duplication across all source files:
- Unified GET/POST parameter parsing (
_get_params) - Shared device lookup functions (
_find_device_state,_find_logical_target) - Reusable light/sensor payload builders (
_build_light_entry,_build_sensor_entry) - Generic JSON cache helpers (
_load_json,_save_json) replacing 6 separate methods
- Unified GET/POST parameter parsing (
- Logical bridge client — Stores
host/portdirectly instead of parsing from URL string - README rewrite — Cleaner language, CLI options table, parameter tables for all endpoints, collapsible metadata example,
sudousage note