{"id":25448861,"url":"https://github.com/fairecasoimeme/LiXee-Box","last_synced_at":"2025-11-02T01:30:28.983Z","repository":{"id":277990129,"uuid":"914866101","full_name":"fairecasoimeme/LiXee-Gateway","owner":"fairecasoimeme","description":"a Web API and/or MQTT gateway for zigbee devices","archived":false,"fork":false,"pushed_at":"2025-02-17T11:23:16.000Z","size":30358,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T12:27:55.302Z","etag":null,"topics":["api","gateway","lixee","mqtt","web","zigate","zigbee"],"latest_commit_sha":null,"homepage":"https://lixee.fr","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fairecasoimeme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-10T13:21:00.000Z","updated_at":"2025-02-17T11:23:23.000Z","dependencies_parsed_at":"2025-02-17T12:38:28.877Z","dependency_job_id":null,"html_url":"https://github.com/fairecasoimeme/LiXee-Gateway","commit_stats":null,"previous_names":["fairecasoimeme/lixee-gateway"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fairecasoimeme","download_url":"https://codeload.github.com/fairecasoimeme/LiXee-Gateway/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239358521,"owners_count":19625502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","gateway","lixee","mqtt","web","zigate","zigbee"],"created_at":"2025-02-17T20:15:24.137Z","updated_at":"2025-11-02T01:30:28.915Z","avatar_url":"https://github.com/fairecasoimeme.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LiXee-WebMQTT-Gateway\n a Web API and/or MQTT gateway for zigbee devices\n\n\n## Hardware compatibility\nThis application can be used with :  \n* [LiXee-ZiWifi32](https://lixee.fr/produits/41-lixee-ziwifi32-3770014375162.html)  (WiFi only)\n  The device is based on :\n  * ESP32-S3-WROOM-N16R8 (PSRAM: 8Mo Flash: 16Mo)\n  * JN5189 with [ZiGate v2 firmware](https://github.com/fairecasoimeme/ZiGatev2)\n\n      \nObviously, you can use this code with **ESP32S3** chip but depend on your board pins connexions. \n\n## Operating diagram\n\n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/LiXee-Box_Schema.png\" width=\"1024\"\u003e  \n\n## Uses cases example\n\nHere is a list of some use cases which can be used with **LiXee-WebMQTT-Gateway**.  \n\n### Use case n°1\nYour Linky counter is very far and Zigbee protocol is too light to transport datas to the coordinator.\n**Linky (ZLinky) \u003c--\u003e Zigbee \u003c--\u003e LiXee-WebMQTT-Gateway \u003c--\u003e WiFi \u003c--\u003e MQTT \u003c--\u003e Home-Assistant / Jeedom / Domoticz / other**\n\n### Use case n°2\nYou need to relay zigbee devices datas to the cloud (with Web API)\n\n## Features\nThe main feature is to relay Zigbee device datas to a website or a MQTT service\n\nThe device can be configured with a local website\n\nYou can :  \n* Manage ZigBee devices\n  * Object creation\n  * Template creation\n  * Status and actions management\n* MQTT API management\n  * Server / Port / user / password /topic header customisable\n  * MQTT discover available (Home Assistant)\n* WebPush API management\n  * Url / user / password\n  * POST method with JSON format\n* Update OTA\n\n\n## First start  \n\n1. Plug the device on a USB power.\n2. Use a mobile/computer and scan the WiFi\n3. Connect to the SSID : **LIXEEGW-XXXX** (XXXX correspond to a part of unique @MAC)\n4. By default, the password is : **adminXXXX** (XXXX correspond to the ssid XXXX)\n5. Connected to the WiFi SSID, you can open a web navigator and type in URL label : `http://lixee-gw`\n6. Normally, you will redirect to the WiFi config page\n7. Scan your SSID WiFi box and fill the form to complete configuration\n8. Reboot the device\n\n## Pair a device\n\n1. With you web navigator, you can go to `Config` menu then `Devices`  \n2. You can click on `Add Device` button. The ZiGate coordinator begin the `Permit Join` procedure for 30 seconds.   \n3. The blue LED of your device blink slowly.  \n4. Now, you can execute the pairing device procedure.\n   \n⚠️ **If a device is paired, a green alert appears. You can refresh to see devices properties.**  \n  \n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/screenshots/ConfigDevices_1.png\" width=\"800\"\u003e  \n\n## How to template a new zigbee device\n\nA template file is a JSON structure which give status and actions to a device type. The name of the template file corresponds to the device identification (decimal).\nWhen a Zigbee device is joining, **LiXee-WebMQTT-Gateway** create an object following the corresponding template with status and actions, binding and configure reporting if it is necessary.\n\n### Structure\nHere is the structure :\n\n    ├── Device model or 'default'    \n    │   ├── status   \n    │   │   ├── name   \n    │   │   ├── cluster  \n    │   │   ├── attribut  \n    │   │   ├── type   \n    │   │   ├── unit  \n    │   │   ├── coefficient   \n    │   │   ├── visible  \n    │   │   ├── jauge     \n    │   │   ├── min  \n    │   │   ├── max  \n    │   │   ├── poll  \n    │   │   ├── mqtt_device_class  \n    │   │   ├── mqtt_state_class  \n    │   │   ├── mqtt_icon \n    │   ├── action   \n    │   │   ├── name   \n    │   │   ├── command  \n    │   │   ├── endpoint  \n    │   │   ├── value    \n    │   │   ├── visible   \n    │   ├── bind  \n    │   ├── report  \n    │   │   ├── cluster   \n    │   │   ├── attribut  \n    │   │   ├── type  \n    │   │   ├── min   \n    │   │   ├── max  \n    │   │   ├── timeout   \n    │   │   ├── change  \n\nYou can find Template examples in `data/tp` directory  \nExample of 24321.json device id (5F01 Hex) :\n```json\n{\n\t\"lumi.sensor_switch.aq2\" : [\n\t{\n\t\t\"status\" : [\n\t\t\t{\n\t\t\t\t\"name\" : \"Clic\",\n\t\t\t\t\"cluster\" : \"0006\",\n\t\t\t\t\"attribut\" : 0\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\" : \"MultiClic\",\n\t\t\t\t\"cluster\" : \"0000\",\n\t\t\t\t\"attribut\" : 32768\n\t\t\t}\n\t\t]\n\t}\n       ],\n        \"default\" : [\n\t{\n\t\t\"status\" : [\n\t\t\t{\n\t\t\t\t\"name\" : \"Clic\",\n\t\t\t\t\"cluster\" : \"0012\",\n\t\t\t\t\"attribut\" : 85\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\" : \"MultiClic\",\n\t\t\t\t\"cluster\" : \"0012\",\n\t\t\t\t\"attribut\" : 1293\n\t\t\t}\n\t\t]\n\t}\n\t]\n}\n```\n\n### Status\n\n|Command|Mandatory|Type|Value|Comment|\n|-------|---------|----|-----|-------|\t\t\t\n|name|x|String||string character|   \n|cluster|x|String||cluster id in hexadecimal|  \n|attribut|x|Decimal||attribute number in decimal|  \n|type| |String|\"numeric\",\"float\"| only if you want manage numeric value| \n|unit| |String|\"\"| only for numeric type| \n|coefficient| |float|| only for numeric type| \n|jauge| |String|\"Gauge\" / \"Battery\"| only for numeric type| \n|min| |Decimal|| only for jauge = \"Gauge\"| \n|max| |Decimal|| only for jauge = \"Gauge\"| \n|visible| |Decimal|1 or 0| only if you want to display on dashboard| \n|poll| |Decimal|| number of seconds if you want to poll the device| \n|mqtt_device_class| |String|| could be \"energy\", \"power\", \"apparent_power\" (see mqtt discover HA webpage)| \n|mqtt_state_class| |String|| could be \"total_increasing\", \"measurement\" (see mqtt discover HA webpage)| \n|mqtt_icon| |String|| could be \"transmission-tower\", \"lightning-bolt\" (see mqtt discover HA webpage)| \n\n\n### Action\n\n|Command|Mandatory|Type|Value|Comment|\n|-------|---------|----|-----|-------|\t\t\t\n|name|x|String||string character|   \n|command|x|Decimal|146|command id in decimal value|  \n|endpoint|x|Decimal||endpoint number in decimal|  \n|value|x|Decimal||value sent in decimal| \n|visible| |Decimal|1 or 0| only if you want to display button on dashboard| \n\n### Bind\nList of cluster(in numeric) which will be binded\nexample : `bind : \"1026;1029;1794\"`\n\n### Report\n\n|Command|Mandatory|Type|Value|Comment|\n|-------|---------|----|-----|-------|\t\t\t\n|cluster|x|String||cluster id in hexadecimal|  \n|attribut|x|Decimal||attribute number in decimal|  \n|type|x|Decimal|| Correspond to the numeric type of attribut| \n|min|x|Decimal||min time (in second) to send report| \n|max|x|Decimal||max time (in second) to send report| \n|timeout| |Decimal|| in millisecond| \n|change| |Decimal|| change value to send report| \n\n\n## How to flash release\nJust install esptools and run this command\n\n### Windows\n\n`esptool.py.exe --chip esp32 --port \"COMXX\" --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size 16MB 0x1000 bootloader.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 firmware.bin`\n\n## Screenshots\n\n### Status network\n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/screenshots/StatusNetwork.png\" width=\"1024\"\u003e  \n\n### Config Wifi\n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/screenshots/ConfigWifi.png\" width=\"1024\"\u003e  \n\n\n## Changelog\n\n### V1.0a\n* Initial source \n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffairecasoimeme%2FLiXee-Box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffairecasoimeme%2FLiXee-Box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffairecasoimeme%2FLiXee-Box/lists"}