BrewPi Remix – What’s Old is New Again

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.
I dropped a hotfix into 0.7.5 master to address an issue where new OneWire sensors would not save correctly. There is no reason to update unless you have been bit by this (and I know of only one person who has been);

1619990221264.png


Everyone else can wait for a new release.

If you get bit by this, you will have to reset the Arduino to Factory Defaults (Maintenance Panel -> Advanced Settings -> Control Constants -> [Reset Arduino to factor defaults] button.)
 
Hi, I have reinstalled.
Good display appearance. I connect the relay, it recognizes it well and it is installed, then I connect the probe to A0 but it is not recognized (I have tested with each of my 3 probes separately)
Tell me if you want me to reset the Arduino with the advanced settings button and flash the firmware again.
arduinoconfig20.jpg
 
The hotfix I referenced is to deal with saving a ghost device only. If your sensors are not showing up, I suggest going back to the test sketch I shared with you and address whatever may be preventing the sensors from being detected. Assuming you have the I2C firmware installed (if the LCD works it is) and you are connected to A0, they should show up.
 
Ok, It only occurs to me that the probes are bad. Can you think of a way to check this? We wait for the new probe? any other test? I follow the path that you indicate to me.
Yes I installed I2C and the LCD works fine.
 
It seems there are no mistakes today. Here you have the video of the result on the display
 
I honestly do not know what to do next with those one wire sensors. I think the only thing remaining is to try a different Uno?
 
Ok, any clone "one" for reference? better a "one" than a wired lolin Mini?
 
If you get a real D1 Mini, we can test that too. Both should work.

The Uno is another item with which I have not had an issue. Some of them do not have serial numbers, which means you can only have one per Pi, but other than that I've been lucky.
 
@LBussy I'm still having trouble configuring my temperature probe after updating to get the fix. The screen shots below show what happens. I see the one-wire probe in the un-configured devices and it looks OK. Then I set it up using the pop-up menus and click Apply. However, it's settings get messed up when it tries to set up the sensor. I did a reset to factory on the board and still no luck. The board is running:

Found BrewPi v0.2.13 build a2fa8f0, running on an Arduino Uno with an I2C shield on port /dev/chronical

Any ideas? Thanks!

Screen Shot 2021-05-04 at 11.21.03 PM.png


Screen Shot 2021-05-04 at 11.21.16 PM.png


Screen Shot 2021-05-04 at 11.21.23 PM.png
 
Software issues aside, the new BrewPi Remix Glycol hardware is finally set up and ready to be configured...

There are temp probes for each fermenter. The thick red/black wires coming out of the top of the black box carry the 4.5A@12V current for the heaters across the basement. The black box has 12VDC in for each heater and 24VDC in and out for the glycol pumps. The board next to it has the Pi B+, connectors for the temperature probes, two Unos, and four 5V relays for the glycol pumps and heaters.

IMG_0015.jpeg
IMG_0016.jpeg
 
Last edited:
That's the bug I fixed. I think what happened is your browser is caching the JS file. Do a shift-refresh and see if that takes care of it.

That was it, thank you. On Safari 14.0.3 you need to be a bit more aggressive and select "Develop -> Empty Caches" with no windows open to make sure that all the JavaScript is flushed.

That's a sweet setup! So jealous - I need to up my game.

Thanks! Configuration and testing starts tonight. I did a quick test and configured the probe as the chamber temperature and the glycol and heater relays as the chamber cooler and heater and I can hear the relays clicking on and off when I use constant chamber temperature and change the temperature setting.

I think I remember that you said for glycol I want the probe as Beer Temperature (not chamber) but if I do that, then it doesn't seem to trigger the cooling and heating relays. Is there something else that I need to set up for glycol?
 
I need to get back and take a look at my notes in the code. I remember it the way you do, but a chamber temp is probably as effective because a single beer temp probe would revert to that type of control.

I’ll be interested to hear how it works for you, I’ll probably code any changes around your use case so please feel free to take copious notes about what you see and what you’d like to see.
 
@LBussy I played with the glycol code this afternoon and have a few initial thoughts. This is just a dry run with nothing in the fermenters. Wort goes in tomorrow.

I think there's a minor bug in the glycol firmware that causes it to return the wrong code to the script for the shield type. It returns 6, which gets parsed as null and the pin configuration goes crazy. I set this to 5 so that it behaves like the I2C shield:

