Skip to content

fairecasoimeme/LiXee-Box

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

333 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LiXee-Box

Description

LiXee-Box est une passerelle multi-protocole pour appareils Zigbee, conçue pour être un hub central de gestion de l'énergie et de domotique. Cette application transforme votre LiXee-ZiWifi32 en une passerelle complète capable de gérer vos appareils Zigbee, votre Linky, compteur de production, gaz, eau, et d'intégrer le tout dans votre système domotique.

Pour avoir plus d'informations (moins techniques==) vous pouvez parcourir (https://lixee-box.fr)

Matériel Compatible

Cette application fonctionne avec :

Note : Vous pouvez également utiliser ce code avec d'autres cartes ESP32S3, selon les connexions de broches de votre carte.

Schéma de fonctionnement

Installation

Tutoriel Installation LiXee-Box

Cas d'Usage Typiques

  • Relais longue distance : Linky (ZLinky) ↔ Zigbee ↔ LiXee-Box ↔ WiFi ↔ MQTT ↔ Home-Assistant/Jeedom/Domoticz
  • Accès distant : Accédez à votre LiXee-Box depuis Internet via un tunnel sécurisé, sans ouverture de ports
  • Passerelle cloud : Relayer les données des appareils Zigbee vers des services web via API
  • Gestion énergétique avancée : Surveillance, délestage de charge, routage énergétique

Pour aller plus loin

✨ Fonctionnalités Principales

La fonctionnalité principale est de relayer les données des appareils Zigbee vers un site web ou un service MQTT

L'appareil peut être configuré via un site web local

🔧 Gestion des Appareils Zigbee

  • Création et gestion d'objets Zigbee
  • Modèles personnalisables pour différents types d'appareils
  • Gestion des états et actions
  • Historique des données pour les appareils de puissance et d'énergie
  • Mises à jour OTA (Over-The-Air) automatiques et manuelles

📊 Surveillance et Tableau de Bord

  • Tableau de bord énergétique avec jauges et graphiques
  • Surveillance de la consommation en temps réel
  • Graphiques de tendance et historiques
  • Données Linky intégrées

🌐 Connectivité

  • MQTT : Serveur/port/utilisateur/mot de passe personnalisables
  • MQTT Discovery compatible avec Home Assistant
  • WebPush API : URL/utilisateur/mot de passe
  • Tunnel d'accès distant : Accès sécurisé à la LiXee-Box depuis Internet sans ouverture de ports (reverse proxy WebSocket)

⚡ Gestion de l'Énergie

  • Règles automatisées pour le délestage de charge et le routage énergétique
  • Seuils configurables avec actions automatiques
  • Gestion de la production et distribution d'énergie
  • Gestion tarifaire pour l'énergie, la production, le gaz et l'eau
  • Gestion avancée chauffage / froid (en cours)

🔒 Sécurité

  • Authentification par sessions (token 32 caractères, durée 24h, max 4 sessions simultanées)
  • Page de connexion dédiée avec redirection automatique
  • Compatibilité Basic Auth pour les clients API
  • Masquage des mots de passe et tokens dans l'interface
  • Protection contre le path traversal

🔄 Mises à Jour et Maintenance

  • Sauvegarde/restauration de configuration
  • Mode développeur pour le débogage

🚀 Installation et Configuration

Configuration Initiale

À partir de la v2.2a

avec LiXee-Assist https://github.com/fairecasoimeme/LiXee-Assist
Veuillez télécharger l'application pour procéder

Get it on Google Play Download on the App Store

Scannez simplement l'appareil (avec BLE) et complétez l'appairage avec vos identifiants WiFi locaux

⚠️(OBSOLETE) Avant la v2.2a

