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

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Hi everyone,
I am getting a fresh deployment of Fermentrack setup and want to use a TiltBridge. I got the Tiltbridge flashed with firmware 1.0.1. It appears to be working fine, I can get at the webamin and it sees my Tilt without any issues. Fermentrack installed without issue as well.

The problem I'm having is that Fermentrack is not picking up with readings from the Tiltbridge. I searched this forum and found a similar post for 2020 in which @Thorrak says it's a bug. I'm not sure it it's been fixed? When i navigate to http://ipofmyfermentrack/tiltbridge/ I get the following error:

{
"status": "failed",
"message": "Malformed JSON - Unable to parse!"
}

ANY and all help is GREATLY appreciated!!

Cheers!
 
Hi everyone,
I am getting a fresh deployment of Fermentrack setup and want to use a TiltBridge. I got the Tiltbridge flashed with firmware 1.0.1. It appears to be working fine, I can get at the webamin and it sees my Tilt without any issues. Fermentrack installed without issue as well.

The problem I'm having is that Fermentrack is not picking up with readings from the Tiltbridge. I searched this forum and found a similar post for 2020 in which @Thorrak says it's a bug. I'm not sure it it's been fixed? When i navigate to http://ipofmyfermentrack/tiltbridge/ I get the following error:

{
"status": "failed",
"message": "Malformed JSON - Unable to parse!"
}

ANY and all help is GREATLY appreciated!!

Cheers!
Are you using Fermentrack on master or dev?

(Do you have "Update Preference" set to "Upgrade whenever possible"?)
 
Ugghhh, me and my big mouth. I just forced an update and it went to the 3/12 dev version, rebooted both Fermentrack and the Tiltbridge and is working fine.

Thanks @Thorrak!!! Sorry, for the confusion.
 
Ugghhh, me and my big mouth. I just forced an update and it went to the 3/12 dev version, rebooted both Fermentrack and the Tiltbridge and is working fine.

Thanks @Thorrak!!! Sorry, for the confusion.

No worries! I actually just realized as a result of your question that I actually don't have any workflow for managing TiltBridge objects inside Fermentrack. I've added it to the list...
 
Hello everyone,
I am working on building a fridge control using Fermentrack. But I am relatively new to all this electronics stuff (but not afraid of it).
There are lot of webpages (including this forum) available with information on this subject.
So I was wondering if anyone had gathered all of them together in a set of links for easy access?

E.g. I have Fermentrak installed on a Pi 3B+ and the Wemos D1 mini. And I have read somethings about a test setup somewhere, but I cannot find it again easily.
 
Hello everyone,
I am working on building a fridge control using Fermentrack. But I am relatively new to all this electronics stuff (but not afraid of it).
There are lot of webpages (including this forum) available with information on this subject.
So I was wondering if anyone had gathered all of them together in a set of links for easy access?

E.g. I have Fermentrak installed on a Pi 3B+ and the Wemos D1 mini. And I have read somethings about a test setup somewhere, but I cannot find it again easily.
https://www.homebrewtalk.com/threads/my-fermentrack-build.665245/post-8579507
 
@Thorrak, From the Netherlands, thank you for creating Fermentrack. I have it running on a PI 3 B+ and I flashed the first ESP8266 for initial testing. Fridge adaptation will follow soon.
It works great, the screens are pretty and functional. From a usability point of view I think it is really idiot-proof.

Initially, on the breadboard, I could not get any temp probes detected, not on 3.3v nor on 5v. Until, after searching this thread, I switched the 4.7k resistor to a 2.2k one. And now it happily registers the 2 attached temp probes on 3.3v.
The BOM for the PCB I use (Through Hole /w LCD & Dupont - No RJ-45 PCB) indicates to use a 4.7k resistor. I assume on the PCB this will workout fine with that 4.7k resistor?
 
Last edited:
The resistor is guidance rather than a firm specification. You need a strong enough pull-up to overcome the wire losses. There is nothing magical about the 4k7 on a 5V system (Arduino Uno) and nothing magical about the 2k2 on 3V3 systems. If you have a problem, use a stronger pull-up (lower resistance.)
 
@Thorrak, From the Netherlands, thank you for creating Fermentrack. I have it running on a PI 3 B+ and I flashed the first ESP8266 for initial testing. Fridge adaptation will follow soon.
It works great, the screens are pretty and functional. From a usability point of view I think it is really idiot-proof.

