Bonjour
Je viens d’installer mon Sonof MINI-L et apparemment Zigbee2MQTT n’en veut pas…Pourtant il est apparaît dans la liste des devices supporte.
Est ce que quelqu’un a déjà fait l’installation de ce device?
Merci
Bonjour
Je viens d’installer mon Sonof MINI-L et apparemment Zigbee2MQTT n’en veut pas…Pourtant il est apparaît dans la liste des devices supporte.
Est ce que quelqu’un a déjà fait l’installation de ce device?
Merci
Hello.
J’ai pas l’accès facile mais c’est moi qui ai fait l’intégration de ce module. C’est dans le sujet de présentation / test.
https://forum.hacf.fr/t/module-zigbee-3-0-sans-neutre/9089/23
Au pire je repasse ce soir
Pulpy, ok je vais regarder de suite…merci
Bon, ben la c’hui perdu :-))))) j’ai commence des recherches sur internet, mais c’est pas tres clair (pour moi)… je vais me poser et reviens vers toi si j’y arrive pas
Alors voici le résultat de mes premieres recherches sur internet.
Mais avant pourrais tu m’expliquer ce qu’est un Converter exactement, l’explication en anglais m’échappe un peu…
Donc:
1- appairage du Mini-l
2- creation d’un fichier .js contenant le script que tu as ecris. (Ils disent de le mettre a cote de « configuration yaml. ». Je ne sais pas trop ce que cela veut dire, juste en dessous du fichier yaml? Pourquoi est ce important? (Juste pour comprendre).
Également, je copie/colle ton script sans rien changer?
3- Allez dans Z2MQTT, onglet « LOGS » et dans « show only » choisir « debug ».
4- écrire ces lignes dans configuration.yaml (si « «converterzigbee » est le nom de mon fichier par ex):
advanced:
log_level: debug
external_converters:
5- redémarrer Z2MQTT et allumer manuellement le mini-l et verifier quel message on reçoit.
6- ensuite updated les infos dans le fichier « converterzigbee.js ».
Dans le cas du mini-l (et la je ne suis pas sur non plus si c’est correct):
zigbeeModel: [‹ mini-l ›],
model: 'converterzigbee ',
vendor: ‹ Ext-light-guesthouse ›,
fromZigbee: [???],
toZigbee: [???],
exposes: juste pour les sensors?
7- Ajouter un logo si on veut
Merci de ton aide
Bonne journee
Salut,
De mon coté, il faut que fasse des tests (virer ma config actuelle et refaire un import et repartir de 0 vérifier pour vérifier si ça marche toujours)
Le fichier que j’ai créé
Ce que j’ai mis dans ma configuration.yaml
advanced:
log_level: debug
external_converters:
- converterzigbee.js
Et dans le fichier créé sous config/converterzigbee.js:
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;
const definition = {
fingerprint: [{modelID: 'ZBMINI-L', manufacturerName: 'SONOFF'},],
model: 'ZBMINI-L',
description: 'SONOFF ZBMINI ZigBee MINI Smart Switch no neutral',
vendor: 'SONOFF',
fromZigbee: [fz.on_off],
toZigbee: [tz.on_off],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
device.save();
},
exposes: [e.switch()],
};
module.exports = definition;
Le message que j’ai
Et debug:
Oui ça tu peux éviter de le faire via le YAML (ici ça marche pas c’est pas le bonne hiérarchie)
→ Debug (c’est ce que tu as fais juste après)
→ converterzigbee.js => a charger depuis extension
Personnellement je trouve pas que le nom converterzigbee.js soit le plus pratique … Sachant qu’1 convertisseur est généralement dédié à 1 un appareil, mettre le nom de l’appareil me semble une bonne idée si on envisage d’avoir plusieurs convertisseurs en parallèle … Mais c’est un point de détails et ça n’a pas de conséquence sur le fonctionnement technique
Bon j’ai du faire une bêtise, écran noir du coup après redémarrage de Zigbee 2MQTT
Puis,j’ai,ajouter le converter dans
Comme ça, ça à l’air bon (bouton + puis submit pour la dernière étape ?)
Donc pour comprendre, il faut regarder les logs
Ben oui;mais écran noir… je peux plus ouvrir Z2MQTT… et peut pas redémarrer a cause de l’erreur mentionné plus,haut
Je parle de cette erreur
Ça c’est le reste de ton configuration.yaml pas bon.
Vire juste les lignes
Ok merci, bon j’ai pu re démarrer apres avoir retirer ces lignes, mais Z2M est toujours en mode écran noir
Donc les logs de zigbee2mqtt à regarder.
C’est un réflexe à prendre. Sans les logs c’est de la divination
Ooops, c’est exact
Voici les logs :
[14:14:35] INFO: Handing over control to Zigbee2mqtt Core …
zigbee2mqtt@1.18.1 start /app
node index.js
(node:254768) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open ‹ /config/zigbee2mqtt/converterzigbee.js ›
at Object.openSync (fs.js:476:3)
at Object.readFileSync (fs.js:377:35)
at loadModuleFromFile (/app/lib/util/utils.js:161:27)
at Object.getExternalConvertersDefinitions (/app/lib/util/utils.js:172:25)
at getExternalConvertersDefinitions.next ()
at new ExternalConverters (/app/lib/extension/externalConverters.js:10:20)
at new Controller (/app/lib/controller.js:78:34)
at start (/app/index.js:41:18)
at Object. (/app/index.js:59:1)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
(Usenode --trace-warnings ...
to show where the warning was created)
(node:254768) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag--unhandled-rejections=strict
(see Command-line API | Node.js v21.5.0 Documentation). (rejection id: 1)
(node:254768) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
[14:14:40] INFO: Handing over control to Zigbee2mqtt Core …
zigbee2mqtt@1.18.1 start /app
Il râle sur le fichier js qu’il ne trouve pas.
Tu l’as bien mis sur la machine au bon endroit /config/zigbee2mqtt/
avec le bon nom converterzigbee.js
?
Ps ; Thaïlande et Sfr même combat, internet est hs ici (mais la domotique fonctionne)
Je comprend pas le soucis rencontré ici. j’ai zigbee2mqtt en dernière version et mon ZBMINI-L est bien géré sans bidouille:
Méfie toi, les Thai pratique le MuaiThai, ils sont capable de tout ici :-))))
Bon effectivement, il semble chercher:
Cannot find module ‹ zigbee-herdsman-converters/lib/extend ›
Donc il est dans : /config/zigbee2mqtt/converterzigbee.js
Et j’ai rien change a l’intérieur du fichier, on est d’accord?
Par contre aux lignes 17, 18 et 20 il y a une erreur:
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;
const definition = {
fingerprint: [{modelID: 'ZBMINI-L', manufacturerName: 'SONOFF'},],
model: 'ZBMINI-L',
description: 'SONOFF ZBMINI ZigBee MINI Smart Switch no neutral',
vendor: 'SONOFF',
fromZigbee: [fz.on_off],
toZigbee: [tz.on_off],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
device.save();
},
exposes: [e.switch()],
};
module.exports = definition;
Ligne 17:
Ligne 18
Ligne 20
C’est normalement un truc de base du module donc pourquoi ça ça coince, je sais pas
Tout à fait, tu devrais même pas avoir à corriger un truc, @Minims confirme que l’ajout est bien dans le package général
A mon avis, cette partie là tu peux ne pas en tenir compte. L’editeur de config (yaml) est pas vraiment idéal pour vérifier un script JS