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

Package detail

matterbridge-hass

Luligu4.5kApache-2.00.1.2

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 Coverage

power by power by power by


This plugin allows you to expose the Home Assistant devices and 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 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 individual entities and devices by Area.
  • It is possible to filter individual 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 postfix the Matter device serialNumber or the Matter device name to avoid collision with other instances.

Supported devices:

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
cover open, closed, opening, closing current_position
climate off, heat, cool, heat_cool temperature, current_temperature, target_temp_low, target_temp_high

Supported sensors:

Domain Supported state class Supported device class Matter device type
sensor measurement temperature temperatureSensor
sensor measurement humidity humiditySensor
sensor measurement pressure pressureSensor
sensor measurement illuminance lightSensor
binary_sensor | window, garage_door, door, vibration contactSensor
binary_sensor | motion, occupancy occupancySensor
binary_sensor | cold waterFreezeDetector
binary_sensor | moisture waterLeakDetector
binary_sensor | smoke smokeCoAlarm

Supported individual entities:

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

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 helpers of domain input_boolean and the switch template maintain the on/off state.

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.

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

Follow these steps to install or update Matterbridge if it is not already installed and up to date:

npm install -g matterbridge --omit=dev

on Linux you may need the necessary permissions:

sudo npm install -g matterbridge --omit=dev

See the complete guidelines on Matterbridge for more information.

How to install the plugin

With the frontend (preferred method)

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

Without the frontend

On windows:

cd $HOME\Matterbridge
npm install -g matterbridge-hass --omit=dev
matterbridge -add matterbridge-hass

On linux:

cd ~/Matterbridge
sudo npm install -g matterbridge-hass --omit=dev
matterbridge -add matterbridge-hass

Then start Matterbridge from a terminal

matterbridge

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 and input_boolean, input_button helpers, switch template that use the main whiteList, blackList.

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

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 individual entity or device you want to expose to Matter.

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

host

Your Home Assistance address (eg. ws://homeassistant.local:8123 or ws://IP-ADDRESS:8123). You can also use the IP if it is stable. It is also possible to use ssl websocket (i.e. wss://). If you use selefsigned certificate you need to provide either the ca certificate or to unselect rejectUnauthorized. With normal certificate you don't need certificate 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.

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.

whiteList

If the whiteList is defined only the devices and the individual 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 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.

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

Breaking changes

Since release 0.1.0:

  • the config parameters individualEntityWhiteList and individualEntityBlackList have been removed. Use the normal white and black lists.
  • the config serialPostfix has been changed to postfix.

[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.

Fixed

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