Using the User Interface you can set up multiple bridges and configure each to use different filters for your entities. Each bridge will be completely independent of the others and uses its own port for matter.
Quick Start with Bridge Wizard¶
The easiest way to create bridges is using the Bridge Wizard:
Open the web UI and go to the Bridges page
Click the Wizard button in the top right
Follow the guided steps:
Enter a name for your bridge
Configure entity filters (by area, label, domain, etc.)
Port is automatically assigned (starting from 5540)
Add multiple bridges in one session
Review and confirm to create all bridges
The wizard automatically handles port assignment and prevents conflicts.
Manual Configuration¶
You can access the bridge configuration by opening the web UI:
If you are running the Home Assistant Add On: click on
Open Web UIIf you are running the docker container: open
host-ip:port(default port is 8482 if you didn’t change it)
Every bridge has to have a name (string), port (number) and filter (object) property. The filter property has to
include an include (array) and an exclude (array) property.
{
"name": "My Hub",
"port": 5540,
"filter": {
"include": [],
"exclude": []
}
}A include- or exclude-item is an object having a type and a value property.
Filter Types¶
| Type | Description | Example Value |
|---|---|---|
pattern | Wildcard pattern matching entity IDs. Use * as wildcard. | light.living_room_* |
regex | Regular expression matching entity IDs. Full regex support. | ^light\.(kitchen|bedroom)_.* |
domain | Match entities by their domain (the part before the dot). | light, switch, sensor |
platform | Match entities by their integration/platform. | hue, zwave, mqtt |
entity_label | Match entities by their label. Accepts display name or slug. Only checks entity-level labels. | Voice Control |
device_label | Match entities by their parent device’s label. All entities of that device match. | smart_home |
area | Match entities by their area slug. | living_room |
entity_category | Match entities by their category. | config, diagnostic |
device_name | Match entities by their device name (case-insensitive, wildcards). | Living Room* |
product_name | Match entities by their product/model name (case-insensitive, wildcards). | Hue Color Bulb |
device_class | Match entities by their device class attribute. | temperature, motion |
Pattern vs Regex¶
Pattern uses simple wildcard matching:
*matches any characters (zero or more)Example:
light.living_room_*matcheslight.living_room_lamp
Regex uses full JavaScript regular expressions:
More powerful for complex patterns
Example:
^(light|switch)\.kitchen_.*matches kitchen lights and switches
Device Name Filter¶
The device_name filter matches against the device’s name (not the entity ID):
Case-insensitive matching
Supports
*wildcard for pattern matchingMatches against: user-defined name → device name → default name
Example:
*Philips*matches all devices with “Philips” in their name
Product Name Filter¶
The product_name filter matches against the device’s model or product name:
Case-insensitive matching
Supports
*wildcard for pattern matchingMatches against: model → default model
Example:
Hue*Bulbmatches all devices with a model name containing “Hue” and “Bulb”
Device Class Filter¶
The device_class filter matches against the entity’s device_class attribute:
Exact match (case-sensitive)
Common device classes:
temperature,humidity,motion,door,window,battery,power,energy,illuminance,pressureExample:
temperaturematches all entities withdevice_class: temperature
The value property is a string containing the corresponding value. You can add multiple include or exclude rules which
are then combined.
All entities which match one of the include-rules will be included, but all entities which match one of the exclude
rules will be excluded.
Labels can be applied at the entity level or at the device level:
Use
entity_labelto match labels assigned directly to entitiesUse
device_labelto match labels assigned to the parent device (all entities of that device will match)The old
labeltype still works but only matches entity labels — use the new types for explicit control
You can use either the display name (e.g. My Smart Lights) or the slug (e.g. my_smart_lights) as the filter value. The display name is automatically resolved to the correct slug.
Examples¶
Basic Configuration¶
{
"name": "My Hub",
"port": 5540,
"filter": {
"include": [
{
"type": "label",
"value": "my_voice_assist"
},
{
"type": "pattern",
"value": "light.awesome*"
}
],
"exclude": [
{
"type": "platform",
"value": "hue"
},
{
"type": "domain",
"value": "fan"
},
{
"type": "entity_category",
"value": "diagnostic"
}
]
}
}Using Regex for Complex Matching¶
Match all lights and switches that start with “kitchen” or “living_room”:
{
"name": "Main Rooms",
"port": 5540,
"filter": {
"include": [
{
"type": "regex",
"value": "^(light|switch)\\.(kitchen|living_room)_.*"
}
],
"exclude": []
}
}Using Device Name Filter¶
Include all entities from Philips devices, exclude IKEA devices:
{
"name": "Brand Filter",
"port": 5541,
"filter": {
"include": [
{
"type": "device_name",
"value": "*Philips*"
}
],
"exclude": [
{
"type": "device_name",
"value": "*IKEA*"
}
]
}
}Combining Multiple Filter Types¶
A comprehensive example using multiple filter types:
{
"name": "Living Room Hub",
"port": 5542,
"filter": {
"include": [
{
"type": "area",
"value": "living_room"
},
{
"type": "label",
"value": "voice_control"
},
{
"type": "pattern",
"value": "light.guest_*"
}
],
"exclude": [
{
"type": "entity_category",
"value": "diagnostic"
},
{
"type": "entity_category",
"value": "config"
},
{
"type": "regex",
"value": ".*_battery$"
},
{
"type": "device_name",
"value": "*Test*"
}
]
}
}This configuration:
Includes: All entities in the “living_room” area, entities with the “voice_control” label, and all lights starting with “guest_”
Excludes: Diagnostic and config entities, any entity ending with “_battery”, and any device with “Test” in its name
Feature Flags¶
Feature flags control advanced behavior of the bridge. Configure them in the Bridge Settings → Feature Flags section of the web UI.
| Feature Flag | Description | Default |
|---|---|---|
autoComposedDevices | Master toggle: combines related entities (battery, humidity, pressure, power, energy) into single Matter endpoints. Enables all auto-mapping features at once. | false |
autoBatteryMapping | Automatically combines battery sensors with their parent device | false |
autoHumidityMapping | Automatically combines humidity sensors with temperature sensors | true |
autoPressureMapping | Automatically combines pressure sensors with temperature sensors | true |
autoForceSync | Periodically push all device states to controllers every 90 seconds. Enable if devices get out of sync. | false |
coverSwapOpenClose | Swap open/close commands for covers (fixes reversed Alexa commands) | false |
coverDoNotInvertPercentage | Skip percentage inversion for covers (not Matter-compliant) | false |
coverUseHomeAssistantPercentage | Use HA percentages directly (Alexa-friendly) | false |
includeHiddenEntities | Include entities marked as hidden in Home Assistant | false |
serverMode | Expose device as standalone Matter device (required for Robot Vacuums with Apple Home/Alexa). Only ONE device per bridge! | false |
Issues with labels¶
If you can’t get it working with your labels, you can delete your label and re-create it.