• 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.
Refresh the collective memory: what make/model flow meters?
Do you have more than one meter being tested?

imo, if you are pouring a little over an ounce per second (a bit under 2 liters per minute) and a meter isn't spinning I'd suspect the meter. Even the Adafruit is spec'd at 1 lpm at the low end - which means it'll likely work even lower with perhaps some loss of accuracy...

Cheers!
These are the flow meters I’m using.
https://www.auselectronicsdirect.com.au/hall-effect-water-flow-meter-sensor

I have 3 metres and I tested them all by blowing and all worked. Tested 2 with a pour and neither worked. When I first set it all up yesterday it worked but my gas pressure was up a bit more as I actually had to turn it down and burp the keg. I’ve only just realised now that’s what caused it to stop working. But even if I keep the beer line connected and blow as hard as I can the meters don’t spin. It’s like the 4mm line is causing too much restriction.
 
It says it will work at 1liter per minute which seem fine for most tap systems.
what are you tap settings like count pulse count per gallon, update trigger count and pour trigger count?

I think the setting should be 1700 for count per gallon, maybe a update count around 200 and trigger count of a once or two maybe 15 to 25.

edit; maybe try a lower value like 50 and 10 for update count and trigger count to see if you get anything to register.
 
Last edited:

[Version 2 Release] RaspberryPints - Digital Taplist Solution At this post I talk about flow meters and what their rated frequency relates to. In your case, your flow meters are at a theoretical 7.5Hz. That means your meter generates 450 pulses per Liter (theoretically). Your meters have an error of 10%, meaning your actual frequency can be +/- .75Hz in either direction of 7.5Hz.

As @ba-brewer just mentioned start around 1700 p/G, and his limit recommendations.
 
Last edited:
Thanks guys, I’m out for the weekend but I think I have my pulse count set at 7000 per litre. I’ll drop it right down and see how I go. Thanks for the tips.
 
Can i power the uno via the raspberry pi or does it have to be powered via it's own port?
I would power the Uno on its own.

Also check /var/log/rpints.log for any errors or anomalies.

you may need to change the baudrate

stop the service (sudo /etc/init.d/flowmon stop)
In /var/www/html/python/FlowMonitor.py change line 225
from
self.arduino = serial.Serial(self.port,9600,timeout=.5)
to
self.arduino = serial.Serial(self.port,115200,timeout=.5)
and save
in the raspberrypints.ino change line 124
from
Serial.begin(9600);
to
Serial.begin(115200);

delete /var/www/html/arduino/raspberrypints/raspberrypints.hex
upload the sketch via Arduino ide
then start the service (sudo /etc/init.d/flowmon start)
 
Can i power the uno via the raspberry pi or does it have to be powered via it's own port?
I would power the Uno on its own.

Also check /var/log/rpints.log for any errors or anomalies.

you may need to change the baudrate

stop the service (sudo /etc/init.d/flowmon stop)
In /var/www/html/python/FlowMonitor.py change line 225
from
self.arduino = serial.Serial(self.port,9600,timeout=.5)
to
self.arduino = serial.Serial(self.port,115200,timeout=.5)
and save
in the raspberrypints.ino change line 124
from
Serial.begin(9600);
to
Serial.begin(115200);

delete /var/www/html/arduino/raspberrypints/raspberrypints.hex
upload the sketch via Arduino ide
then start the service (sudo /etc/init.d/flowmon start)
 
Just did a Mass Update to my branch
Major:
Fix ardunio RFID tag logic
Added option to split home page horizontal beer list into 2 columns
Improved logging and added Database logging visiable from admin page
Load Cell Logic
Initial logic for ordering columns on home page (need customization page in works)
Minor:
Show pour list on home page config
Changed alamode to Arduino for logging
Python now checks the file time of the ino and if newer then the hex don't upload assume manual upload
minor fixes
 
Just did a Mass Update to my branch
Major:
Fix ardunio RFID tag logic
Added option to split home page horizontal beer list into 2 columns
Improved logging and added Database logging visiable from admin page
Load Cell Logic
Initial logic for ordering columns on home page (need customization page in works)
Minor:
Show pour list on home page config
Changed alamode to Arduino for logging
Python now checks the file time of the ino and if newer then the hex don't upload assume manual upload
minor fixes
Awesome stuff RandR+. I just tried to update and received the usual message. I don't want to jump the gun and lose anything like last time so what's the best course of action here? How do I commit these changes?

