Create your smart device 🪄
Connect your ESP32 / ESP8266 microcontroller to the USB port of this computer, select the desired firmware version, and click the "Create device" button to upload HomeGenie Mini firmware to the device.
1. Select device type
2. Select firmware flavor
3. Let the magic happen!
Installing firmware directly from this page works only in browsers with Web Serial API enabled.
Pre-built firmwares are automatically generated from source code via GitHub Workflow and can also be downloaded directly from the repository releases page.
Custom firmware 🚀
The firmware can also be built from source using Platform.IO core (pio
command line utility).
You can easily edit and customize included examples or build your own device from scratch including HomGenie Mini library in your code.
After installing Platform.IO core, download HomeGenie Mini source code, unzip it and open a terminal with the current directory set to homegenie-mini
folder.
Then enter the following commands to install libraries required to build the firmware:
pio update
pio lib install
To actually build and install HomeGenie Mini firmware, connect your ESP device to your PC's USB port and issue the command:
pio run -e default -t upload
Configuration environments
The option -e default
shown in the previous command is used to specify the configuration environment. The default environment is for building the base firmware for a generic ESP32 board.
To list all available configurations enter the following command:
pio project config
By editing the platformio.ini
file is possible to add custom configuration environment to build your own version of the firmware to support different hardware and functionality.
Monitoring via serial port
When the device is connected to your PC's USB port, you can monitor its activity logs by entering the following command::
pio device monitor -b 115200
Example output
[1970-01-01T00:00:00.055Z] HomeGenie Mini 1.2.0
[1970-01-01T00:00:00.056Z] Booting...
[1970-01-01T00:00:00.057Z] + Starting HomeGenie service
[1970-01-01T00:00:00.068Z] + Starting NetManager
[1970-01-01T00:00:00.068Z] | - Connecting to WI-FI .
[1970-01-01T00:00:00.187Z] | - WI-FI SSID: HG-NET
[1970-01-01T00:00:00.188Z] | - WI-FI Password: *
[1970-01-01T00:00:00.214Z] | x WiFi disconnected
[1970-01-01T00:00:00.774Z] | ✔ HTTP service
[1970-01-01T00:00:00.784Z] | ✔ WebSocket server
[1970-01-01T00:00:00.786Z] | ✔ MQTT service
[1970-01-01T00:00:00.791Z] @IO::GPIO::GPIOPort [Status.Level 0]
[1970-01-01T00:00:00.792Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address '14' event 'Status.Level']
[1970-01-01T00:00:00.807Z] @IO::GPIO::GPIOPort [Status.Level 0]
[1970-01-01T00:00:00.809Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address '27' event 'Status.Level']
[1970-01-01T00:00:00.822Z] READY.
[1970-01-01T00:00:00.823Z] @IO::Sys::Diagnostics [System.BytesFree 147128]
[1970-01-01T00:00:00.835Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']
[1970-01-01T00:00:00.848Z] :Service::EventRouter dequeued event >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']
[2023-12-29T17:01:11.050Z] | - RTC updated via TimeClient (NTP)
[2023-12-29T17:01:11.053Z] | ✔ UPnP friendly name: Bagno
[2023-12-29T17:01:11.054Z] | ✔ SSDP service
[2023-12-29T17:01:11.200Z] | - Connected to 'HG-NET'
[2023-12-29T17:01:11.201Z] | - IP: 192.168.x.y
[2023-12-29T17:01:15.048Z] @IO::Sys::Diagnostics [System.BytesFree 143268]
[2023-12-29T17:01:15.049Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']
[2023-12-29T17:01:15.063Z] :Service::EventRouter dequeued event >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']