Esp32 avec un module zigbee

Hello, pour éviter de continuer à polluer le fil des serrures connectées, je continue ici.
suite au message de @ddfdom

j’ai essayé de faire tourner le lien vers lequel il m’a redirigé.

j’ai compilé et installé le code de test, (bon, il n’y a pas le dht22 ni le bouton mais ca n’empêche pas le binaire de tourner)

je vois une nouvelle entité dans Z2M arriver, mais bien sur il n’est pas reconnu, mais surtout il ne présente rien:

le log Z2M en mode debug donne ceci:

info  2024-04-14 16:46:19: Starting interview of '0x4831b7fffec07e4f'
info  2024-04-14 16:46:19: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x4831b7fffec07e4f","ieee_address":"0x4831b7fffec07e4f","status":"started"},"type":"device_interview"}'
error 2024-04-14 16:48:38: Failed to interview '0x4831b7fffec07e4f', device has not successfully been paired
info  2024-04-14 16:48:38: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x4831b7fffec07e4f","ieee_address":"0x4831b7fffec07e4f","status":"failed"},"type":"device_interview"}'

Bon, je suis pas sorti le cul des ronces sur ce coup là…

Qu’il ne soit pas reconnu comme un truc tout fait à what million de brouzoufs, je veux bien.
Qu’il manque des entrées, je suis d’accord, mais qu’il ne s’appaire pas … c’est quand même la première chose qu’il devrait pouvoir faire, non ?

Z’avez des idées ???

Tu as acheté un esp32-h2 du coup ?

J’en avais depuis un moment, mais je suis pas assez doué en programmation pour en faire quelque chose.
j’espérais à l’époque que esphome allait les supporter. mais… nada.

1 « J'aime »

Bon, un autre exemple sous esphome …

mais, mais, mais…

Ou c’est qu’il trouve çà: ???

#include "ha/esp_zigbee_ha_standard.h"

Cà partait pourtant bien…

INFO ESPHome 2024.3.2
INFO Reading configuration /config/esphome/ZB_sensor.yaml...
WARNING The selected ESP-IDF framework version is not the recommended one. If there are connectivity or build issues please remove the manual version.
WARNING The selected ESP-IDF framework version is not the recommended one. If there are connectivity or build issues please remove the manual version.
INFO Generating C++ source...
INFO Compiling app...
Processing zb-sensor (board: esp32-h2-devkitm-1; framework: espidf; platform: https://github.com/luar123/platform-espressif32H2/archive/refs/tags/v6.5.1.zip)
--------------------------------------------------------------------------------
HARDWARE: ESP32H2 96MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.50102.240122 (5.1.2) 
 - tool-cmake @ 3.16.9 
 - tool-ninja @ 1.10.2 
 - tool-riscv32-esp-elf-gdb @ 12.1.0+20221002 
 - tool-xtensa-esp-elf-gdb @ 12.1.0+20221002 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-riscv32-esp @ 12.2.0+20230208
Reading CMake configuration...
No dependencies
Compiling .pioenvs/zb-sensor/src/esp_zb_light.o
Compiling .pioenvs/zb-sensor/src/esphome/components/esp32/preferences.o
Compiling .pioenvs/zb-sensor/src/esphome/components/i2c/i2c.o
src/esp_zb_light.c:43:10: fatal error: ha/esp_zigbee_ha_standard.h: No such file or directory
   43 | #include "ha/esp_zigbee_ha_standard.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvs/zb-sensor/src/esp_zb_light.o] Error 1
Compiling .pioenvs/zb-sensor/src/esphome/components/i2c/i2c_bus_arduino.o
========================== [FAILED] Took 4.74 seconds ==========================

Bonjour,

J’ai aussi suivi le site de Gammatronic pour l’esp32 h2.
Même souci que toi car Zigbee2mqtt ne reconnaît pas les senseurs exposés comme zha, semble t’il.

Du coup, j’ai fouillé la doc z2m pour pouvoir faire reconnaître les senseurs.

J’ai écris cette page pour expliquer la méthode:

Pas aller plus loin pour l’instant, difficile de comprendre le code pour l’adapter à un besoin spécifique.
Comme utiliser l’esp32 h2 en compteur par interruption avec ‹ deepsleep › par exemple.

4 « J'aime »

Oh ben je vais noter ca dans un coin, c’est plus l’heure pour lire cette prose !!!
je vais aussi m’installer un zha sur ma machine te tests, histoire de voir ce que ca dit :slight_smile:

A demain pour des tests plus avancée !!!

1 « J'aime »

Pour intégrer le ESP32-H2 ou C6 dans zigbee2mqtt j’avais suivi une procédure et ça fonctionnait,
merci @ vdomos

// https://github.com/Koenkk/zigbee-herdsman-converters/blob/master
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: ['DHT22'], // The model ID from: Device with modelID 'lumi.sens' is not supported.
    model: 'DHT22', // Vendor model number, look on the device for a model number
    vendor: 'Espressif', // Vendor of the device (only used for documentation and startup logging)
    description: 'ESP32-C6 Demo temperature & humidity sensor', // Description of the device, copy from vendor site. (only used for documentation and startup logging)
    fromZigbee: [fz.temperature, fz.humidity, fz.terncy_contact], // We will add this later
    toZigbee: [tz.on_off], // Should be empty, unless device can be controlled (e.g. lights, switches).
    exposes: [e.temperature(), e.humidity(), e.switch(), e.contact()], // Defines what this device exposes, used for e.g. Home Assistant discovery and in the frontend
};