error: Your local changes to the following files would be overwritten by merge:
admin/header.php
admin/includes/config_names.php
admin/includes/managers/tap_manager.php
admin/includes/paginateTableRow.php
admin/left_bar.php
admin/load_cell_list.php
admin/personalize.php
admin/rpints_log.php
admin/temp_log.php
admin/temp_probe_list.php
arduino/raspberrypints/raspberrypints.cpp.hex
arduino/raspberrypints/raspberrypints.ino
includes/beerListTable.php
includes/beerListTableVerticle.php
includes/common.php
includes/pourListTable.php
python/Config.py
python/FlowMonitor.py
python/PintDispatch.py
python/ws/rpupdate_wsh.py
sql/schema.sql
sql/update.sql
style.css
util/installRaspberryPints
Please commit your changes or stash them before you merge.
Aborting
Updating 26f159c..8cb107e
/home/pi
pi@rpints:~$
 
Well gents thanks again for your help. I changed my settings and now get a pour showing. It varies from around 245mls to 270mls on a 250 ml pour but I suppose that's the best I'm going to get with these flow meters.

Screen Shot 2020-02-03 at 7.27.39 am.png
 
Might want to lower the pour trigger count, I think that that is minimum size to determine what to register. At 450 pulses per liter a 100 count represent a sizable amount of beer, not sure if that will register a small or top off pour.
 
I don't want to jump the gun and lose anything like last time so what's the best course of action here? How do I commit these changes?
You have to sign up for GitHub and register your account to your pi from what I've read, but I haven't played around enough

Whats easier is to make a copy of /var/www/html (sudo cp /var/www/html /var/www/html-bak -r)
then revert your local files like before
get the latest
then use a compare tool to look for manual changes you made (I use winmerge (for windows) by pulling the files to my computer then comparing then pushing) or www.scootersoftware.com/features.php
I would also think about copying the files that you upload back to /var/www/html (sudo cp /var/www/html-bak /var/www/html -r -n)
 
Might want to lower the pour trigger count, I think that that is minimum size to determine what to register. At 450 pulses per liter a 100 count represent a sizable amount of beer, not sure if that will register a small or top off pour.
Ive dropped it to 50. Cheers.
 
You have to sign up for GitHub and register your account to your pi from what I've read, but I haven't played around enough

Whats easier is to make a copy of /var/www/html (sudo cp /var/www/html /var/www/html-bak -r)
then revert your local files like before
get the latest
then use a compare tool to look for manual changes you made (I use winmerge (for windows) by pulling the files to my computer then comparing then pushing) or www.scootersoftware.com/features.php
I would also think about copying the files that you upload back to /var/www/html (sudo cp /var/www/html-bak /var/www/html -r -n)

What do you mean by revert your local files like before?

How do I pull the files to my computer?

Could I just copy all these files it mentions in the update to another folder. Do the update then copy them back and overwrite the new ones?

admin/header.php
admin/includes/config_names.php
admin/includes/managers/tap_manager.php
admin/includes/paginateTableRow.php
admin/left_bar.php
admin/load_cell_list.php
admin/personalize.php
admin/rpints_log.php
admin/temp_log.php
admin/temp_probe_list.php
arduino/raspberrypints/raspberrypints.cpp.hex
arduino/raspberrypints/raspberrypints.ino
includes/beerListTable.php
includes/beerListTableVerticle.php
includes/common.php
includes/pourListTable.php
python/Config.py
python/FlowMonitor.py
python/PintDispatch.py
python/ws/rpupdate_wsh.py
sql/schema.sql
sql/update.sql
style.css

If so how do I let it do the update?
 
Last edited:
Ok strange, after receiving the first error message when trying to update I went in and backed up the folder. Then when I attempted an update again it said "Already up to date".
I had only lost my tap, and background images and it reverts back to Imperial after every update. Other than that everything else seems as it was before the update.

These updates are great RAndR+

Good option if you want to see more pours.
Screen Shot 2020-02-03 at 9.55.59 am.png
 
Last edited:
Things are getting more interesting here :)
@RandR+, I gather displaying the pour list or not is the config addition noted above, but is the pour list count also settable from the config page?

Cheers!
 
The above is what you're looking for.

change to:

