feat(matter): add matter server app (#3806)

* feat(matter): add matter server app

* fix(matter-server): ci container name
This commit is contained in:
JigSaw 2024-06-17 00:29:26 +02:00 committed by GitHub
parent 01916910bd
commit 20af720cb2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 89 additions and 0 deletions

View File

@ -27,6 +27,7 @@ interface AppConfig {
}
const networkExceptions = [
"matter-server",
"mdns-repeater",
"pihole",
"tailscale",

View File

@ -5,6 +5,7 @@ Open source home automation that puts local control and privacy first. Powered b
Check out [home-assistant.io](https://home-assistant.io) for a [demo](https://home-assistant.io/demo/), installation [instructions](https://home-assistant.io/getting-started/), [tutorials](https://home-assistant.io/getting-started/automation/) and [documentation](https://home-assistant.io/docs/)
**HomeKit Support in Docker:** Use MDNS app ! (And follow https://community.home-assistant.io/t/using-homekit-component-inside-docker/45409/41)
**Matter Support in Docker:** Use Matter Server app !
## Migration

View File

@ -0,0 +1,24 @@
{
"$schema": "../schema.json",
"name": "Matter Server",
"available": true,
"exposable": false,
"no_gui": true,
"port": 9997,
"id": "matter-server",
"tipi_version": 1,
"version": "6.1.2",
"categories": [
"utilities",
"automation"
],
"author": "OpenHomeFoundation",
"description": "This project implements a Matter Controller Server over WebSockets using the official Matter (formerly CHIP) SDK as a base and provides both a server and client implementation.",
"short_desc": "Interact with Matter. Works with HA !",
"source": "https://github.com/home-assistant-libs/python-matter-server",
"form_fields": [],
"supported_architectures": [
"arm64",
"amd64"
]
}

View File

@ -0,0 +1,14 @@
services:
matter-server:
image: ghcr.io/home-assistant-libs/python-matter-server:6.1.2
container_name: matter-server
restart: unless-stopped
network_mode: host
security_opt:
- "apparmor=unconfined"
volumes:
- /run/dbus:/run/dbus:ro
- ${APP_DATA_DIR}/data:/data
labels:
# Main
traefik.enable: false

View File

@ -0,0 +1,49 @@
# Python Matter Server
This project implements a Matter Controller Server over WebSockets using the
[official Matter (formerly CHIP) SDK](https://github.com/project-chip/connectedhomeip)
as a base and provides both a server and client implementation.
The goal of this project is primarily to have Matter support in Home Assistant
but its universal approach makes it suitable to be used in other projects too.
## Support
Got questions?
You have several options to get them answered:
* The Home Assistant [Community Forum](https://community.home-assistant.io/).
* The Home Assistant [Discord Chat Server](https://discord.gg/c5DvZ4e).
* Join [the Reddit subreddit in /r/homeassistant](https://reddit.com/r/homeassistant).
If you experience issues using Matter with Home Assistant, please open an issue
report in the [Home Assistant Core repository](https://github.com/home-assistant/core/issues/new/choose).
You may also open issues in this repository if you are absolutely sure that your
issue is related to the Matter Server component.
### Requirements to communicate with Wi-Fi/Ethernet based Matter devices
Make sure you run the container on the host network. The host network
interface needs to be in the same network as the Android/iPhone device
you are using for commissioning. Matter uses link-local multicast protocols
which do not work across different LANs or VLANs.
The host network interface needs IPv6 support enabled.
### Requirements to communicate with Thread devices through Thread border routers
For communication through Thread border routers which are not running on the same
host as the Matter Controller server to work, IPv6 routing needs to be properly
working. IPv6 routing is largely setup automatically through the IPv6 Neighbor
Discovery Protocol, specifically the Route Information Options (RIO). However,
if IPv6 Neighbor Discovery RIO's are processed, and processed correctly depends on the network
management software your system is using. There may be bugs and caveats in
processing this Route Information Options.
In general, make sure the kernel option `CONFIG_IPV6_ROUTER_PREF` is enabled and
that IPv6 forwarding is disabled (sysctl variable `net.ipv6.conf.all.forwarding`).
If IPv6 forwarding is enabled, the Linux kernel doesn't employ reachability
probing (RFC 4191), which can lead to longer outages (up to 30min) until
network changes are detected.

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB