TS0601 Energy Meter Zigbee - Commandes inexistantes

Bonjour à tous,

Je viens d’acquérir le module suivant : Tuya Smart ZigBee numérique compteur d'énergie moniteur d'énergie 1, 2 canaux bidirectionnel avec transformateur de courant application moniteur solaire 80A 110v / 240V 50 / 60Hz entrée / sortie alimentation - AliExpress 44
Comme vous pouvez le voir, c’est un module pour mesurer les intensités. Je l’ai connecté en Zigbee via le plugin JeeZigbee, mais j’ai un petit soucis de récupération des commandes.

Du côté des informations brutes, j’ai ceci :

{
    "date_code": "",
    "disabled": false,
    "endpoints": {
        "1": {
            "bindings": [],
            "clusters": {
                "input": [
                    "genGroups",
                    "genScenes",
                    "manuSpecificTuya",
                    "genBasic",
                    "zosungIRTransmit"
                ],
                "output": [
                    "genOta",
                    "genTime"
                ]
            },
            "configured_reportings": [],
            "scenes": []
        },
        "242": {
            "bindings": [],
            "clusters": {
                "input": [],
                "output": [
                    "greenPower"
                ]
            },
            "configured_reportings": [],
            "scenes": []
        }
    },
    "friendly_name": "0xa4c138c05b1e123f",
    "ieee_address": "0xa4c138c05b1e123f",
    "interview_completed": true,
    "interviewing": false,
    "manufacturer": "_TZE284_81yrt3lo",
    "model_id": "TS0601",
    "network_address": 62725,
    "power_source": "Mains (single phase)",
    "supported": false,
    "type": "Router",
    "definition": {
        "exposes": null
    }
}

Le module est connu et souvent utilisé, pourtant j’ai remarqué dans Zig2MQTT que le constructeur n’est pas prise en charge.

Voici une partie des logs dans Zig2MQQT :

info 2025-01-15 20:35:51z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138c05b1e123f', payload '{"device":{"applicationVersion":78,"dateCode":"","friendlyName":"0xa4c138c05b1e123f","hardwareVersion":1,"ieeeAddr":"0xa4c138c05b1e123f","manufacturerID":4417,"manufacturerName":"_TZE284_81yrt3lo","networkAddress":62725,"powerSource":"Mains (single phase)","stackVersion":0,"type":"Router","zclVersion":3},"last_seen":"2025-01-15T19:35:51.732Z","linkquality":188}'
info 2025-01-15 20:35:51z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138c05b1e123f', payload '{"device":{"applicationVersion":78,"dateCode":"","friendlyName":"0xa4c138c05b1e123f","hardwareVersion":1,"ieeeAddr":"0xa4c138c05b1e123f","manufacturerID":4417,"manufacturerName":"_TZE284_81yrt3lo","networkAddress":62725,"powerSource":"Mains (single phase)","stackVersion":0,"type":"Router","zclVersion":3},"last_seen":"2025-01-15T19:35:51.822Z","linkquality":184}'
info 2025-01-15 20:35:51z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138c05b1e123f', payload '{"device":{"applicationVersion":78,"dateCode":"","friendlyName":"0xa4c138c05b1e123f","hardwareVersion":1,"ieeeAddr":"0xa4c138c05b1e123f","manufacturerID":4417,"manufacturerName":"_TZE284_81yrt3lo","networkAddress":62725,"powerSource":"Mains (single phase)","stackVersion":0,"type":"Router","zclVersion":3},"last_seen":"2025-01-15T19:35:51.905Z","linkquality":192}'
info 2025-01-15 20:35:51z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138c05b1e123f', payload '{"device":{"applicationVersion":78,"dateCode":"","friendlyName":"0xa4c138c05b1e123f","hardwareVersion":1,"ieeeAddr":"0xa4c138c05b1e123f","manufacturerID":4417,"manufacturerName":"_TZE284_81yrt3lo","networkAddress":62725,"powerSource":"Mains (single phase)","stackVersion":0,"type":"Router","zclVersion":3},"last_seen":"2025-01-15T19:35:51.988Z","linkquality":188}'