Code:
<?php
            }
       $style = "";     
       if(isset($beer) && isset($beer['tapRgba']) && $beer['tapRgba']) $style = "background-color: ".$htmlHelper->CreateRGB($beer['tapRgba']);
       $imgs = glob ( 'img/tap/tap'.$beer['id'].'.*' );
       if(count($imgs) > 0) $style .= ($style != ""?";":"").'background:url('.$imgs[0].') no-repeat bottom left; background-size:cover; -webkit-border-radius:0px; -mox-border-radius:0px; height:51px; width:54px';
       ?>

With that being said....the height and width that I have in my php may not be right for you and you may have to expand/contract the size based off of your needs....but that's the base element that needs to be altered.
Thanks mate this worked for me to after the update made my tap images too big. Cheers.
 
This is so frustrating. I did the update and now the pours dont work again. I re -did all of this (Except deleting the hex file as I did the first time and the log showed an error about it so didn't delete it the second time)
But still no pours and the Rpints log doesn't show anything.

stop the service (sudo /etc/init.d/flowmon stop)
In /var/www/html/python/FlowMonitor.py change line 225
from
self.arduino = serial.Serial(self.port,9600,timeout=.5)
to
self.arduino = serial.Serial(self.port,115200,timeout=.5)
and save
in the raspberrypints.ino change line 124
from
Serial.begin(9600);
to
Serial.begin(115200);

delete /var/www/html/arduino/raspberrypints/raspberrypints.hex
upload the sketch via Arduino ide
then start the service (sudo /etc/init.d/flowmon start)

Here is the log

2020-02-03 11:42:36 RPINTS: Could not import RFID Reader, RFID disabled. Assuming SPI not installed/configured
2020-02-03 11:42:38 RPINTS: Ino new than Hex. manual upload assumed
2020-02-03 11:42:38 RPINTS: starting WS server
2020-02-03 11:42:38 RPINTS: starting tap flow meters...
2020-02-03 11:42:38 RPINTS: starting command server
2020-02-03 11:42:38 RPINTS: starting fan control
2020-02-03 11:42:38 RPINTS: Fan Control fanControl1 is Running
2020-02-03 11:42:38 RPINTS: Not Configured to run Fan
2020-02-03 11:42:39 RPINTS: 1Wire Temperature Thread 1 is Running
 
Ok got them all working. Hooked them back up properly and started pouring and not working again. Im wasting a lot of beer here even though I am using a keg of water too..lol. Any clues from this log file?



2020-02-03 12:24:44 RPINTS: got WS connection from ('::1', 52856, 0, 0)
2020-02-03 12:25:29 RPINTS: got a update: U;-1;4;51
2020-02-03 12:25:30 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
2020-02-03 12:25:33 RPINTS: got a pour: P;-1;4;97
Pourpour on pin: 4, count: 97, conversion: 575, amount: 0.16869565217391, amountUnit: ml, user: N/A
2020-02-03 12:25:33 RPINTS: count update: RPU:FLOW:4=97:-1
2020-02-03 12:25:33 RPINTS: received server update, sending 'RPU:FLOW:4=97:-1' to ('::1', 52846, 0, 0)2020-02-03 12:25:33 RPINTS: received server update, sending 'RPU:FLOW:4=97:-1' to ('::1', 52850, 0, 0)

2020-02-03 12:25:33 RPINTS: received server update, sending 'RPU:FLOW:4=97:-1' to ('::1', 52856, 0, 0)
2020-02-03 12:25:33 RPINTS: [Errno 32] Broken pipe
2020-02-03 12:25:33 RPINTS: [Errno 32] Broken pipe
2020-02-03 12:25:33 RPINTS: closing WS connection to ('::1', 52846, 0, 0)
[2020-02-03 12:25:33,793] [ERROR] mod_pywebsocket.standalone.WebSocketServer: Exception in processing request from: ('::1', 52846, 0, 0)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 599, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/dist-packages/mod_pywebsocket/standalone.py", line 664, in __init__
self, request, client_address, server)
File "/usr/lib/python2.7/SocketServer.py", line 657, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 716, in finish
self.wfile.close()
File "/usr/lib/python2.7/socket.py", line 283, in close
self.flush()
File "/usr/lib/python2.7/socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe

2020-02-03 12:25:33 RPINTS: closing WS connection to ('::1', 52850, 0, 0)
[2020-02-03 12:25:33,797] [ERROR] mod_pywebsocket.standalone.WebSocketServer: Exception in processing request from: ('::1', 52850, 0, 0)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 599, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/dist-packages/mod_pywebsocket/standalone.py", line 664, in __init__
self, request, client_address, server)
File "/usr/lib/python2.7/SocketServer.py", line 657, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 716, in finish
self.wfile.close()
File "/usr/lib/python2.7/socket.py", line 283, in close
self.flush()
File "/usr/lib/python2.7/socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe

2020-02-03 12:25:33 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
2020-02-03 12:25:34 RPINTS: got WS connection from ('::1', 52860, 0, 0)
2020-02-03 12:26:00 RPINTS: got a update: U;-1;3;51
2020-02-03 12:26:01 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
2020-02-03 12:26:04 RPINTS: got a update: U;-1;3;102
2020-02-03 12:26:04 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
2020-02-03 12:26:07 RPINTS: got a pour: P;-1;3;148
Pourpour on pin: 3, count: 148, conversion: 575, amount: 0.25739130434783, amountUnit: ml, user: N/A
2020-02-03 12:26:07 RPINTS: count update: RPU:FLOW:3=148:-1
2020-02-03 12:26:07 RPINTS: received server update, sending 'RPU:FLOW:3=148:-1' to ('::1', 52860, 0, 0)
2020-02-03 12:26:07 RPINTS: received server update, sending 'RPU:FLOW:3=148:-1' to ('::1', 52856, 0, 0)
2020-02-03 12:26:07 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
2020-02-03 12:26:08 RPINTS: got WS connection from ('::1', 52864, 0, 0)
2020-02-03 12:27:08 RPINTS: got WS connection from ('::1', 52870, 0, 0)
2020-02-03 12:27:48 RPINTS: reconfigure trigger: all
2020-02-03 12:27:48 RPINTS: resetting alamode config from db
2020-02-03 12:27:48 RPINTS: Sending Status;NOTOK;-1;1;0;0;0;0;|
2020-02-03 12:27:48 RPINTS: alamode reconfig in progress...
2020-02-03 12:27:48 RPINTS: closing serial connection to alamode...
2020-02-03 12:27:49 RPINTS: flowmonitor aborted, restarting...
2020-02-03 12:27:49 RPINTS: resetting alamode
2020-02-03 12:27:50 RPINTS: waiting for alamode to come alive
2020-02-03 12:27:58 RPINTS: got WS connection from ('::ffff:192.168.1.163', 58490, 0, 0)
2020-02-03 12:27:59 RPINTS: got WS connection from ('::1', 52892, 0, 0)
2020-02-03 12:28:58 RPINTS: got WS connection from ('::ffff:192.168.1.163', 58510, 0, 0)
2020-02-03 12:28:59 RPINTS: got WS connection from ('::1', 52902, 0, 0)
2020-02-03 12:29:59 RPINTS: got WS connection from ('::ffff:192.168.1.163', 58530, 0, 0)
2020-02-03 12:30:00 RPINTS: got WS connection from ('::1', 52914, 0, 0)
2020-02-03 12:30:59 RPINTS: got WS connection from ('::ffff:192.168.1.163', 58551, 0, 0)
2020-02-03 12:31:00 RPINTS: got WS connection from ('::1', 52924, 0, 0)
 
Last edited:
"broken pipe"
Yes those are connection to webpages that go away when the page is closed (and probably when the page is refreshed)

I'm trying to suppress them in the logs but its not as easy as I would think
 
So is there an easy way to update without losing everything each time or having to go through the long winded process of having to replace all the files with back ups? Surely someone else has the RAndR+ version and has the same problem?
 
Well this is weird. Remember back in this post where I gave my opinion on using cheap meters.

https://www.homebrewtalk.com/forum/...taplist-solution.487694/page-136#post-8773558

So I bought the $2.99 ($9 with shipping) meter at amazon here:

https://smile.amazon.com/WINGONEER-...er+YF-S401&qid=1580792088&s=industrial&sr=1-1
meter.jpg


I see that’s out of stock, but it appears to be the same one as this one for $8.21 delivered.
https://smile.amazon.com/dp/B07ZNYWK63/ref=cm_sw_em_r_mt_dp_U_KPpoEb34MDXA

Notice the specs are .15-3L per minute. The YS-F401 meters we have all been looking at before were 3 - 10L.

I put it on my seltzer tap to try it out. I used ~ 7k pulse to start with, which turned out to be way wrong. I ended up with a pulse count of 22,612, meanwhile my SwissFlow meters have a pulse count of 22,886.
Pulse.jpg


So I’m pouring 8oz into a 4 cup measuring cup. Not the most accurate way of getting a precise amount with as wide as it is.

