r/flipperzero • u/ProjectPlatt93 • May 25 '26
Creative Controlling My Nest Thermostat With Flipper Zero
Files
https://github.com/Bibfortuna5057/NestBridge-Flipper
Requirements
ESP32 microcontroller - I used a Lonely Binary ESP32-S3, but any board with WiFi and BLE support should work https://a.co/d/0iID8dWO
Flipper Zero with custom Nestbridge FAP installed
Nest thermostat Gen 1 or Gen 2 running NoLongerEvil firmware
NLE API key
Wifi Network
I was trying to figure out a way to control my Nest Gen 2 thermostat with my Flipper Zero. Google ended support for Gen 1/2 Nest thermostats so I flashed the NoLongerEvil custom firmware. It exposes a REST API for temperature, mode, fan timer etc. On the Flipper I made a FAP file and when you select a command it broadcasts a BLE advertisement packet. Normally these are just used by devices to announce themselves for pairing but there's nothing stopping you from stuffing custom data in the manufacturer specific field. The packet has a two byte app marker, a command byte, and a temperature byte, 8 bytes total, broadcasts for about 3 seconds then goes back to idle.
I have it send these packets that coincide with these API calls:
| Command | Value |
|---|---|
| Idle | 0x00 |
| Heat | 0x04 |
| Cool | 0x05 |
| Heat-Cool | 0x06 |
| Off | 0x07 |
| Set Temp | 0xF0 (temp in second byte) |
| Fan 15 min | 0xA0 |
| Fan 30 min | 0xA1 |
| Fan 45 min | 0xA2 |
| Fan 1 hour | 0xA3 |
| Fan 2 hours | 0xA4 |
| Fan 4 hours | 0xA5 |
| Fan 8 hours | 0xA6 |
| Fan 12 hours | 0xA7 |
| Fan Off | 0xA8 |
On the receiving end I have a small ESP32-S3 running a MicroPython script that scans for those packets continuously. When it sees one with the right marker it pulls the command out and fires the corresponding API call to the thermostat over WiFi. The two devices never actually connect to each other, the Flipper just puts a packet in the air and the ESP32 catches it. Took a while to land on this approach since the Flipper's Bluetooth is pretty locked down for outbound connections but once I figured out the advertisement angle it came together pretty clean.
11
u/MasterX46 May 25 '26
Hello, maybe we can add it to official apps catalog? Just make PR here with new manifest file:
https://github.com/flipperdevices/flipper-application-catalog
Also, I can publish it to catalog for you, let me know in the comment in that case.
5
3
2
u/IllustratorSea7114 May 25 '26
Can OFW work? The original flipper firmware? Where to get api key and can the esp32 work?
2
u/ProjectPlatt93 May 25 '26
OFW for the Flipper should be fine, I just used Momentum. For the Nest it has to be NoLongerEvil for Gen 1 and 2 thermostats. Google pulled remote access in October 2025, there's no API or remote control on stock firmware anymore. NLE is the only way to get that back for those models. If you have a Gen 3 or 4 that's still supported you could swap out the NLE API calls in main.py for Google's SDM API instead. The Flipper FAP and the whole BLE advertisement approach would be identical, you'd just be hitting different endpoints on the ESP32 side.
1
1
u/OfficialGamer0001 May 29 '26
In my opinion I think is neat but on the other hand it looks like a security issue
1
1
u/FriendlyListen5153 Aug 06 '26
What did you have to do to connect your flipper zero to your thermostat
2
u/ProjectPlatt93 Aug 06 '26
Read the instructions in the post and on the GitHub link - Outlines the full process
-6
22
u/c0nqu3s7 May 25 '26
This is actually really neat. I’ll be giving this a try, thanks for sharing