Luligu / matterbridge

Matterbridge plugin manager for Matter
https://github.com/Luligu/matterbridge/blob/main/README.md
Apache License 2.0
255 stars 25 forks source link

Google Home - Devices Offline #92

Closed robvanoostenrijk closed 3 months ago

robvanoostenrijk commented 3 months ago

After following the setup instructions, I was able to add the MatterBridge Aggregrator in Google Home.

However, even though no errors are displaying in the MatterBridge interface, the devices themselves stay offline in the Google Home app:

google-home-devices

(For now I'm using whitelist to expose only 1 Zigbee device for testing)

MatterBridge WebUI:

image

I'm not sure how to debug this issue, if its a configuration problem or a bug? Happy to provide more debug logs if required.

Luligu commented 3 months ago

Hi, from your screenshot I see that Google Home has still not connected to Matterbridge: Active sessions: 0 I see also that it was starting to create a connection but the active subscriptions are 0. This:

image

is not correct too. What configuration do you have that has no macAddress and ipv6?

I use and test on all controllers but Google Home... All of them in a while (can be 1-2 minute) connect.

@tammeryousef1006 what do you do when Google Home doesn't connect?

robvanoostenrijk commented 3 months ago

Your response led me down the right path. I am running Matterbridge in a FreeBSD Jail on OPNSense. I did not realize that Matter as a protocol relies on IPv6 LUA connectivity.

For future reference, in a jail the following in /etc/rc.conf made LUA working:

ifconfig_igc0="inet 192.168.10.6/24"
defaultrouter="192.168.10.1"

ifconfig_lo0_ipv6="inet6 ifdisabled"
ifconfig_igc0_ipv6="inet6 auto_linklocal"
ipv6_default_interface="igc0"

After these changes Matterbridge is able to communicate with the Google Home hub and a session is established as mentioned. Matterbridge is an awesome piece of work @Luligu!

For those using FreeBSD, rc.d daemon script I am using to run Matterbridge:

#!/bin/sh

# PROVIDE: matterbridge
# REQUIRE: DAEMON NETWORKING mosquito zigbee2mqtt
# BEFORE: LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name=matterbridge
rcvar=matterbridge_enable
load_rc_config ${name}

: ${matterbridge_enable:="NO"}
: ${matterbridge_node:="/usr/local/bin/node"}
: ${matterbridge_script:="/usr/local/bin/${name}"}
: ${matterbridge_user:="${name}"}
: ${matterbridge_group:="${name}"}
: ${matterbridge_args:="-bridge -ssl"}

# daemon
start_precmd="${name}_prestart"
command=/usr/sbin/daemon
procname="daemon"
pidfile="/var/run/${name}.pid"
logfile="/var/log/${name}.log"
command_args=" --change-dir --close-fds --supervisor-pidfile ${pidfile} --restart-delay 5 --sighup --output-file ${logfile} ${matterbridge_node} ${matterbridge_script} ${matterbridge_args}"

matterbridge_prestart()
{
    export PATH="$PATH:/usr/local/bin"
    export HOME="/home/${matterbridge_user}"
    install -g "${matterbridge_group}" -m 664 -o "${matterbridge_user}" -- /dev/null "${logfile}"
    install -g "${matterbridge_group}" -m 664 -o "${matterbridge_user}" -- /dev/null "${pidfile}"
}

run_rc_command "$1"
Luligu commented 3 months ago

Hi, I'm glad you solved. Thanks for your appreciation. My best.