Avec un navigateur web

  1. Alimentation : Branchez l'appareil sur une alimentation USB
  2. WiFi : Scannez les réseaux WiFi disponibles avec votre mobile/ordinateur
  3. Connexion : Connectez-vous au SSID LIXEEGW-XXXX (XXXX = partie de l'adresse MAC)
  4. Authentification : Mot de passe par défaut adminXXXX (XXXX = suffixe du SSID)
  5. Configuration : Ouvrez http://lixee-gw dans votre navigateur
  6. WiFi Principal : Configurez votre réseau WiFi principal
  7. Redémarrage : L'appareil redémarre et se connecte à votre réseau

Remise à zéro (à partir de v2.13)

Pour repasser la LiXee-Box en mode bluetooth pour association avec LiXee-Assist :

  1. Brancher la LiXee-Box
  2. Attendre 3 secondes
  3. Débrancher la LiXee-Box

Répéter l'opération 3 fois et la LiXee-Box sera réinitialisée

Mise à Jour du Firmware

A partir de l'interface Web

Cliquer sur "A propos" puis "Mise à jour"

Mise à Jour du Firmware

L'interface de mise à jour vous permet de maintenir votre LiXee-Box à jour avec les dernières fonctionnalités.

⚠️ Si la mise à jour ne fonctionne pas, veuillez passer avec la méthode suivante (avec un ordinateur)

Avec un ordinateur

  1. Tout d'abord il faut sortir la carte électronique du boitier. Dévisser les 2 vis.

2. Brancher la carte sur le port USB d'un ordinateur en appuyant sur le bouton flash.

4. Télécharger le fichier firmware (fichier firmware.bin) dans la section release

En mode GUI

  1. Télécharger l'utilitaire de flash : https://docs.espressif.com/projects/esp-test-tools/en/latest/esp32s3/production_stage/tools/flash_download_tool.html
  2. Décompresser et lancer l'exéctutable : flash_download_tool_x.x.x.exe
  3. Suivez les mêmes paramètres que les captures d'écran (⚠️ ne pas cliquer sur le bouton ERASE)

Voici les fichiers à sélectionner avec les adresses correspondantes :

  • firmware.bin @ 0x10000
  • boot_app0.bin @ 0xe000
  • bootloader.bin @ 0x0
  • partitions.bin @ 0x8000

Il ne reste plus qu'à sélectionner le bon port COM puis de cliquer sur START

En mode console

  1. Ouvrir une console ou powershell et se placer dans le répertoire ou se trouve le fichier firmware.bin

  2. Taper la commande suivante :

    esptool.exe --chip esp32s3 --port "COMXX" --baud 921600 write_flash -z --flash_mode dio --flash_freq 40m --flash_size 16MB 0x0 bootloader.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 firmware.bin

📱 Interface Utilisateur

Jumelage d'Appareils

à partir de l'interface, aller dans le menu : Réseau --> Zigbee puis Appuyer sur le bouton "Ajouter"

Appairage d'Appareils Appairage LiXee-Box Recherche d'Appareils

Le processus d'appairage est simplifié avec un assistant pas à pas pour connecter vos appareils Zigbee.

Gestion des Appareils

Interface complète pour configurer et surveiller tous vos appareils Zigbee connectés.

Configuration des Appareils Zigbee État des Appareils Propriété d'un appareil

Tableau de Bord Énergétique

État Énergétique Interface Mobile

Tableau de bord complet avec visualisation en temps réel de votre consommation énergétique, graphiques historiques et interface mobile responsive.

Tarif et couleurs

Selon votre abonnement, vous verrez apparaître en première ligne le tarif en cours de votre abonnement mais aussi la couleur du jour ou la couleur du lendemain si vous avez un abonnement Tempo Tarif et couleur

Sous-compteurs

Présentation

Les sous-compteurs permettent de suivre en détail la consommation énergétique de vos équipements spécifiques au sein de votre habitat. En associant une prise ou un module connecté Zigbee disposant de la fonction de mesure de consommation (cluster 0x0702), vous pouvez isoler et analyser la consommation de certains postes de dépense énergétique.

Cas d'usage
  • Véhicule électrique : Suivez précisément la consommation liée à la recharge de votre véhicule et calculez le coût réel de vos trajets.
  • Électroménager énergivore : Identifiez la consommation de votre sèche-linge, lave-linge, four ou réfrigérateur.
  • Chauffage d'appoint : Mesurez l'impact d'un radiateur électrique ou d'une pompe à chaleur sur votre facture.
  • Bureau / Informatique : Évaluez la consommation de votre poste de travail, serveur NAS ou équipement réseau.
  • Piscine / Spa : Suivez la consommation de la pompe de filtration ou du chauffage.
Fonctionnalités
Attribution tarifaire automatique

Les sous-compteurs héritent automatiquement de la période tarifaire en cours (HP/HC, Tempo Bleu/Blanc/Rouge, EJP...) détectée par le ZLinky. Ainsi, la consommation est ventilée selon les mêmes index tarifaires que votre compteur principal, permettant un calcul précis du coût réel.

Visualisation intégrée

Donut de répartition : Les sous-compteurs apparaissent dans le graphique de répartition énergétique avec leur couleur personnalisée, aux côtés des index tarifaires du ZLinky.
Graphique d'usage : Les barres de consommation des sous-compteurs sont affichées et automatiquement soustraites des index tarifaires correspondants pour éviter le double comptage.
Légende détaillée : Chaque sous-compteur affiche sa consommation en kWh et son équivalent en euros.

sous comptage

Coefficient de conversion

Chaque sous-compteur peut avoir un coefficient de conversion personnalisé (défini dans le template du device). Cela permet d'adapter l'affichage selon l'unité de mesure du capteur (ex: conversion Wh vers kWh, ou ajustement d'un facteur de calibration).

