Very basic HomeKit bridge for WeatherFlow Tempest Weather Station.
Uses an ESP32 based microcontroller to listen to the UDP packets sent from a Tempest bridge and relays them out as HomeKit HAP Notifications. No internet connection required and everything stays local.
-
Open the Arduino sketch
WeatherFlowHK.ino
in the Arduino IDE -
Install both the HomeSpan and ArduinoJson libraries
Sketch > Include Libraries > Manage Libraries
-
Follow the directions here to install the various ESP32 boards or install whatever is relevant to your specific board and select the board you are using from
Tools > Board > ESP32 Arduino > Your Board
-
Upload the sketch to the board with Sketch > Upload or click the little arrow pointing right in the top left corner of the window
- Open the Serial Monitor by clicking the magnifying glass in the top right of the window or Tools > Serial Monitor
- Change the line ending to Newline and the baud to 115200 (bottom right of the Serial Monitor)
- Type "W" into the serial input and press Send or press the enter key on your keyboard then follow the prompts
Add the device like you would any other accessory by using your camera to scan the code above or typing 466-37-726
in manually
**Optional: Set your own code within the Serial Monitor by typing "S"**
There are currently no services in the HomeKit specification that display anything other than temperature, humidity, and light levels. Hopefully that will eventually change, but until then rain, wind, and lightning are simulated buttons to trigger actions. The thresholds are currently hardcoded but will eventually be adjustable via a small webpage served from the device.
Action | Trigger |
---|---|
Single Press | Wind over 10m/s (~22mph) |
Double Press | Nothing |
Long Press | Nothing |
Action | Trigger |
---|---|
Single Press | Every event |
Double Press | Only if last SENT event was more than 5 seconds ago |
Long Press | Only if last SENT event was more than 10 seconds ago |
Note: this is only the last by the last event announced to HomeKit. This will be eventually changed to last received event.
Action | Trigger |
---|---|
Single Press | Every event |
Double Press | Nothing |
Long Press | Nothing |
- Add save most resent values to NVS for better numbers upon reboot
- Add webserver for adjusting event thresholds
- Display more info via sensor names e.g. "Wind: 1.4m/s"
- Support for Air and Sky
- Add optional BLE subscription to hub
Uses the wonderful HomeSpan library for HomeKit functionality and ArduinoJSON for parsing the UDP datagrams.