Configuration des ports USB dans Proxmox pour Zigbee2Mqtt

Hello
Je fais appel aux techniciens.
Avec beaucoup de difficultés, j’ai enfin réussi à faire tourner Zigbee2MQTT avec ZigbeeLinker et le broker Mosquitto installé par ZwaveJS, tout sur ma machine Jeedom, un Nuc dédié. A noter, ça n’a jamais voulu fonctionner avec la clé SonOff CC2652P, j’ai du utiliser la Conbee2.
Du coup, inquiet pour la pérennité de l’ensemble en cas de plantage, car je n’ai jamais trouvé l’info de ce qui était sauvegardé par Jeedom, j’ai décidé de me lancer dans la virtualisation de l’ensemble avec Proxmox.

L’idée est d’avoir une machine virtuelle (Debian 11) pour Jeedom, et une autre pour le MQTT, broker, Zigbee2Mqtt (par la suite Zwave, mais comme les devices sont sur la clé, c’est moins critique).

J’ai donc installé le ProxMox, la machine Jeedom, le second serveur et le broker Mosquitto. Mais je butte sur Zigbee2Mqtt, en particulier, je pense, sur l’affectation des ports USB à la machine virtuelle Zigbee2Mqtt. Je ne trouve pas de tuto détaillé là dessus - j’ai déjà du mal avec les ports USB avec Debian, du coup c’est encore pire avec une machine virtuelle.

J’ai essayé assez trivialement via l’interface graphique Proxmox. Déjà il me dit que je ne peux les affecter qu’en root - je trouve ça assez bizarre. Soit. Ensuite il me propose 3 options :

  • Ports spice
  • Utiliser l’ID USB vendeur / Périphérique
  • Utiliser port USB
    En me proposant bien le port avec Dresden blabla qui correspond à la Conbee2. J’ignore absolument la différence entre ces 3 options et ce qu’il faut choisir, bien qu’ayant trouvé un post indiquant qu’il fallait utiliser l’option 2 (ce post parle de Qmenu, j’ignoce ce que c’est)…
    Quoi qu’il en soit, quelle que soit l’option utilisée, il ne me met pas le nom de l’interface, mais un nom virtuel. Après l’install, le fichier configuration.yaml créé indique comme port usb :
port: /dev/ttyACM0

Mais Zigbee2Mqtt refuse de démarrer pour cause de port USB invalide :

Error: Error while opening serialport

J’imagine donc que la configuration des ports USB pour une machine virtuelle Proxmox est plus compliquée que sur mon Synology, mais je ne trouve pas de tutoriel précis sur la question.

Est-ce que quelqu’un pourrait me donner des pistes, des liens pour attribuer des ports USB à une machine virtuelle pour que ça fonctionne ensuite dans Zigbee2Mqtt ? Peut être aussi faut il changer le nom dans le fichier de config Zigbee2Mqtt ?

Merci d’avance

Bonjour,

Utilise la 2eme option pour monter ta clé.

Si tu as un doute sur l’ID tu peux faire en console proxmox un lsusb.

Hello
Merci pour le retour.
Je viens de refaire un essai avec une clé Zigate (la clé Conbee2 est repartie sur la machine de prod).
J’ai configuré la clé avec l’option 2. Je choisis la Prolific technology (il n’y en a pas d’autre de toutes façons). Ca donne :

USB-Serial Controller (067b:2303)

Le dmesg me donne :

[    2.256117] hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:01.2-1/input0
[    2.259755] usbcore: registered new interface driver pl2303
[    2.259760] usbserial: USB Serial support registered for pl2303
[    2.259776] pl2303 2-1:1.0: pl2303 converter detected
[    2.270370] usb 2-1: pl2303 converter now attached to ttyUSB0

Du coup, dans le fichier config de zigbee2mqtt, j’ai mis :

serial:
  port: /dev/ttyUSB0

Avec cette clé, le port USB ne plante plus, mais ça n’est que partie remise :

