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

    Homebrewing Facebook Group

BrewPi Remix – What’s Old is New Again

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
It might not be an error - do you see the script restarting?


Can you swap the fridge and vessel sensors maybe and see if that does anything?

I'm leaning away from a logical issue simply because there's a long track record of this "just working."

If you stop BrewPi (sudo systemctl stop brewpi) and let it run "headless" for a bit, what happens? This assumes you either have an LCD or some other way of checking temps without the UI of course.
Is this restarting? See pic.

1693327419649.png
 
No, that's the updates from the controller to the script. It's set at 120 seconds by default, which is generally fine.
I currently run headless only. I can hook up a monitor how do I check temps with out the UI?
 
I just had a turd drop at work, I was going to give you more information. If you are fearless:

sudo systemctl stop brewpi <- Stops the script/UI
sudo screen /dev/ttyUSB0 57600 <- Connects you to the serial port for the Arduino (change port accordingly)

At this point, 'l' (lower-case L) will return the "LCD contents." Further commands here: BrewPi Remix API — BrewPi Remix 0.8.0 documentation

Ctrl + A, Ctrl + \ - Exit screen and terminate all programs in this screen
 
Okay so more background.

The BrewPi application doesn't actually control temperatures. It receives Jason packets from the Arduino, and forwards them to the web UI. The controller will happily manage temperatures without the application, you just have no visibility without an LCD screen.

The above instructions will allow you to view the periodic JSON coming from the controller, or the LCD contents. Both will be in JSON, however, you should be able to pick up which field is which in short order.
 
Okay so more background.

The BrewPi application doesn't actually control temperatures. It receives Jason packets from the Arduino, and forwards them to the web UI. The controller will happily manage temperatures without the application, you just have no visibility without an LCD screen.

The above instructions will allow you to view the periodic JSON coming from the controller, or the LCD contents. Both will be in JSON, however, you should be able to pick up which field is which in short order.
When you say LCD screen is that via hdmi port?
 
Sorry, I should have been more clear:

BrewPi has an "LCD screen" that is actually several separate concepts:
  1. A physical 20x4 LCD, either connected to the Arduino in parallel or in later firmware, serial
  2. The "LCD" visible in the web UI. A dated look, but we all seem to like it
  3. The JSON report, which is sent over the serial connection from the Arduino to the host that provides the information for #2 above