J’ai lu qu’il était possible de créer les commandes manuellement, mais après plusieurs recherches, je n’ai pas trouvé comment configurer ces commandes.
Compte tenu de cette « non prise en charge » par Zig2MQTT, peut-on créer réellement ces commandes, si oui, est-ce que quelqu’un pourrait m’aider pour trouver ces commandes utilisables dans JeeZigbee ?

Merci à tous
Didier

Bonsoir,

Quel est votre version de zigbee2mqtt ?

Bonsoir iPapy

D’après ce screen, la version est donc 1.40.2

Merci

Vous me faites réagir car je viens de voir sur GitHub que la dernière version est la 2.00
Mais je vois qu’il y a des problèmes avec cette version.
Puis-je faire la mise à jour vers la 1.42 et si oui, comment la faire ?
C’est peut-être là la réponse à mes soucis… :slight_smile:

Merci

1 « J'aime »

Bonsoir

A priori tu n’es pas le seul avec ce modèle dont les commandes ne remontent pas :

Merci.
De mon côté", je n’ai aucune commande créée lors de l’appairage.
J’ai tenté plusieurs fois via JeeZigbee ou directement via Z2M.
J’ai quand même lancer une « Issue » sur le GitHub.

En attendant je vais lire le post.
Encore merci.

Ok, Dan_73
Je viens de lire et c’est exactement le même soucis.
J’ai vu qu’il avait envoyé un issue dans la rubrique « problem » et moi dans la rubrique demande d’ajout.
Au moins ils auront une raison supplémentaire de regarder.
Ceci dit il semble que ceci soit dans le « Dev Branch » pour le 1er février prochain, probablement lors de la prochaine MAJ.

Encore merci pour ton info que je n’avais pas trouvée.

1 « J'aime »

Bonjour,
J’ai eu la réponse du dev sur github et le vendeur sera ajouter à la mise à jour de février.
Sinon j’ai réussi à le faire fonctionner en suivant une des réponses du github: [Device Support Request] TS0601 _TZE284_81yrt3lo Tuya Smart Life Dual channel energy meter · Issue #3658 · zigpy/zha-device-handlers · GitHub
par contre il faut juste créer le fichier dans le bon dossier pour que le fichier configuration.yaml se mette à jour cf Integration new devices - #13 par Dams
Karen

Bonjour Karen

J’ai bien lu ton post et les 2 posts dont tu fais références.
De ton côté, tu dis que tu as réussi à le faire fonctionner, mais j’aurais aimé avoir plus de précision et ton aide :slight_smile:
En effet entre les deux posts que j’ai lus, il y a au moins 3 versions concernant les dossiers et les emplacements de dossiers, il en va de même pour le nom de fichier, et il y a une question concernant la modification du configuration.yaml , sans compter qu’il est noté de relancer le daemon. Mais après avoir relancer le deamon faut-il supprimer le module via Z2m ou bien via Jeezigbee (ou les 2) et faut-il donc le ré-appairer ou bien une « interview » suffit ?

Finalement peux tu me dire quelle manipulations as tu faites pour réussir à le faire fonctionner ?

Je te mets mon arborescence :

Tu verras que j’ai fait un essai à deux endroits pour mon dossier Tuya. :wink:

Merci beaucoup.
Didier

Bonjour,
J’ai arreté le deamon du plugin jeezigbee en desactivant la gestion automatique et appuyant sur arreter:

ensuite j’ai créé un dossier tuya_TZE284 au même endroit que toi et dedans j’y ai mis un fichier contenant le code du lien (les noms des fichiers et dossiers n’ont pas d’importance):

const exposes = require('zigbee-herdsman-converters/lib/exposes');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const e = exposes.presets;
const ea = exposes.access;

