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

    Homebrewing Facebook Group

[Version 2 Release] RaspberryPints - Digital Taplist Solution

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Ever since I installed flow meters back in 2014 I've felt compelled to sync up my baseline kegs so they kick within a day of each other. This obsession has the up side wrt reloading freshies and cleaning kicked kegs being bit easier as they get done in one fell swoop.

All four kegs kicked with one pour left. I could tweak my tick count a teensy bit but then again I tend not to use the most accurate weight vs volume calculation when filling. An HBT member cranked out a simple spreadsheet that is more accurate but I keep forgetting to use the darned thing ;)

Tap list at 3AM this morning...

taplist_12jan2021_01.jpg


...and now.

taplist_12jan2021_02.jpg


Game On! :D

Cheers!
 
restart just the flomonitor service to load new code


thats what I figured but wanted to double check I am not sure if my connections are causing errors in the data that is causing the 1wire code to throw an error. I rechecked them but will work on conecting the probe to female connectors that I Can connect directly to the PI to eliminate the breadboard connections to see if that eliminates the problem. I dont get further error records in the /var/log/rpints.log file and confirmed I am running the following code.

Screen Shot 2021-01-12 at 3.42.15 PM.png


I have been able to get the flowmeter, RFID and PIR working and will implement my valves when amazon delivers.

If I cant figure this out perhaps I add a cron job that will automatically restart flowmon periodically or if I can improve my programming skills , read the log file and if it receives a Unable to Run 1Wire Temperature message automatically restart the flow mon.

I am super happy to have gotten this far. Thanks for everyones help and putting out a really cool program. I know its a massive amout of work and wish I was more skilled in linux/pythom/php to help out.
 
dont get further error records in the /var/log/rpints.log file


So i changed all lines in flowmonitor to log under the temp to log

Screen Shot 2021-01-12 at 4.29.41 PM.png


I got the following error

Traceback (most recent call last): File "/var/www/html/python/FlowMonitor.py", line 727, in run temp = self.get_temp(device) File "/var/www/html/python/FlowMonitor.py", line 693, in get_temp status = lines[0][-4:-1] IndexError: list index out of range
 
Last edited:
I got the following error

Traceback (most recent call last): File "/var/www/html/python/FlowMonitor.py", line 727, in run temp = self.get_temp(device) File "/var/www/html/python/FlowMonitor.py", line 693, in get_temp status = lines[0][-4:-1] IndexError: list index out of range
that's what I needed. It appears the file is empty on some of the reads, probably when the probe is updating it

if we add
if len(lines) <= 0:
return None

to line 692 then this shouldn't happen again. I have committed that to github
 
After several reinstalls and tweaking of the settings i am unable to fix the issue where the amount subtracted from the keg after a pour is vastly different from what registers as a pour in the "pour history". (I am using the metric system). I have to choose if i want the keg on screen to be empty when i know it's 3/4 full and have correct readings in the pour history. Or if I want alot smaller "pours" in the history and a correct amount left in the keg. I have therefore decided to switch to imperial units so that I don't have to deal with this conversion bug :p
 
RandR+, My temp probe ran all day with no issues so looks like your latest comit fixed my problem. Thanks so much


I have set up a simply python script t send an SMS message and was thinking about using that to send an SMS whenever there was a pour. This is so I can keep track of the kegerator with my kids.

I build the sms solution using twillio and these instructions. super easy. So I have a simple script that will accept two arguments, the tap and how much was poured. To run it I was thinking of putting the following command into the rpints

execfile('send.py TAP Ounces') to run the send.py script using the two arguments, TAP and ounces

I am a noob when it comes to python. Any help in pointing me to where i could include this command in the rpints code an what are the variable names for the tap and the volumn of the pour would be really helpful.

Thanks
 
Hey everyone, I was hoping that someone could help me install this program onto the 3B+ that was just delivered today. I was scrolling through some pages and honestly got kind of lost in it all. I was initially following the instructions on the website but seems like that is outdated. I'm just trying to get it set up basically at this point and then I intend on connecting my Plaato Kegs to the system.

Thanks!
 
Greetings, @Nella! And welcome to the forums :mug:

The original raspberrypints.com installation process has been rendered functionally inert due to the influences of time - and the evolution of the Raspbian OS packages released over the intervening years since that page was drawn up in 2014. As an original adopter and supporter there has been some sadness.

