• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

Native ESP8266 BrewPi Firmware - WiFi BrewPi, no Arduino needed!

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Maybe there's a non-Belkin device programming app out there already?

"There are ways to interface with WeMo devices programmatically, though they primarily rely on the devices' underlying communication protocols rather than a formally published "developer API" from Belkin. Specifically, WeMo devices utilize the Universal Plug and Play (UPnP) protocol over HTTP. This allows for discovery of WeMo devices on the local network and communication using SOAP actions.

While Belkin doesn't provide a fully documented public API for general development, the community has filled the gap by developing libraries and tools that interact with WeMo devices using UPnP and SOAP:
  • Libraries in various languages: You can find libraries in different programming languages that simplify communication with WeMo devices. For instance, there's a C# library called WeMosDef and a Python module called PyWeMo.
  • UPnP Interaction: The devices themselves expose a SOAP API for retrieving data and controlling them. You can discover WeMo devices on the network using a UPnP broadcast and then access their services and actions.
  • REST API Wrappers: Some projects have wrapped the UPnP/SOAP interactions into simpler REST APIs, making it easier to control WeMo devices with HTTP GET calls.
  • Third-party Integrations: Platforms like Home Assistant have built-in integrations for WeMo devices, often leveraging the same underlying communication methods.
It's important to note that while these methods allow for programmatic control of WeMo devices, Belkin could potentially make changes to the device firmware in the future that could affect compatibility. "
 
Maybe there's a non-Belkin device programming app out there already?

"There are ways to interface with WeMo devices programmatically, though they primarily rely on the devices' underlying communication protocols rather than a formally published "developer API" from Belkin. Specifically, WeMo devices utilize the Universal Plug and Play (UPnP) protocol over HTTP. This allows for discovery of WeMo devices on the local network and communication using SOAP actions.

While Belkin doesn't provide a fully documented public API for general development, the community has filled the gap by developing libraries and tools that interact with WeMo devices using UPnP and SOAP:
  • Libraries in various languages: You can find libraries in different programming languages that simplify communication with WeMo devices. For instance, there's a C# library called WeMosDef and a Python module called PyWeMo.
  • UPnP Interaction: The devices themselves expose a SOAP API for retrieving data and controlling them. You can discover WeMo devices on the network using a UPnP broadcast and then access their services and actions.
  • REST API Wrappers: Some projects have wrapped the UPnP/SOAP interactions into simpler REST APIs, making it easier to control WeMo devices with HTTP GET calls.
  • Third-party Integrations: Platforms like Home Assistant have built-in integrations for WeMo devices, often leveraging the same underlying communication methods.
It's important to note that while these methods allow for programmatic control of WeMo devices, Belkin could potentially make changes to the device firmware in the future that could affect compatibility. "

The issue isn’t controlling the devices once they’re on a network (I already control them completely locally using BrewPi-ESP) - it’s provisioning them. I think (but would be happy to be corrected if I’m wrong!) that the only way to attach them to a WiFi network is using their app.

I vaguely recall there being a method using a captive AP (similar to BrewPi-ESP and TiltBridge) back when the devices were first released, but don’t think this still exists. Again - it’s been awhile since I set one of these up, so happy to be proven wrong.

Wifi BrewPi do not need Wemos, any ESP-12 will do.
Just add the voltage reg and a usb-ttl addapter for programming.

This is certainly a possibility - but I’m hoping to keep a fully “solder free” (or said differently: “off the shelf, minimal work”) option for those who prefer it. The #1 benefit from the Wemos plugs was that they were almost plug and play for end users. Once they were on your network, BrewPi-ESP would see them and they would just work. Pair them with a M5 Stick C, Tilt, and Inkbird Bluetooth temperature sensor, and you had a complete BrewPi build that required zero “building” (soldering, mains wiring, plugging cables together, etc.) at all.
 
Is there any way to flash the S2? One of my 8266s died and I very stupidly bought a bunch of S2s as backups.
 
Is there any way to flash the S2? One of my 8266s died and I very stupidly bought a bunch of S2s as backups.
What do you mean? The ESP32-S2 is supported in BrewFlasher, so you should be able to just use it.