Configuration
  • Accédez à la page Config --> Énergie
  • Dans la section Sous-compteurs, cliquez sur Ajouter
  • Sélectionnez le device Zigbee disposant de la mesure de consommation
  • Définissez un alias (nom) pour identifier facilement le sous-compteur
  • Choisissez une couleur pour la visualisation dans les graphiques
  • Activez le sous-compteur
Données et historique

Les données des sous-compteurs sont stockées avec le même niveau de granularité que le ZLinky :

  • Horaire : Consommation heure par heure
  • Journalier : Consommation jour par jour sur 30 jours glissants
  • Mensuel : Consommation mois par mois sur 12 mois
  • Annuel : Historique sur plusieurs années

Les données sont persistées et restaurées automatiquement après un redémarrage.

Compatibilité

Tout device Zigbee reportant le cluster Simple Metering (0x0702) avec l'attribut Current Summation Delivered (0x0000) est compatible.

Gestion de présence

Présentation

La gestion de présence permet de corréler votre consommation énergétique avec les périodes d'occupation de votre habitat. En intégrant des capteurs de présence, vous pouvez visualiser l'impact de votre présence sur votre consommation et identifier des anomalies (consommation excessive en votre absence, par exemple).

Cas d'usage
  • Analyse comportementale : Comprenez comment votre présence influence votre consommation énergétique et identifiez des pistes d'économies.
  • Détection d'anomalies : Repérez une consommation anormale pendant vos absences (appareil resté allumé, fuite, dysfonctionnement).
  • Optimisation du chauffage : Corréllez la consommation de chauffage avec les périodes d'occupation pour ajuster vos programmations.
  • Suivi des habitudes : Visualisez vos routines quotidiennes et leur impact énergétique.
  • Maison secondaire : Surveillez la consommation en votre absence et détectez toute activité inattendue.
Fonctionnalités
Overlay de présence sur les graphiques

Les périodes de présence sont affichées sous forme de zones colorées superposées aux graphiques de consommation énergétique. D'un coup d'œil, vous pouvez identifier :

  • Les périodes où le logement est occupé (zone colorée)
  • Les périodes d'absence (zone transparente)
Historique de présence

L'historique de présence est conservé avec la même granularité que les données énergétiques :

  • Horaire : État de présence heure par heure
  • Journalier : Taux d'occupation par jour
  • Mensuel : Statistiques d'occupation mensuelles
Configuration
  1. Accédez à la page Config --> Énergie
  2. Dans l'onglet Présence,
  3. Sélectionnez le capteur Zigbee à utiliser pour la détection
  4. Activez la fonctionnalité
Visualisation
Graphique d'énergie avec overlay

Les zones de présence sont affichées en transparence sur le graphique de consommation : présence

Compatibilité

Tout device Zigbee reportant le cluster Occupancy (0x0406) avec l'attribut 0x0000 est compatible.

Production d'énergie et Injection

Mode Producteur

La LiXee-Box permet de récupérer la production d'énergie.
Au travers du ZLinky, il est possible de récupérer les données d'injection et l'index de production dans les cas suivant :

  • Le Linky est en mode standard
  • vous avez un contrat avec EDF OA Ces conditions sont nécessaires pour que votre Linky soit en mode Producteur

Graphe producteur Jauge_producteur

Il suffit donc de paramétrer dans Config --> Energie puis sélectionner dans l'onglet Production le ZLinky qui est mode production.

PS : Dans certaines configurations, il y a 2x Linky dont 1x Linky dédié à la production. Il faudra alors brancher et jumeler un autre ZLinky que celui dédié à la consommation

Mode Autoconsommation

Si vous possédez des panneaux photovoltaïques sans contrat, le Linky ne pourra pas être paramétrer en mode Producteur par votre fournisseur d'énergie.
Cependant, il sera possible de détecter une sur production lorsque votre production sera supérieure à votre consommation. Dans ce cas, la LiXee-Box pourra déterminer la puissance d'injection sur le réseau et agir en conséquence. En effet, cette information vous permettra de lancer des machines, enclencher votre chauffe-eau ou encore recharger votre véhicule électrique.

