The software is based on HomeSpan and RTL_433_ESP libraries.
Warning Don't expect any warranties. I am just a hobbyist, not a professional. It works for me, but you take your own risk using it. I am not liable for any damage to your devices.
-
Custom PCB (BOM inside) from this project
or
any ESP32 Dev board e.g. ESP32-DevKitC V4 board
-
E07-M1101D 433 MHz Wireless module
If you are using a dev board, you will need to connect the wireless module to some specific pins of ESP32.
ESP32 Module
---------------------
GPIO18 SCK
GPIO19 MISO
GPIO23 MOSI
GPIO5 CS
GPIO22 GDO0
GPIO4 GDO2
If you are using a dev board, you can utilize any pins you want or not use them at all. There is a control button to be able to reset the device, WIFI or HomeKit configuration. The status pin shows the current state of the device. More info on the status LED and control button is in HomeSpan User Guide](https://github.com/HomeSpan/HomeSpan/blob/master/docs/UserGuide.md). Three additional LEDs are blinking on the received signal on any of the channels. To redefine the pins for the dev board edit the following in the sketch:
#ifdef DEV_BOARD
#define LED_CH1 13
#define LED_CH2 21
#define LED_CH3 17
#define LED_STATUS 16
#define BUTTON_PIN 15
- Install PlatformIO Core and VSCode Plugin (setup I am using and tested the instructions on) or PlatformIO IDE with built-in Core.
- Clone this repository
In the
platformio.ini
file set the default environment toesp32_dev_board
oresp32_custom_pcb
depending on the board you are using.[platformio] default_envs = esp32_custom_pcb
- Build the firmware with a dedicated button in the PlatformIO extension or with the command
pio run
- Upload the firmware with a dedicated button in the PlatformIO extension or with the command
pio run --target upload
- You can monitor the serial output to check everything is working as intended with a dedicated button in the PlatformIO extension or with the command
pio run --target monitor
Custom PCB is designed for the project. Currently for regular ESP32 boards.
- Plug your LED Controller to power
- The access point should start automatically.
Note Later you can manually enter configuration mode (More on HomeSpan User Guide)
- Go to WiFi settings on your iPhone/iPad and connect to the "HomeSpan-Setup" WiFi network
- You will choose your WiFi network and set the setup code for the accessory
- Go to your Home app and select "Add Accessory"
- Select "More Options" and you should see your RF Weather Bridge there
When adding to HomeKit it will add the unsupported device called RF Weather Bridge Settings with device settings (3rd party apps like Eve support this and can be used for configuration). Available custom characteristics:
- Toggle whether to blink the LEDs on receive
- Showing the IP address the device is connected to Set the number of channels, on which you want to receive (created an accessory for each channel). Can be set as 1 to 3
- Toggle to reboot the device (to reload the device if you change the number of channels)
The device will throw a Status Fault in Eve app if there are no sensor updates for 5 minutes.
Characteristics values are saved to NVS, so they will be restored if the device loses power.
The web server update was implemented. You can flash binary at http://[DEVICE IP]/update
.
There is a reboot link. Opening http://[DEVICE IP]/reboot
will force the device to reboot.
The device can also be controlled by the button on the board. More on HomeSpan User Guide
- Add a USB-to-Serial converter to the board
- Make more space for flashing pin headers
- @HomeSpan for ESP32 HomeKit firmware GitHub link
- @NorthernMan54 for rtl_433_ESP library GitHub link
Although already forbidden by the sources and subsequent licensing, it is not allowed to use or distribute this software for commercial purposes.