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

    Homebrewing Facebook Group

Fermentrack: Fermentation monitoring & BrewPi-www Replacement for Raspberry Pi

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
No worries at all @Southyeaster - the extra reports are helpful, as - despite the other reports! - I haven't been able to replicate the issue on my side and therefore assumed the issue was limited to a single user/server. I'm tracking the issue on GitHub here, and have the following workaround which you can use in the mean time while I figure out a solution:

  1. Log into your Pi/server with SSH and change to the fermentrack-tools directory
  2. Make sure you are running the latest version of both Fermentrack and fermentrack-tools (run the install.sh script if you haven't run it in the past ~week or so)
  3. Run the command docker compose run --rm django python manage.py generate_backup
  4. Wait for the command to finish. Once it finishes, you should be able to see the backup it generated within Fermentrack's web UI

My guess is that the issue here is that as currently designed the process to generate the backup runs synchronously with the web request to generate the backup, and either starts to take too long or use too much memory frightening the web daemon and causing it to kill the process. Generating the backup manually works just fine (even older Pis should have plenty of memory available) but trying to do it from the website creates issues.
 
Kind of an oddball question (Maybe) I'd like to know if there is a way to change the "Beer" and "Fridge" labeling on the dashboard (And the external LCD) to something else in some way? I have my fermentation fridge set up in my garage running fermentrack smoothly with no issues. Next to that fridge is another fridge that is NOT being used for beer but I would like to monitor temps of something else inside of it. I already have another functioning controller built for said purpose but to me it looks a bit silly seeing "Beer" flash by on the LCD when that fridge's purpose is not for beer. Curious if maybe it can be accessed through terminal and configured in some way...? Thanks in advance!
 
Kind of an oddball question (Maybe) I'd like to know if there is a way to change the "Beer" and "Fridge" labeling on the dashboard (And the external LCD) to something else in some way? I have my fermentation fridge set up in my garage running fermentrack smoothly with no issues. Next to that fridge is another fridge that is NOT being used for beer but I would like to monitor temps of something else inside of it. I already have another functioning controller built for said purpose but to me it looks a bit silly seeing "Beer" flash by on the LCD when that fridge's purpose is not for beer. Curious if maybe it can be accessed through terminal and configured in some way...? Thanks in advance!

Not currently, but that doesn't mean it isn't something that could potentially be added (though more likely to the dashboard than to the LCD). What would you want to relabel them to?
 
In this particular application I wanted to change “Beer temp” to “Air temp”.
I’m using this second fridge as a makeshift air cooler for my 60 gallon air compressor in my garage. Long story short, I’m using an immersion cooler in a bucket of water that’s plumbed inbetween my compressor pump and the tank itself to cool down the air before it enters the tank. That immersion cooler/bucket lives inside the fridge. I’m using two DS18B20’s, one for fridge temp and one taped to the outlet of the immersion cooler to monitor air temp. The “control box” is really nothing more than a digital monitor. It is not controlling the fridge based on air temp, I just had the parts laying around so I decided to put them to use. But that’s my reason for wanting to know if labeling can be changed
 
Alright install instructions for running Fermentrack in a LXC for Proxmox.



I backed up from my old install and uploaded and it looks to be working great.

Edit: The only thing that looks like it wasn't backed up were my Brewfather Push Targets, but everything else looks good.

I hope you don't mind -- I've ended up using these instructions a couple of times myself, so I went ahead and documented it in a blog post. Thanks again for pulling this together -- I'm definitely a fan of LXC over VMs where they work!
 
I hope you don't mind -- I've ended up using these instructions a couple of times myself, so I went ahead and documented it in a blog post. Thanks again for pulling this together -- I'm definitely a fan of LXC over VMs where they work!
Not a problem. It's been great running it on a LXC, I want to say it feels faster than my previous install.
 
I'm experiencing an intermittent "Internal Server Error" problem with Fermentrack. I'm traveling and trying to monitor my fermentation remotely. It was working fine for several days after I left, but for the past several days it works about one time in 10-15 tries. The rest of the time I get one of two types of errors. The first is just a page with the words "Internal Server Error". The other type is an incompletely rendered web page. These have lots of variations, but one example is below. Note that I am only tracking (via Tilt2 and Tiltbridge), not controlling with Fermentrack. It doesn't seem to matter what platform I use, iPhone, iPad, or MacOS, although they are all versions of Safari.

I don't have a port open to access the raspberry pi directly, so for now any debugging would need to be via port 80.

Fermentrack-error.jpg
 
I'm experiencing an intermittent "Internal Server Error" problem with Fermentrack. I'm traveling and trying to monitor my fermentation remotely. It was working fine for several days after I left, but for the past several days it works about one time in 10-15 tries. The rest of the time I get one of two types of errors. The first is just a page with the words "Internal Server Error". The other type is an incompletely rendered web page. These have lots of variations, but one example is below. Note that I am only tracking (via Tilt2 and Tiltbridge), not controlling with Fermentrack. It doesn't seem to matter what platform I use, iPhone, iPad, or MacOS, although they are all versions of Safari.

I don't have a port open to access the raspberry pi directly, so for now any debugging would need to be via port 80.

View attachment 830071
Oh wow - that’s… interesting looking!

Behind the scenes, you have a webserver (Nginx) that both processes requests for the web app (Fermentrack) and serves static files upon request. Looking at that screenshot I would guess that Nginx is having issues of some sort and is failing to serve the static files as a result (the "{{ sensor.device_name }}" in particular means that Vue.js isn't loaded).

Unfortunately, I don't know that there is much that can be done remotely to resolve this or explore further. Nginx is the likely culprit, so we'd need to check its logs (or the resource usage on the Pi) but neither of those are exposed by default.
 
Anyone out there with some massive log files (and hopefully, a massive backup file) mind sending me a copy for me to use when testing... something....?

I tend to delete logs once I've finished fermenting, apparently.
 
So after you posted in my thread about the glycol chiller, I'm looking into Fermentrack. It installed easily in a LXC, and linking an iSpindel to it (even one running the Gravitymon firmware) was straightforward enough. So now the question becomes how to control the pump itself.

The pumps are integrated into the Icemaster Max 4, so the easy answer of using a Kasa smart plug won't really work--I'll need to find the power wire to the pump in question and use a relay to switch it*. Is it known whether the Sonoff THR316/320 devices will work? It seems they're ESP-32S-based, they include a relay, and they'll also connect to a DB18B20 temp sensor. Sonoff POW Origin 16Amp (POWR316) | devices.esphome.io suggests that the relay is controlled by GPIO pin 13. I have a couple of them on the way anyway, but it'd be good to have an idea before they get here.

*I guess I could wire in a power cord directly to the pump, and then use the smart plug, but I'm trying to minimize any modifications to the chiller unit.
 
I don't own an Icemaster Max 4, but I am fairly certain that it uses 4x STC1000 for temperature control which use a 10K NTC probe for temperature readings. Based on previous postings on HBT, people have had success replacing the probes with these which have the resistance characteristics that can be seen on table 3 of this spec sheet. If so, you could basically transform the STC1000 into a switch by setting the thermostat to 65F and toggling between a 35k resistor and a 5k resistor (which the thermostat would interpret as being ~32F and ~104F).

There are a couple of ways to do this that I can think of - but here is what I am envisioning:


NTC Magic Box.jpg

This would allow you to make 0 electrical modifications to the gylcol chiller.
 
I don't think the current models use STC1000s (unless the STC1000 has been updated to work in both °F and °C, and to control both heating and cooling), though they seem similar. But a few minutes with a DMM and one of the probes suggests that they have similar characteristics, so the same approach would seem viable. So what I'd need, minimally, would be a ESP32 (I have a few of those), an opto isolator, a couple of resistors (I have lots of those), and a barrel plug of the correct size (which I'd eyeball at 5521). Probably would be good to have a small PCB made up, though I'm sure it isn't strictly necessary (though it might be small enough that OSHPark would be economical).

So with this arrangement, the iSpindel acts as the temp probe, and based on what it reads, Fermentrack toggles the output of the ESP on/off to maintain the desired temperature in the beer. How often, then, does that have the iSpindel reporting? Because the 15-minute interval it's using with Brewfather would seem entirely too long to allow any sort of decent temp control.
 
No - not for Fermentrack/BrewPi-ESP at least, and for the reason you cite. If you had a Tilt (pro, preferably) you could use that as it broadcasts a temperature in fractional degrees F every 0.8 seconds, but the long polling rate on the iSpindel scares me.

If you have a thermowell then you could use that with a DS18b20 wired sensor, of course. There’s not currently another wireless option, but if anyone wants to collaborate on one I’d be open to it.
 
OK, that makes sense. I don't have a Tilt (maybe some day--though this makes it somewhat more interesting), but I do have a thermowell in the fermenter.

So I need an ESP32 and a DS18B20. Can I just flash the firmware onto the Sonoff THR316? Or do I need to have some PCBs made from thorrak_hardware/ESP32 BrewPi Boards at master · thorrak/thorrak_hardware and thorrak_hardware/BrewPi Sensor Boards at master · thorrak/thorrak_hardware and go from there?

Edit: and is the Tilt Pro really that much better? The only differences I'm seeing are "longer battery life" and "better antenna."
 
Last edited:
I'm still running that beta @Thorrak made for me on the s2 that fixed the I2c screen address issue. Initial testing it seemed to be fixed as it stayed stable for a while a couple days or so cant remember how long i left the water in there testing. But after that test I didn't unplug it but just left temp control off and is had stayed connected and screen working for the last few weeks. I finally got around to brewing a batch and I have it currently fermenting a lager at 55 degrees in beer constant mode. It seemed stable until I looked today about 2 days into my fermentation it wasn't connected to fermentrack and the screen I found frozen again with the backlight off. Its definitely way more stable than before but I think there might be another bug or demon lurking somewhere in there perhaps that only is an issue when controlling a beer?
 
Since my last reset the controller has been fine controlling. It’s lost connection with the server and I imagine a reset of fermentrack would fix it. However, I’ve just let it rock to see what it would do. It’s been continuing to control the beer as expected. So perhaps that bug with the unable to connect to script is still prevalent. Also curiously I have tried to experiment with push targets to Brewfather. I find it strange I’m getting different values in fermentrack and what’s pushed to Brewfather. It’s not sending the temperature at all and is sending an arbitrary gravity of 1.004 e which doesn’t match what is being published to fermentrack at all?

***edit it's not controlling the beer as expected rather it is holding the beer at the last temperature setpoint and is actually supposed to be ramping up the temperature for a diacytl rest. Its just stuck holding a temp in the middle of that ramp up where it was when the connection to the server was lost. Rebooted the controller and it didn't connect to fermentrack without me rebooting the fermentrack server.
 
Last edited:
Ive had the s2mini freeze a third time this time in the middle of cooling with the relay stuck on. I have swapped out the board for a esp8266 d1 mini to hopefully have some stability back as well as see if its something goofy with my setup or if there is still a bug on the s2 mini.
 
First - apologies for the silence from my side for the past few weeks. I’ve had a lot going on, and have had to focus my attention on non-brewing-related projects for a bit. Mostly good stuff, just all demanding loads of time.

OK, that makes sense. I don't have a Tilt (maybe some day--though this makes it somewhat more interesting), but I do have a thermowell in the fermenter.

So I need an ESP32 and a DS18B20. Can I just flash the firmware onto the Sonoff THR316? Or do I need to have some PCBs made from thorrak_hardware/ESP32 BrewPi Boards at master · thorrak/thorrak_hardware and thorrak_hardware/BrewPi Sensor Boards at master · thorrak/thorrak_hardware and go from there?

Edit: and is the Tilt Pro really that much better? The only differences I'm seeing are "longer battery life" and "better antenna."

You might be able to use the Sonoff, but the pinout is different vs my PCBs, so you would have to compile a custom version of the firmware to get it to work. As I recall, the Sonoff only has one temperature sensor wired to it as well — you would need to set something up to get it to be able to use multiple. I think it is based on the ESP8266 as well, so a Tilt isn’t an option for a second sensor.

The Tilt Pro offers temperature resolution in fractional degrees which helps for this application. It’s hard to hold a beer to a fraction of a degree Fahrenheit when you can’t see fractional degrees. 😉

Ive had the s2mini freeze a third time this time in the middle of cooling with the relay stuck on. I have swapped out the board for a esp8266 d1 mini to hopefully have some stability back as well as see if its something goofy with my setup or if there is still a bug on the s2 mini.

Were you running the latest firmware? The most recent release (v15c) was solid in testing — it seemed like there was some kind of issue with the Espressif framework with earlier versions that caused it to crash in strange places.

Instability in BrewPi-Script is incredibly frustrating at this point, as most of the changes I would seek have been implemented.

I’m working on a more permanent replacement, but that requires a rebuild of huge chunks of architecture. It’s coming, but it’s likely a few months away.
 
As I recall, the Sonoff only has one temperature sensor wired to it as well — you would need to set something up to get it to be able to use multiple. I think it is based on the ESP8266 as well
My understanding is that the Sonoff units in question are based on the ESP32, not the 8266. But yes, it does have only the one sensor wired to it. I'm sure others could be added (it's still a 18b20, so still uses the Onewire interface), but that'd be kind of hacky.
The Tilt Pro offers temperature resolution in fractional degrees which helps for this application.
I'd missed that earlier; that would indeed seem to be helpful. Pity they're so pricey.
 
My understanding is that the Sonoff units in question are based on the ESP32, not the 8266. But yes, it does have only the one sensor wired to it. I'm sure others could be added (it's still a 18b20, so still uses the Onewire interface), but that'd be kind of hacky.

I'd missed that earlier; that would indeed seem to be helpful. Pity they're so pricey.

Interesting! I thought the original units were based on the ESP8266 and didn't expect them to upgrade. If they have, that's a pretty compelling product! (Wired) fridge temp sensor + Tilt as an alternative to a full build -- at least until the Inkbird support can be re-added. ;)
 