Zigbee2MQTT:info  2023-03-20 19:21:57: Logging to console and directory: '/opt/zigbee2mqtt/data/log/2023-03-20.19-21-56' filename: log.txt
Zigbee2MQTT:info  2023-03-20 19:21:57: Starting Zigbee2MQTT version 1.20.0-dev (commit #07ff52a5)
Zigbee2MQTT:info  2023-03-20 19:21:57: Starting zigbee-herdsman (0.14.96)
Zigbee2MQTT:error 2023-03-20 19:22:17: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2023-03-20 19:22:17: Failed to start zigbee
Zigbee2MQTT:error 2023-03-20 19:22:17: Check https://www.zigbee2mqtt.io/information/FAQ.html#help-zigbee2mqtt-fails-to-start for possible solutions
Zigbee2MQTT:error 2023-03-20 19:22:17: Exiting...
Zigbee2MQTT:error 2023-03-20 19:22:17: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    at ZStackAdapter.start (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:89:27)
    at async Controller.start (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/controller/controller.js:115:29)
    at async Zigbee.start (/opt/zigbee2mqtt/lib/zigbee.js:67:27)
    at async Controller.start (/opt/zigbee2mqtt/lib/controller.js:106:27)
    at async start (/opt/zigbee2mqtt/index.js:43:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! zigbee2mqtt@1.20.0-dev start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the zigbee2mqtt@1.20.0-dev start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2023-03-20T18_22_17_717Z-debug.log`

A ce que je comprends, il n’arrive pas à se connecter à la Zigate. C’est vrai, elle est ancienne, le firmware aussi certainement a plus d’un an. Je vois qu’il faut un 3.1. Elle n’a pas servi depuis un bail, mais bon, pour moi ça n’est guère explicite. C’est franchement capricieux ces petites bêtes. Et les causes possibles sur le site ne m’aident guère.

Une idée ? Je n’arrive pas à remette la main sur la clé NodOn…
Merci d’avance

Ah bon. Tu n’as pas du bien chercher alors.

Même sans chercher, il suffit d’être un peu curieux et d’ouvrir un fichier de backup pour voir…

Partir sur une infra non maitrisée sera encore pire le jour ca lache.

Avec un backup jeedom, on prend une machine, on installe linux, on installe jeedom, on restaure le backup et voila…

1 « J'aime »

J’y connais rien en Zigbee désolé.

A tout hasard : dans proxmox as tu décoché usb3 dans la configuration de ta clé ?

Hello
Merci de ce retour
Avant MQTT, j’étais assez sûr de ce que j’avais dans mes sauvegardes. Du reste, j’ai restauré plusieurs fois.
Avec MQTT et son broker et ses add-on qui ne sont pas des plugins, j’ai cherché et trouvé tout et son contraire. Et je n’avais pas de machine pour tenter une restore.
Quant au backup, il y a beaucoup de choses, et ça n’est pas très parlant quand on ne sait pas comment c’est organisé.

Maintenant, avec Proxmox, je peux monter une nouvelle machine et faire un restore pour vérifier, mais je ne pouvais pas le faire avant. Mais quand j’aurais fini de tester la solution en cours, car étant en community, je ne peux pas enregistrer plus de 2 machines sur le market.

Quoi qu’il en soit je veux avoir mqtt sur un serfveur séparé, parce qu’à terme, je pense en mettre 2 avec 2 clés, pour résoudre en fait mes problèmes de portées pour certains équipements lointains qui ne sont pas stables malgré un maillage théorique conséquent.

En attendant, si quelqu’un peut me confirmer que le broker et surtout Zigbee2Mqtt sont sauvegardés avec ZigbeeLinker s’ils sont sur la même machine et ont été installés par le plugin
%erci

Salut,

J’ai fait la même installation que toi le week-end dernier (mosquitto et zigbee2mqtt sur une VM Debian 11 sous Proxmox) et tout fonctionne chez moi.

Peut-être regarder d’abord de ce côté là :

https://www.zigbee2mqtt.io/guide/adapters/#experimental

Après je suis aussi d’accord avec l’avis de prfalken, si tu ne maitrise pas proxmox je doute que ce soit une solution beaucoup plus fiable que Jeedom à court terme.

A+.

Hello @Macdow
Non, j’y ai pensé parce que c’est ce que je fais sur le Syno, mais je n’ai pas trouvé où ça pouvait être dans Proxmox. Je suis entièrement néophite avec ça, je l’ai ouvert hier soir pour la 1ère fois.
Où fait on ça ?

A court terme sans doute, mais si je n’essaye pas, alors il ne se passera rien. Il faut une première fois à tout. C’est en le faisant qu’on progresse, et quand il me manque une info, je trouve souvent une âme charitable sur ce forum pour me donner l’info que je n’ai pas encore trouvée.
En fait, je ne suis pas très loin, je pense, je manque d’info sur le fichier de configuration de zigbee2mqtt. Comment déclarer correctement le port usb…
Puisque tu as la même config, puis-je savoir quelle info tu as passé à ce fichier pour déclarer la clé ? Quelle clé du reste ?

Je réessayerai demain avec la conbee2. De toutes façons, c’est celle que je veux utiliser.
Merci d’avance

Bonjour,

Sur la fenêtre popup où tu as le choix des 3 modes de passthrough : il y a une petite case à cocher / décocher.

Bonjour
Effectivement, il y a une case à cocher : activer usb3.
Je ne l’ai pas vue parce qu’elle est grisée et non disponible, je pense qu’il a repéré la Zigate comme une clé USB1.
Donc le problème n’est pas là.

Quand on lui met comme indiqué par @arcameca :
device:
adapter: zigate

Je suppose qu’il fait le lien avec le port parce que la zigate nomme son port toujours de la même façon ?
C’est la même chose dans la config automatique faite par ZigbeeLinker pour ma clé Conbee2 :

serial:
  adapter: deconz

Quelle adaptation fait-il ? Par quoi remplace-t-il deconz ou zigate pour savoir quel port utiliser ?
Je n’ai pas trouvé ce qu’il fallait indiquer pour chaque clé du commerce, ça ne peut pas s’inventer…

EDIT
Je viens de réessayer avec la Conbee en lui mettant adapter: deconz.
Il se plante plus loin/

Zigbee2MQTT:info  2023-03-21 10:53:23: Logging to console and directory: '/opt/zigbee2mqtt/data/log/2023-03-21.10-53-22' filename: log.txt
Zigbee2MQTT:info  2023-03-21 10:53:23: Starting Zigbee2MQTT version 1.20.0-dev (commit #07ff52a5)
Zigbee2MQTT:info  2023-03-21 10:53:23: Starting zigbee-herdsman (0.14.96)
Zigbee2MQTT:info  2023-03-21 10:53:23: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2023-03-21 10:53:23: Coordinator firmware version: '{"meta":{"maintrel":0,"majorrel":38,"minorrel":114,"product":0,"revision":"0x26720700","transportrev":0},"type":"ConBee2/RaspBee2"}'
Zigbee2MQTT:info  2023-03-21 10:53:29: Currently 0 devices are joined:
Zigbee2MQTT:warn  2023-03-21 10:53:29: `permit_join` set to  `true` in configuration.yaml.
Zigbee2MQTT:warn  2023-03-21 10:53:29: Allowing new devices to join.
Zigbee2MQTT:warn  2023-03-21 10:53:29: Set `permit_join` to `false` once you joined all devices.
Zigbee2MQTT:info  2023-03-21 10:53:29: Zigbee: allowing new devices to join.
Zigbee2MQTT:info  2023-03-21 10:53:29: Started frontend on port 192.168.0.231:8080
events.js:377
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRNOTAVAIL: address not available 192.168.0.231:8080
    at Server.setupListenHandle [as _listen2] (net.js:1314:21)
    at listenInCluster (net.js:1379:12)
    at doListen (net.js:1516:7)
    at processTicksAndRejections (internal/process/task_queues.js:83:21)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1358:8)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'EADDRNOTAVAIL',
  errno: -99,
  syscall: 'listen',
  address: '192.168.0.231',
  port: 8080
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! zigbee2mqtt@1.20.0-dev start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the zigbee2mqtt@1.20.0-dev start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2023-03-21T09_53_29_637Z-debug.log
saisissez ou collez du code ici

Le 192.168.0.231, c’est la machine virtuelle où j’ai installé Jeedom, mais je n’ai pas encore activé Zigbeelinker dessus, alors que dans mon fichier .yaml, j’ai indiqué :

frontend:
  host: 192.168.0.231
  port: 8080

Alors peut être que l’erreur est normale ?

Merci

Hello
J’ai une incompréhension sur la façon de faire avec proxmox et Zigbee2Mqtt + Mosquitto sur une autre machine que le client Zigbeelinker.

Naïvement, je pensais qu’avec le client, on avait la possibilité d’indiquer où se trouvait Zigbee2Mqtt, et qu’il était ainsi possible d’accéder au frontend Zigbee2Mqtt depuis le plugin.

Mais je viens d’installer ZigbeeLinker sur ma machine de test virtuelle, et tout ce que je peux configurer, c’est l’accès Mosquitto.
Du coup, je ne vois pas ce qui se passe sur Zigbee2Mqtt.

Comment je fais pour avoir un frontend depuis le plugin dans cette configuration ?
Merci d’avance

Salut,

Non, Proxmox ne reconnait pas, j’ai l’impression que sur les dernières versions de Proxmox c’est désactivé par défaut alors qu’avant c’était activé par défaut.


Je t’ai donné la réponse dans mon premier message (lien vers la notice), c’est à toi d’indiquer dans le fichier configuration.yaml quelle clé tu utilises.


Tu as lu la notice ? Si tu veux utiliser le frontend il faut juste ajouter : frontend: true :


serial:
  adapter: deconz
  port: /dev/ttyACM0 #Dans mon cas, il faut que tu le vérifies au début de l'instal.
frontend: true

C’est dans ton navigateur que tu dois indiquer l’IP de la machine qui héberge Zigbee2mqtt et le port (8080 par défaut).

http://192.168.0.231:8080/

Voir ci-dessus.


Je ne suis pas certain de comprendre ta question, c’est dans zigbeelinker que tu dois indiquer l’IP du serveur mosquitto (c’est également bien expliqué dans la doc du plugin).
Essaie déjà de configurer correctement zigbee2mqtt et à arriver à accéder au frontend avant d’essayer de connecter ton serveur à Jeedom.

Bon courage.

Hello
Merci pour le retour.
J’ai mis un peu de temps à répondre étant bloqué par ailleurs par Google qui bloque mon accès externe à Jeedom qu’il considère comme un site dangereux.

Oui bien sûr, j’ai donné l’adresse du mosquitto à Zigbeelinker.
Mais aussi à Zigbee2Mqtt dans le fichier .yaml
Ma question est l’accès à l’interface frontend de Zigbee2Mqtt.
1°) Sur le Jeedom où j’ai Mosquitto, Z2M et Zigbeelinker sur la même machine, depuis l’interface de Zigbeelinker, j’ai une icône pour accéder au frontend Z2M.

2°) Sur le nouveau Jeedom où je n’ai que le client Zigbeelinker, Mosquitto et Z2M étant sur une autre machine, je n’ai pas cette icône pour accéder au FrontEnd (la dernière sur l’imâge ci dessus). Mais bien sûr (maintenant que la config de Zigbee2Mqtt fonctionne avec la clé Conbee2), j’ai accès à ce frontend par http avec IPdelaMachineZ2M:8081 (j’ai configuré le front end sur ce port).
C’est beaucoup moins pratique de devoir ouvrir une url pour voir ce qu’il se passe dans Z2M

Ma question était donc de pouvoir avoir ce lien dans ZigbeeLinker vers Z2M.
Merci d’avance