Voici les conditions permettant de détecter une surproduction sur votre Linky

  • une puissance apparente à 0 VA
  • une intensité > 0 A

Si ce cas arrive, vous aurez sur le graphique de puissance les données d'injection.

Injection

🌍 Tunnel d'accès distant (à partir de la v2.17)

Le tunnel permet d'accéder à votre LiXee-Box depuis Internet, sans avoir besoin d'ouvrir de ports sur votre box Internet. La connexion passe par un reverse proxy WebSocket sécurisé.

Fonctionnement

La LiXee-Box établit une connexion WebSocket sortante vers le serveur remote.lixee-box.fr. Ce serveur relaye les requêtes HTTP entrantes vers votre LiXee-Box, qui les traite localement et renvoie les réponses. Votre box Internet n'a besoin d'aucune configuration particulière (pas de NAT, pas de port forwarding).

Activation

  1. Accédez à la page ConfigTunnel
  2. Entrez le code d'activation à 6 chiffres fourni par LiXee
  3. Cliquez sur Activer
  4. Lorsque le statut passe à Connecté, l'URL d'accès distant s'affiche automatiquement

Une section Configuration avancée repliable permet également une connexion manuelle avec vos propres identifiants (subdomain, token).

Caractéristiques

  • Jusqu'à 6 requêtes HTTP simultanées grâce à une architecture non-bloquante à machine d'état
  • Heartbeat automatique pour maintenir la connexion active
  • Hot-reload : le tunnel redémarre automatiquement après modification de la configuration
  • L'URL d'accès distant est de la forme https://<votre-id>.lixee-box.fr
  • La désactivation du tunnel est protégée lorsqu'on y accède depuis l'accès distant (pour éviter de se couper l'accès)

Les règles (automatismes)

Pour accéder à toutes les règles, il faut suivre Config --> Règles
La page permet de suivre la liste des règles avec leur état et la date de dernière exécution.
Vous pourrez créer, modifier ou supprimer une règle.

Liste des règles

Comment créer des règles

  • Les règles sont stockées dans un fichier JSON.

  • Une règle peut être déclenchée :

    • toutes les 60 secondes
    • dès que le couple cluster/attribut choisi est mis à jour
  • Une règle peut contenir une ou plusieurs conditions.

    • image
  • Une règle peut contenir une ou plusieurs actions si les conditions sont réunis.

  • Une règle peut contenir une ou plusieurs actions si les conditions ne sont pas réunis

  • Une règle peut intégrer une plage horaire (Optionnel)

Ajouter/modifier une règles

Structure

Voici la structure :

├── Rule     
│   ├── name   
|   ├── TimeRanges
│   │   ├── startTime   
│   │   ├── endTime   
│   │   ├── days[...]  //1,2,3,4,5,6,7
|   ├── trigger
│   │   ├── mode   
│   │   ├── IEEE   
│   │   ├── cluster
│   │   ├── attribut
│   ├── conditions   
│   │   ├── type   
│   │   ├── IEEE   
│   │   ├── cluster  
│   │   ├── attribut  
│   │   ├── operator   
│   │   ├── value  
│   │   ├── logic  
│   ├── actions   
│   │   ├── type   
│   │   ├── IEEE  
│   │   ├── endpoint  
│   │   ├── value    

Paramètres des trigger

par défaut mode = timer

Paramètre Obligatoire Type Valeur Commentaire
mode String "event" ou "timer"
IEEE String Adresse MAC sans ':' ou '-'
cluster Decimal ID du cluster en décimal
attribut Decimal Numéro d'attribut

Paramètres de Condition

Paramètre Obligatoire Type Valeur Commentaire
type String "device" / "time" / "time_range" / "weekday" / "date" / "day" / "month"
IEEE si type == 'device' --> String sinon 0 Adresse MAC sans ':' ou '-'
cluster si type == 'device' --> Decimal sinon 0 ID du cluster en décimal
attribut si type == 'device' --> Decimal sinon 0 Numéro d'attribut
operator String "<", ">", "==", "!=", ">=", "<=", "in", "not_in"
value Decimal/String Valeur de comparaison Peut être un String sur les opérateurs == ou != uniquement
logic String "AND", "OR" Uniquement pour conditions multiples

Paramètres d'Action

Paramètre Obligatoire Type Valeur Commentaire
type String "device" / "onoff (à disparaitre)" / "notification"
IEEE String Adresse MAC sans ':' ou '-'
actionName String Nom de l'action
command Decimal -1 = utilisation du template sinon override
endpoint Decimal ID du point de terminaison
value String Valeur de l'action
title String pour type "notification"
message String pour type "notification"

Paramètres plage horaire (Optionnel)

Paramètre Obligatoire Type Valeur Commentaire
startTime String "HH:mm"
endTime String "HH:mm"
days Array [1,2,3,4,5,6,7] Chaque chiffre correspond au numéro du jour

Par exemple :

{
   "rules":[
    {
        "name":"rule_1",
        "conditions" : [
		{
		   "type" : "device",
		   "IEEE" : "00158d0006204fcf",
		   "cluster" : 2820,
		   "attribute" : 1295,
		   "operator" : "<",
		   "value" : 1000,
		   "logic" : "AND"
		}
        ],
        "actions" : [
		{
		   "type" : "onoff",
		   "IEEE" : "a4c138bb23185d2c",
                   "endpoint":1,
		   "value": "1"
		}
        ]
    }, {
        "name":"rule_2",
        "conditions" : [
		{
		   "type" : "device",
		   "IEEE" : "00158d0006204fcf",
		   "cluster" : 2820,
		   "attribute" : 1295,
		   "operator" : ">",
		   "value" : 1000,
		   "logic" : "AND"
		}
        ],
        "actions" : [
		{
		   "type":"notification",
           "IEEE":"",
           "endpoint":0,
           "value":"",
           "title":"🚨⚡puissance > 1000",
           "message":"🚨⚡puissance > 1000"
		}
        ]
    }
   ]
}

Notifications

Les notifications permettent d'être informé ou alerté des évènements de votre habitat selon vos besoins

Exemple configuration

Configuration notifications

Exemple d'évènements

Evènements

📦 Appareils Compatibles (à partir de la v2.12)

La LiXee-Box est compatible avec un large éventail d'appareils Zigbee grâce à sa prise en charge des clusters standards. Voici la liste détaillée du matériel compatible.

Clusters Zigbee Supportés

Cluster Nom Description
0x0000 Basic Informations de base de l'appareil
0x0001 Power Configuration Gestion batterie
0x0006 On/Off Commandes marche/arrêt
0x0102 Window Covering Contrôle volets/stores
0x0402 Temperature Measurement Mesure de température
0x0405 Relative Humidity Mesure d'humidité
0x0406 Occupancy Sensing Détection de présence
0x0702 Simple Metering Comptage d'énergie
0x0B04 Electrical Measurement Mesures électriques
0xFF66 LiXee Cluster propriétaire LiXee

⚡ Appareils LiXee (Compatibilité Complète)

Appareil Device Type Description Testé
ZLinky_TIC 0x0061 Téléinformation Linky
ZiPulses 0x0107 Compteur d'impulsions (eau, gaz)

🔌 Prises Connectées

Device Type : 0x0107, 0x0101, 0x0061

Marques testées et compatibles

Marque Modèles Mesure énergie Notes Testé
Aqara SP-EUC01, ZNCZ12LM 10A max, capteur température intégré
Sonoff S31 Lite ZB, S40 Lite 15-16A, bon rapport qualité/prix
IKEA TRÅDFRI, Grillplats Répéteur Zigbee
Tuya/Moes Diverses prises Smart Life 16A, économique
Neo Coolcam Plug-007SPB2 Basé Tuya
Nous Smart Zigbee Socket A1Z Version EU
Lidl SilverCrest Smart Plug Basé Tuya
BlitzWolf BW-SHP13 16A, bon routeur Zigbee
Innr SP 120, SP 220, SP 222 Compatible Hue
Osram Smart+
Philips LOM001

Autres prises compatibles (clusters standards)

Tout appareil Zigbee avec Device Type 0x0107, 0x0101 ou 0x0061 utilisant les clusters On/Off (0x0006) et Electrical Measurement (0x0B04) devrait fonctionner.


🪟 Volets Roulants / Stores

Device Type : 0x0202

Marques testées et compatibles

Marque Modèles Notes Testé
NodOn SIN-4-RS-20 Module encastrable, auto-calibration
Tuya/Moes Curtain Switch, Roller Shutter Module Nombreux modèles disponibles
LoraTap SC500ZB, divers modèles Compatible Zigbee2MQTT
Legrand Céliane/Mosaic Zigbee Volet roulant connecté
Aqara Curtain Driver E1 Moteur pour rideaux
Zemismart Roller Shade Motor Moteur tubulaire

Autres volets compatibles (clusters standards)

Tout appareil avec Device Type 0x0202 utilisant le cluster Window Covering (0x0102) avec les commandes Up/Down/Stop.


🌡️ Capteurs Température / Humidité

Device Type : 0x0302

Marques testées et compatibles

Marque Modèles Pression Écran Notes Testé
Aqara WSDCGQ11LM, T1 (TH-S02D) Capteur Sensirion, très précis
Sonoff SNZB-02, SNZB-02D, SNZB-02P ✅ (02D) Économique, écran LCD sur 02D
IKEA VINDSTYRKA, Timmerflotte Qualité de l'air sur VINDSTYRKA
iHorn 113D
Tuya/Moes ZSS-ZK-THL, TS0201, divers Variable Variable Large choix de modèles
Nous E5 Compact
OWON THS317-ET Sonde externe sur câble
Xiaomi/Mijia WSDCGQ01LM ⚠️ Non Zigbee 3.0

Autres capteurs compatibles (clusters standards)

Tout appareil avec Device Type 0x0302 utilisant les clusters Temperature Measurement (0x0402) et Relative Humidity (0x0405).


👁️ Capteurs de Présence / Mouvement

Device Type : 0x0107

Marques testées et compatibles

Marque Modèles Luminosité Type Notes Testé
Aqara RTCGQ11LM, P1 PIR Délai 60-90s
Aqara FP1, FP2 mmWave Détection présence statique, zones
Sonoff SNZB-03 PIR Délai 60s
Sonoff SNZB-06P Radar 5.8GHz Présence statique
Philips Hue Indoor/Outdoor Motion PIR Température intégrée
IKEA TRÅDFRI E1745, Myggspray PIR IP44 (extérieur)
Tuya/Moes ZY-M100, MTG075-ZB Variable mmWave Présence statique

Autres capteurs compatibles (clusters standards)

Tout appareil avec Device Type 0x0107 utilisant le cluster Occupancy Sensing (0x0406).


🔥 Vannes Thermostatiques (TRV)

Compatibilité via clusters standards

Marque Modèles Notes Testé
Moes/Tuya BRT-100, TV01, TRV601 Programmable, détection fenêtre ouverte
Danfoss Ally Haute qualité
Eurotronic Spirit Zigbee
Popp POPZ701721

⚠️ Note : Les TRV utilisent souvent des clusters propriétaires Tuya (TS0601). La compatibilité peut varier selon les modèles.


💡 Ampoules et Éclairage

Compatibilité partielle via cluster On/Off

Marque Notes Testé
IKEA TRÅDFRI / Kajplats - On/Off et dimming
Philips Hue Compatible clusters standards
Innr Compatible Hue et Zigbee standards
Tuya/Moes Nombreux modèles

ℹ️ La LiXee-Box supporte le cluster On/Off (0x0006). Le contrôle des couleurs (cluster 0x0300) n'est pas ecnore implémenté.

❓ Vérifier la Compatibilité

Pour vérifier si un appareil Zigbee est compatible :

  1. Identifiez le Device Type de votre appareil (disponible dans la documentation)
  2. Vérifiez les clusters utilisés par l'appareil
  3. Un appareil est compatible si :
    • Son Device Type correspond à ceux listés ci-dessus
    • Il utilise les clusters standards supportés

📝 Créer un Template Personnalisé

Si votre appareil n'est pas reconnu automatiquement, vous pouvez créer un template personnalisé.

Un fichier modèle est une structure JSON qui définit les états et actions d'un type d'appareil. Le nom du fichier modèle correspond à l'identification de l'appareil (en décimal). Lorsqu'un appareil Zigbee rejoint le réseau, LiXee-Box crée un objet suivant le modèle correspondant avec les états et actions, effectue les liaisons et configure les rapports si nécessaire.

Structure du Modèle

Voici la structure :

├── Modèle d'appareil ou 'default'    
│   ├── status   
│   │   ├── name   
│   │   ├── cluster  
│   │   ├── attribut  
│   │   ├── type   
│   │   ├── unit  
│   │   ├── coefficient   
│   │   ├── visible  
│   │   ├── jauge     
│   │   ├── min  
│   │   ├── max  
│   │   ├── poll  
│   │   ├── mqtt_device_class  
│   │   ├── mqtt_state_class  
│   │   ├── mqtt_icon 
│   ├── action   
│   │   ├── name   
│   │   ├── command  
│   │   ├── endpoint  
│   │   ├── value    
│   │   ├── visible   
│   ├── bind  
│   ├── report  
│   │   ├── cluster   
│   │   ├── attribut  
│   │   ├── type  
│   │   ├── min   
│   │   ├── max  
│   │   ├── timeout   
│   │   ├── change  

Vous pouvez trouver des exemples de modèles dans le répertoire data/tp
Exemple de fichier 24321.json pour l'appareil id (5F01 Hex) :

{
	"lumi.sensor_switch.aq2" : [
	{
		"status" : [
			{
				"name" : "Clic",
				"cluster" : "0006",
				"attribut" : 0
			},
			{
				"name" : "MultiClic",
				"cluster" : "0000",
				"attribut" : 32768
			}
		]
	}
       ],
        "default" : [
	{
		"status" : [
			{
				"name" : "Clic",
				"cluster" : "0012",
				"attribut" : 85
			},
			{
				"name" : "MultiClic",
				"cluster" : "0012",
				"attribut" : 1293
			}
		]
	}
	]
}

Paramètres de Status

Paramètre Obligatoire Type Description
name String Nom d'affichage
cluster String ID du cluster (hex)
attribut Decimal Numéro d'attribut
type String "numeric", "float"
unit String Unité de mesure
coefficient Float Coefficient multiplicateur
jauge String "Gauge", "Battery", "text"
visible Decimal 1 (visible) ou 0 (masqué)
poll Decimal Intervalle d'interrogation (sec)
mqtt_device_class String Classe de périphérique MQTT pour HA
mqtt_state_class String Classe d'état MQTT pour HA
mqtt_icon String Icône MQTT pour HA

Action

Paramètres d'Action

Paramètre Obligatoire Type Description
name String Nom de l'action
command Decimal ID de commande
endpoint Decimal Numéro de point de terminaison
value Decimal Valeur à envoyer
visible Decimal 1 (visible) ou 0 (masqué)

Bind

Liste des clusters (en numérique) qui seront liés exemple : bind : "1026;1029;1794"

Report

Commande Obligatoire Type Valeur Commentaire
cluster String ID du cluster en hexadécimal
attribut Decimal Numéro d'attribut en décimal
type Decimal Correspond au type numérique de l'attribut
min Decimal Temps minimum (en secondes) pour envoyer un rapport
max Decimal Temps maximum (en secondes) pour envoyer un rapport
timeout Decimal En millisecondes
change Decimal Valeur de changement pour envoyer un rapport

🔌 API WEB

Pour accéder aux commandes de l'API, allez sur http:///

Liste des Commandes

Méthodes

getSystem

Requête
curl -X GET 'https://<HOST>/getSystem'\
    -u <username>:<password> \
    -H 'Content-Type: application/json' \
Réponse
{
  "network": {
    "wifi": {
      "enable": 1,
      "connected": 1,
      "mode": 0,
      "ip": "192.168.0.144",
      "netmask": "255.255.255.0",
      "gateway": "192.168.0.254"
    }
  },
  "system": {
    "mqtt": {
      "enable": 1,
      "connected": 1,
      "url": "192.168.0.21",
      "port": 1883
    },
    "webpush": {
      "enable": 0,
      "auth": 0,
      "url": ""
    },
    "marstek": {
      "enable": 1,
      "connected": 0,
      "ip": ""
    },
    "infos": {
      "t": 48.1
    }
  }
}

getDevices

Requête
curl -X GET 'https://<HOST>/getDevices'\
    -u <username>:<password> \
    -H 'Content-Type: application/json' \
Réponse
{
  "00158d0006203a63": {
    "1": {
      "IN": "0,1,3,1026,1794",
      "OUT": "4,3,1794"
    },
    "INFO": {
      "shortAddr": "38694",
      "LQI": "66",
      "device_id": "263",
      "lastSeen": "2025-03-14 14:40",
      "Status": "00",
      "manufacturer": "LiXee",
      "model": "ZiPulses",
      "software_version": "4000-0008"
    },
    "0702": {
      "0": "000000000036"
    },
    "0402": {
      "0": "09F8"
    },
    "0001": {
      "32": "23",
      "33": "C8"
    }
  }
}

getDevice

Requête
curl -X GET 'https://<HOST>/getDevice?id=04cf8cdf3c79ce2b'\
    -u <username>:<password> \
    -H 'Content-Type: application/json' \
Réponse
{
  "04cf8cdf3c79ce2b": {
    "1": {
      "IN": "0,2,3,4,5,6,9,1794,2820",
      "OUT": "10,25"
    },
    "242": {
      "IN": "",
      "OUT": "33"
    },
    "INFO": {
      "shortAddr": "5561",
      "LQI": "5C",
      "device_id": "97",
      "lastSeen": "2025-03-13 19:30",
      "Status": "00",
      "manufacturer": "LUMI",
      "model": "lumi.plug.maeu01",
      "software_version": "22"
    }
  }
}

getLinky

Requête
curl -X GET 'https://<HOST>/getLinky'\
    -u <username>:<password> \
    -H 'Content-Type: application/json' \
Réponse
{
  "65382_768": 0,
  "1794_0": 28870881,
  "1794_256": 28870881,
  "1794_258": 0,
  "1794_260": 0,
  "1794_262": 0,
  "1794_264": 0,
  "1794_266": 0,
  "2820_1295": 1560,
  "2820_1293": 0,
  "1794_32": "TH..",
  "1794_776": "022161823588",
  "2817_13": 45,
  "2817_14": 0,
  "2820_1288": 6,
  "2820_1290": 90,
  "65382_0": "BASE",
  "65382_1": "",
  "65382_2": "00",
  "65382_3": 0,
  "65382_4": 0,
  "65382_5": 0
}

getTemplates

Requête
curl -X GET 'https://<HOST>/getTemplates'\
    -u <username>:<password> \
    -H 'Content-Type: application/json' \
Réponse
{
  "24321.json": {
    "lumi.sensor_switch.aq2": [
      {
        "status": [
          {
            "name": "Clic",
            "cluster": "0006",
            "attribut": 0
          },
          {
            "name": "MultiClic",
            "cluster": "0000",
            "attribut": 32768
          }
        ]
      }
    ],
    "default": [
      {
        "status": [
          {
            "name": "Clic",
            "cluster": "0012",
            "attribut": 85
          },
          {
            "name": "MultiClic",
            "cluster": "0012",
            "attribut": 1293
          }
        ]
      }
    ]
  },.........
}

📦 Installation du Firmware

Installez simplement esptools et exécutez cette commande

Windows

esptool.py.exe --chip esp32s3 --port "COMXX" \
	 --baud 460800 \
	 --before default_reset --after hard_reset write_flash -z \
	 --flash_mode dio --flash_freq 40m --flash_size 16MB \
	 0x0 bootloader.bin \
	 0x8000 partitions.bin \
	 0xe000 boot_app0.bin \
	 0x10000 firmware.bin \
	 0x910000 littlefs.bin

Linux

esptool.py --chip esp32s3 \
--port /dev/ttyUSB0 \
--baud 460800 \
--before default-reset \
--after hard-reset \
write-flash -z \
--flash-mode dio \
--flash-freq 40m \
--flash-size 16MB \
0x0 bootloader.bin \
0x8000 partitions.bin \
0xe000 boot_app0.bin \
0x10000 firmware.bin \
0x910000 littlefs.bin

🏠 Intégration Home Assistant

LiXee-Gateway est compatible avec la découverte MQTT de Home Assistant.

Allez simplement dans le menu Passerelle --> MQTT et activez la fonctionnalité

Remplissez le formulaire :

  • Serveur MQTT
  • Port MQTT
  • Nom d'utilisateur MQTT
  • Mot de passe MQTT

Puis cliquez sur Home-Assistant et Sauvegarder
Attendez un moment et si tout est correct, l'icône de connexion deviendra verte.

Ensuite, allez dans le menu Réseau --> Zigbee

Pour chaque appareil Zigbee, un nouveau bouton MQTT Discover apparaît. Veuillez cliquer dessus pour créer un nouveau périphérique sur HA. Et voilà.

Attendez un moment et allez dans vos périphériques MQTT HA :

DEBUG

Il est possible de débugger l'application en branchant le matériel sur le port USB d'un ordinateur Utilisez putty.exe image

  • Entrer le port "Serial line" : COMXX
  • Entrer la vitesse "Speed" : 115200
  • Sélectionner "Serial"
  • Appuyer sur "Open"

Crédits

Merci à tous les auteurs des bibliothèques tierces utilisées dans ce projet :

Merci à ZigStar pour la mise à jour OTA

V1.0a

  • Source init

About

a multi protocols gateway for zigbee devices

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors