Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Home Assistant VM, Unraid 7 and Matter

Featured Replies

Hi everyone,

after upgrading to Unraid 7 beta, my Home Assistant VM is not able to connect/pair with matter devices. Everything is smooth if I downgrade my server to Unraid 6.xx. Is anyone aware about any issues? Checking out my Matter logs on HA, I notice that it is something related to network stuff but honestly I cannot find anything more than that.

Solved by heyelly

  • Community Expert
9 minutes ago, heyelly said:

Hi everyone,

after upgrading to Unraid 7 beta, my Home Assistant VM is not able to connect/pair with matter devices. Everything is smooth if I downgrade my server to Unraid 6.xx. Is anyone aware about any issues? Checking out my Matter logs on HA, I notice that it is something related to network stuff but honestly I cannot find anything more than that.

How are they connected? Are you running beta 7?

  • Author

I use a Sonoff dongle with a flashed firmware passed through the VM. They are connected to that dongle. I am running beta 7, everything works with Unraid 6.

  • Community Expert
Just now, heyelly said:

I use a Sonoff dongle with a flashed firmware passed through the VM. They are connected to that dongle. I am running beta 7, everything works with Unraid 6.

Is that 7 beta 3? Can you provide any logs and the xml? Is the 6 6.12.x or earlier? 

  • Author
<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='1'>
  <name>HAOS</name>
  <uuid>0dacb239-943b-6067-9c9a-e653567d42e1</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="default.png" os="linux" webui="https://****" storage="default"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-7.2'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/0dacb239-943b-6067-9c9a-e653567d42e1_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' clusters='1' cores='2' threads='1'/>
    <cache mode='passthrough'/>
  </cpu>
  <clock offset='utc'>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='no'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='rtc' tickpolicy='catchup'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback' discard='ignore'/>
      <source file='/mnt/user/domains/haos_ova-11.5.qcow2' index='1'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <serial>vdisk1</serial>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:5d:dd:c3'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio-net'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/run/libvirt/qemu/channel/1-HAOS/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='2'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <graphics type='vnc' port='5900' autoport='yes' websocket='5700' listen='0.0.0.0' keymap='it' sharePolicy='ignore'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <audio id='1' type='none'/>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1a86'/>
        <product id='0x55d4'/>
        <address bus='1' device='2'/>
      </source>
      <alias name='hostdev0'/>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

 

That is the VM xml, what logs are you asking for? The 6 is 6.12 but it worked even with the old versions.

Edited by heyelly

  • Community Expert
5 minutes ago, heyelly said:
<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='1'>
  <name>HAOS</name>
  <uuid>0dacb239-943b-6067-9c9a-e653567d42e1</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="default.png" os="linux" webui="https://home.eliatonelli.com" storage="default"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-7.2'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/0dacb239-943b-6067-9c9a-e653567d42e1_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' clusters='1' cores='2' threads='1'/>
    <cache mode='passthrough'/>
  </cpu>
  <clock offset='utc'>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='no'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='rtc' tickpolicy='catchup'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback' discard='ignore'/>
      <source file='/mnt/user/domains/haos_ova-11.5.qcow2' index='1'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <serial>vdisk1</serial>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:5d:dd:c3'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio-net'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/run/libvirt/qemu/channel/1-HAOS/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='2'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <graphics type='vnc' port='5900' autoport='yes' websocket='5700' listen='0.0.0.0' keymap='it' sharePolicy='ignore'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <audio id='1' type='none'/>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1a86'/>
        <product id='0x55d4'/>
        <address bus='1' device='2'/>
      </source>
      <alias name='hostdev0'/>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

 

That is the VM xml, what logs are you asking for? The 6 is 6.12 but it worked even with the old versions.

Syslog and qemu logs. Or post diagnostics as will include both

  • Community Expert

Not seeing anything jumping out, whats does the HA logs show for the adapter?

  • Author

2024-10-13 19:49:58.409 (Dummy-2) CHIP_ERROR [chip.native.-] src/inet/UDPEndPointImplSockets.cpp:416: OS Error 0x02000065: Network is unreachable at src/app/OperationalSessionSetup.cpp:246

 

It seems something network related but I tried almost everything. I know that Matter requires ipv6 so it could be something related to this but I cannot understand what's going on. It seems that something between Unraid 6 and 7 has changed but I cannot figure out what.

  • Author

Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::5ce8:67ff:fedc:284e/veth239cc13/23

 

That is the log of Silicon Labs Multiprotocol

  • Community Expert
7 minutes ago, heyelly said:

Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::5ce8:67ff:fedc:284e/veth239cc13/23

 

That is the log of Silicon Labs Multiprotocol

May not be related, but have you tried disbaling tailscale to see if that makes a difference?

  • Author

Yes I installed it yesterday but the issue was already there.

  • Author

Quick update: it seems that the matter network is unreachable from the VM and the dongle is unnecessary as I can use the network provided by my Apple TV. It looks like something weird about ipv6 is happening here.

Can I help test?  I'm using HAOS in Unraid 7 beta 3.

 

My Aqara door lock (via hub) is connected with Matter to HA - however I believe it's using WiFi and not Thread.

Edited by Espressomatic

  • Community Expert

please see form thread:

there was a user script and these item ran to fix come ipv connections.

  • Author
5 hours ago, bmartino1 said:

please see form thread:

there was a user script and these item ran to fix come ipv connections.

I tried with those commands with no luck. 

  • Community Expert

ok, i need to know a bit more about your setup then.

 

 

1 are you using the HA VM and have matter installed in the vm?

or are you using VM and matter docker?
or HA docker and matter docker?

2. Docker and potential Vm settings.

I also have bridgin off and bond on to help with previous macvlan bug...
-I use macvlan for dockers, as a separate mac for connection is required for matter server and HA..., ipvlan will not worker with HA and Matter dockers...
-you need docker host access to custom network enabled

