Pb de remontée de power dans switch Aqara T1 (Zigbee)

Bon, je viens de tenter la modif :

  1. j’ajoute le fichier aqara-t1.js dans le répertoire /config/zigbe2mqtt avec le contenu suivant :
// Comes from https://community.home-assistant.io/t/aqara-t1-with-neutral-is-not-showing-power-kwh-in-home-assistant/392028/7?u=warc0zes
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 ota = require("zigbee-herdsman-converters/lib/ota");
const extend = require("zigbee-herdsman-converters/lib/extend");
const e = exposes.presets;
const ea = exposes.access;

const definition = {
    zigbeeModel: ["lumi.switch.n0agl1"],
    model: "SSM-U01",
    vendor: "Xiaomi",
    description: "Aqara single switch module T1 (with neutral)",
    fromZigbee: [fz.on_off, fz.xiaomi_power, fz.aqara_opple],
    toZigbee: [
        tz.on_off,
        tz.xiaomi_power,
        tz.xiaomi_switch_type,
        tz.xiaomi_switch_power_outage_memory,
        tz.xiaomi_led_disabled_night,
        fz.metering,
        fz.electrical_measurement,
    ],
    exposes: [
        e.switch(),
        e.power().withAccess(ea.STATE_GET),
        e.energy(),
        e.temperature().withAccess(ea.STATE),
        e.voltage().withAccess(ea.STATE),
        e.power_outage_memory(),
        e.led_disabled_night(),
        e.switch_type(),
    ],
    configure: async (device, coordinatorEndpoint, logger) => {
        await device
            .getEndpoint(1)
            .write(
                "aqaraOpple",
                { mode: 1 },
                { manufacturerCode: 0x115f, disableResponse: true }
            );
    },
    ota: ota.zigbeeOTA,
};

module.exports = definition;
  1. j’ajoute la ligne aqara-t1.js dans le l’UI zigbee2mqtt / parameters / external converter,
  2. je redémarre Zigbee2mqtt
  3. il ne se passe rien. Ca marchait pas mieux
  4. je redémarre HA dans le doute,
  5. et là c’est le drame :
    zigbee2mqtt ne démarrre plus avec un message sybillin:

qui n’a pas trop de rapport avec ce que je viens de faire.
J’ai évidemment perdu tous mes devices Zigbee.

  1. pour revert il faut l’accès à l’UI, mais comme ça démarre plus, plus d’UI,
  2. dans les fichiers de conf sous /config/zigbee2mqtt donc je suis bloqué pour revert le changement.

Si je supprime le fichier aqara-t1.js ca ne démarre pas non plus :

[19:07:22] INFO: Preparing to start...
[19:07:23] INFO: Socat not enabled
[19:07:26] INFO: Starting Zigbee2MQTT...
Error: ENOENT: no such file or directory, open '/config/zigbee2mqtt/aqara-t1.js'
    at Object.openSync (node:fs:590:3)
    at Object.readFileSync (node:fs:458:35)
    at loadModuleFromFile (/app/lib/util/utils.ts:160:27)
    at Object.getExternalConvertersDefinitions (/app/lib/util/utils.ts:171:25)
    at getExternalConvertersDefinitions.next (<anonymous>)
    at new ExternalConverters (/app/lib/extension/externalConverters.ts:12:20)
    at new Controller (/app/lib/controller.ts:84:58)
    at start (/app/index.js:106:18)

La solution c’est de mettre un fichier aqara-t1.js qui est simple et valide comme celui-ci:

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 e = exposes.presets;
const ea = exposes.access;

const definition = {
    zigbeeModel: ['myZigbeeModel'],
    model: 'myModel',
    vendor: 'myVendor',
    description: 'My super switch!',
    fromZigbee: [fz.on_off],
    toZigbee: [tz.on_off],
    exposes: [e.switch()],
    // The configure method below is needed to make the device reports on/off state changes
    // when the device is controlled manually through the button on it.
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
        await reporting.onOff(endpoint);
    },
};

module.exports = definition;

Du coup ca redémarre :hot_face: et je peux virer l’external converter.

Bref, je peux avoir merdé mais je ne vous conseille pas la manip. Ou j’ai pas trouvé le bon converter dans le thread.

Bonjour,

Je ne suis pas sur que tu ais fait le bon appel à ton converter.
Pour appeler le converter (qui du coup est devient prioritaire par rapport aux appels de Z2M) tu dois ajouter les lignes suivantes dans le fichier « configuration.yaml » du répertoire « zigbee2mqtt » :

homeassistant: true
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
serial:
  port: >-
    /dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20221031161733-if00
  adapter: ezsp
frontend:
  port: 8099
availability:
  active:
    timeout: 20
  passive:
    timeout: 240
