Capteur Zigbee Tuya TH05Z

Bonjour,

Je vois que certain voudraient utiliser un TH05Z (@Sigalou par exemple :wink: ) qui n’est pas encore compatible Zibee2MQTT sans utiliser / passer par une passerelle Tuya.

image

voici comment faire si cela intéresse quelques uns d’entre vous pour le faire reconnaitre dans zigbee2mqtt :

créer un fichier ext_TH05Z.js dans le folder Zigbee2mqtt et copier le code ci dessous dedans

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 ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const utils = require('zigbee-herdsman-converters/lib/utils');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;
const legacy = require('zigbee-herdsman-converters/lib/legacy');

const definition = {
  fingerprint: [{
    modelID: 'TS0601',
    manufacturerName: '_TZE200_vvmbj46n'
  }],
  model: 'JM-TRH-ZGB-V1',
  vendor: 'TuYa',
  description: 'Temperature & humidity sensor with clock',
  fromZigbee: [legacy.fromZigbee.nous_lcd_temperature_humidity_sensor, fz.ignore_tuya_set_time],
  toZigbee: [legacy.toZigbee.nous_lcd_temperature_humidity_sensor],
  onEvent: tuya.onEventSetLocalTime,
  configure: async (device, coordinatorEndpoint, logger) => {
    const endpoint = device.getEndpoint(1);
    await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
  },
  exposes: [
    e.temperature(), e.humidity(), e.battery(),
    e.numeric('temperature_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(60)
    .withValueStep(1)
    .withDescription('Temperature Report interval'),
    e.numeric('humidity_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(60)
    .withValueStep(1)
    .withDescription('Humidity Report interval'),
    e.enum('temperature_unit_convert', ea.STATE_SET, ['celsius', 'fahrenheit']).withDescription(
      'Current display unit'),
    e.enum('temperature_alarm', ea.STATE, ['canceled', 'lower_alarm', 'upper_alarm'])
    .withDescription('Temperature alarm status'),
    e.numeric('max_temperature', ea.STATE_SET).withUnit('°C').withValueMin(-20).withValueMax(60)
    .withDescription('Alarm temperature max'),
    e.numeric('min_temperature', ea.STATE_SET).withUnit('°C').withValueMin(-20).withValueMax(60)
    .withDescription('Alarm temperature min'),
    e.enum('humidity_alarm', ea.STATE, ['canceled', 'lower_alarm', 'upper_alarm'])
    .withDescription('Humidity alarm status'),
    e.numeric('max_humidity', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100)
    .withDescription('Alarm humidity max'),
    e.numeric('min_humidity', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100)
    .withDescription('Alarm humidity min'),
  ],
};

module.exports = definition;

dans le fichier configuration.yaml de Zibgee2mqtt, ajouter en fin les lignes :

external_converters:
  - ext_TH05Z.js

redémarrer zigbee2mqtt, et c’est fini. l’icone n’est pas tout a fait le même, mais le capteur remonte toutes les valeurs. :wink:

1 « J'aime »

Bonjour,

impeccable, je suppose que c’est le même principe pour les autres articles non reconnus ?

oui, le but est de sniffer sur la passerelle qui supporte le produit les flux et d’en faire un fichier .js.

Pour info le TH05Z est bien pris en charge par zigbee2mqtt maintenant :wink:

exact, je l’avais dit dans un autre thread, mais pas dans celui ci.
Ajouter ses device dans zigbee2mqtt - Entraide Home Assistant - Home Assistant Communauté Francophone (hacf.fr)

Bonjour

J’avais créer un PR qui sera présent dans la prochaine mise à jour. Prend en compte les réglages:
Alarm Min et Max pour la temperature et humidité.
Periodic report etc.
Pour que la prise en compte soit bonne il faut appuyer sur le rétroéclairage.

2 « J'aime »

Bonjour,
Je viens de recevoir ce capteur.
Il s’est très bien intégré dans ma solution domotique.
Par contre, savez-vous s’il est possible de changer le format de la date en JJ/MM au lieu de MM/JJ et surtout l’heure car il est indiqué 14h14 alors qu’il est 15h14 ?

Bonsoir,

Pour la date je ne pense pas lorsque je l’avais tester avec tuya pour créer le code je n’ai pas vu le changement de date.
Pour l’heure essaye un appui sur le rétroéclairage cela permet une mise à jour.

Bonsoir,
Merci pour ta réponse.
J’ai déjà appuyé plusieurs fois sur ce bouton, sans effet.
J’ai même ré-appairé le capteur, sans résultat.