Le but est de pouvoir placer Home Assistant où on veut, dans mon cas virtualisé, indépendamment du besoin de l’emplacement stratégique des clés Zigbee, Z-wave ou autre.

La virtualisation de HA permet l’utilisation des snapshots avant une MAJ par exemple, je suis sur de pouvoir revenir exactement à l’état d’avant.

Prérequis :

Un Raspberry Pi 3 sous Raspberry Pi OS qui aura les clés USB, il sera le serveur USBIP.
Un Debian 11 virtualisé qui héberge Home Assistant en supervisé, il sera le client USBIP

C’est USBIP qui va nous permettre de déporter les clées

On commence par le coté serveur : Raspberry PI

Installation de USBIP :

sudo apt-get install usbip

Il te faut ensuite quelques modules, qu’il suffit de charger :

sudo modprobe usbip-core
sudo modprobe usbip-host


Et tu charges USBIP

sudo usbipd -D


Tu peux maintenant regarder la liste des périphériques USB que USBIP voit :

sudo usbip list -l
La clé Zigate se trouve sur le busid 1-1.2

Il faut noter le BUSID du périphérique qui t’intéresse, ici le 1-1.2 pour le lier avec notre futur client USBIP
La commande est bind :

sudo usbip bind --busid=1-1.2

Pense bien à remplacer 1-1.2 par le BUSID qui t’intéresse !
Voila c’est fini pour le moment coté serveur, je dis pour le moment car tu vas vite remarquer que si on redémarre il faut tout recommencer !! 😥

Le client : Debian avec HA

Je ne vais pas parler ici de comment installer Home Assistant sur un Debian, j’ai suivi le tuto officiel

Comme pour le serveur tu commences par installer USBIP

sudo apt-get install usbip

Pour les modules tu as besoin uniquement de usbip-core et de vhci-hcd:

sudo modprobe usbip-core
sudo modprobe vhci-hcd


Pour vérifier que notre client dialogue bien avec le serveur on tape cette commande :

sudo usbip list -r <IP SERVEUR>
sudo usbip list -r 192.168.1.122 #-----Exemple-----

Il faut bien-sur remplacer <IP SERVEUR> par l’IP de notre Raspberry PI

Périphériques USB disponible sur le serveur

Maintenant qu’on a repéré notre clé USB on l’attache au client :

sudo usbip attach -r <IP DU SERVEUR> -b <BUSID>
sudo usbip attach -r 192.168.1.122 -b 1-1.2 #-----Exemple-----

Bravo, c’est terminé ! HA devrait pouvoir accéder à la clé USB déportée 😀

Bon d’accord ce n’est pas totalement terminé car si tu reboot le serveur ou le client il faut tout recommencer 😡
mais n’est crainte, je te propose un nouvel article pour automatiser tout ça, ready ? go !