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.