https://github.com/duncan-brown/brewpi-firmware-rmx/commit/774ca4a52d788ebbbc1d98a18406ae3207891398
The temperature of my glycol is regulated by a separate thermostat in the chiller (which is always at 28F) so that control loop is independent of BrewPi. My setup has a single temperature probe inside the fermenter's thermowell so it's in direct contact with the fermenting beer. I'm controlling the glycol pump to cool, which sends 28F glycol through the fermenter's internal cooling coil, and a heating pad in direct contact with the cone of the fermenter to heat.

Given this, I think the easiest way to get BrewPi to behave in a similar way to the normal fridge and fermenter setup is to configure the temperature probe as the beer sensor. To get the heating and cooling to work with no physical fridge sensor, I set the firmware to use the address of the beer sensor as the fridge sensor if it's compiled for glycol:

https://github.com/duncan-brown/brewpi-firmware-rmx/commit/5e93fd3533612fcfaa81c3e95589320272cebe63
This seems to do the right thing; heating and cooling works as expected and the logging and UI look right.

Since there zero penalty for short delay on the heating and not too much on the cooling, I tightened up the minimums for the short-delay cycles:

https://github.com/brewpi-remix/bre...mits/3a7d42813b91ca2c1aea7d2992601e2ac644475c
These numbers are more similar to the numbers on my old FTSS controller, so I'll start there.

All of this is in a pull request, if it looks reasonable to you:

https://github.com/brewpi-remix/brewpi-firmware-rmx/pull/26
Tomorrow is a brew day and I'll work on tuning the PID and see how that goes. There's only an uncountably infinite number of combinations of numbers that I can use for Kp, Ki, and Kd, so I'm sure I'll get it right eventually...
 
Last edited:
Thanks, Duncan. I merged all but the shield definition into the glycol branch. I apparently forgot to add the glycol shield definition to the script, so that's been done in the ironically named glycol branch of the scripts. I'm sure you know how to pull that branch without my help.

I know you have the glycol temp controlled already. I'm interested to hear if you find any value in seeing the glycol temp in the display, want to control it (multi-chamber would work for this), or what other changes make sense.
 
Great, thanks! Life got in the way of brewing yesterday, so I'll start playing around when I brew next weekend.

Although I don't need glycol temperature control, I might drop a couple of spare DS18B20's in the glycol and monitor that as the room temperature in BrewPi. That might be a good way to see what effect the thermal load of the cooling has on the glycol temp as the temperatures will be displayed on the same graph.
 
I do not believe Remix has any remote logging out to Brewfather (I have used it with BrewPiLess). Is there any activity or thought to add this to Remix?
 
Last edited:
I mean, I’m not against the idea. I do it for Brew Bubbles now so I’m familiar with the API and the developer there.
 
... and the crowd goes wild !!!!!

I will do whatever I can to help build and test it.
 
Last edited:
@LBussy , I know I'm the oddball out as I run a Dell laptop with Brewpi, but I just ran sudo doUpdate.sh to 0.7.5 and cannot start script.

--stdlog.txt last entry was when I shut off last brew 15 May
2021-05-15 11:23:33 [N] New JSON received from controller.
2021-05-15 11:25:34 [N] New JSON received from controller.
2021-05-15 11:26:24 [N] Stopped data logging temp control continues.
brewpi@raspberry:~/logs$ more stderr.txt

--stderr.txt last entry is also old
2021-04-12 20:53:27 [E] Filename: brewpi.py
2021-04-12 20:53:27 [E] LineNo: 1469
2021-04-12 20:59:35 [E] Starting BrewPi.
brewpi@raspberry:~/logs$ cd /home

Oddity #1: There is a /brewpi-utils-rmx folder under /home/pi/, dated today
brewpi@raspberry:/home/pi$ ls -l
total 76
-rw-r--r-- 1 pi pi 29464 Apr 8 2020 bootstrap.log
drwxr-xr-x 3 pi pi 4096 May 21 10:16 brewpi-tools-rmx
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 Desktop
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 Documents
drwxr-xr-x 2 pi pi 4096 Apr 9 2020 Downloads
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 MagPi
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 Music
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 Pictures
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 Public
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 Templates
drwxr-xr-x 2 pi pi 4096 Apr 8 2020 Videos

