xyzroe / ZigStarGW-FW

ZigStar LAN Gateway - Firmware
GNU General Public License v3.0
88 stars 24 forks source link
cc2650 esp32 gateway zigbee

Note

As you can see, this project has not been updated for some time, and it's now transitioning to archival status. πŸ›

I'm pleased to introduce a modern alternative: XZG Firmware, which is currently in its final testing stage. πŸš€

I invite everyone to participate and share their feedback to ensure the best possible product. Join new Telegram group to share your experiences and feedback. πŸ’Œ

If you're reading this from your ZigStar web interface, you can seamlessly update directly while preserving your existing settings. πŸ‘Ύ

We thank you for being part of our community and are excited to see you upgrade to the latest and greatest platform! 🀝

Stand with Ukraine

Stand With Ukraine

GitHub version GitHub download License

ZigStar LAN Gateway - Firmware

This firmware delevoped to use with ZigStar LAN Gateway

Functions


Web installer πŸš€


MQTT

Topics

ZigStarGW-XXXX/avty

Contains the current state of the gateway connection to the MQTT broker.
When a connection is established, the payload online is published.

Using the Last Will and Testament (LWT) mechanism, if the connection is broken,
the MQTT broker will publish offline payload within 30 seconds.

ZigStarGW-XXXX/state

Contains information about the gateway. Publish every N seconds. It is set in the MQTT setting - "Update interval".
Payload example:
{"uptime":"0 d 00:00:08","temperature":"45.67","ip":"10.0.10.130","emergencyMode":"ON","hostname":"ZigStarGW"}

ZigStarGW-XXXX/cmd

Publishing messages to this topic allows you to control your gateway via MQTT. Possible commands:
{cmd:"rst_zig"} - restart Zigbee module
{cmd:"rst_esp"} - restart ESP32
{cmd:"enbl_bsl"} - enable BSL in Zigbee module

ZigStarGW-XXXX/io/rst_zig, rst_esp, enbl_bsl, emrgncMd

Status topics contain the current state of various operating modes of the gateway.
Possible states: ON or OFF



## Auto Discovery There is also a MQTT AutoDiscovery function. The following entities are available: - homeassistant/sensor/* - Uptime - IP - CPU temperature - Hostname - homeassistant/binary_sensor/* - Socket - Emergency mode - homeassistant/switch/* - Restart ESP - Restart Zigbee - Enable BSL In the Home Assistant, in the device information section, the board model and software version will also be available.


Development

Project's build environment is based on PlatformIO. So just open platformio.ini using it.

After build PlatformIO will generate 2 file in bin folder: ZigStarGW_v..*.full.bin - with integrated bootloader and partitions table bin/ZigStarGW.bin - just firmware.

Version increment made automatically by using version_increment_pre.py calling from PlatformIO and version_increment_post.py calling while Git pre commit. Use make_git_hook.sh to made it automatically.

You can not simply edit Web UI files because you will need to convert them to C arrays, which can be done automatically by a gulp script that can be found in tools/webfilesbuilder directory.

If you want to edit Web UI you will need:

Gulp script also minifies CSS and JS files and compresses (gzip) them.

To minify and compress the frontend, enter the folder tools/webfilesbuilder and:

Like β™₯️?

"Buy Me A Coffee"

Thanks

Base code was taken from ZiGate-Ethernet

Some ideas and code snippets was taken from esp-rfid