First - apologies for the silence from my side for the past few weeks. I’ve had a lot going on, and have had to focus my attention on non-brewing-related projects for a bit. Mostly good stuff, just all demanding loads of time.



You might be able to use the Sonoff, but the pinout is different vs my PCBs, so you would have to compile a custom version of the firmware to get it to work. As I recall, the Sonoff only has one temperature sensor wired to it as well — you would need to set something up to get it to be able to use multiple. I think it is based on the ESP8266 as well, so a Tilt isn’t an option for a second sensor.

The Tilt Pro offers temperature resolution in fractional degrees which helps for this application. It’s hard to hold a beer to a fraction of a degree Fahrenheit when you can’t see fractional degrees. 😉



Were you running the latest firmware? The most recent release (v15c) was solid in testing — it seemed like there was some kind of issue with the Espressif framework with earlier versions that caused it to crash in strange places.

Instability in BrewPi-Script is incredibly frustrating at this point, as most of the changes I would seek have been implemented.

I’m working on a more permanent replacement, but that requires a rebuild of huge chunks of architecture. It’s coming, but it’s likely a few months away.
Well I'm running that latest beta that you made for the s2 mini a couple of weeks ago when we were troubleshooting the i2c screen thing together. Is that the same as the changes that were rolled into the latest stable version? Since I switched to the D1 mini its been stable so its definitely something with the s2 mini.
 
