github RiDDiX/home-assistant-matter-hub v1.0.0

latest releases: v2.1.0-alpha.658, v2.1.0-alpha.657, v2.1.0-alpha.656...
3 months ago

1.0.0 (2026-01-25)

Bug Fixes

  • add additional null-checks to prevent startup failures (c53c29f), closes #584
  • add configuration option to set Country Code in regulatory config (f0145ac), closes #541
  • add debug logging when home assistant actions fail (d77826e), closes #264
  • add explicit icon for google vendor id (0afbd42), closes #32
  • add extra logging when a device cannot be created (fc0a2f0), closes #404
  • add fallback mechanism for empty json files (035a0bd), closes #9
  • add further null checks to prevent bridge from failing (b8e55c4), closes #404 #412
  • add hash to state subscription to prevent reuses when entity filter is changed (1162dce), closes #37
  • add missing token to generate github releases (dd3479f)
  • add more configuration details (7c95b3c)
  • add more details when home assistant connection fails (963d3b2)
  • add silly logs for entity exclusion (e635f91), closes #40
  • addon: revert docker entrypoint setup for the native home assistant addon (095bd97)
  • another try to properly react to state events (04ba690)
  • automatically retry home assistant connection on startup (47979d9), closes #347
  • automation, scene, input_button, button: add 'lighting' feature to allow onOff to work properly (2f0bf90), closes #638 #636 #630 #596
  • avoid transaction locks in applyPatchState by assigning each key (#869) (7c755d2)
  • basic-information-server: Use device vendor (#472) (7fd669a)
  • basic-information: add vendor id and names to all devices (d3e4703)
  • basic-information: consider maxLength of device properties (627aea5), closes #6
  • basic-information: ensure variables are actually strings (dc5f700), closes #400
  • basic-information: prevent empty values to fail initialization (73185d5), closes #393
  • basic-information: use proper device information instead of mocked values (d33c6e8)
  • basicInformation: reduce the hash for long names to 4 chars (1212ad3), closes #116
  • basicInformation: use the entity_id as name, if name is missing (d4baf5c), closes #117
  • binary_sensor: made config of boolean state cluster optional (0710d89), closes #154
  • binary_sensor: revert to invert state for ALL contact sensors (572fc85)
  • binary_sensor: safe access the config from the state (b703cc7), closes #78
  • bridge: enable flex wrapping for filter chips in BridgeDetails (#95) (4dcda7a), closes #94
  • bridge: since matter 1.4 bridge names are limited to 32 characters (d6bb614), closes #623
  • built clean update mechanism to prevent devices to get re-created (26dc0be), closes #214
  • bumb matter.js to 0.12.3 (a1266d9), closes #485 #491
  • change fallthrough matcher after migrating to express@5 (620eddd)
  • ci: add repository to repository_dispatch (28d34b0)
  • ci: allow multiple docker image tags (c737066)
  • ci: automatic releases for the addon repository including changelog (4559883), closes #90
  • ci: enable releases on the 'latest' channel (1b8d02d)
  • ci: properly load changelog for complete release notes (b85f3d1)
  • ci: remove typo which prevented the release workflow (7330d8d)
  • cleanup boot sequence and state handling, update all dependencies (4afb864)
  • climate & fan: correctly react to property changes (08a4d68), closes #624
  • climate: add OnOff cluster to climates, so that they can be turned on and off (841a192)
  • climate: allow auto-mode only (7bb1f68), closes #47
  • climate: do not set the target position when device is off (b828295), closes #169
  • climate: ensure correct temperature conversion between home assistant and matter (bb33b7b), closes #411
  • climate: ignore unsupported covers and print a warning instead of failing (317ef5c), closes #561
  • climate: map all neccessary properties from climate to thermostat (72ab81e), closes #73
  • climate: only add humidity sensor if available at all (948a34a), closes #168
  • climate: remove optional temperature cluster (#147) (a6d9baa), closes #142
  • climate: set controlSequenceOfOperation as a required property (4816273), closes #16
  • climate: use 'current_temperature' attribute to get current temperature (b7475a7)
  • climate: use cooling and heating together with auto mode (6193a40)
  • climate: use entity state instead of hvac_mode attribute (ff20e85), closes #449
  • climate: use entity state value as fallback for all status reports (20483e8), closes #73
  • color-control: Propagate colorMode (ce5ced4), closes #225
  • colorControl: validate min and max mireds to stay in bounds (2e10106), closes #379
  • Cover open state incorrectly syncs as "null" instead of 0% in Matter (#910) (9c4b528)
  • cover: add AbsolutePosition feature to position aware covers and fake PositionAware feature for non position aware covers (7fb8a01), closes #144
  • cover: allow covers to be not position aware (7af0298), closes #144
  • cover: do not use configStatus to control lift directions (de7aae8), closes #144
  • cover: keep current position in bounds (41f10bf)
  • cover: remove absolute position and add operational status (5e37273)
  • cover: remove unallowed properties from covers without positions (241206c)
  • cover: split feature flag 'mimicHaBehavior' into two features flags for more control (bd24afd)
  • cover: use compatible cover types for tilt only or both (a28ee12), closes #393
  • cover: use compatible endProductType for tilt and lift (38c9731), closes #444
  • debounce HA entity updates to 1 transaction for its attributes (#870) (3608873)
  • deps: update all npm dependencies (690abbc)
  • deps: update dependency ajv to v8 (e73e5c5)
  • deps: update matter.js to v0.11.8 (8fe9509)
  • disable automatic releases (54f6e50)
  • disable matter environment parsing (effe5a4)
  • Do not interpret "unknown" boolean states as "true" matter state (#856) (e3bf044)
  • docker: ensure the app handles process signals properly (a8dd37e), closes #516
  • docker: migrate all docker images to node22 (0af1d92)
  • docker: refactor entrypoint and cmd to allow proper shutdown (57c01b2), closes #516
  • docker: remove environment variables from dockerfile (24adece)
  • docs: add base-url (7d8e4a0)
  • docs: change the addon repository to be added in home assistant (4aedf2e)
  • enable update of feature flags without restarting the addon (a5bacab)
  • fan-control: always set fan mode sequence (57803ca), closes #274
  • finally fix bigint serialization to be compatible with matter.js (51f84e1)
  • fix OnOffServer after Matter.js 0.13.0-nightly upgrade (26c3ee7), closes #621 #620
  • frontend version number (3ca7218)
  • frontend: Add Amazon and Apple vendor IDs (a244855)
  • frontend: add base to index.html (75137fe)
  • frontend: add copy-to-clipboard action to cluster states (f79ef69)
  • frontend: add explicit main page to not prevent history-back (ed13eb8), closes #246 #238
  • frontend: add margin to the commissioning qr-code (#198) (9498ae9)
  • frontend: Add second Samsung vendor ID (#256) (5ce01aa), closes #253
  • frontend: adjust base url to prevent broken urls (370d25b)
  • ignore entities by their hidden and disabled state (9e7b641), closes #23
  • implement moveToLevelWithOnOff for all levelControls (93ab431), closes #34
  • improve logging to debug inclusion and exclusion (f055652)
  • input_button: turn the matter device 'on' for a short time (57465a6), closes #388
  • input_button: use correct action to trigger the button (936ac64), closes #501
  • introduce an initial start-up delay to make sure home assistant is ready (0fdb09a)
  • level-control: configure minimal transition time (e754974), closes #4
  • light: add fallback-transition time to level- and color-control (b0ed5a8), closes #4
  • light: allow adjusting min and max level if value is out of bounds (a95dbda), closes #336
  • light: default hue and saturation to 0 when not available (306bf5a), closes #134
  • light: do not set out-of-bounds color temperatures (a22ae25), closes #53
  • light: ensure color temperature is always within boundaries (dd47e08), closes #676
  • light: only round min and max values properly (50394f6), closes #99
  • light: Return 0.0 instead of null for light brightness to prevent apple home to fail (7ddbfdd)
  • light: round values after converting kelvin and mireds (e4ad137), closes #4
  • lights: apply rounding to brightness and color calculations (f72cd9a)
  • lights: auto adjust min and max mireds when value is out of bounds (83a6fa0)
  • lights: debounce home assistant actions to prevent race conditions (#855) (bd38e20)
  • lights: enable features for on/off and level control (e89cb67)
  • light: set previous level when light is turned off (f761edd)
  • lights: preserve last level control state (6991d9b), closes #217
  • lights: proper boundaries for color temperature (784f186), closes #392
  • lights: remove old and wrong properties from lights (0c02a6c), closes #138
  • light: swap min and max temperature when mixed up in the entity (bcd84cd), closes #410
  • light: use correct device type for color temp only devices (4b57edf), closes #52
  • log but avoid crash for invalid device errors (df983ed)
  • matter: finish transaction before calling home assistant services (f66372c), closes #225
  • media_player: set default input when no input could be determined (0830f18), closes #393
  • minor frontend fixes (97aa72a), closes #93
  • minor patch in state management (cb7607e)
  • on-off: allow sending on and off commands, when already on or off (898ba0d), closes #320
  • only hash labels larger than max length (3e71fb3)
  • prevent bridge edit screen from automatically changing the port (415fada)
  • prevent edge cases where storage gets deleted (3bdc6ee)
  • prevent race conditions when home assistant responds faster than matter (#211) (5ca0727), closes #208
  • properly handle transactions to prevent cyclic event flows (afce77c), closes #763 #745
  • properly report brightness value when light is off (#909) (a002204)
  • properly trap process signals and shutdown the application (69c1175), closes #516
  • properly wait for home assistant to boot before starting any bridge (b8986cc), closes #574 #228 #459
  • properly wait for transactions to begin and to commit (#877) (1f96b41), closes #876
  • refactor all clusters to use reactTo and pessimistic state changes (cd00915)
  • refactor thermostat server to a single behavior with feature flags (a939600)
  • remove all entities which don't have a state (cb7b76c), closes #11
  • remove feature flags (75b2335)
  • remove first-release flag (3b90bfe)
  • remove funding (c7eafaa)
  • resolve dependabot vulnerability checks (f2aa5ca)
  • revert matter.js and cleanup dependencies (89507ce)
  • revert matter.js to 0.11.5-alpha.0-20241121-c31bc6998 (a52a66e)
  • revert offline transactions for updates (9d548ea), closes #887 #876
  • scene: default to off state to be able to turn it on (1af9513), closes #199
  • script, automation, scene: explicit call the right commands to activate scripts, automations, and scenes (66f41cd), closes #326
  • sensor: fix temperature conversion (59c17d8), closes #64
  • smaller fixes after upgrading to Matter 1.4 (7472e7f), closes #615
  • storage: do not load device states from disk (1cc51db), closes #532
  • storage: fixed storage migration of the last release (8ddb9b5), closes #523
  • storage: use multi-file storage to prevent broken storage files due to race conditions (98179e6), closes #435
  • support pattern matching (8107a8b), closes #14 #30
  • switch: show switches as 'off' if they are unavailable (5b799fb), closes #496
  • thermostat: add additional logging when unit of measurement changes (90b625b), closes #411
  • thermostat: Check if setting temperature range is supported (#453) (ba3a2f6), closes #377 #449
  • thermostat: Compare setpoint with target temperature (#254) (b7259ca)
  • thermostat: consider the default unit of measurements from home assistant for temperatures (e9aeb1a), closes #348
  • thermostat: refactor how states are synchronized (551da69)
  • thermostat: set thermostatRunningState more explicit (8617c88), closes #241
  • thermostat: Skip temp commands if state is unavailable (#255) (5e68c47), closes #216
  • trigger new release (d00b83f)
  • trying to figure out why serialization works locally but not in docker (a2c880b)
  • update all dependencies including matter.js (197f01c)
  • update dependencies and switch from nx-releases to semantic-release (a587383)
  • upgrade to latest matter.js to fix on-off and connectivity issues (91d05eb), closes #627 #613 #594
  • use fallback dirname for node:18 (bbe0903)
  • use matter internal serialization to be able to serialize additional types (bigint, etc.) (04e6bc5), closes #836
  • Use Transaction.act to handle lock acquisition in applyPatchState (#872) (f10c7ed)
  • vacuum: consider supported features when pausing a vacuum (70ac3af), closes #645 #659
  • vacuum: proper implement pause, resume and mode change commands (c29ed54), closes #616 #637
  • vacuum: return to dock when put into idle mode (3a8ac4a)

chore

  • major refactoring due to the growing number of supported device types (75a1df3), closes #649 #644

Features

  • add a customized app logo (#202) (f01dba6)
  • add base url and proxy detection (bbce762)
  • add descriptions for docker-compose (7b304fd)
  • add IP whitelisting to prevent unauthorized access (916b3ae)
  • add support for input_boolean, scene, automation, script (e63a955), closes #21
  • adjust proxy request handling and update documentation (f6bdd20)
  • allow configuring the mdns-interface (441c99b), closes #42
  • allow filtering by entity_category (fc83505)
  • allow include and exclude by area (a3ef4a6)
  • allow including hidden entities with a feature flag (03be49d), closes #515
  • allow specifying basic authentication (4a40caf), closes #434
  • basic-information: add serial number to devices (7c37dc1), closes #266
  • basicInformation: add change detection and reachable check to all devices (d48c9b6)
  • binary_sensor: add support for water leak detector (2f8707a), closes #48
  • binary_sensor: allow defaulting unknown device_classes to OnOffSensor (feature flag) (fffef29), closes #525
  • cli: added a config-option to provide a configuration file instead of CLI arguments (b5325d6), closes #115
  • cli: allow explicit whitelisting of ip addresses for http (dee117e)
  • climate: add temperature measurement and humidity sensor (3b44979), closes #68 #96
  • climate: add thermostatRunningMode only for autoMode (c928ca5), closes #68
  • cover: allow covers to mimic HA behaviors (5e2907a), closes #384 #297 #291
  • cover: allow tilt feature (9506263), closes #349
  • extracted bridge creation to it's own page, allow editing an existing bridge (38287af), closes #7 #10 #25
  • fan-control: Implement fan control cluster (#258) (20cf2bf), closes #43 #173 #250
  • frontend: add app logo to header (f9d8021)
  • frontend: add details how to connect multiple fabrics (1b717ac)
  • frontend: New form-based bridge configuration (#197) (d513357)
  • frontend: refactored menu structure (ab40cbf)
  • frontend: replace brand icons and add samsung (b3991e2)
  • handle button entity the same way as input_button (#480) (573ad24), closes #341
  • humidifer: add support for humidifiers mapped to PlugInUnits (dd7fe69), closes #100
  • input_button: add support for input_button entities (7b38ad9), closes #195
  • light: add support for RGBW and RGBWW lights (e66a180), closes #514
  • lights: in general support color control for all lights having hs_color (91a269d), closes #415
  • link to new documentation (4419a90)
  • media_player: add support for media_players as OnOffPluginUnits (59f081c), closes #57
  • media_player: expose media_player as speaker device if feature flag is activated (#156) (b2cd50a)
  • media_player: source selection, mute and volume fixes (#363) (8858c30)
  • nx-cloud: setup nx cloud workspace (2919527)
  • pre-build the addon docker image to increase installation speed and reduce backup size (179f266), closes #323
  • prepare configurations per domainm, entity and compatibility mode (cb0b599)
  • project setup and complete migration (51301ac)
  • sensor: Add illuminance sensor type (#758) (67ec42b)
  • show version number in app title (70bdca8), closes #38
  • Taking a Holiday Break – See You in the New Year! (86bea0a)
  • use custom homeAssistantBehavior for better state management (6e0f862)
  • Use device area if available for entities that have no area directly set (#403) (bda867e)
  • vacuum: add basic support for vacuums (RVC) (9021b7b)

BREAKING CHANGES

  • This could affect some sensors like water leak or occupancy. Make sure to verify your automations in Alexa, Apple Home, Google Home and others.
  • MAINTAINER WANTED! This project is currently looking for a new maintainer. Due to limited time, I can no longer actively maintain it. If you are interested in taking over or co-maintaining, please reach out via GitHub Discussions (t0bst4r#825).
  • Due to the growing code base and its complexity, I've decided to simplify the application by removing non-compliant workarounds.
  • Almost every aspect of the device implementations were touched. I've tried to test as much as possible locally until everything was back working. But since there are so many edge cases in different devices, I probably couldn't verify everything.
  • basic-information-server: It can happen, that your controller (Alexa, Google Home, etc.) doesn't match your existing devices and re-pairs all of them. In that case, you'll need to assign the devices to rooms and automations again.
  • As the holiday season approaches and my main job keeps me busy, I haven’t been able to dedicate as much time to this project as I’d like. Over the holidays, I’ll be taking a well-deserved break to recharge. That said, if an opportunity arises, I’ll try to answer a few questions or review a pull request via my phone. I’m looking forward to returning refreshed and motivated in the new year. Thank you for your understanding and continued support! Happy holidays!
  • thermostat: Auto mode from Home Assistant is no longer supported for climates / thermostats. It just doesn't fit into the Matter specification.
    Instead, Heat/Cool from Home Assistant is mapped to AutoMode in Matter.
    I tried to test as much as possible, but since I don't have any physical climate I needed to use GenericThermostat and BetterThermostat to make virtual climates.
    My testings were therefore limited to simple tests with simple climates. This change could break existing behaviors.
    Please provide feedback what is working as expected, and what isn't (t0bst4r#261).
  • The native addon (HAOS) will use Home Assistant ingress from now on. Direct access via the port will no longer be possible.

Don't miss a new home-assistant-matter-hub release

NewReleases is sending notifications on new releases.