image.png.2c8f5994fd4d1910e8af9597dbb5acca.png

 

also if matter docker please see there support on this forum the matter server Matter Server Docker networking MUST BE HOST!...
HA must be set to a different IP address. and a user script with the 

sysctl -w net.ipv6.conf.wlan0.accept_ra=1
sysctl -w net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen=64


#if ra1 dind't work you may need to use ra=2

*Note wlan0 may need to become eth0, br0, bon0 eth1.... etc...

VM:

Be sure that you followed HA setup for unraid:
https://www.home-assistant.io/installation/linux#:~:text=VirtualBox-,Unraid,-KVM (virt-manager

and follow there instructions for a matter server:
Docker: https://github.com/home-assistant-libs/python-matter-server
Blog install steps:https://blog.matterxiaomi.com/blog/matter-home-assistant-part1/
HA beta info for matter:https://www.home-assistant.io/integrations/matter/

confirm your settings for network source:
image.png.4b3a30f17b48116bbe9e410c4ec423f0.png

You may also need other XML vm setting for the docker netwrok...

 <interface type='direct' trustGuestRxFilters='yes'>
      <mac address='52:54:00:89:1f:91'/>
      <source dev='vhost0' mode='bridge'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

 

Edited by bmartino1

  • Author

1. HAos in its own VM with Matter installed inside

 

2. Disabling the bridging between eth0 and eth1 seems actually to solve the issue in Unraid 7. Btw, I can't understand why everything works (bridging eth0 and eth1) on the older Unraid versions. Actually I cannot disabling it as I need my two ethernet ports to be bridged together.

 

Any ideas?

  • Community Expert

turn bridge off use bond  instead.

the vm is proably trying to bridge to eth0 / eth1 and nor br0.. 
Not sure...
 

  • Author
2 hours ago, bmartino1 said:

turn bridge off use bond  instead.

the vm is proably trying to bridge to eth0 / eth1 and nor br0.. 
Not sure...
 

I cant, those interfaces need to be bridged. The VM is set to use br0, there is no reason for it to behave like that with Unraid 7 and work properly with 6.

  • Community Expert

Not enouth information....

nothing of note changed in v7 from v6 in regards to how unriads Network interfaces and how br0 and bond0 operate.

If anything changed its how libvirt bridges to a interface... Please notate the xml i posted above, you will need to edit vhost0 to the interface you want it on as atest... use eth0 or eth1

this will create a (virtual) veth bridge and the traffic will then be bridge tied to eth1/0 to the network in use for the VM....

Based on your information you provded atm, All signs point to you should be using bond not bridge...



brdige to the best that i can describe it to you is that eth0 is you main connection to the router.
eth1 is a carry upstream ot other devices that needs the same data connection as eth0 you bridge the connection to cary the data.

you may need to check ipv4 system ctl rules for ip forwarding...

Otherwise you scenario, I have eth0 and eth1 to the router, i want the machine to balance load the connection I bond (which actas like a bridge)
depengin on your needs you chose the type of bond...

image.thumb.png.bf67dc773300a4e6f577823127173a6a.png

Please review forum post and links here where i attempted to explain the difference and needs for bonding:
 

 

xml example

<interface type='direct' trustGuestRxFilters='yes'>
      <mac address='keep your same vm MAC'/>
      <source dev='eth00' mode='bridge'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>


would need more data...
ip a
netstat
etc...

 

It's my understanding that HA (Home Assistant) is trying, very hard, to be more stable. As of this writing, I can't make it run longer than a week on bare metal (Rpi4). HA changes very fast, as does home automation in general.

 

Thread/Matter/IPV6... Maybe I'm wrong, but I haven't read anything to suggest that Thread/Matter require IPV6... Maybe its a MAC/iOS thing?

 

MrGrey.

Just now, MrGrey said:

It's my understanding that HA (Home Assistant) is trying, very hard, to be more stable. As of this writing, I can't make it run longer than a week on bare metal (Rpi4). HA changes very fast, as does home automation in general.

 

Thread/Matter/IPV6... Maybe I'm wrong, but I haven't read anything to suggest that Thread/Matter require IPV6... Maybe its a MAC/iOS thing?

 

MrGrey.

My first HA was run in Rpi3 and stable, the only problem is the booting SD / USB will die in 2 or 3 month due to continues writing to the media.

 

Then, the HA have migrate to Unraid VM and currently move to docker, and all stable.

 

My first Matter device was google nest thermostat but I have return it, so no more test can make again, the test was on unraid v7beta. Due to all test in docker, so no much can advice in this post.

 

BTW, Matter server communicate between Matter device must IPv6. But Matter service in HA to communicate Matter server was IPv4.

Edited by Vr2Io

  • 2 weeks later...
  • Author
  • Solution

I managed to solve my issue. That is the solution. For some reason, even after upgrading to beta4, that wasn't fixed.

 

Does your ISP assign you an IPv6 range?

 

My IPv6 is all link-local as my ISP doesn't support IPv6 at all, and I have it turned off at my pfSense router. Unraid hosting HAOS VM is also set to IPv4 only.

 

If ISP doesn't give out a static IPv6 range, there's no point (and can't) set IPv6 static address for the router. If router doesn't have static IPv6, you can't run a local IPv6 DHCP. If there's no IPv6DHCP, there's no point/need to turn on IPv6 on a host. None of this seems to stop or block Matter servers/devices from using link-local addresses and communicating.

 

Matter and Thread working in HA with the single end-device I have at the moment, Aqara Hub feeding U100 lock. Every border router can also be communicated with, 3x Eero and 5x Apple devices (Homepod and AppleTV)

 

 

Edited by Espressomatic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.