--while under the brewpi user:
brewpi@raspberry:~$ pwd
/home/brewpi
brewpi@raspberry:~$ ls -l|grep ^d
drwxrwxr-x 19 brewpi brewpi 4096 May 4 09:16 data
drwxrwxr-x 2 brewpi brewpi 4096 May 21 11:04 Desktop
drwxrwxr-x 2 brewpi brewpi 4096 May 21 10:16 inc
drwxrwxr-x 2 brewpi brewpi 4096 Apr 8 2020 logs
drwxrwxr-x 2 brewpi brewpi 4096 May 21 10:17 __pycache__
drwxrwxr-x 3 brewpi www-data 4096 May 21 10:16 settings
drwxrwxr-x 2 brewpi brewpi 4096 May 21 10:16 tests
drwxrwxr-x 3 brewpi brewpi 4096 May 21 12:12 utils
drwxrwxr-x 5 brewpi brewpi 4096 Mar 13 16:04 venv
brewpi@raspberry:~$

sudo doPerms.sh did not fix, after reboots

Can I look for the "keep from starting" file somewhere?

Thanks
 
Hm. Nope. Unless I am in the wrong place (and/or have the wrong syntax for "find")

brewpi@raspberry:/var/www/html$ ls -l
total 280
-rw-rw---- 1 www-data www-data 10016 Apr 8 2020 beer-panel.php
-rw-rw---- 1 www-data www-data 2904 Apr 8 2020 brewpi-api.php
-rw-rw---- 1 www-data www-data 497 Apr 8 2020 config.php
-rw-rw---- 1 www-data www-data 1486 Apr 8 2020 configuration.php
-rw-rw---- 1 www-data www-data 382 Apr 8 2020 config_user.php.example
-rw-rw---- 1 www-data www-data 7992 Apr 8 2020 control-panel.php
drwxrws--- 3 www-data www-data 4096 Mar 13 16:02 css
drwxrws--- 20 brewpi www-data 4096 May 4 09:16 data
-rw-rw---- 1 www-data www-data 147 Apr 8 2020 defaultSettings.json
drwxrws--- 2 www-data www-data 4096 Apr 8 2020 font
-rw-rw---- 1 www-data www-data 5584 Apr 8 2020 fullscreen-lcd.php
-rw-rw---- 1 www-data www-data 3334 Apr 8 2020 get_beer_data.php
-rw-rw---- 1 www-data www-data 1664 Apr 8 2020 get_beer_files.php
-rw-rw---- 1 www-data www-data 1364 Apr 8 2020 get_beer_profile.php
-rw-rw---- 1 www-data www-data 1363 Apr 8 2020 get_beer_profiles.php
-rw-rw---- 1 www-data www-data 2194 Mar 13 16:02 get-bjprompt.php
-rw-rw---- 1 www-data www-data 1974 May 21 10:16 get-gitinfo.php
-rw-rw---- 1 www-data www-data 3909 Mar 13 16:02 get-logo.php
-rw-rw---- 1 www-data www-data 2565 Apr 8 2020 getLogs.php
-rw-rw---- 1 www-data www-data 2126 Mar 13 16:02 get-tiltinfo.php
drwxrws--- 2 www-data www-data 4096 Apr 8 2020 images
-rw-rw---- 1 www-data www-data 6339 Mar 13 16:02 index.php
drwxrws--- 2 www-data www-data 4096 May 21 10:16 js
-rw-rw---- 1 www-data www-data 5360 Mar 13 16:02 lcd.php
-rw-rw---- 1 www-data www-data 34740 Apr 8 2020 LICENSE.md
-rw-rw---- 1 www-data www-data 34600 Mar 13 16:02 maintenance-panel.php
-rw-rw---- 1 www-data www-data 5193 Apr 8 2020 multi-api.php
-rw-rw---- 1 www-data www-data 5302 Mar 13 16:02 multi-index.php
-rw-rw---- 1 www-data www-data 2391 Apr 8 2020 newsendmessage.php
-rw-rw---- 1 www-data www-data 6268 Mar 13 16:02 newsocketmessage.php
-rw-rw---- 1 www-data www-data 1182 Apr 8 2020 original-license.md
-rw-rw---- 1 www-data www-data 9014 Apr 8 2020 previous_beers.php
-rw-rw---- 1 www-data www-data 4328 Apr 8 2020 program_arduino.php
-rw-rw---- 1 www-data www-data 1236 Apr 8 2020 README.md
-rw-rw---- 1 www-data www-data 1777 Apr 8 2020 save_beer_profile.php
-rw-rw---- 1 www-data www-data 3898 Apr 8 2020 socketmessage.php
-rw-rw---- 1 www-data www-data 2311 Apr 8 2020 socket_open.php
-rw-rw---- 1 www-data www-data 2215 Apr 8 2020 sockettest.php
-rw-rw---- 1 www-data www-data 1601 Apr 8 2020 start_script.php
-rw-rw---- 1 www-data www-data 2502 Mar 13 16:02 top-bar.php
drwxrws--- 2 www-data www-data 4096 Apr 8 2020 uploads
-rw-rw---- 1 www-data www-data 37 May 15 11:26 userSettings.json