Thank you! Glad you find the projects helpful!

@LBussy hit the nail on the head - I once used 10k resistors in my builds just so I didn't have to buy multiple resistors, and had no issues - but I'm pretty sure I just got lucky in that regard. For most builds reported here using lower values of resistors result in better success rates and fewer dropouts. Regardless - if it works, use it!
 
@LBussy hit the nail on the head - I once used 10k resistors in my builds just so I didn't have to buy multiple resistors, and had no issues - but I'm pretty sure I just got lucky in that regard. For most builds reported here using lower values of resistors result in better success rates and fewer dropouts. Regardless - if it works, use it!
Hmm :(, I already soldered up a PCB with a 4.7k resistor. Will have to see if it will work.
I will move the test from the bread board to a real setup this weekend, using the PCB (with 4.7k) and all other components. I will report the results.
 
Hmm :(, I already soldered up a PCB with a 4.7k resistor. Will have to see if it will work.
I will move the test from the bread board to a real setup this weekend, using the PCB (with 4.7k) and all other components. I will report the results.
4.7k is probably fine as well - that’s what the majority of my boards use, and I don’t have any issues. Picking the value of that resistor isn’t an exact science.
 
Could this be the reason why I'm having lots of wrong measurements? (0°C or sometimes 111°C)
1617275749409.png


1617275481781.png


I don't know which resistors I'm currently using, I think its 4k7 but I will check it when my beer is finished.
 

Attachments

  • 1617275336517.png
    1617275336517.png
    71 KB · Views: 4
I already soldered up a PCB with a 4.7k resistor. Will have to see if it will work.
Removing a resistor is not fun, but fairly straightforward. You can also quite easily piggy-back another 4k7 on top (or even underneath the board.) The two of them in parallel will give you a 2.35k which is close enough for our work.
 
How do i correct the controllers deciding to stop being connected to my network? they seemed to have lost the connection info. Now they are broadcasting a micropython wifi network, but i cant log in to that. is there a password for that? Or am i hosed/need to re-flash?

Edit: fixed, the esps for some reason decided they hated my router all of a sudden. changed router network to N only instead of auto. then they connected. No clue yet on when/why they were micropython then suddenly decided to flip back to ESP access points
 
Last edited:
Could this be the reason why I'm having lots of wrong measurements? (0°C or sometimes 111°C)
View attachment 724187

View attachment 724186

I don't know which resistors I'm currently using, I think its 4k7 but I will check it when my beer is finished.

OK I used a 4k7 resitor so I've added another 4k7 in parallel. The first impression is that the dropouts are gone but maybe it is to early to confirm?
 
4.7k is probably fine as well - that’s what the majority of my boards use, and I don’t have any issues. Picking the value of that resistor isn’t an exact science.
So I tested with the PCB and the 4.7k resistor and no luck no temp data, I desoldered and replaced the resistor with a 2.2k one and it works displaying temp readings.
As your boards are working with 4.7k I presume maybe got a batch (of 100pieces ;-) ) with other ratings.
Anyway for now I will stick with 2.2k resistors on the boards.

Other question, will the setup of the PCBs work with seperate SSRs instead of the projected 2=channel relay board, just using the heat and cool pins for activating cooling or heating?
 
Updates --

For those who haven't caught it on the dev branch, I just pushed Docker release to master, and updated the install scripts to match. There were a *lot* of changes in this update, but before I post the changelog, a few questions:


What is Docker / Why should I care?

In a traditional Fermentrack installation, a bunch of stuff has to be installed on the underlying operating system in order for Fermentrack to work. This includes installing a webserver, a Python interpreter, several other software packages, setting permissions for Bluetooth, and more. If any of those pieces didn't install correctly -- or if they conflicted with something that another installed application required, then you would run into problems.

Docker packages all these things into self-contained packages called "containers". Rather than having to install all of these pieces yourself, you download a packaged container that has all the pieces set up and ready to go. When it comes time to upgrade, rather than having to wade through upgrading the pieces individually, you simply download the latest container, drop it into place, and you're good to go.

By switching to a containerized approach I'm hoping that future installs and major upgrades to Fermentrack won't require jumping through the hoops that were once required. Additionally, I'm hoping for a reduction in the weird, environmental issues that I've seen in the past.



Can I migrate from a non-Docker install to a Docker install? What about migrating back to a non-Docker install?

For now, no. In the future I have a plan to offer the ability to download a backup of your data from an existing, non-docker Fermentrack install and restore it into a new, docker-based one (and vice-versa). I'll post more once this feature is ready for testing.



Can I still install the non-Docker version?

Yes - but not with the automated "one line" curl script. New installations of the non-docker version will need to use the scripts in the non_docker_install directory of Fermentrack Tools.


Changelog - 2020-04-05 - Docker Support

Added

  • Added support for Docker installations
  • Added environment/container version number to GitHub page
  • Tilt "version" is now displayed on the Tilt Configuration page (Bluetooth only)
  • Tilt battery level now shows on the Tilt Configuration page (Bluetooth v3/Tilt Pro only)
  • "Last Check-in" time now added to Tilt configuration page (Bluetooth only)
  • Added link to view Huey logs inside the Fermentrack UI
  • Added link to view Circusd logs inside the Fermentrack UI

Changed
  • Removed instances where BrewPi-Script would write to the database
  • Adjusted feedback loop for Circus to eliminate a potential race condition with transactional databases
  • Redesigned available firmware list to reduce confusion
  • Stale gravity check-in points will now not be displayed in the gravity dashboard panels
  • Added support for latest TiltBridge firmware
  • Remove unimplemented "TCP Socket" external push option
  • Added Beer Setting, Fridge Setting, and Controller State to generic external push targets
  • Upgraded TiltBridge support for v1.0.0 TiltBridges (earlier TiltBridge versions will now require manual configuration)
  • External push target attempts now log to huey stdout
  • Added battery to the GenericPushTarget message for pushed iSpindel devices

Fixed
  • Fermentrack now works with properly transactional databases (e.g. Postgres)
  • Resolved issue causing false failures of the connectivity test (Thanks postalbunny!)
  • Fixed issue preventing renaming of BrewPi controllers
  • Dashes now allowed in TiltBridge mDNS IDs
  • Corrected issue where iSpindel data couldn't be loaded if a data point wasn't availble in Redis
 
I've had Fermentrack running for a few days - with a beer in the fermenter.

Today, the web GUI is giving the error "Cannot receive LCD text from Controller/Script" for one of the controllers. I have 2 controllers (D1 Mini ESP8266) configured in Fermentrack. One for the Fermenter. One for the Glycol Chiller.

I can ping the IP address of the ESP8266 D1 Mini for both of the controllers. Including the fermenter controller that is not communicating with the Raspberry Pi. But after rebooting, I can't even get to the Fermentrack GUI any longer. I can SSH to the Pi and see the fermentrack processes running and CPU at 100% .

Is this something that can be fixed? Or do I need to start all over? Is my fermenter still controlling the heat/cooling of my fermenting beer?

FYI - I recently installed an update in Fermentrack after it warned me of an available update. I think the update had trouble and am not sure it was really installed.


And one other thing I haven't noticed until now, the documentation say Fermentrack doesn't work on a Pi Zero W (but that's what I have and it's been working for a little while, anyway).

Note
Fermentrack does NOT support installing to armv6-based Pis (e.g. Pi Zero, Pi Zero W, Pi 1).



1617827064194.png
 
Last edited:
I remembered I have a backup SDcard and put that in. Everything is working again now.

I don't think I'll be upgrading this time.

Ack - Yeah, the Arm v6 chips are unfortunately ridiculously slow in comparison to their newer counterparts. I'm somewhat shocked that they haven't released a "Zero+", honestly.

Although there isn't anything in the upgrade that on its own should drive CPU usage to be that high, I can certainly see the upgrade itself going slowly.
 
I have a Pi 4 that's not really doing anything. I planned on using that for Home Assistant, but have Home Assistant running on a VM on my main computer instead.

@Thorrak - I see you said the new version of Fermentrack is for Docker. I know nothing about Docker.
Would this be the better way to go instead of the Pi zero? Switch to the Docker install on the Pi 4?
Would I be able to use the Pi4 for other things also? I'm assuming yes, when using Docker (which I don't really understand).