If you're having trouble flashing them, it's likely due to the fact that most modules rely on the ESP32-S2's built in USB support rather than bundling a separate USB-to-UART chip as is done with the ESP32. To use it, you have to hold the "Boot", "Flash", or "0" button as you plug the USB cable into your computer before flashing it. Once it's been flashed once you may not have to do this any more as the bootloader has a hack built into it to handle this, but it's good to remember as the hack doesn't always work.
 
What do you mean? The ESP32-S2 is supported in BrewFlasher, so you should be able to just use it.

If you're having trouble flashing them, it's likely due to the fact that most modules rely on the ESP32-S2's built in USB support rather than bundling a separate USB-to-UART chip as is done with the ESP32. To use it, you have to hold the "Boot", "Flash", or "0" button as you plug the USB cable into your computer before flashing it. Once it's been flashed once you may not have to do this any more as the bootloader has a hack built into it to handle this, but it's good to remember as the hack doesn't always work.
Sorry, read about all the S2 flashing issues and when it didn't work first time, thought nothing could be done.

Did the button sequence and everything worked way it should.

Usually I read things more closely but planning to brew tomorrow and the 8266 not working anymore threw me into panic mode.
 
Last edited:
Sorry, read about all the S2 flashing issues and when it didn't work first time, thought nothing could be done.

Did the button sequence and everything worked way it should.

Usually I read things more closely but planning to brew tomorrow and the 8266 not working anymore threw me into rush mode.
If it makes you feel any better, I realized I had old firmware on my main BrewPi build last night at 1 am after what can only be described as a chaotic brew day. Normally not an issue, but given part of the point was to test some newer features, not a great discovery to cap the day off!
 
I built one of your AIO systems mentioned on your blog, and am currently using it to ferment a Blonde Ale with a newly finished glycol system I built. Everything is working fantastically, except after about 24ish hours the TFT screen goes completely white. Temp control is still happening and the unit is still active and changeable from Fermentrack.net and the local ip address. After power cycling the screen works correctly again for about another 24ish hours. I'm using the Lolin ESP32, TFT, and cable that you recommend as well as the latest ESP32 beta1 available on Brewflasher. What are your thoughts on this being maybe a hardware/heat issue (its been over 100 outside and in the garage since brewday on Sun) vs a potential software issue? Thanks for the help, and just wanna say I'm a big fan of everything youre doing in the homebrew hardware/software realm!
 

Attachments

  • PXL_20250722_121752437.jpg
    PXL_20250722_121752437.jpg
    2.7 MB
I built one of your AIO systems mentioned on your blog, and am currently using it to ferment a Blonde Ale with a newly finished glycol system I built. Everything is working fantastically, except after about 24ish hours the TFT screen goes completely white. Temp control is still happening and the unit is still active and changeable from Fermentrack.net and the local ip address. After power cycling the screen works correctly again for about another 24ish hours. I'm using the Lolin ESP32, TFT, and cable that you recommend as well as the latest ESP32 beta1 available on Brewflasher. What are your thoughts on this being maybe a hardware/heat issue (its been over 100 outside and in the garage since brewday on Sun) vs a potential software issue? Thanks for the help, and just wanna say I'm a big fan of everything youre doing in the homebrew hardware/software realm!

It’s a hardware issue that software can fix, in this case!

The problem is that when the relays toggle on/off, they’re electrically noisy and can cause the TFT to malfunction. If you log into the controller's web interface, on the Controller Settings screen there should be a toggle for "Reset Screen on Pin Toggle". Turn that on, and hit save.

The reason this is not on by default is that it will cause the screen to flash when heating/cooling turns on/off as the screen resets. If you need it, then it's there - but if you don't, it can be annoying.
 

Attachments

  • Screenshot 2025-07-23 at 8.21.11 AM.png
    Screenshot 2025-07-23 at 8.21.11 AM.png
    91.5 KB
It’s a hardware issue that software can fix, in this case!

The problem is that when the relays toggle on/off, they’re electrically noisy and can cause the TFT to malfunction. If you log into the controller's web interface, on the Controller Settings screen there should be a toggle for "Reset Screen on Pin Toggle". Turn that on, and hit save.

The reason this is not on by default is that it will cause the screen to flash when heating/cooling turns on/off as the screen resets. If you need it, then it's there - but if you don't, it can be annoying.
That's awesome, thanks so much for the reply!
 

Latest posts

Back
Top