brewpi@raspberry:/$ sudo find / -name "do_not_run_brewpi*"
[sudo] password for brewpi:
find: ‘/run/user/110/gvfs’: Permission denied
find: ‘/proc/15002’: No such file or directory
brewpi@raspberry:/$
 
No crontab for user pi or brewpi

?

I thought there'd be a cron job running

pi@raspberry:~ $ crontab -l
no crontab for pi
pi@raspberry:~ $ exit
logout
brewpi@raspberry:~$ crontab -l
no crontab for brewpi
brewpi@raspberry:~$
 
No cron for a while now. Check syslogd:

Bash:
sudo systemctl status brewpi

It should show green/running. If not it may show an error (truncated text may be seen by using the right-arrow.)

Alternatively, you can use the log file viewer:

Bash:
journalctl -u brewpi
 
It's all about the package...

brewpi@raspberry:~$ sudo systemctl status brewpi
● brewpi.service - BrewPi Remix daemon for: brewpi
Loaded: loaded (/etc/systemd/system/brewpi.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-05-21 12:31:12 EDT; 1h 10min ago
Docs: BrewPi Remix Documentation — BrewPi Remix 0.5.3 documentation
Main PID: 903 (bash)
Tasks: 2 (limit: 4644)
Memory: 21.9M
CGroup: /system.slice/brewpi.service
├─ 903 /bin/bash /home/brewpi/utils/doBrewPi.sh -d
└─17659 sleep 1

May 21 13:41:44 raspberry brewpi[903]: Traceback (most recent call last):
May 21 13:41:44 raspberry brewpi[903]: File "/home/brewpi/brewpi.py", line 61, in <module>
May 21 13:41:44 raspberry brewpi[903]: import brewpiJson
May 21 13:41:44 raspberry brewpi[903]: File "/home/brewpi/brewpiJson.py", line 38, in <module>
May 21 13:41:44 raspberry brewpi[903]: from BrewPiUtil import Unbuffered
May 21 13:41:44 raspberry brewpi[903]: File "/home/brewpi/BrewPiUtil.py", line 48, in <module>
May 21 13:41:44 raspberry brewpi[903]: import BrewPiProcess
May 21 13:41:44 raspberry brewpi[903]: File "/home/brewpi/BrewPiProcess.py", line 38, in <module>
May 21 13:41:44 raspberry brewpi[903]: from packaging import version
May 21 13:41:44 raspberry brewpi[903]: ModuleNotFoundError: No module named 'packaging'
brewpi@raspberry:~$
 
Related?
I tried running the curl update, it cannot find upgrade.brewpiremix.com

brewpi@raspberry:~$ pwd
/home/brewpi
brewpi@raspberry:~$ sudo /home/brewpi/utils/doUpdate.sh

***Script doUpdate.sh starting.***

Downloading current version of this script.

Executing current version of script.

Checking /home/pi/brewpi-tools-rmx for necessary updates.

/home/pi/brewpi-tools-rmx is up to date.

Checking /home/brewpi/utils for necessary updates.

/home/brewpi/utils is up to date.

Checking /var/www/html for necessary updates.

/var/www/html is up to date.

Do you want to flash your controller now? [y/N]:

***Script doUpdate.sh complete.***
brewpi@raspberry:~$
brewpi@raspberry:~$
brewpi@raspberry:~$ curl -L upgrade.brewpiremix.com | sudo bash

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: upgrade.brewpiremix.com
brewpi@raspberry:~$
brewpi@raspberry:~$ ping upgrade.brewpiremix.com
ping: upgrade.brewpiremix.com: Name or service not known
brewpi@raspberry:~$
 
upgrade.brewpiremix.com
Tru "update.brewpiremix.com." Both should work but for some reason "upgrade" is broken at the moment. I'll check on that in a sec.

It "looks like" your upgrade was incomplete, and that should fix it. If not, we'll work it out. I know what it is, just not why it happened.
 
Back
Top