Well I'm running that latest beta that you made for the s2 mini a couple of weeks ago when we were troubleshooting the i2c screen thing together. Is that the same as the changes that were rolled into the latest stable version? Since I switched to the D1 mini its been stable so its definitely something with the s2 mini.
I honestly don't recall what was in (which) beta vs. the release. I do know that the release had been running for at least a week+ without issue while I had it hooked up to the debugging interface.

The D1 Mini should work fine as well. The biggest issue with it is just the frustration that I have when trying to compile for it, so there is no guarantee of future features. ;)
 
I honestly don't recall what was in (which) beta vs. the release. I do know that the release had been running for at least a week+ without issue while I had it hooked up to the debugging interface.

The D1 Mini should work fine as well. The biggest issue with it is just the frustration that I have when trying to compile for it, so there is no guarantee of future features. ;)
Thanks man! I'll definitely load up the S2 with the new firmware and throw it through the ringer with some water when this beer is in the keg lol I hear ya not enough memory on the D1 every time I use one in a project I cant sloppily allocate memory like I normally do for ease and convenience lol
 
There are a couple of ways to do this that I can think of - but here is what I am envisioning:


NTC Magic Box.jpg
For the sake of anyone else who might want to try this:
  • The size of the temp sensor jack on the Icemaster Max 4 (and, I'm sure, on the Max 2) is indeed 5521--5.5mm OD, 2.1mm ID
  • With resistor values of 33k and 8k2 (based in part on what I had at hand), my controllers read 25°F on the low side, and 95°F on the high side
  • With the temp controller on one of my pumps set to 68°F, these values are plenty high (and low) to turn the pump on and off promptly--though I guess 60°F would be the midpoint
  • Testing with my DMM in diode test mode to turn the optocoupler (I'm using a PC817, which are super cheap on Amazon) on/off does have the expected results on the pump--power on to the optocoupler turns the pump on
  • Given this, you'd want to set this pin's control mode to not inverted
  • According to an EE friend of mine, you should incorporate a current-limiting resistor in series between the relay pin on the ESP and the input to the optocoupler--his math came up with about 100R for that
This circuit is simple enough that it could easily be done on a breadboard, but PCBs make everything neater. It's small enough that three of them from oshpark.com are only $2 shipped, though of course you'll wait for a while to see them.
 
Last edited:
Oh wow - that’s… interesting looking!

Behind the scenes, you have a webserver (Nginx) that both processes requests for the web app (Fermentrack) and serves static files upon request. Looking at that screenshot I would guess that Nginx is having issues of some sort and is failing to serve the static files as a result (the "{{ sensor.device_name }}" in particular means that Vue.js isn't loaded).

Unfortunately, I don't know that there is much that can be done remotely to resolve this or explore further. Nginx is the likely culprit, so we'd need to check its logs (or the resource usage on the Pi) but neither of those are exposed by default.
I'm back and would like to understand what is going on here. Can you point me where to look to see what is going wrong? I'm not seeing anything in /var/log, which is where Google seems to think NGINX will put it's logs.
 
Back
Top