ZigBee-EBYTE-EFR3

Sonoff EFR3 ZigBee

Dans cet article, nous allons découvrir ensemble un petit composant peu coûteux qui va nous permettre de créer nos propres capteurs, à la manière d’un Wemos ou d’un NodeMCU, mais en utilisant le protocole Zigbee plutôt que le WiFi. Le produit en question est nativement compatible avec Zigbee2mqtt (voir la liste des appareils compatibles sur https://www.zigbee2mqtt.io/information/supported_devices.html dans la section #Custom devices (DiY)). Le module que nous allons explorer est l’EBYTE-EFR32.

L’EBYTE-EFR32 est un module Zigbee basé sur la série de microcontrôleurs EFR32 de Silicon Labs. Ce module offre une solution intéressante pour les amateurs et les développeurs qui souhaitent créer des dispositifs Zigbee personnalisés pour leurs projets domotiques.

Installation

Pour commencer avec l’EBYTE-EFR32, vous aurez besoin de :

Une fois que vous avez le matériel et les logiciels nécessaires, vous pouvez commencer à créer vos propres capteurs Zigbee en suivant ces étapes :

  1. Connectez le module EBYTE-EFR32 à l’adaptateur USB vers TTL.
  2. Connectez l’adaptateur USB vers TTL à votre ordinateur.
  3. Ouvrez l’IDE de Silicon Labs et chargez les bibliothèques et les exemples de code pour les dispositifs Zigbee.
  4. Modifiez le code selon vos besoins et téléchargez-le sur le module EBYTE-EFR32.
  5. Testez le fonctionnement de votre capteur Zigbee en l’intégrant dans votre réseau Zigbee existant (par exemple, en utilisant Zigbee2mqtt).

L’EBYTE-EFR32 offre une solution flexible et économique pour créer des dispositifs Zigbee personnalisés pour vos projets domotiques. En utilisant ce module, vous pouvez créer des capteurs et des actionneurs Zigbee qui répondent parfaitement à vos besoins spécifiques et qui sont facilement intégrables dans votre réseau Zigbee existant.

Il existe une version montée sur un “shield” pour réaliser nos prototypes :

Il existe également de nombreux projets :

Voir les PCB ici : https://picclick.fr/seller/esp_zigbee_pcb

CODE

Voici un exemple de code pour un capteur de température et d’humidité compatible avec Home Assistant, en utilisant un module EBYTE-EFR32 et un capteur DHT22.

Ce code suppose que vous avez correctement configuré votre environnement de développement et que vous avez intégré Zigbee2mqtt avec Home Assistant.

#include "zigbee.h"
#include "DHT22.h"

#define DHT22_PIN 4 // Remplacez par la broche de données de votre capteur DHT22
#define UPDATE_INTERVAL 30000 // Intervalle de mise à jour en millisecondes (30 secondes)

DHT22 dht22(DHT22_PIN);
Zigbee zigbee;

void setup() {
  Serial.begin(9600);
  dht22.begin();
  zigbee.begin();
}

void loop() {
  static unsigned long last_update = 0;

  if (millis() - last_update > UPDATE_INTERVAL) {
    last_update = millis();
    float temperature = dht22.readTemperature();
    float humidity = dht22.readHumidity();

    if (!isnan(temperature) && !isnan(humidity)) {
      zigbee.sendTemperature(temperature);
      zigbee.sendHumidity(humidity);
    } else {
      Serial.println("Erreur de lecture du capteur DHT22");
    }
  }
}

Après avoir téléchargé ce code sur votre module EBYTE-EFR32, vous devriez voir les mises à jour de température et d’humidité dans Home Assistant. Assurez-vous d’avoir correctement configuré la passerelle Zigbee2mqtt et les capteurs correspondants dans votre fichier de configuration Home Assistant. Voici un exemple de configuration YAML pour les capteurs :

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<DEVICE_ID>"
    name: "Temperature Sensor"
    unit_of_measurement: "°C"
    value_template: "{{ value_json.temperature }}"
    device_class: "temperature"

  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<DEVICE_ID>"
    name: "Humidity Sensor"
    unit_of_measurement: "%"
    value_template: "{{ value_json.humidity }}"
    device_class: "humidity"

Remplacez <DEVICE_ID> par l’identifiant de votre dispositif Zigbee dans Zigbee2mqtt. Avec cette configuration, vous devriez être en mesure de voir les données du capteur de température et d’humidité dans votre interface Home Assistant et de les utiliser dans vos automatisations.

Conclusion

Nous avons exploré l’utilisation du EFR3 pour créer un capteur de température et d’humidité compatible avec Home Assistant. Bien que cet exemple se limite à un capteur DHT22, les possibilités offertes par ce module sont vastes et peuvent être adaptées à de nombreux autres types de capteurs et d’actionneurs.

Néanmoins, je n’ai pas pu aller plus loin dans l’exploration de toutes les fonctionnalités et les possibilités offertes par ce module. Je vous encourage à explorer davantage par vous-même et à partager vos découvertes avec la communauté.