Here are the results of 4 pours of my best guess at 8oz in that measuring cup.

7.78 oz
7.68 oz
7.57 oz
7.65 oz

That’s a +- .11 oz on four pours in a big measuring cup. That is certainly as accurate as my $80 SwissFlow meters, if it is in fact correct.

Pours list. Keep in mind my RPints has a thing where it splits the pour, 7 seconds apart occasionally. This new meter is no exception, but it doesn't seem to effect accuracy. So the two split pours exactly 7 seconds apart are (18:53:34) 1.99 + (18:53:41) 5.58= 7.57 oz and (18:51:58) 4.15 + (18:52:03) 3.63 = 7.78 oz. If anyone want's to help me get to the bottom of the two pour issues, that would be great. Otherwise, since they are accurate I will just live with them. I assume both pours are getting decremented from my keg, right RandR+?

pours.jpg




I’m ordering 2 more of the ones in stock for my other taps to see how they do. I don’t know about foam. I did not drill out the tiny inlet hole on the meter and I can’t tell with seltzer water if it’s going to foam. I would think they would change the part number if they improved it, but it’s still the YS-F401 meter.

I will let you know my tests on beer when the other ones come in. Maybe someone else would like to blow $ 8.21 delivered, to do a peer review of my findings? If they don't foam like crazy and we as a group can replicate my results, anyone starting out now can get accurate flow monitoring for under $40 for 4 taps.
 
Pretty sure what folks were looking at was the yf-s201 with 1-30 lpm.

Anyway, I'm sorry but it's hard to take this seriously given the operating conditions. And the meter specs.
Until you've run a keg from start to to kick with exactly zero ounces remaining I'll claim "shenanigans" ;)

Cheers!

ps: you're literally the only person that has ever related this whole "split pour" behavior. I'd be inclined to fix that...
 
Also, thanks to everyone here that helped me get my RPints taplist working. I 'm really happy with it and it displays current temp and last pour. RandR+ helped so much by formatting it into two columns for my 8 taps. His expertise was way beyond my capabilities.

rpints.jpg




It looks great in the what my wife insists is the gender neutral cave.

taproom.jpg


I just wanted to thank everyone that has taken time from their day to help me.

Cheers,
Rick
 
Pretty sure what folks were looking at was the yf-s201 with 1-30 lpm.

Anyway, I'm sorry but it's hard to take this seriously given the operating conditions. And the meter specs.
Until you've run a keg from start to to kick with exactly zero ounces remaining I'll claim "shenanigans" ;)

Cheers!
Cool, I'm surprised as you are. So, give me a test you would like to see to prove it is reproducible. I'll post screen shots. I'm as skeptical as you are, since I'm surprised too. Operating conditions? Well for starts the pulse count is incredibly high, I don't know why. Meter specs? I didn't make them up, you can see on Amazon what they claim. I'm willing to do any reasonable test, since maybe this was a fluke. Give me your test and I'll do it. Hope I'm not embarrassed.
 
Not surprise. Skepticism ;)

I've already provided the test - when you think about it, it's the only one that matters.
Start with a full keg, run it 'til it kicks, and let us know how far off your meter was.
Mine are rarely off by more than a single 12 ounce pour. Of course I do start with an accurate, weight-based volume...

Cheers!
 
Last edited:
I've already provided the test - when you think about it, it's the only one that matters.
Start with a full keg, run it 'til it kicks, and let us know how far off your meter was.
Mine are rarely off by more than a single 12 ounce pour. Of course I do start with an accurate, weight-based volume...

Cheers!
OK, well let's see if this will satisfy you. I don't know why you would want to call me out for 'shenanigans' when I have no motivation to mislead this forum when you and others have helped me so much.

So I have a one gallon container.

galcontainer.jpg


As I have previously stated, I get multiple pour values on my RPints. Here is the log of that one gallon pour.

TestPour.jpg

So for this test, we can add them up to get 116 oz vs 128 for a gallon. If you factor in my count was lower in my previous example (and factor that into calibration at an average of 7.67oz reported for 8oz poured) we would get 124.12 oz vs 128 oz. Less than 4 oz over a gallon. I should test my SwissFlow meters and see if they are that accurate. I'm just reporting what I'm seeing to help this forum.
 
So my temp display is showing 41.9C. Its been a hot summer and was 43C on Friday but it certainly hasn't been that hot in my fridge. it was working fine for a few weeks now this. Any ideas what the problem could be?
 

Latest posts

Back
Top