Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

matterbridge-hass

Luligu27.8kApache-2.01.0.1

Matterbridge hass plugin

matterbridge, homebridge, bridge, plugin, frontend, matterbridge, matter.js, matter-node.js, matter, matterprotocol, iot, smarthome, connectedthings, hap, homekit, siri, google-home, alexa, homeassistant, hass, smartthings, ewelink

readme

Matterbridge Logo   Matterbridge Home Assistant plugin

npm version npm downloads Docker Version Docker Pulls Node.js CI CodeQL codecov

power by power by power by


This plugin allows you to expose the Home Assistant devices and individual entities to Matter.

It is the ideal companion of the official Matterbridge Home Assistant Add-on.

Features:

  • The plugin can be used with Matterbridge running in the Matterbridge Official Add-on or outside Home Assistant.
  • The state of the Home Assistant core is checked before starting. The plugin waits for the core to be RUNNING.
  • The connection with Home Assistant is made throught WebSocket: so Matterbridge can be also in another network if the Home Assistant host is reachable.
  • The connection with Home Assistant can be also made with ssl WebSocket (i.e. wss://homeassistant:8123). Self signed certificates are also supported.
  • It is possible to filter entities and devices by Area.
  • It is possible to filter entities and devices by Label.
  • It is possible to select from a list the individual entities to include in the white or black list. Select by name, id or entity_id.
  • It is possible to select from a list the devices to include in the white or black list. Select by name or id.
  • It is possible to select from a list the entities to include in the device entity black list.
  • It is possible to pickup from a list the split entities.
  • It is possible to postfix the Matter device serialNumber and the Matter device name to avoid collision with other instances.
  • Support Apple Home Adaptive Lighting. See https://github.com/Luligu/matterbridge/discussions/390.
  • Support transition time.
  • Support system unit CELSIUS and FAHRENHEIT.
  • Jest test coverage = 100%.

Supported device entities:

Domain Supported states Supported attributes
switch on, off
light on, off brightness, color_mode, color_temp, hs_color, xy_color
lock locked, locking, unlocking, unlocked
fan on, off percentage, preset_mode (1), direction, oscillating
cover open, closed, opening, closing current_position
climate off, heat, cool, heat_cool, auto current_temperature, temperature, target_temp_low, target_temp_high, min_temp, max_temp
valve open, closed, opening, closing current_position
vacuum (2) idle, cleaning, paused, docked, returning

(1) - Supported preset_modes: auto, low, medium, high. (2) - The Apple Home crashes if the Rvc is inside the bridge. If you pair with Apple Home use the server mode in the config.

These domains are supported also like individual and split entities.

Supported individual entities:

Domain Category
automation Automations
scene Scenes
script Scripts
input_boolean Helpers
input_button Helpers

These individual entities are exposed as on/off outlets. When the outlet is turned on, it triggers the associated entity. After triggering, the outlet automatically switches back to the off state. The helper of domain input_boolean maintains the on/off state.

Supported sensors:

Domain Supported state class Supported device class Unit Matter device type
sensor measurement temperature °C, °F temperatureSensor
sensor measurement humidity % humiditySensor
sensor measurement pressure inHg, hPa, kPa pressureSensor
sensor measurement atmospheric_pressure inHg, hPa, kPa pressureSensor
sensor measurement illuminance lx lightSensor
sensor measurement battery % powerSource
sensor measurement voltage (battery) mV powerSource
sensor measurement voltage V electricalSensor
sensor measurement current A electricalSensor
sensor measurement power W electricalSensor
sensor measurement energy kWh electricalSensor
sensor measurement aqi (1) | airQualitySensor
sensor measurement volatile_organic_compounds ugm3 (2) airQualitySensor
sensor measurement carbon_dioxide ppm (2) airQualitySensor
sensor measurement carbon_monoxide ppm (2) airQualitySensor
sensor measurement nitrogen_dioxide ugm3 (2) airQualitySensor
sensor measurement ozone ugm3 (2) airQualitySensor
sensor measurement formaldehyde mgm3 (2) airQualitySensor
sensor measurement radon bqm3 (2) airQualitySensor
sensor measurement pm1 ugm3 (2) airQualitySensor
sensor measurement pm25 ugm3 (2) airQualitySensor
sensor measurement pm10 ugm3 (2) airQualitySensor

(1) - If the air quality entity is not standard (e.g. state class = measurement, device class = aqi and state number range 0-500), it is possible to set a regexp. See below. (2) - On the controller side.

Supported binary_sensors:

Domain Supported device class Matter device type
binary_sensor window, garage_door, door, vibration contactSensor
binary_sensor motion, occupancy, presence occupancySensor
binary_sensor cold waterFreezeDetector
binary_sensor moisture waterLeakDetector
binary_sensor smoke smokeCoAlarm
binary_sensor carbon_monoxide smokeCoAlarm
binary_sensor battery powerSource

Supported events:

Domain Supported events Matter device type
event single, single_push, press, initial_press, multi_press_1 genericSwitch
event double, double_press, double_push, multi_press_2 genericSwitch
event long, long_push, long_press, hold_press genericSwitch

If any commonly used integration use other useful events, let me know please.

Naming issues explained

For the naming issues (expecially upsetting with Alexa) read the explanation and the three possible actual solutions here.

Usage warning

Warning: Since this plugin takes the devices from Home Assistant, it cannot be paired back to Home Assistant. This would lead to duplicate devices! If you run Matterbridge like a Home Assistant Add-on and also use other plugins to expose their devices to Home Assistant, then change to child bridge mode and pair the other plugins to Home Assistant and this plugin wherever you need it.

Sponsoring

If you like this project and find it useful, please consider giving it a star on GitHub at https://github.com/Luligu/matterbridge-hass and sponsoring it.

Buy me a coffee

Prerequisites

Matterbridge

See the complete guidelines on Matterbridge for more information.

How to install the plugin

Just open the frontend, select the matterbridge-hass plugin and click on install. If you are using Matterbridge with Docker, all plugins are already loaded in the container so you just need to select the matterbridge-hass plugin and add it. If you are using Matterbridge with the Matterbridge Home Assistant Add-on, you need to install the matterbridge-hass plugin.

How to use it

There are 2 different source of Matter devices coming from matterbridge-hass plugin:

  • Regular devices with their entities that use the main whiteList, blackList and deviceEntityBlackList.

You find them in Home Assistant at http://localhost:8123/config/devices/dashboard.

  • Individual entities with domain scene, script, automation.

You find these special entities in Home Assistant at http://localhost:8123/config/automation/dashboard, http://localhost:8123/config/scene/dashboard and http://localhost:8123/config/script/dashboard.

  • Individual entities (helpers) with domain input_boolean, input_button.

You find these special entities in Home Assistant at http://localhost:8123/config/helpers.

  • Individual entities from template.

You find these special entities in Home Assistant at http://localhost:8123/config/helpers.

All the individual entities use the main whiteList, blackList.

Since the release 0.4.0 it is also possible to pickup any device entity and split ("decompose") it to make it an independent Matter device.

Config

You may need to set some config values in the frontend (wait that the plugin has been configured before changing the config):

I suggest to always use the filters by Area and Label or the whiteList adding each entity or device you want to expose to Matter.

If any device or entity creates issues put it in the blackList.

host

Your Home Assistance address (eg. ws://homeassistant.local:8123 or ws://IP-ADDRESS:8123). Use the IP only if it is stable. It is also possible to use ssl websocket (i.e. wss://). If you use selfsigned certificates you need to provide either the ca certificate or to unselect rejectUnauthorized. With normal certificates you don't need ca certificate and rejectUnauthorized should be selected.

token

Home Assistant long term token used to connect to Home Assistant with WebSocket. Click on your user name in the bottom left corner of the Home Assistand frontend, then Security and create a Long-Lived Access Tokens.

certificatePath

Fully qualified path to the SSL ca certificate file. This is only needed if you use a self-signed certificate and rejectUnauthorized is enabled.

rejectUnauthorized

Ignore SSL certificate errors. It allows to connect to Home Assistant with self-signed certificates without providing the ca certificate.

reconnectTimeout

Reconnect timeout in seconds.

reconnectRetries

Number of times to try to reconnect before giving up.

filterByArea

Filter devices and individual entities by area. If enabled, only devices and individual entities in the selected areas will be exposed. If disabled, all devices and individual entities will be exposed. This doesn't filter entities that belong to a device unless applyFiltersToDeviceEntities is set (in this case also the device needs to belong to this area).

filterByLabel

Filter devices and individual entities by label. If enabled, only devices and individual entities with the selected labels will be exposed. If disabled, all devices and individual entities will be exposed. This doesn't filter entities that belong to a device unless applyFiltersToDeviceEntities is set is set (in this case also the device must have this label).

applyFiltersToDeviceEntities

Apply the filters also to device entities. If enabled, the filters will be applied to device entities as well (both the device and its entities needs to have the area and label set in the filter). If disabled, the filters will only be applied to devices (all the device entities will be included) and individual entities.

whiteList

If the whiteList is defined only the devices and the individual and split entities included are exposed to Matter. Use the device/entity name or the device/entity id.

blackList

If the blackList is defined the devices and the individual and split entities included will not be exposed to Matter. Use the device/entity name or the device/entity id.

deviceEntityBlackList

List of entities not to be exposed for a single device. Enter in the first field the name of the device and in the second field add all the entity names you want to exclude for that device.

splitEntities

The device entities in the list will be exposed like an independent device and removed from their device. Use the entity id (i.e. switch.plug_child_lock).

Let's make an example.

Suppose we have a device named "Computer plug" with 3 entities:

  • id switch.computer_plug named "Computer plug Power" that is the main Power for the plug
  • id switch.computer_plug_child_lock named "Computer plug Child lock" that is the child lock for the plug
  • id temperature.computer_plug named "Computer plug Device temperature" that is the device temperature (very used in the zigbee world)

Without further setup, the controller will show 2 switch with the same name (difficult to distinguish them). Alexa will show 3 devices "Computer plug", "First plug" and "Second plug".

Solution:

  • add switch.computer_plug_child_lock (use entity_id) to splitEntities and restart.
  • if you use the whiteList, select your switch.computer_plug_child_lock (will show up with the entity name "Computer plug Child lock") and restart.

In this way, the controller will show one switch with name "Computer plug" and a second with name "Computer plug Child lock".

If you don't need the device temperature, just add it to deviceEntityBlackList.

If you want a more technical explanation for the naming issues (expecially upsetting with Alexa) read the explanation here.

Adding an entity to splitEntities doesn't automatically add it to the whiteList so it has to be added manually if you use whiteList.

airQualityRegex

Custom regex pattern to match air quality sensors that don't follow the standard Air Quality entity sensor.

Examples:

  • For sensor entities ending with _air_quality: ^sensor\..*_air_quality$.
  • For sensor entities containing air_quality anywhere: ^sensor\..*air_quality.*$.
  • For a single specific entity: sensor.air_quality_sensor (exact entity ID).
  • For two specific entities: ^(sensor\.kitchen_air_quality|sensor\.living_room_aqi)$.

If your setup has only one air quality sensor, you can simply put the exact entity ID here (e.g., sensor.air_quality_sensor) and it will match that specific entity.

enableServerRvc

Enable the Robot Vacuum Cleaner in server mode. Apple Home will crash unless you use this mode! Don't try it with Apple Home cause the bridge will become unstable even if you remove it after.

debug

Should be enabled only if you want to debug some issue using the log.

changelog

Matterbridge Logo   Matterbridge hass plugin changelog

All notable changes to this project will be documented in this file.

If you like this project and find it useful, please consider giving it a star on GitHub at https://github.com/Luligu/matterbridge-hass and sponsoring it.

Buy me a coffee

Naming issues on the controller side explained

For the naming issues (expecially upsetting with Alexa) read the explanation and the solution here.

[1.0.1] - 2025-12-12

Added

  • [homeAssistant]: Added timeout to Home Assistant core state check.
  • [homeAssistant]: Add types for HassUnitSystem.
  • [climate]: Added configuration when climate has heat and cool but no heat_cool.
  • [climate]: Added auto conversion to domain climate (beta). Thanks schkodi (https://github.com/Luligu/matterbridge-hass/issues/124).

Changed

  • [package]: Updated dependencies.
  • [config]: Changed default rejectUnauthorized to false. Unless needed leave it to false.
  • [platform]: Use ws api to check if HomeAssistant is running (startup is finished) before fetching the data. The rest api has been removed.

Fixed

Buy me a coffee

[1.0.0] - 2025-12-05

Breaking changes

Since the domain event is now supported, please check your filters and/or whiteList.

Race condition

We have a race condition when, after a blackout or with docker compose or with other systems that start more then one process, Matterbridge starts before other required system or network components.

Race condition can cause missing configuration or missed devices on the controller side.

Added a fail safe check for Home Assistant core state RUNNING. The plugin and so the bridge will not start before the Home Assistant core is RUNNING (fully started).

The plugin will fetch all data only after the Home Assistant core is fully started.

Added

  • [platform]: Added domain event.
  • [platform]: Added rest api to check if HomeAssistant is running (startup is finished) before fetching the data. This avoid to start the plugin with incomplete data.
  • [platform]: Added platform memory cleanup before throwing error for host and token missed.
  • [platform]: Added snackbar message on the frontend when Home Assistant disconnect and reconnect.
  • [platform]: Added restart required when Home Assistant reconnect. If the configuration changed you need to restart the plugin.
  • [homeAssistant]: Added HomeAssistantLightColorMode enum, DEFAULT_MIN_KELVIN and DEFAULT_MAX_KELVIN.
  • [homeAssistant]: Added HassStateEventAttributes type.
  • [homeAssistant]: Added Home Assistant core state check.
  • [converters]: Added hassDomainEventConverter.
  • [converters]: Use HomeAssistantLightColorMode enum.

Changed

  • [package]: Updated dependencies.
  • [package]: Updated to the current Matterbridge signatures.
  • [package]: Requires Matterbridge v.3.4.0.
  • [package]: Updated tests to use the Matterbridge Jest module.
  • [package]: Bumped package to automator v.2.1.0.
  • [platform]: Changed savePayload() to async.
  • [converters]: Bumped Converters to v.1.2.0.
  • [homeAssistant]: Bumped HomeAssistant to v.1.2.0.

Buy me a coffee

[0.5.1] - 2025-11-14

Added

  • [homeassistant]: The logger level of the HomeAssistant class follows the one from the plugin.

Changed

  • [package]: Updated dependencies.
  • [package]: Bumped package to automator v.2.0.12.
  • [package]: Updated to the current Matterbridge signatures.
  • [jest]: Updated jestHelpers to v.1.0.12.

Buy me a coffee

[0.5.0] - 2025-10-31

Added

  • [config]: Added sanity check for old configs. The user should open the config and save it each major or minor upgrade.
  • [light]: Added conversion from mireds to kelvin. Home Assistant will remove mireds in 2026 but the color temperature in matter is in mireds. This may generate a not perfect conversion.

Changed

  • [platform]: Bumped platform to v.1.6.0.
  • [config]: Update default config.
  • [schema]: Clarified applyFiltersToDeviceEntities use.
  • [package]: Bumped package to automator v.2.0.10.
  • [jest]: Updated jestHelpers to v.1.0.10.
  • [workflows]: Use shallow clones for faster builds.
  • [fan]: Changed turn_on with percentage 0 to turn_off. Thanks Hoppel (https://github.com/Luligu/matterbridge-hass/issues/109).

Fixed

Buy me a coffee

[0.4.3] - 2025-10-16

Added

  • [package]: Requires matterbridge v. 3.3.0.
  • [package]: Update to matterbridge v. 3.3.0 new platform signature.

Changed

  • [package]: Bumped package to automator version 2.0.7
  • [workflows]: Ignore any .md in build.yaml.
  • [workflows]: Ignore any .md in codeql.yaml.
  • [workflows]: Ignore any .md in codecov.yaml.
  • [template]: Updated bug_report.md.
  • [jest]: Updated jestHelpers to v. 1.0.7.
  • [workflows]: Improved speed on Node CI.
  • [devcontainer]: Added the plugin name to the container.
  • [devcontainer]: Improved performance of first build with shallow clone.
  • [package]: Updated dependencies.
  • [cover]: When goToLiftPercentage is called with 0, we call the open service and when called with 10000 we call the close service. (https://github.com/Luligu/matterbridge-hass/pull/106)

Buy me a coffee

[0.4.2] - 2025-09-09

Breaking changes

Added support for Apple Home Adaptive Lighting. See https://github.com/Luligu/matterbridge/discussions/390. Now the lights don't turn on when the controller sends a command to be executed when the light is off (In Home Assistant, changing brightness or color (all modes) without affecting the on/off state of a light is not possible.).

See also the breaking changes of the releases 0.4.0 and 0.3.0 please.

Added

  • [adaptiveLighting]: Added support for Apple Home Adaptive Lighting. Also fix https://github.com/Luligu/matterbridge-hass/issues/91.
  • [transition]: Added support for transitionTime in command handler.
  • [converters]: Added convertMatterXYToHA and convertHAXYToMatter converters.

Changed

  • [package]: Updated dependencies.
  • [package]: Automator: update package v. 2.0.6.
  • [jest]: Updated jest helper module to v. 1.0.5.
  • [workflows]: Ignore any .md anywhere.

Fixed

Buy me a coffee

[0.4.1] - 2025-09-06

Breaking changes

See the breaking changes of the releases 0.4.0 and 0.3.0 please.

Added

  • [battery]: Added support for battery type individual and split entities (battery low, battery level and battery voltage).
  • [select]: Added select to splitEntities. It is possibile to pick up from the list of entities.
  • [readme]: Improved the readme.
  • [jest]: Added an helper to make all tests standard and more efficient.
  • [platform]: Typed HomeAssistantPlatformConfig.

Changed

  • [package]: Updated dependencies.

Buy me a coffee

[0.4.0] - 2025-09-02

Breaking changes

The 'remap' has been activated for the device entities too. This will cause the resulting Matter devices to be differently composed, so the controller can have issues to show the changed devices.

Since in Matter there is no official way to change an existing endpoint (only Matter 1.4.2 introduces it),

if the controller has issues to show the new device composition, try to power it off, wait 5 minutes, then power it again.

On the Matterbridge log you should see after a while this line.

[22:35:38.583] [ServerSubscription] Sending update failed 3 times in a row, canceling subscription 3926576955 and let controller subscribe again.

When you see this message in the log, you can power again the controller (or maybe just wait the 5 minutes).

If this still doesn't solve the issue, you may need to reset all the registered devices (from the frontend) or repair the bridge.

See also the breaking changes of the release 0.3.0 please.

Added

  • [MutableDevice]: Bumped MutableDevice to v. 1.3.1.
  • [MutableDevice]: Optimize memory with destroy().
  • [Platform]: Optimize memory calling destroy() on MutableDevice.
  • [MutableDevice]: Added automatic 'remap' ability in MutableDevice for devicee entities: this remaps the not overlapping child endpoints to the device main endpoint.
  • [config]: Added splitEntities. The device entities in the list will be exposed like an independent device and removed from their device.
  • [platform]: Bumped HomeAssistantPlatform to v. 1.5.0.

Changed

  • [package]: Updated dependencies.

Fixed

Buy me a coffee

[0.3.0] - 2025-08-28

Breaking changes

With this release, all supported domains are available also in the single entities. This will bring in a lot of new Matter devices. I suggest to check carefully the whiteList and the blackList and also the log for duplicated names.

The vacuum domain have been added. When pairing to Apple Home always enable enableServerRvc in the config (default to true).

Added

  • [fan]: Added rock direction attributes to fan domain. Creates a complete fan with feature Rocking, AirflowDirection.
  • [MutableDevice]: Added automatic 'remap' ability in MutableDevice for single entities: this remaps the not overlapping child endpoints to the device main endpoint.
  • [SingleEntities]: Added support in single entities for the domains supported in the device entities.
  • [HomeAssistant]: Bumped HomeAssistant to v. 1.1.2.
  • [MutableDevice]: Bumped MutableDevice to v. 1.3.0.
  • [converters]: Bumped converters to v. 1.1.2.
  • [binary_sensor]: Added addBinarySensorEntity function to handle binary_sensor domain in single entities and device entities.
  • [sensor]: Added addSensorEntity function to handle sensor domain in single entities and device entities.
  • [control]: Added addControlEntity function to handle all core domains in single entities and device entities.
  • [valve]: Added valve domain.
  • [platform]: Bumped HomeAssistantPlatform to v. 1.3.0.
  • [configure]: Optimized configure loop.
  • [update]: Optimized updateHandler.
  • [vacuum]: Added vacuum domain.
  • [config]: Added enableServerRvc to the config for the Apple Home issue with the rvc.

Changed

  • [package]: Updated dependencies.
  • [package]: Requires matterbridge v. 3.2.4.
  • [package]: Automator: update package v. 2.0.4.
  • [package]: Updated to Automator v. 2.0.5.
  • [devContainer]: Updated devContainer with repository name for the container and shallow clone matterbridge for speed and memory optimization.

Fixed

  • [domain]: Unsupported domain entities are no more in the select. Thanks David Spivey.
  • [battery]: Fix battery voltage conversion.
  • [domain]: Fix wrong pickup for carbon_monoxide.
  • [remap]: Add edge cases to remap.
  • [climate]: Fix auto -> heat_cool.
  • [fan]: Fix subscribe for fan complete.

Buy me a coffee

[0.2.1] - 2025-07-26

Breaking changes

  • [helpers]: All single entities are no more composed devices. This helps the controllers that have issues with composed devices (i.e. Alexa).

Added

  • [airquality]: Refactor the airQuality converter to allow conversion from numbers in the range 0-500 and strings like 'good', 'fair' etc.

Changed

  • [package]: Updated dependencies.

Buy me a coffee

[0.2.0] - 2025-07-14

Breaking changes

  • [helpers]: All single entities are no more composed devices. This helps the controllers that have issues with composed devices (i.e. Alexa).

Added

  • [platform]: Added the ability to merge HA entities in a single Matter device.
  • [temperature]: Added conversion from Fahrenheit to Celsius on single entity state for domain climate.
  • [pressure]: Added conversion from kPa and inHg to hPa.
  • [sensor]: Added domain sensor with deviceClass 'voltage' unit 'mV'. It sets the battery voltage of the Power Source cluster.
  • [sensor]: Added domain sensor with deviceClass 'voltage' unit 'V'. It sets the voltage of the Electrical Sensor cluster.
  • [sensor]: Added domain sensor with deviceClass 'current' unit 'A'. It sets the activeCurrent of the Electrical Sensor cluster.
  • [sensor]: Added domain sensor with deviceClass 'power' unit 'W'. It sets the activePower of the Electrical Sensor cluster.
  • [sensor]: Added domain sensor with deviceClass 'energy' unit 'kWh'. It sets the energy of the Electrical Sensor cluster.
  • [sensor]: Added domain sensor with deviceClass 'aqi' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'volatile_organic_compounds' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'carbon_dioxide' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'carbon_monoxide' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'nitrogen_dioxide' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'ozone' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'formaldehyde' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'radon' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'pm1' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'pm25' for the Air Quality clusters.
  • [sensor]: Added domain sensor with deviceClass 'pm10' for the Air Quality clusters.
  • [airquality]: Added airQualityRegex to the config to match not standard air quality sensors entities (e.g., '^sensor..*_air_quality$'). See the README.md.

Changed

  • [package]: Updated dependencies.
  • [storage]: Bumped MutableDevice to 1.2.3.

Buy me a coffee

[0.1.5] - 2025-07-07

Added

  • [converters]: Added endpoint to sensor and binary_sensor converters to merge HA entities.
  • [platform]: Add subscribeHandler.
  • [platform]: Refactor commandHandler with new Matterbridge API.
  • [temperature]: Added conversion from Fahrenheit to Celsius on single entity state for domain sensor and device class temperature.

Changed

  • [PowerSource]: Moved PowerSource cluster to the main endpoint.
  • [package]: Updated dependencies.

Buy me a coffee

[0.1.4] - 2025-06-28

Added

  • [homeassistant]: Added HassLabel.
  • [homeassistant]: Added core_config_updated message handler to fetch the new config.
  • [homeassistant]: Add queue for fetching updates.
  • [config]: Added applyFiltersToDeviceEntities option to schema.
  • [config]: Improved filtering logic for label. Now is possible to use the label id or the label name in the label filter.
  • [DevContainer]: Added support for the Matterbridge Plugin Dev Container with optimized named volumes for matterbridge and node_modules.
  • [GitHub]: Added GitHub issue templates for bug reports and feature requests.
  • [ESLint]: Refactored the flat config.
  • [ESLint]: Added the plugins eslint-plugin-promise, eslint-plugin-jsdoc, and @vitest/eslint-plugin.
  • [Jest]: Refactored the flat config.
  • [Vitest]: Added Vitest for TypeScript project testing. It will replace Jest, which does not work correctly with ESM module mocks.
  • [JSDoc]: Added missing JSDoc comments, including @param and @returns tags.
  • [CodeQL]: Added CodeQL badge in the readme.
  • [Codecov]: Added Codecov badge in the readme.

Changed

  • [package]: Updated package to Automator v. 2.0.1.
  • [package]: Update dependencies.
  • [storage]: Bumped node-storage-manager to 2.0.0.
  • [logger]: Bumped node-ansi-logger to 3.1.1.
  • [package]: Requires matterbridge 3.1.0.
  • [worflows]: Removed workflows running on node 18 since it reached the end-of-life in April 2025.

Fixed

  • [state]: Fix state update when both old and new state are unavailable.

Buy me a coffee

[0.1.3] - 2025-06-13

Added

  • [binary_sensor]: Added domain binary_sensor with deviceClass 'presence'. It creates an occupancySensor with OccupancySensing cluster.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'carbon_monoxide'. It creates a smokeCoAlarm with SmokeCoAlarm cluster and feature CoAlarm.
  • [sensor]: Added domain sensor with deviceClass 'atmospheric_pressure'. It creates a pressureSensor with PressureMeasurement cluster.
  • [sensor]: Added domain sensor with deviceClass 'battery'. It creates a powerSource with PowerSource cluster.
  • [binary_sensor]: Added domain sensor with deviceClass 'battery'. It creates a powerSource with PowerSource cluster.

Changed

  • [package]: Update package.
  • [package]: Update dependencies.

Fixed

  • [select]: Fixed ghost devices in the Device Home page.

Buy me a coffee

[0.1.2] - 2025-06-07

Added

  • [homeassistant]: Typed HassWebSocketResponses and HassWebSocketRequests.
  • [homeassistant]: Added subscribe() and Jest test.
  • [homeassistant]: Added unsubscribe() and Jest test.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'garage_door'. It creates a contactSensor with BooleanState cluster.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'window'. It creates a contactSensor with BooleanState cluster.
  • [jest]: Added real Jest test to test the HomeAssistant api with a real Home Assistant setup.

Changed

  • [config]: Enhanced reconnect config description and set minimum value to 30 secs for reconnectTimeout.

Buy me a coffee

[0.1.1] - 2025-06-04

Added

  • [binary_sensor]: Added domain binary_sensor with deviceClass 'smoke'. It creates a smokeCoAlarm with SmokeCoAlarm cluster and feature SmokeAlarm.

Changed

  • [readme]: Updated readme for clarity.
  • [package]: Update package.
  • [package]: Update dependencies.

Fixed

  • [reconnect]: Added missed call to fetchData and subscribe on reconnect.
  • [startup]: Added the value from state for BooleanState cluster to avoid controller alarms.

Buy me a coffee

[0.1.0] - 2025-06-02

Added

  • [npm]: The dev of matterbridge-hass is published with tag dev on npm each day at 00:00 UTC if there is a new commit.
  • [input_button]: Added domain input_button for individual entities.
  • [switch]: Added domain switch for template individual entities.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'door'. It creates a contactSensor with BooleanState cluster.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'vibration'. It creates a contactSensor with BooleanState cluster.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'motion'. It creates an occupancySensor with OccupancySensing cluster.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'occupancy'. It creates an occupancySensor with OccupancySensing cluster.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'cold'. It creates a waterFreezeDetector with BooleanState cluster.
  • [binary_sensor]: Added domain binary_sensor with deviceClass 'moisture'. It creates a waterLeakDetector with BooleanState cluster.
  • [online]: Added online / offline setting based on unavailable state.
  • [filterByArea]: Added filter of individual entities and devices by Area.
  • [filterByLabel]: Added filter of individual entities and devices by Label.
  • [HomeAssistant]: Bump HomeAssistant class to v. 1.0.2. Fully async and promise based.

Changed

  • [update]: Skip attributes update when state is off. Provisional!
  • [config]: Removed individualEntityWhiteList and individualEntityBlackList. Use the normal white and black lists.
  • [config]: Changed serialPostfix to postfix.

Fixed

  • [colorControl]: Fixed possibly missed attributes in the cluster creation (#39).

Buy me a coffee

[0.0.11] - 2025-05-29

Added

  • [homeassistant]: Updated interfaces for Entities and States.
  • [homeassistant]: Updated Jest tests.
  • [areas]: Added HassArea interface and fetch areas.
  • [reconnectRetries]: Added reconnectRetries in the config.
  • [ssl]: Added the possibility to use ssl WebSocket connection to Home Assistant (i.e. wss://homeassistant:8123).
  • [ssl]: Added certificatePath to the config: enter the fully qualified path to the SSL ca certificate file. This is only needed if you use a self-signed certificate and rejectUnauthorized is enabled.
  • [ssl]: Added rejectUnauthorized to the config: it ignores SSL certificate validation errors if enabled. It allows to connect to Home Assistant with self-signed certificates.

Changed

  • [package]: Update package.
  • [package]: Update dependencies.
  • [package]: Requires matterbridge 3.0.4.
  • [platform]: Changed the timeout of the first connection to 30 seconds.

Fixed

  • [reconnect]: Fixed reconnection loop. Now when Home Assistant reboots, the connection is reeastablished correctly if reconnectTimeout and/or reconnectRetries are enabled.

Buy me a coffee

[0.0.10] - 2025-04-04

Added

  • [select]: Added calls to select API.

Changed

  • [package]: Update package.
  • [package]: Update dependencies.
  • [package]: Requires matterbridge 2.2.6.

Fixed

  • [device]: Fixed case where current_temperature is not available on thermostats.
  • [device]: Fixed case with device name empty.

Buy me a coffee

[0.0.9] - 2025-02-07

Added

  • [hass]: Added support for helpers with domain input_boolean.
  • [plugin]: Added check for duplicated device and individual entity names.

Changed

  • [package]: Updated dependencies.
  • [package]: Requires matterbridge 2.1.4.

Fixed

  • [cover]: Fixed state closed on domain cover.

Buy me a coffee

[0.0.8] - 2025-02-02

Added

  • [config]: Added uniqueItems flag to the lists.
  • [readme]: Clarified in the README the difference between single entities and device entities.

Changed

  • [package]: Update package.
  • [package]: Update dependencies.
  • [package]: Requires matterbridge 2.1.0.

Buy me a coffee

[0.0.7] - 2025-01-08

Added

  • [selectDevice]: Added selectDevice to get the device names from a list in the config editor.
  • [selectDevice]: Added selectEntity to get the entity names from a list in the config editor (requires matterbridge >= 1.7.2).
  • [config]: Added the possibility to validate individual entity in the white and black list by entity_id.
  • [config]: Added the possibility to postfix also the Matter device name to avoid collision with other instances.
  • [package]: Requires matterbridge 1.7.1.

Changed

  • [package]: Update dependencies.

Fixed

  • [config]: Fix the Matter serial number postfix.

Buy me a coffee

[0.0.6] - 2024-12-24

Added

  • [entity]: Added individual entity of domain automation, scene and script.
  • [config]: Added individual entity white and black list.

Changed

  • [package]: Update package.
  • [package]: Update dependencies.

Buy me a coffee

[0.0.5] - 2024-12-16

Added

  • [package]: Verified to work with Matterbridege edge.
  • [package]: Jest coverage 91%.
  • [homeassistant]: Added Jest test.

Changed

  • [package]: Requires Matterbridege 1.6.6.
  • [package]: Update dependencies.

Buy me a coffee

[0.0.4] - 2024-12-12

Added

  • [homeassistant]: Add the possibility to white and black list a device with its name or its device id.
  • [homeassistant]: Add the possibility to black list one or more device entities with their entity id globally or on a device base.
  • [homeassistant]: Add sensor domain with temperature, humidity, pressure and illuminance.

Changed

  • [package]: Requires Matterbridege 1.6.6.
  • [package]: Update dependencies.

Buy me a coffee

[0.0.3] - 2024-12-07

Added

  • [climate]: Add state heat_cool and attributes target_temp_low target_temp_high to domain climate.

Changed

  • [homeassistant]: Changed to debug the log of processing event.

Buy me a coffee

[0.0.2] - 2024-12-06

Added

  • [climate]: Add domain climate.

Changed

  • [fan]: Update domain fan.
  • [command]: Jest on hassCommandConverter.
  • [command]: Refactor hassCommandConverter.
  • [homeassistant]: Refactor HomeAssistant.

Buy me a coffee

[0.0.1-dev.6] - 2024-12-05

Added

  • [homeassistant]: Add event processing for device_registry_updated and entity_registry_updated.
  • [homeassistant]: Refactor validateDeviceWhiteBlackList and added validateEntityBlackList.
  • [homeassistant]: Add reconnectTimeout configuration.

Buy me a coffee

[0.0.1-dev.5] - 2024-12-05

Added

  • [homeassistant]: Add cover domain to supported devices.

Buy me a coffee

[0.0.1-dev.4] - 2024-12-04

Changed

  • [homeassistant]: Change reconnect timeout to 60 seconds.
  • [homeassistant]: Add callServiceAsync and reconnect timeout.

Buy me a coffee

[0.0.1-dev.2] - 2024-12-03

First published release.

Buy me a coffee