module.exports = definition;

Y’a un hic, c’est là qu’est l’os…

Ca veux pas !!!

le fichier ‹ esp32-h2_1.js › en question contient:

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: ['ESP32H2_DHT22'],	// The model ID from: Device with modelID 'lumi.sens' is not supported.
    model: 'ESP32-H2_1', 	// Vendor model number, look on the device for a model number
    vendor: 'bentou',		// Vendor of the device (only used for documentation and startup logging)
    description: 'ESP32-H2 Demo temperature & humidity sensor',		// Description of the device, copy from vendor site. (only used for documentation and startup logging)
    fromZigbee: [fz.temperature, fz.humidity, fz.terncy_contact],	// We will add this later
    toZigbee: [tz.on_off],	// Should be empty, unless device can be controlled (e.g. lights, switches).
    exposes: [e.temperature(), e.humidity(), e.switch(), e.contact()],	// Defines what this device exposes, used for e.g. Home Assistant discovery and in the frontend
};

module.exports = definition;

et le fichier esp_zb_light.c

    // ------------------------------ Cluster BASIC ------------------------------
    esp_zb_basic_cluster_cfg_t basic_cluster_cfg = {
        .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE,
        .power_source = 0x03,
    };
    uint32_t ApplicationVersion = 0x0001;
    uint32_t StackVersion = 0x0002;
    uint32_t HWVersion = 0x0002;
    uint8_t ManufacturerName[] = {6, 'b', 'e', 'n', 't', 'o', 'u'}; // warning: this is in format {length, 'string'} :
    uint8_t ModelIdentifier[] = {10, 'E', 'S', 'P', '3', '2', '-', 'H', '2', '_', '1'};
    uint8_t DateCode[] = {8, '2', '0', '2', '4', '0', '4', '1', '4'};

et comme mentionné dans Release 1.36.1 · Koenkk/zigbee2mqtt · GitHub

  • Due to some internal changes, some external converters will break. To fix it simply remove const extend = require('zigbee-herdsman-converters/lib/extend'); from the external converter.

mais toujours pas reconnu l’bouzin…
error 2024-04-17 17:54:21: Failed to interview '0x4831b7fffec07e4f', device has not successfully been paired

Bonjour,

Essaye de le supprimer complétement de Zigbee2MQTT et de remettre sous tension le module au plus prés du dongle Zigbee pour relancer l’appairage.

Attention aussi, si le code a beaucoup changer dans les propriétés exposées du module, il faut faire un erase complet de la flash du module.

J’ai déjà eu du souci pour supprimer les anciennes valeurs exposés à Z2M.

J’utilise cette commande

$ idf.py -p /dev/ttyUSB0 erase-flash

j’ai effacé la config avec ESP Tool avant de reflasher.
je vais essayer d’autres sources…

Je viens de regarder, malgré des messages d’erreurs,


ça fonctionne après rechargement
image
j’ai bien les valeurs qui s’affichent :