const definition = {
   fingerprint: [
       {modelID: 'TS0601', manufacturerName: '_TZE284_81yrt3lo'},
   ],
   model: 'PJ-1203A',
   vendor: 'Tuya',
   description: 'Energy meter with 80A clamp',
   fromZigbee: [tuya.fz.datapoints],
   toZigbee: [tuya.tz.datapoints],
   onEvent: tuya.onEventSetTime,
   configure: tuya.configureMagicPacket,
   exposes: [ //only report data
       e.ac_frequency(), // Frequency in Hz
       exposes.numeric('total_power_A', ea.STATE).withUnit('W').withDescription('Total power A'),
       exposes.numeric('total_power_B', ea.STATE).withUnit('W').withDescription('Total power B'),
       exposes.numeric('total_power_AB', ea.STATE).withUnit('W').withDescription('Total power A'),
       exposes.numeric('voltage', ea.STATE).withUnit('V').withDescription('Voltage'),
       exposes.numeric('current_A', ea.STATE).withUnit('A').withDescription('Current A'),
       exposes.numeric('current_B', ea.STATE).withUnit('A').withDescription('Current B'),
       exposes.numeric('power_factor_A', ea.STATE).withUnit('%').withDescription('Instantaneous measured power factor A'),
       exposes.numeric('power_factor_B', ea.STATE).withUnit('%').withDescription('Instantaneous measured power factor B'),
       exposes.numeric('power_direction A', ea.STATE).withDescription('Power direction A 0/1 for forward/reverse'),
       exposes.numeric('power_direction B', ea.STATE).withDescription('Power direction B 0/1 for forward/reverse'),
       exposes.numeric('energy_forward_A', ea.STATE).withUnit('kWh').withDescription('Total energy A forward'),
       exposes.numeric('energy_forward_B', ea.STATE).withUnit('kWh').withDescription('Total energy B forward'),
       exposes.numeric('energy_reverse_A', ea.STATE).withUnit('kWh').withDescription('Total energy A reverse'),
       exposes.numeric('energy_reverse_B', ea.STATE).withUnit('kWh').withDescription('Total energy B reverse'),
       exposes.numeric('update_frequency', ea.STATE).withUnit('sec').withDescription('Update frequency'),
   ],
   meta: {
       tuyaDatapoints: [//only report data
           [111, 'ac_frequency', tuya.valueConverter.divideBy100],
           [101, 'total_power_A', tuya.valueConverter.divideBy10],
           [105, 'total_power_B', tuya.valueConverter.divideBy10],
           [115, 'total_power_AB', tuya.valueConverter.divideBy10],
           [112, 'voltage', tuya.valueConverter.divideBy10],
           [113, 'current_A', tuya.valueConverter.divideBy1000],
           [114, 'current_B', tuya.valueConverter.divideBy1000],
           [110, 'power_factor_A', tuya.valueConverter.divideBy100],
           [121, 'power_factor_B', tuya.valueConverter.divideBy100],
           [102, 'power_direction A', tuya.valueConverter.raw],
           [104, 'power_direction B', tuya.valueConverter.raw],
           [106, 'energy_forward_A', tuya.valueConverter.divideBy100],
           [108, 'energy_forward_B', tuya.valueConverter.divideBy100],
           [107, 'energy_reverse_A', tuya.valueConverter.divideBy100],
           [109, 'energy_reverse_B', tuya.valueConverter.divideBy100],
           [129, 'update_frequency' , tuya.valueConverter.raw],
       ],
   },
};

module.exports = definition;

relancé le deamon et remis la gestion automatique
jeedom « s’occupe » de modifier le fichier configuration.yaml
et le reste à suivi
normalement si tu regardes dans le fichier yaml tu devrais voir ton converter:


voilà

1 « J'aime »

Ok, Merci Karen…

C’est ce que j’ai fait avec des noms de fichiers différents et sans arrêter le daemon initialement.

Par contre, ensuite, tu as désinstallé l’équipement pour le ré-apairer ou bien tu as refais un « interview » ?

En tous cas, merci pour ton aide.
Didier

Bonjour,
De mémoire non je ne l’ai pas reinclu et les commandes sont bien arrivées. Après j’ai fait tellement de manip pour essayer d’écrire dans le fichier yaml avant de découvrir qu’en fait jeedom gérait tout une fois le fichier au bon endroit!
Karen

Ok Karen je fais la manip et je fais un retour.
Merci !

Je te fais la remontée :

  • Désactivation de la gestion auto + arrêt Daemon : OK
  • Ajout Dossier + fichier (tout identique au tien) : OK
  • Activation de la gestion auto + redémarrage Daemon : OK
  • Commandes du Module : NOK
  • Désinstallation du module et ré-appairage : OK
  • Commandes du Module : OK

C’est bon pour moi.
Encore Merci Karen

Bonsoir,

la version 2.1.0 de Z2M reconnait le Smart Meter 80A _TZE284_81yrt3lo en natif. Plus besoin de convertisseur et elle permet de modifier la fréquence d’envoi des données.