Z2M et MQTT sous home assistant ou séparés?

Bonjour,

Ma question a peut-être déjà été débattue, mais ma capacité à faire des recherches sous un forum est assez … restreinte :sweat_smile:

J’ai fais une terrible erreur avec mon réseau zigbee (changement de canal à l’arrache, les esclave zigbee qui ne suivent pas … c’est le foutoir !) et tant qu’à tout remettre sur pied, j’aimerais quelques conseils.

Actuellement j’ai une clef SONOFF ZigBee 3.0 USB Dongle Plus, une cinquantaine de périphériques dont 50% environ sont des routeurs. Un broker MQTT sur une machine virtuelle dans un coin, Z2M intégré à Home Assistant. Cela ne se passait pas trop mal ces derniers temps, une petite latence pour certains périphériques. Par contre, l’ajout de nouveaux modules commence à devenir pénible, j’ai des sondes qui “disparaissent” de temps en temps …. bref, il doit y avoir quelques perturbations. D’où la boulette : le changement de canal.

Du coup, je me pose plein de question :

  • Est-ce que séparer les fonctions est une bonne idée : 1 serveur MQTT, un serveur Z2M, un serveur Home assistant (j’ai la chance d’avoir quelques mini PC qui peuvent servir de serveurs et de paravirtualiseurs. Si je mets ça sur plusieurs VM mais sur la même machine, le trafic réseau sera quasi inexistant, donc les latences dûes au réseau maitrisées.
  • Ou est-il préférable de gonfler la machine Home assistant et de lui coller toutes les intégrations et add-on (perso, je ne suis pas trop pour, mais je cherche d’autres avis)
  • Ou alors, changer de clef USB pour passer sur un modèle Ethernet, avec serveur Z2M et MQTT intégré … J’e ne suis pas trop chaud non plus (j’ai du matériel qui fonctionne, autant l’utiliser, sauf si vous me dites que c’est mort et que ma clef est dépassée :sweat_smile:)

Bon, il y a déjà 2-3 choses de prévues:

  • Achat d’une rallonge USB blindée pour écarter la clef Zigbee des serveurs
  • Mise à jour du firmware (je l’ai fait au tout début, lorsque j’ai acheté la clef, il y a peut-être une mise à jour de dispo, à voir).

Par contre, revenir à quelque chose “à plat” va avoir comme conséquence de devoir réappairer tous les appareils. Bon, je me suis fait une raison, on fera avec.

Mais quid de toutes les automatisations ? Là par contre, je commence à avoir pas mal de trucs, ça m’embêterais de devoir tout me retaper à la mains…

Bref, pas grand chose, voyez ça comme un cadeau de Noël :rofl:

Et à ce sujet, bonne fêtes à toutes et tous !

SantaClauseHohohoGIF

Hello,

Tu ne parles pas de la puissance de la machine, il n’y a pas de « bonne » méthode mais celle qui te correspond la plus simple étant de tout laisser sur le matériel supportant HA. Séparer les éléments ça ajoute bien souvent du temps de maintenance en plus et moi qui tourne sur Pi5 avec tout dessus ( HAOS + 2 z2m + broker et entre 120 et 150 devices ) c’est largement suffisant pour le faire.

Il vaut sans doute mieux se poser la question pour frigate/adguard ( que j’ai déporté ) à mon sens suivant la machine utilisée ( j’ai une conbeeII en clé principale )

si tu gardes la même convention de nommage pour le matériel, tu n’auras pas de soucis avec les automations (ça n’empêche pas de faire des saves du code de celle-ci)

Attends d’autres avis
Bonnes fêtes :santa_claus:
cdt

Moi j’ai tout séparé. La machine de base est un « mini » PC assez puissant (i5-13500H-32Go) avec un système de base Unraid.
HA est dans une machine virtuelle sous HAOS
Mosquitto, Z2M, Frigate, sont en container Docker
Avec Unraid les mises à jour des container sont très facile à gérer (souvent un simple click) lorsque ce sont des applis communautaires (on y trouve quasiment tout ce qu’on cherche sous cette forme, j’ai jamais eu besoin d’installer manuellement un container)
Tout reste bien séparé, et en cas de doutes, ou pour faire des essais, on peut facilement installer une seconde instance d’un même container mais avec une version / une config différente et voir l’effet sans devoir toucher à la config de base (juste arrêter le container le temps de faire l’essai)
Coordinateur zigbee SLZB-06M en réseau/POE

Moi ma philosophie c’est de mutualiser au max les ressources (gain sur le matériel et la conso d’énergie) mais de segmenter au maximum les services (plus facile à bidouiller / réparer quand c’est séparée que quand c’est du All In One)

Salut

Clairement, séparer pour des raisons de puissance, efficacité de réseau n’apporte rien. Ça consomme 3 fois et ce sont plus les soucis de matériel bavard ou d’interférences qui dégradent la qualité.

Ça apporte de la souplesse au prix quand même d’un peu plus de maintenance et d’expertise. Si on sait faire c’est intéressant, sinon un addon est plus pratique

Maintenant en terme de fiabilité il n’y a plus rien a prouver avec HA. Le system de sauvegarde (total\partiel\module) est là pour des roll back en cas de pépin. Clairement tout ce qui est domotique à un endroit, tous ce qui est “utilitaire” mais connectable (adguard, kodi…) peut-être mis à un autre.

De plus tu as toutes tes mises à jours dans une seule interface donc une seul porte d’entrée gérée de façon unifiée.

Tu peux ajouter une couche de sauvegarde complémentaire avec des vm par exemple si tu veux en plus.

Merci à tous pour vos premières réponses.

Au niveau puissance machine, ce n’est pas trop le problème : je dispose de 2 “serveurs” Intel Core i5-9400T avec 16 Go de ram chacun, sous proxmox v9. Tout est actuellement sur un seul serveur et entre HA/MQTT/Z2M/Bookstack/Wireguard, je suis en moyenne à 2% d’utilisation CPU et 50 % mémoire.

Au niveau “économie des ressources”, bon, je ne vais pas m’étendre là dessus, mais la consommation de mes serveurs n’est pas le poste électrique le plus important chez moi :sweat_smile:(j’ai bien d’autres consommateurs bien plus optimisable pour l’instant).

L’objectif, c’est de pouvoir:

  • Faire des tests sans prendre de risque : snapshot + backup Proxmox, restauration en une dizaine de minutes. Si une seule VM avec tout dessus → une seule VM à restaurer
  • Avoir la possibilité de basculer du serveur de Prod au serveur Backup (en cas de crash Proxmox ou matériel) → tâche de synchro des sauvegardes quotidienne entre les serveurs et pareil, en cas de restauration, quelques minutes.
  • Les impacts réseaux seront limités en cas d’installations séparées, car cela ne sort pas du réseau interne de Proxmox : pas de saturation de l’interface réseau (d’un autre côté, je suis en Gigabyte, si je sature ça avec de la domotique … y’a un loup :rofl:)

Et les 2 solutions (tout avec HA ou tout séparé) il semblerait qu’il n’ ait que peu de différence en terme de performance.

J’ai l’impression que le choix va plutôt s’orienter entre:

  • facilité d’exploitation (mise à jour, restauration …) de la solution tout intégrée
  • le côté geek de la solution tout séparé :joy:

Et là, je crains que ce ne soit à moi de décider…

Mais je vais encore attendre d’autres avis/conseils/retours d’expérience :blush:

[EDIT1] Ah, et juste une petite question subsidiaire, en admettant le passage à “tout intégré” : entre les logs de chaque add-on, la puissance de ceux-ci etc … ne faut-il pas booster la VM de Home Assistant ? Actuellement 2 CPU, 6Go de ram et 50 Go de disque. Sachant que 90% de la mémoire est utilisée (avec un swap de 2Go, mais utilisé à hauteur de 50 Mo), que l’utilisation des CPU est inférieure à 5% en moyenne (y’a des pics, bien sûr), que df m’indique 26 % de taux d’utilisation du disque …

[EDIT2] Encore un truc qui me vient en tête : MQTT est utilisé par d’autres dispositifs (aspirateur robot, prise de charge véhicule électrique, interface d’entrées/sorties …), est-ce que cela a un impact ? J’utilise assez souvent MQTT Explorer pour faire un peu de maintenance, est-ce que ce sera toujours possible si je bascule MQTT sous Home Assistant ?

L’un et autre consomment que dalle. Même avec d’autres trucs en mqtt en plus.
Et puis oui, le port mqtt est utilisable pour mqtt explorer. Soit dit en passant il existe aussi en affon

Re,

Et

ça se prononce addon :upside_down_face:

c’est suffisant, j’ai un HA plutôt copieux sur Pi5

faut juste faire attention au recorder trop copieux

cdt

1 « J'aime »

Salut,

Je suis resté plusieurs années sous PI4 avec ssd, puis en début d’année j’ai sauté le pas pour partir sur un mini PC i5 1030 16Go. Avec ce passage, j’ai séparé MQTT et Z2M.

L’avantage que j’y trouve, même si je redémarre HA (pour une MaJ ou autre) MQTT lui reste en fonction ce qui est pratique et j’ai un esp qui l’utilise sans forcément interagir avec HA.
Idem pour Z2M c’est en containers LXC et pour les même raison, même si HA redémarre le réseau zigbee reste fonctionnel, MQTT reste alimenté etc

Tu sembles bien métriser proxmox donc ce n’ai pas ça qui va t’ajouter des tonnes de boulot et ou de maintenance.

Pour ce qui est de la VM HAOS, elle s’alloue automatiquement la quasi totalité de la mémoire disponible même si en réalité elle n’est pas “consommée”. Il faut ce fié au info directement dans HA pour l’usage de la mémoire et non Proxmox.

Pour info il n’y a que le redémarrage complet de l’hôte dans ha qui redémarre les containers des addons. Un redémarrage normal les laisse intacts

Si le serveur MQTT et Zigbee2MQTT ne te servent que pour HA (c’est le cas pour une large majorité de personne). Je ne vois pas ce qui pourrai amener à ne pas les utiliser autrement qu’en add-on de HA.
Moins de config à faire, moins de maintenance et mise a jour intégré dans HA.

Pour les services quand je mets en place, je me pose toujours la question : Est ce que si HA tombe il y a un intérêt à ce que le service ne tombe pas ? Si la réponse est oui alors je mets en dehors sur un virtuel, container…
Perso mes services frigate ou adguard sont en dehors.
Si HA tombe, j’ai toujours mon DNS et mes flux cam.

J’ai survolé vite fait les réponse mais c’est de toute façon ce qui en ressort je pense.

Bon, on va résumer tout cela.

Pour une gestion unifiée:

  • Facilité de mise à jour, tout est poussé par Nabu Casa, fiabilité et compatibilité garantie = exploitation simplifiée
  • Sauvegarde et restauration, 1 seule VM en local + cloud avec tout dedans = maintenabilité maximale

Pour une gestion séparée:

  • Isolation complète, un soucis sur l’une des instances (MQTT, HA ou Z2M) n’affectera pas les autres = résilience maximale
  • Allocation des ressources clairement définie
  • Le côté geek …:joy:

Les flux réseaux ne peuvent apporter des latences significatives que si les VM ne sont pas sur les même machines physiques = match nul.

Les ressources (on en a parlé, mais poussons la démarche jusqu’au bout). Mes 2 serveurs tournent quoiqu’il arrive (un est dédié à Frigate, l’autre aux autres services domotiques, mais chacun peut assumer tous les rôles). VM + LXC + LXC à ma gauche, (VM + conteneur + conteneur) à ma droite … je dirais là aussi match nul.

C’est pas tout a fait vrai, dans une grands majorité de cas un soucis sur l’addon mqtt, z2m ou autre n’affecte pas plus les autres que s’ils étaient séparés.

Ça dépend de comment ils sont paramétrés. Tu peux avoir sous proxmox des partages de ram par exemple.

1 « J'aime »

Re,

Jamais creusé si on peut faire autrement sous HAOS

ha addons list --raw-json | jq -r '.data.addons[].slug' | xargs -I {} sh -c 'echo "Stats for {}:"; ha addons stats {}'

cdt

Au passage j’ai deux machines aussi.

Mais tout tourne sur une seule en proxmox (Ryzen 7 5700U charge entre 3 et 6 % généralement, mémoire à 10 sur 16Go) :

  • VM HA avec add-on qui ne servent qu’à HA (Z2M, serv MQTT, etc…)
  • VM OpenMediaVault (j’ai rack usb3 et 4 DD pour les données. Les DD sont en passthrough donc accessible si monté ailleurs en cas de gros pépin, je n’utilise pas le montage interne de proxmox).
  • Une CT Frigate
  • Une CT AdGuard
  • Une CT Immich
  • Une CT Docker avec des services genre vaulwarden, gitea, nginx proxy manager, jellyfin

Et une machine moins puissante, avec proxmox backup server.
Tout ce qui tourne sur la machine principale est backup chaque jour, rétention 15 jours, + 1 par mois.

Ma philosophie, pouvoir gérer rapidement si j’ai un problème, même matériel :
Les données sont sur les dd externe (et backup avec un NAS aussi)
Les install et config sont backup sur la deuxième machine.

Si crash d’un dd de donné, je peux racheter un dd, mettre le backup du NAS et rebrancher le dd. Ou l’inverse si c’est un dd du NAS.
Si crash de la machine principale, j’ai tout de backup sur la secondaire. Donc même si je la change je peux remettre en place en peu de temps. Si crash de la machine de backup, je reprends une petite machine et reparamètre un proxmox backup server.

Mon esprit est relativement tranquille et j’ai peu de risque de perdre données ou configs qui ont pris du temps à faire.

C’est un peu l’idée que j’avais : que le serveur prod fasse une sauvegarde locale + sur le serveur backup + un serveur de sauvegarde (vraiment au cas où…). Ajouté à la sauvegarde de Nabu Casa (je soutiens le projet en ayant pris un abonnement), la perte d’une machine physique n’aura pas d’impact (hormis les quelques minutes pour relancer l’autre). Même un bug internet ne m’empêchera pas de retrouver une installation fonctionnelle. Et si il y a le feu chez moi, ben je crois que la restauration de la domomtique sera le dernier de mes soucis :sweat_smile:

Je pense que je vais tout regrouper sous HA. Même si je suis plutôt partisan de 1 VM = 1 tâche, j’ai déjà une vie bien assez remplie sans avoir à gérer en plus la mise à jour des serveurs MQTT et Zigbee2MQTT :laughing: Sans compter les soucis de compatibilité de version qu’il faudrait prendre en compte, donc je vais privilégier la simplicité.

J’y perds en flexibilité, si par malheur un jour, je laissais tomber Home Assistant. Mais je doute que cela n’arrive de sitôt.

Merci beaucoup pour ces échanges riches et instructifs.

Je vous souhaite encore de belles fêtes de fin d’année !

Happy Joyeux Noel GIF by Eledraws (Eleonore Bem)

Bonjour. Z2M est déjà une tâche séparée sous le superviseur. C’est donc bien l’OS qui gère les répartitions de charge entre HA et Zogbee2Mqtt. Inutile de chercher autre chose l’amélioration sera marginale. Ethernet versus USB ne changera rien , ce n’est pas une clé ZigBee qui va saturer un USB…

J ai une ‘grosse’ config home assistant avec 200 appareils, dont 98 ZigBee.

Pour améliorer mes latences, je me suis moi attaqué au logger. 200 devices ça cause beaucoup, mais la charge CPU de mon PI4 ne dépassait jamais 40% (en dehors des backups ou mise à jour). Le goulot d’étranglement était les écritures sur la carte mémoire du PI4 , même si j’ai pris le plus haut de gamme possible. J ai installé l’addon MariaDB, (encore une tâche separée sous le superviseur) , un délai de 30s. pour écrire ‘en masse’ et pas au fil de l’eau, et j’ ai quasi plus aucune latence. MariaDB gère très bien son cache mémoire. Petit bénef supplémentaire : avec phpadmin je peux requeter ma base mariaDB comme je veux, l’exporter, etc… = une admin in peu plus propre. Et pour finir d’optimiser j’ ai exclu du logger tout ce qui n’est pas franchement utile (médias, cameras, link quality, ou ce qui est remonté systématiquement dans le message MQTT mais sans jamais changer : puissance linky souscrite, etc…).

J espère que cela peut aider. Bonne journée et joyeux Noël .

Une dernière question (oui, encore :laughing: ) : est-ce sûr qu’un redémarrage de HA ne provoquera pas d’arrêt du brooker MQTT pendant le temps de redémarrage ? J’ai des équipements qui dialoguent entre eux via MQTT (notamment un ESP branché sur mon linky et qui informe ma prise EVSE de la charge et la tension du réseau pour gérer le délestage…). La probabilité est faible, mais je voudrais éviter une disjonction générale suite à mise à jour de HA …

Haos fonctionne en container docker manage par le superviseur. Si tu reboot ha après une mise a jour du core ou un reboot via le menu ha, seul le container core reboot. Les autres addon qui sont dans des container distincts vivent leurs vies.

Si tu maj le systeme haos ou reboot physiquement la machine tout redemarre.

L’intérêt du dongle zigbee Ethernet, c’est avant tout le PoE pour pouvoir placer le dongle où ça capte le mieux, par exemple au plafond du palier, tout en laissant la box HA dans le placard réseau.