{"id":25916020,"url":"https://github.com/fairecasoimeme/lixee-box","last_synced_at":"2026-06-08T15:33:11.338Z","repository":{"id":277990129,"uuid":"914866101","full_name":"fairecasoimeme/LiXee-Box","owner":"fairecasoimeme","description":"a multi protocols gateway for zigbee devices","archived":false,"fork":false,"pushed_at":"2026-06-02T12:10:52.000Z","size":122763,"stargazers_count":13,"open_issues_count":5,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-06-02T13:27:06.339Z","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":"changelog.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-10T13:21:00.000Z","updated_at":"2026-06-02T11:49:26.000Z","dependencies_parsed_at":"2025-05-05T17:17:23.950Z","dependency_job_id":"025a456f-1ffc-4fdd-b712-4b17c8374517","html_url":"https://github.com/fairecasoimeme/LiXee-Box","commit_stats":null,"previous_names":["fairecasoimeme/lixee-gateway","fairecasoimeme/lixee-box"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/fairecasoimeme/LiXee-Box","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fairecasoimeme","download_url":"https://codeload.github.com/fairecasoimeme/LiXee-Box/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairecasoimeme%2FLiXee-Box/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34069491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-03-03T12:18:52.036Z","updated_at":"2026-06-08T15:33:11.323Z","avatar_url":"https://github.com/fairecasoimeme.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LiXee-Box\nLittle Universal Smarthome Box with ESP32S3 MCU and ZiGate (Zigbee Radio MCU)\n\n⚠️ **WARNING : The actual version is in testing mode and not a release yet.**\n\n## Compatibility\nThis application can be used with :  \n* [LiXee-ZiWifi32](https://lixee.fr/produits/41-lixee-ziwifi32-3770014375162.html)  (WiFi only)\n    * The zigbee radio is a ZiGate.  \n* LiXee-Ethernet32  (WiFi / Ethernet) (In progress)\n    * The zigbee radio must be : ZiGate (with PiZiGate). \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-Box.  \n\n### Use case n°1\nYou need to visualize and control your consumption (electricity / gaz / water) with a screen\n\n### Use case n°2\nYour Linky counter is very far and Zigbee protocol is too light to transport datas to the coordinator. You can use LiXee-Box like a gateway Zigbee/WiFi.  \n**Linky (ZLinky) \u003c--\u003e Zigbee \u003c--\u003e LiXee-Box \u003c--\u003e WiFi \u003c--\u003e MQTT \u003c--\u003e Home-Assistant / Jeedom / Domoticz**\n\n### Use case n°3\nYou need to relay zigbee devices datas to the cloud (with Web API)\n\n## Features\nThe main feature is to get a mini smarthome box with **energy management**.  \nBased on ESP32S3, you can manage, configure and act with your smarthome accross a Web browser (tablet / mobile / computer)\n\nYou can :  \n* Manage a [ZLinky_TIC](https://github.com/fairecasoimeme/Zlinky_TIC) for electricity consumption and production.\n  * Management of subscriptions and prices\n  * Graphs and gauges of consumption and power consumed according to a time base\n  * Consumption trend display\n* Manage a [ZiPulses](https://github.com/fairecasoimeme/ZiPulses/) for water and gas consumption management \n  * Prices management \n  * Graphs and gauges \n* Manage ZigBee devices\n  * Object creation\n  * Template creation\n  * Status and actions management\n* Time management by NTP\n* MQTT API management\n  * Server / Port / user / password /topic header customisable\n  * MQTT discover available (Home Assistant)\n* Rules management (in progress)\n* Notification management (in progress)\n* Update OTA\n* Backup / Restore datas\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 : **LiXeeBox-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-box`\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-Box 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## How to backup/restore\nJust click on `Tools` menu then `Backup`  \n\n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/screenshots/backup_restore.png\" width=\"800\"\u003e  \n\nYou can do a backup with clicking on `Create Backup` button. Wait a moment and a tar file appears. Then click on the link to download the backup.  \nTo do a restore, please click on `Choose backup...` and click on `Restore`button.  \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 lixee-box.bin`\n\n## Screenshots\n\n### Status Energy\n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/screenshots/StatusEnergy_3.png\" width=\"1024\"\u003e  \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### Config Gaz\n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/screenshots/ConfigGeneralGaz.png\" width=\"1024\"\u003e  \n\n### Dashboard \n\u003cimg src=\"https://github.com/fairecasoimeme/LiXee-Box/blob/master/doc/screenshots/dashboard.png\" width=\"480\"\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"}