BUT! Very fortunately there are updated alternatives, and the best supported kit has been put together by HBT member @RandR+ and is dead simple to kick off an installation.

To wit: open a terminal session and enter this command:

Code:
curl -L install.rpints.com | sudo bash

Wrt to the basic installation, everything will magically be done for you :)
Then you can go through the configuration of all the features and capabilities as desired...

Cheers!
 
Well shut my mouth 😅 looks like I owe a couple people a beer. I spent a few hours last night trying different things and that got me rolling in like 30 minutes. Now just to get it all customized. Thanks much!
 
I am already powering off a separate power supply based on other recommendations in this thread, I am also on my 3rd USB cable. I can try that again.

Any suggestions on proven brands of USB cables?

I have been using a separate power supply for the Uno since day 1.

I am now on my 6th USB cable and things will work for a few hours (Tx/Rx lights flashing) and then the lights are just on solid and no pours will register. I have tried swapping and using all 4 USB ports on the RP as well. Same results.

@RandR+ Is there anything else that I can try? It is basically not functional like this.
 
Is there anything else that I can try? It is basically not functional like this.
if you restart the flowmon service without changing anything, does it start working? Im running into something similar with mine where the shield will just stop, I haven't tracked it down yet.
 
execfile('send.py TAP Ounces') to run the send.py script using the two arguments, TAP and ounces

I am a noob when it comes to python. Any help in pointing me to where i could include this command in the rpints code an what are the variable names for the tap and the volumn of the pour would be really helpful.
The pour for python is in /python/FlowMonitor.py ~line 337
1610645773087.png


but that really just calls a PHP script that does the conversion and saves it into the database.

in admin/includes/managers/pour_manager.php you could add these lines to about line 253

$command = escapeshellcmd('send.py '.$tapId.' '.$amount);
$output = shell_exec($command);

1610645982157.png
 
conversion bug
let me test something, I think it may have to do with how I subtract the amount from the keg, I don't compare keg unit to pour unit. So if the keg unit is Imperial but pours are in Metric then this would happen

1610646070436.png
 
let me test something, I think it may have to do with how I subtract the amount from the keg, I don't compare keg unit to pour unit. So if the keg unit is Imperial but pours are in Metric then this would happen

View attachment 714324
Yes please :) If you don't fix it though it won't be a huge issue. A good opportunity to learn imperial units 😂 I am back at my hometown at the moment as my University is closed down due to Covid. The kegerator is back at the apartment by the Uni so i won't be able to help you troubleshoot at the moment though. To replicate the issue consistently i have found you need to use metric units, make a pour to calibrate the amount poured and after that the keg and pour amount will be different.
 
if you restart the flowmon service without changing anything, does it start working? Im running into something similar with mine where the shield will just stop, I haven't tracked it down yet.

Restarting via the UI does not work, but running the command sudo /etc/init.d/flowmon restart, did get things going again.

Which is how I was getting around this was to restart the RP before I make a pour IF the Tx/Rx lights were on steady.

It seems every time the R3 is reflashed it gets things going again:

Log after restarting RP or restarting flowmon service

reflashing Arduino via: /usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -patmega328p -calamode -P/dev/ttyACM0 -b115200 -D -Uflash:w:/var/www/html//arduino/raspberrypints/raspberrypints.cpp.hex:i

It's too bad that IF this situation happens, to just restart the flowmon service automatically.
 
Log after restarting RP or restarting flowmon service
What is the log before the restart? mine usually shows the last status check time. Im working to look at the serial log to see if the Shield is actually doing anything or if the python is not responding.