advanced:
  homeassistant_legacy_entity_attributes: false
  legacy_api: false
  legacy_availability_payload: false
  log_syslog:
    app_name: Zigbee2MQTT
    eol: /n
    host: localhost
    localhost: localhost
    path: /dev/log
    pid: process.pid
    port: 514
    protocol: udp4
    type: '5424'
  channel: 25
  log_level: error
device_options:
  legacy: false
external_converters:
  - zigbee_siren_TZE200_nlrfgpny.js
devices:

Les lignes à ajouter sont les suivantes :

device_options:
  legacy: false
external_converters:
  - zigbee_siren_TZE200_nlrfgpny.js

Le fichier du converter (.ts) doit être ajouté dans ce même répertoire.

Hello @anon41081891 ,

j’ai fais comme indiqué dans le thread listé par @Husky07 en passant par l’UI.

Je vais essayer avec ta méthode. J’avais plus l’impression que le fichier était pas bon, donc j’ai peur que ca fasse exactement pareil avec ta méthode.

Bonjour,

Je ne suis pas sur non plus que le fichier soit bon. J’en ai pas trouvé d’autre. Il y a une méthode pour créer un fichier valide par tuya_iot mais il faut appairer l’appareil par une passerelle tuya pour récupérer les datapoints.

J’ai essayé avec ta méthode et Z2M ne démarre plus. Comme avec la méthode précédente sauf que je n’ai plus le log d’erreur. C’est très bizarre tout ça.

@Husky07 si tu as essayé et que ca a marché pour toi, ca m’intéresse.

C’est que le fichier .js est corrompu. Il faudrait trouver un fichier qui fonctionne. Quel est le « model » exactement indiqué sous z2m ?

Le model :
model: « SSM-U01 »

Je l’ai trouvé ici : Aqara T1 with neutral is not showing power KWH in home assistant - #12 by jmcollin - Zigbee - Home Assistant Community

Ok, et le « Constructeur Zigbee » ?

Tu as le fichier au dessus si tu veux.
Sinon c’est Xiaomi.

J’ai édité mon message pour le « Constructeur Zigbee »

Je ne trouve rien de plus que toi pour un external converter qui fonctionne. Tu n’arrives pas à mettre le firmware à jour par OTA ?

Il est à jour le firmware. C’est d’ailleurs certainement depuis la maj que j’ai les problèmes.
Ce qui est très curieux, c’est que sur les 5, y en a un qui marche normalement : même marque, même modèle, …

A priori, d’après ce que j’ai pu lire, tu n’es pas le seul à avoir des problèmes avec ce module.

En attendant la prochaine mise à jour de z2m (et en supposant qu’elle corrige le problème), tu devrais peut-être en commander un nouveau sur Amazon pour voir si celui-ci fonctionnerait correctement.

Si c’est la cas, tu remplaces un des quatres qui ne fonctionnent plus et tu renvoies celui ne fonctionnant plus et dans le cas contraire, tu renvoies le nouveau.

https://www.amazon.fr/Aqara-Module-commande-simple-conducteur/dp/B08XWHC156/ref=sr_1_10?crid=1IOZGQHJMCQH8&keywords=aqara+t1&qid=1702057287&sprefix=aqara%2Caps%2C1011&sr=8-10

Merci pour le conseil. Je viens d’étendre en en mettant dans tout neuf ca fait pas 2 semaines. Dans les 2 nouveaux, un qui marche sans soucis et l’autre non.
Je commence à me demander si c’est pas un problème hard ou firmware en fait.

je vais essayer de downgrader le firmware si on peut le faire.

merci en tout cas @yalec38 pour ton aide.

L’avantage d’Amazon, c’est que tu peux tout renvoyer sans plus d’explication et ils ne sont pas vraiment regardant sur ce que tu renvoies. Si c’est un problème de firmware ou un problème hardware, ça vaut peut être le coup de tenter d’en commander un autre et de tester, la seule contrainte étant de trouver un point relai pour le renvoyer (ou renvoyer un autre).

Après, ils ne sont pas donnés sur Amazon…

1 « J'aime »

Bonjour à tous,
Pour ma part, j’ai essayé sur une VM toute neuve avec ZHA, au début ça n’a pas fonctionné et après oui.
Je suis revenu sur ma VM avec Z2mqtt et cela a fonctionné pour mes deux modules.
Je ne sais pas trop pourquoi…
J’ai changé et modifié tellement de chose que je ne sais plus laquelle a sans doute débloqué le truc.
Désolé
Ah oui, j’ai aussi changé ma Zigate par une Sonoff et ça a fonctionné desuite avec la Sonoff (mais avant mon changement de clé, ça avait commencé à fonctionner.

Tu as mis un converter spécial ou tu as tout laissé par défaut coté Z2M ?