I do see the Fermenter Controller ESP8266 D1 Mini frequently not communicating with the Pi Zero. Then reconnecting in a little while.
But the Glycol controller (which is housed in the same plastic project box) is pretty stable and connected to the Pi.

Might a switch to the Pi 4 solve most of my problems?
 
I have a Pi 4 that's not really doing anything. I planned on using that for Home Assistant, but have Home Assistant running on a VM on my main computer instead.

@Thorrak - I see you said the new version of Fermentrack is for Docker. I know nothing about Docker.
Would this be the better way to go instead of the Pi zero?

I do see the Fermenter Controller ESP8266 D1 Mini frequently not communicating with the Pi Zero. Then reconnecting in a little while.
But the Glycol controller (which is housed in the same plastic project box) is pretty stable and connected to the Pi.

Might a switch to the Pi 4 solve most of my problems?

For what it's worth, you can always run Fermentrack in a VM as well. That's how my main install is at home. ;)

I can't say if a switch to a Pi 4 would help, but it certainly won't hurt.
 
Are there specific instructions to install the VM and Fermentrack on it?
Or, a simple Ubuntu 64-bit, 2GB Ram, 10GB drive space with a single processor plenty?
Then use the regular Fermentrack install instructions on that VM?
Yep!

Just run the normal command - it should work as expected.
 