The controller will do everything on its own; the only "control" that happens from the script/UI is setting changes and a temp profile if you use one. Otherwise, you can use an Arduino without a Pi. If you have an LCD (as in #1 above) and a rotary encoder, you can even skip needing the UI for temp setting changes.

What I am suggesting is you remove the BrewPi script from the equation and see if it behaves the same. If the problem goes away, then we will suspect something in the script. If it does not go away, we either have a hardware or firmware issue to diagnose.

The instructions above will allow you to power the Arduino from your Pi (or any handy laptop), connect via the serial connection established over USB, and have rudimentary visibility to the system's state.
 
Sorry, I should have been more clear:

BrewPi has an "LCD screen" that is actually several separate concepts:
  1. A physical 20x4 LCD, either connected to the Arduino in parallel or in later firmware, serial
  2. The "LCD" visible in the web UI. A dated look, but we all seem to like it
  3. The JSON report, which is sent over the serial connection from the Arduino to the host that provides the information for #2 above
The controller will do everything on its own; the only "control" that happens from the script/UI is setting changes and a temp profile if you use one. Otherwise, you can use an Arduino without a Pi. If you have an LCD (as in #1 above) and a rotary encoder, you can even skip needing the UI for temp setting changes.

What I am suggesting is you remove the BrewPi script from the equation and see if it behaves the same. If the problem goes away, then we will suspect something in the script. If it does not go away, we either have a hardware or firmware issue to diagnose.

The instructions above will allow you to power the Arduino from your Pi (or any handy laptop), connect via the serial connection established over USB, and have rudimentary visibility to the system's state.
Would it be easer to wipe the OS and reinstall?
 
Would it be easer to wipe the OS and reinstall?
It's easy, but it's work that may not get you anywhere. I'd be pretty frustrated if I did that and it didn't help. Unless you made some changes to the Pythion scripts, there's no reason to believe those are at fault. This will allow us to find out right away.
 
It's easy, but it's work that may not get you anywhere. I'd be pretty frustrated if I did that and it didn't help. Unless you made some changes to the Pythion scripts, there's no reason to believe those are at fault. This will allow us to find out right away.
Ok. Ill working on it. Thanks
 
Side question, @LBussy - how adaptable/malleable/robust is the whole tuning/updating of the PID nature of all this if someone has a feeble ferm chamber cooling unit and must sometimes add a frozen water bottle? That means the cooling side capability is randomly cyclical in time.
 
Side question, @LBussy - how adaptable/malleable/robust is the whole tuning/updating of the PID nature of all this if someone has a feeble ferm chamber cooling unit and must sometimes add a frozen water bottle? That means the cooling side capability is randomly cyclical in time.
I know a guy who had a similar setup, where he had the BrewPi controlling a fan between a chamber holding the beer and a chamber holding frozen water bottles. Worked great for him, so would probably work well here as well.
 
fwiw, I have noticed I can induce some algorithmic "wind up" in BrewPi by interrupting heating or cooling downstream of the relays. As the temperature trends "differently" from what BrewPi expects, it keeps cranking up what settings it can effect to get a response - that still doesn't happen. Then when I "un-interrupt" the actors BrewPi ping-pongs between heating and cooling with massive overshoots and never really seems to dial down its settings to get back to its rational self. When/if I recognize it I reload the default control variables which tames the behavior.

I always start a new brew session with a fresh load of default settings to avoid "leftovers"...

Cheers!
 
I mean the built-in BrewPi control defaults found in Maintenance Panel - Advanced Settings.
Both the Control Settings and Control Constants have default values you can force on the Arduino...

1694026340444.png



Note I have not tried manipulating the Control Algorithm page. Never changed anything there in all these years :)

1694026617030.png


Cheers!
 
Ok. Ill working on it. Thanks
It seems that the relay I'm using is causing my heat and cool to short cycle issue. When the trigger pins are disconnected from the relay the controller works as intended. Initially I thought the controller was getting feedback voltage from the relay to cause the short cycle so I tried a diode on the trigger to stop voltage from traveling back to the controller with no success. This is the relay I'm using (Relay). I needed something that would handle more amperage then the SanSmart. Does anyone have know working relays that handle higher amperage then the SanSmart.
 
That relay module apparently generates its own 5vdc, which given its almost 400 mA current draw is a good thing. Just don't connect that 5vdc rail to anything else, AND don't plug your controller power supply into the same AC source used by the relay module...

Cheers!
 
That relay module apparently generates its own 5vdc, which given its almost 400 mA current draw is a good thing. Just don't connect that 5vdc rail to anything else, AND don't plug your controller power supply into the same AC source used by the relay module...

Cheers!
Same results. I have to use either the positive or negative along with the trigger to get the relay to fire.
 
It should work if you connect DC grounds together. That shouldn't upset the controller...

Cheers!
Both ESP32 and Arduino controllers will not trigger the relay without the issue. I even tried inverting the trigger.
 
I've updated the installer with a fix for the CVE issue as well as a deprecated removed numpy version. If you are running now, there is no need to update anything. This will only impact new users/installs.
 
Not sure if this is an issue specifically related to my setup or not, but figured I would post here in case it helps anyone else. I am running a Pi 2 and had been running a very old build of the OG BrewPi for the past few years. It recently started to fail when loading the web page, so I figured a reinstall was in order, which is how I ran across BrewPi Remix.

I followed the instructions on the web site, but when the installation was finished, the script would never start. Clicking the Start Script button did nothing. I could manually start the script using my Pi account, but obviously didn't want to have to do that every time I reboot the thing. I kept seeing errors in the logs regarding the numpy Python package and tried to uninstall/reinstall it and other packages I saw recommended multiple times using both apt and pip3 to no avail. Here is the error message.

Dec 5 15:40:50 brewpi brewpi[26097]: Traceback (most recent call last):
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/venv/lib/python3.9/site-packages/numpy/core/__init__.py", line 24, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: from . import multiarray
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/venv/lib/python3.9/site-packages/numpy/core/multiarray.py", line 10, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: from . import overrides
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/venv/lib/python3.9/site-packages/numpy/core/overrides.py", line 8, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: from numpy.core._multiarray_umath import (
Dec 5 15:40:50 brewpi brewpi[26097]: ImportError: libopenblas.so.0: cannot open shared object file: No such file or directory
Dec 5 15:40:50 brewpi brewpi[26097]: During handling of the above exception, another exception occurred:
Dec 5 15:40:50 brewpi brewpi[26097]: Traceback (most recent call last):
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/venv/lib/python3.9/site-packages/numpy/__init__.py", line 130, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: from numpy.__config__ import show as show_config
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/venv/lib/python3.9/site-packages/numpy/__config__.py", line 4, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: from numpy.core._multiarray_umath import (
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/venv/lib/python3.9/site-packages/numpy/core/__init__.py", line 50, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: raise ImportError(msg)
Dec 5 15:40:50 brewpi brewpi[26097]: ImportError:
Dec 5 15:40:50 brewpi brewpi[26097]: IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Dec 5 15:40:50 brewpi brewpi[26097]: Importing the numpy C-extensions failed. This error can happen for
Dec 5 15:40:50 brewpi brewpi[26097]: many reasons, often due to issues with your setup or how NumPy was
Dec 5 15:40:50 brewpi brewpi[26097]: installed.
Dec 5 15:40:50 brewpi brewpi[26097]: We have compiled some common reasons and troubleshooting tips at:
Dec 5 15:40:50 brewpi brewpi[26097]: Troubleshooting — NumPy v2.0.dev0 Manual
Dec 5 15:40:50 brewpi brewpi[26097]: Please note and check the following:
Dec 5 15:40:50 brewpi brewpi[26097]: * The Python version is: Python3.9 from "/home/brewpi/venv/bin/python3"
Dec 5 15:40:50 brewpi brewpi[26097]: * The NumPy version is: "1.26.2"
Dec 5 15:40:50 brewpi brewpi[26097]: and make sure that they are the versions you expect.
Dec 5 15:40:50 brewpi brewpi[26097]: Please carefully study the documentation linked above for further help.
Dec 5 15:40:50 brewpi brewpi[26097]: Original error was: libopenblas.so.0: cannot open shared object file: No such file or directory
Dec 5 15:40:50 brewpi brewpi[26097]: The above exception was the direct cause of the following exception:
Dec 5 15:40:50 brewpi brewpi[26097]: Traceback (most recent call last):
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/brewpi.py", line 61, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: import brewpiJson
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/brewpiJson.py", line 37, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: import Tilt
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/Tilt.py", line 38, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: import numpy
Dec 5 15:40:50 brewpi brewpi[26097]: File "/home/brewpi/venv/lib/python3.9/site-packages/numpy/__init__.py", line 135, in <module>
Dec 5 15:40:50 brewpi brewpi[26097]: raise ImportError(msg) from e
Dec 5 15:40:50 brewpi brewpi[26097]: ImportError: Error importing numpy: you should not try to import numpy from
Dec 5 15:40:50 brewpi brewpi[26097]: its source directory; please exit the numpy source tree, and relaunch
Dec 5 15:40:50 brewpi brewpi[26097]: your python interpreter from there.

I tried reinstalling everything from scratch, twice, and ended up with this result both times. I did try running all of the doXXX.sh scripts from the git repository to fix perms and dependencies, but it would never fix it. I am not sure which of these things I did on the 3rd try ultimately resolved it, or if it was a combination of the 2, but instead of running the curl command: curl -L install.brewpiremix.com | sudo bash
I instead ran the command listed in the git documentation: curl -L raw.githubusercontent.com/brewpi-remix/brewpi-tools-rmx/master/bootstrap.sh | sudo bash

That did seem to run through all of the scripts and install things I didn't notice when running the installer in the previous 2 attempts, so perhaps the shortened curl URL is linking to an older install script? Regardless, I was still getting the same error with numpy and the script wouldn't start, but this time, I installed one of the packages that I saw recommended before (that I had installed on the previous 2 attempts as well) and IT WORKED!! Here is the package that ended up fixing it for me: sudo apt-get install libopenblas-dev

Sorry for the novel, just wanted to be as detailed as possible so that others don't bang their head against the wall for 2 days like I did.
 
Holy wall of text, Batman!

What version of the OS did you flash? If you do not remember, please give me the output of these two commands:

Bash:
cat /etc/os-release

Bash:
uname -m
 
Yeah, sorry. I couldn't figure out a better way to format it yesterday. I don't comment here much. Here is the out put for those 2 commands.

Bash:
pi@brewpi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@brewpi:~ $ uname -m
armv7l
 
Yeah, sorry. I couldn't figure out a better way to format it yesterday.
Just giving you some grief. I did not expect to log in here and see that. :)

Here is the out put for those 2 commands.
Okay, so Bullseye, and I have not validated that yet. Also, 32-bit, which is validated. Do you recall if you installed a desktop as well? (Graphical UI)

It's running, so no concern about this not being validated; I just need to do some testing.
 
Do you recall if you installed a desktop as well? (Graphical UI)

The original install was with the Lite version as I planned on running headless, but there were tons of dependencies missing for various things that I kept running in to and having to install, so rounds 2 and 3 were with a desktop environment. I used the Pi Imager tool and selected this OS.

1701895283530.png
 
The original install was with the Lite version as I planned on running headless, but there were tons of dependencies missing for various things that I kept running in to and having to install, so rounds 2 and 3 were with a desktop environment. I used the Pi Imager tool and selected this OS.
I'll have a look - I generally test with Lite so .. looks as if I have work to do.
 
Hello all, I’m running the glycol shield on my rewired (I2C) BrewPi controller. Doing some testing before my first fermentation, but I’m getting a lot of oscillation, especially towards end. Any suggestions? Please ignore the blip in the middle—I forgot to lower my chiller temp. 🤓
IMG_7016.png
 

Attachments

  • IMG_7016.png
    IMG_7016.png
    338.3 KB

Latest posts

Back
Top