It's too bad that IF this situation happens, to just restart the flowmon service automatically.
I want to put in a timer that says if the Shield doesn't send anything in x minutes then restart it.
I believe that the Shield should always check the pi for a status even if it is not used (it really is for RFID but if RFID isn't configured I think it still checks)
 
What is the log before the restart? mine usually shows the last status check time. Im working to look at the serial log to see if the Shield is actually doing anything or if the python is not responding.


I want to put in a timer that says if the Shield doesn't send anything in x minutes then restart it.
I believe that the Shield should always check the pi for a status even if it is not used (it really is for RFID but if RFID isn't configured I think it still checks)

This is the full log between restarts:

2021-01-14 12:20:01 FlowMonitor D giving it a short break to wake up again... 1
2021-01-14 12:20:00 FlowMonitor D resetting alamode to try to force it to listen to us... 1
2021-01-14 12:20:00 PintDispatch D starting setup... 1
2021-01-14 12:19:58 FlowMonitor I Could not import RFID Reader, RFID disabled. Assuming SPI not installed/configured 1
2021-01-14 12:19:58 PintDispatch D valve update: RPU:VALVE:4=0 1
2021-01-14 12:19:58 PintDispatch D valve update: RPU:VALVE:3=0 1
2021-01-14 12:19:58 PintDispatch D valve update: RPU:VALVE:2=0 1
2021-01-14 12:19:58 PintDispatch D valve update: RPU:VALVE:1=0 1
2021-01-14 12:19:58 PintDispatch D valve update: RPU:VALVE:0=0 1
2021-01-14 12:17:46 PintDispatch D valve update: RPU:VALVE:4=0 1
2021-01-14 12:17:46 PintDispatch D valve update: RPU:VALVE:3=0 1
2021-01-14 12:17:46 PintDispatch D valve update: RPU:VALVE:2=0 1
2021-01-14 12:17:46 PintDispatch D valve update: RPU:VALVE:1=0 1
2021-01-14 12:17:46 PintDispatch D valve update: RPU:VALVE:0=0 1
2021-01-14 12:17:45 PintDispatch I Restarting Service 1
2021-01-14 12:17:45 PintDispatch D Requesting Reset of Service 1
2021-01-14 12:17:45 PintDispatch D reconfigure trigger: restartservice 1
2021-01-14 12:16:11 FlowMonitor D Sending Status;N;-1;0;0;0;0;0;0;| 9547
2021-01-13 20:45:12 Arduino D RT L 3 0 104147 103846 301 300 371 100 1
2021-01-13 20:45:12 PintDispatch D count update: RPU:FLOW:3=371:-1 1
2021-01-13 20:45:12 PintDispatch D restarting fan timer after pour 1
2021-01-13 20:45:11 FlowMonitor D got a pour: P;-1;3;371 1
2021-01-13 20:45:11 FlowMonitor D Sending Status;N;-1;0;0;0;0;0;0;| 15
2021-01-13 20:45:09 FlowMonitor D got a update: U;-1;3;303 1
2021-01-13 20:45:06 FlowMonitor D got a update: U;-1;3;202 1
2021-01-13 20:45:06 FlowMonitor D Sending Status;N;-1;0;0;0;0;0;0;| 338
2021-01-13 20:45:04 FlowMonitor D got a update: U;-1;3;101 1
2021-01-13 20:43:27 FlowMonitor D listening to Arduino 1
2021-01-13 20:43:27 FlowMonitor D Arduino says: C:5:3:5:7:9:0:0:300:100:30:100:0:0:1| 1
2021-01-13 20:43:27 FlowMonitor D Waiting for Config Response 1
2021-01-13 20:43:27 FlowMonitor D Arduino config, about to send: C:5:3:5:7:9:0:0:300:100:30:100:0:0:1| 1
2021-01-13 20:43:27 FlowMonitor D getting config data for Arduino 1
2021-01-13 20:43:27 FlowMonitor D Arduino alive... 1
2021-01-13 20:43:27 FlowMonitor D Adding 28-011927f10bdc Temp[6.9] low:0.0 high:212.0 1
2021-01-13 20:43:25 FlowMonitor D waiting for Arduino to come alive 1
2021-01-13 20:43:25 FlowMonitor I 1Wire Temperature Thread 1 is Running 1
2021-01-13 20:41:29 FlowMonitor D Sending Status;N;-1;0;0;0;0;0;0;| 1875
2021-01-13 20:33:17 PintDispatch I Not Configured to run Fan 1
2021-01-13 20:33:17 PintDispatch I Fan Control fanControl1 is Running 1
2021-01-13 20:33:17 FlowMonitor D Creating Serial Listener 1
2021-01-13 20:33:17 PintDispatch I starting fan control 1
2021-01-13 20:33:17 FlowMonitor D resetting Arduino 1
2021-01-13 20:33:17 PintDispatch I starting command server 1
2021-01-13 20:33:17 PintDispatch I starting device monitors... 1
2021-01-13 20:33:17 PintDispatch I starting WS server
 
To replicate the issue consistently i have found you need to use metric units, make a pour to calibrate the amount poured and after that the keg and pour amount will be different.
Yep that was it. I fixed the issue now (its in github if you update)

This only presents itself if the keg volume is set when units are one unit and the tap count is change when the units are the other. But I think keg units are loaded as imperial so if you don't change the volume from the test data to do the calibration then this would present itself after you changed units and calibrated the tap. If you change the units then change the volume of the keg the keg takes the new units not the old one
 
2021-01-14 12:19:58 PintDispatch D valve update: RPU:VALVE:0=0 1
..
2021-01-14 12:17:46 PintDispatch D valve update: RPU:VALVE:4=0 1
2021-01-14 12:16:11 FlowMonitor D Sending Status;N;-1;0;0;0;0;0;0;| 9547
FlowMonitor D Sending Status;N;-1;0;0;0;0;0;0;| 9547

9547 is the number of times that message has been logged since a different message was logged, on the webpage Log this number should be increasing every few seconds.

It looks like you noticed it wasn't working and tried to restart from the UI at 12:17:46 a minute and half after the status stopped logging. This tells me that the python was responsive to the UI and not completely frozen, but that is separated from the python that talks to the shield.
This matches what I am seeing locally.

I can see that UI restart did trigger it to review its valves but the part talks to the shield didn't start logging. I tested with my setup working normally and it acted correctly, which makes me wondering if the communications was stopped and the UI restart didn't kill it like the restart from the terminal does.

It looks like at 12:19:58 the restart happened again which I am guessing was you running the /etc/init.d/flowmon restart command
 
I really don't know how much I can add to solving the issue @kxavier_23 is experiencing. The one thing that confused me is I thought you were running 4 flow meters, but when I see this line:

2021-01-13 20:43:27 FlowMonitor D Arduino says: C:5:3:5:7:9:0:0:300:100:30:100:0:0:1| 1

Doesn't this mean he has 5 meters attached at pins 3, 5, 7, 9, and 0 @RandR+?
 
I really don't know how much I can add to solving the issue @kxavier_23 is experiencing. The one thing that confused me is I thought you were running 4 flow meters, but when I see this line:

2021-01-13 20:43:27 FlowMonitor D Arduino says: C:5:3:5:7:9:0:0:300:100:30:100:0:0:1| 1

Doesn't this mean he has 5 meters attached at pins 3, 5, 7, 9, and 0 @RandR+?

I have 5 taps, but only 4 physical meters. I will be expanding to another meter soon, but for now I was entering manual pours or manually weighing the 5th keg on tap so that I had all the beers displaying on the frontend.

Is that a problem to have one or more 'manual' taps with no flowmeters?
 
9547 is the number of times that message has been logged since a different message was logged, on the webpage Log this number should be increasing every few seconds.

So that seems to be part of the issue. When the R3 'freezes up' and the Tx/Rx lights are steady, that number also stops.

Since you are seeing the same issues locally, does that mean you may be looking for a solution?

Thank you for everything so far.
 
Yep that was it. I fixed the issue now (its in github if you update)

This only presents itself if the keg volume is set when units are one unit and the tap count is change when the units are the other. But I think keg units are loaded as imperial so if you don't change the volume from the test data to do the calibration then this would present itself after you changed units and calibrated the tap. If you change the units then change the volume of the keg the keg takes the new units not the old one
Amazing! I will test this when I get back to University, will report back to you :)
 
i am planning to use beer tubing with an inside diameter of 4MM. To connect this to my valves i have 1/4" to 3/16
' barb john Guest adapters that fit into the valves. Before I build all this, i was looking at the diameter of the 3/16" barb and its pretty small. Do you think this will create a problem with my beer flow or foaming?

if so do you think increasing to 5mm ID tubuing and a 1/4" barb would help?

Thanks
 
I would stick with the 3/16" barbs and 4mm ID line (EVABarrier, I presume).

fwiw, I ran my SF800 meters for many years using JG 3/16" barbed adapters and had no issues with pour quality or meter resolution. And it isn't that difficult to shove 4mm ID EVABarrier tubing over a 3/16" barb (or 1/4", even) with the judicious use of hot water or a hair drier...

Cheers!
 
After a while my taps don't registers pours, is this due to a bad connection somewhere?
 
After a while my taps don't registers pours, is this due to a bad connection somewhere?
it could be, did you check the log page on the admin screen or /var/log/rpints.log on the pi for errors?

I do have an issue where my version of rpints stops, that I haven't figured out yet
 
Back
Top