Thanks.
After trying to install a new VM in VirtualBox, I remember why I didn't do this before. Something's messed up with my VirtualBox installation and I can't add any VMs to it. They always hang at the install process.
Oh well. I guess I'll go the Pi 4 route.
 
I did end up installing it on the Pi 4 that I had the Raspi Desktop on. Boy, was that a lot faster than on the Pi Zero W.
I used the command: curl -L install.fermentrack.com | sudo bash
Did that install the "Docker version" of Fermentrack?
I'll have to read up on Docker, if it did.

Nevermind. I found earlier in this thread the following command for installing docker/fermentrack:
curl -L https://raw.githubusercontent.com/thorrak/fermentrack-tools/docker/automated_install/auto-install.sh | bash

This is confusing -



But I'm getting an error then when using that command (either with or without sudo in front if it):
pi@raspberrypi:~ $curl -L https://raw.githubusercontent.com/thorrak/fermentrack-tools/docker/automated_install/auto-install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14 100 14 0 0 155 0 --:--:-- --:--:-- --:--:-- 155
bash: line 1: 404:: command not found
pi@raspberrypi:~ $
 
Last edited:
I did end up installing it on the Pi 4 that I had the Raspi Desktop on. Boy, was that a lot faster than on the Pi Zero W.
I used the command: curl -L install.fermentrack.com | sudo bash
Did that install the "Docker version" of Fermentrack?
I'll have to read up on Docker, if it did.

Nevermind. I found earlier in this thread the following command for installing docker/fermentrack:
curl -L https://raw.githubusercontent.com/thorrak/fermentrack-tools/docker/automated_install/auto-install.sh | bash

This is confusing -



But I'm getting an error then when using that command (either with or without sudo in front if it):
pi@raspberrypi:~ $curl -L https://raw.githubusercontent.com/thorrak/fermentrack-tools/docker/automated_install/auto-install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14 100 14 0 0 155 0 --:--:-- --:--:-- --:--:-- 155
bash: line 1: 404:: command not found
pi@raspberrypi:~ $

With last weekend's release, the command is now the default one (curl -L install.fermentrack.com | bash)
 
Not sure what to make of this yet...
Flashed an SD with the latest Raspbian, Installed the latest Fermentrack offering (talk about a fast install!)
Able to connect my 3 controllers and add my 2 tilts with no problems.
Go to make a clone.
shutdown the pi, swap SD cards and put in the newly cloned card In the Pi
Boot back up...
Only 2 of my 3 controllers would connect. Controller 1 info would not Display on the GUI. In fact, it never made it to the ’Script Starting’. On the actual physical controller, it was reading properly, but Fermentrack would not connect, no matter what I tried. The only thing that worked was removing the controller from Fermentrack, and then adding it back.
I never tried rebooting to see if the issue happened again, but if you want me to jump through any hoops, to see if anything is afoot....let me know.

EDIT
Rebooted this morning...got scared for a second that Controller 2 would not want to connect...but it did. So maybe mine was a 1-time anomaly.
 
Last edited:
I'm having trouble with one of my two controllers. Both controllers are ESP8266 D1 Mini controllers. One frequently says "Script Starting up" or " Cannot receiveLCD text fromController/Script "

I had the same problem with the Pi Zero W and also with the Pi 4. I've rebooted both controllers (cut power to the entire controller box) and rebooted the Pi 4. Still have the issue intermittantly.

Might this mean that the controller itself is the culprit?

I have two controllers in the same project box. One for the Fermenter. One for the Glycol Chiller. Only the Fermenter controller is the one with this issue. Both are the same distance and same location from the WiFi AP.
 
Not sure what to make of this yet...
Flashed an SD with the latest Raspbian, Installed the latest Fermentrack offering (talk about a fast install!)
Able to connect my 3 controllers and add my 2 tilts with no problems.
Go to make a clone.
shutdown the pi, swap SD cards and put in the newly cloned card In the Pi
Boot back up...
Only 2 of my 3 controllers would connect. Controller 1 info would not Display on the GUI. In fact, it never made it to the ’Script Starting’. On the actual physical controller, it was reading properly, but Fermentrack would not connect, no matter what I tried. The only thing that worked was removing the controller from Fermentrack, and then adding it back.
I never tried rebooting to see if the issue happened again, but if you want me to jump through any hoops, to see if anything is afoot....let me know.

EDIT
Rebooted this morning...got scared for a second that Controller 2 would not want to connect...but it did. So maybe mine was a 1-time anomaly.
I'm having trouble with one of my two controllers. Both controllers are ESP8266 D1 Mini controllers. One frequently says "Script Starting up" or " Cannot receiveLCD text fromController/Script "

I had the same problem with the Pi Zero W and also with the Pi 4. I've rebooted both controllers (cut power to the entire controller box) and rebooted the Pi 4. Still have the issue intermittantly.

Might this mean that the controller itself is the culprit?

I have two controllers in the same project box. One for the Fermenter. One for the Glycol Chiller. Only the Fermenter controller is the one with this issue. Both are the same distance and same location from the WiFi AP.

It may be completely unrelated, but @kxavier_23 reported an issue he was encountering with IP address caching not working as intended. I just pushed what I think is a fix to a new "hostname" branch.

If either of you is able to test that and let me know if it solves the problem I would appreciate it. If it doesn't, I can start hunting for something else that might be going wrong.
 
It does solve the problem.

I am assigning static IP addresses (in my router) to the BrewPIs and the instructions you gave me worked.

I am having an separate issue where the BrewPIs are forgetting the wireless info if they lose power, but that is probably separate.
 
These projects will work with an SSR. I believe people have been setting them up as non-inverted, although I've never done it myself.
I did another test this weekend, creating a setup using 2 SSRs and two light bulbs simulating heating and cooling.. Everything starts up fine, but for some reason one channel was constantly on. Not what I want or expected. Double checked all connections, but could not see a fault.
I than switched to using a 2-channel relay board (which I also purchased) and that is working fine. Both heating and cooling switch on and off when switched by the ESP8266 and indicated on the LCD.

The LCD is switching off and on again, resetting, every couple of minutes. Is this programmed behaviour or is something wrong with my LCD?
I could not find anything on the forum, except scrambling of the display in the huge Fermentrack subject.
 
It does solve the problem.

I am assigning static IP addresses (in my router) to the BrewPIs and the instructions you gave me worked.

I am having an separate issue where the BrewPIs are forgetting the wireless info if they lose power, but that is probably separate.
I already had static IPs on everything, the RaspberryPi, the ESP8266.
Most of my home network has static IPs and has for a long time.

Good news is that I've not seen the issue for a couple days.
 
I already had static IPs on everything, the RaspberryPi, the ESP8266.
Most of my home network has static IPs and has for a long time.

Good news is that I've not seen the issue for a couple days.

To be clear, the fix wasn't to necessarily work with static IPs. It was to USE the IP of the BrewPi vs the mDNS. There was some caching issues were it wasn't using the IPs and they wouldn't connect. I believe @Thorrak explained in his link above.

Regardless, it it working great for me now.
 
So, normally my dashboard is setup to list the Controllers, Chamber 1, 2, and 3 listed top to bottom. This morning when I went to adjust chamber 1 temp in prep for a brew day, it was rotated to the bottom of the list (on save I presume). I then changed the temp on Chamber 2 to see if it would happen, and sure enough, Chamber 2 was moved to the bottom of the list. (I’m on current Master.) Is there a setting I’m missing?
CF47ACB9-1693-4754-B787-4DCEF968F589.png
 
Back
Top