[Version 2 Release] RaspberryPints - Digital Taplist Solution

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.
Im pretty techy but this is killing me.. is there a version that doesnt need to be connected to the internet? Can i just do the edits through a pc? Anyone willing to let me ship my sd card and have you install it for me :) ill send a $10 with it for your time lol
 
Swissflow is based in the Netherlands, so they should ship to the UK no problem. They have a link to pay via PayPal on the page at Swissflow | SF 800 Low Pressure Infrared Flow Meter which should quote you a price in Sterling. I was very impressed with their service.
Thanks for the link, just had a quick look...they are quoting $91.40 (around £73 Sterling) for one flow meter delivered. I’m after 6 of them in total so that works out at quite a hefty sum!
 
Thanks for the link, just had a quick look...they are quoting $91.40 (around £73 Sterling) for one flow meter delivered. I’m after 6 of them in total so that works out at quite a hefty sum!

Yes, they are not cheap. My five were $300 + $60 to ship via DHL to the US. They are very nice quality though. If you look at this post @esdill has a link to some cheaper ones from AliExpress. You might want to ask if they are any good.
 
There are alternative flow meters that are much less expensive than SF800s. There was a discussion on that subject but for the life of me I can't find it. One of the inexpensive meters had fairly impressive performance...

[edit] Ah, thanks to @duncan.brown :)

Cheers!
 
I purchased some iSentrol stainless steel flowmeters from AliExpress, they're 1/4" BSPP. I have some 6MM ID X 9MM OD and 6 MM ID x 10MM OD copper crush washers on the way from eBay, hopefully one of those sizes will fit. If not, I'll try some o-rings.

https://www.aliexpress.com/item/33005811144.html?spm=a2g0s.9042311.0.0.62434c4d25U2Yb
Hi, would you recommend these flow meters? I’m trying to find something suitable that’s not as pricey as the Swiss flow ones!
 
Hi, would you recommend these flow meters? I’m trying to find something suitable that’s not as pricey as the Swiss flow ones!
You get what you pay for. The other choices work, however they seem to be more sensitive to physical alignment (meaning you may need to recalibrate at each keg change) and they are less accurate than the SwissFlow.

Buy once, cry once, but they might not be everyone's cup of tea.
 
The other choices work, however they seem to be more sensitive to physical alignment (meaning you may need to recalibrate at each keg change) and they are less accurate than the SwissFlow.

Agreed. The cheap flow meters use the Hall effect but the SF800s use infrared sensors with a tiny impeller, so they are more accurate and robust. Hall effect devices are also susceptible to magnetic fields, and may need to be recalibrated if the local B-field changes.
 
Does anyone know of a way to add a second temperature reading to the main screen? @RandR+

My kegerator is a fridge freezer and I store all my hops in the freezer section. Would be good to be able to see the temp of the freezer also.
 
Hi all,

I've read maybe half of the thread in searching for help and learning about this project, but so much has changed with package support and the awesome maintenance to keep new installs going. I have a Pi3B+ (Raspbian Lite with control via SSH/X11) with fresh install of RPints, @RandR+ version with flowmeters. I have one Digiten flowmeter I got on Amazon just to test things out, and running it off of a Arduino Mega 2560 R3 I had lying around from from an old project (RFLink Gateway) with flowmeter on pin 8. Mega is connected to Pi with USB cable and selected USB from install choices on multiple installs. I have Rpints up and running, DB set up, beerXML imported and test keg running. When I start the FlowMon service this is my log:
Code:
pi@raspints:/ $ sudo /etc/init.d/flowmon start
[ ok ] Starting flowmon (via systemctl): flowmon.service.
pi@raspints:/ $ tail -f /var/log/rpints.log
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:0=0
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:1=0
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:2=0
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:3=0
2020-07-06 21:38:37 RPINTS: Could not import RFID Reader, RFID disabled. Assuming SPI not installed/configured
2020-07-06 21:38:39 RPINTS: starting setup...
2020-07-06 21:38:39 RPINTS: Ino new than Hex. manual upload assumed
2020-07-06 21:38:39 RPINTS: starting WS server
2020-07-06 21:38:39 RPINTS: starting device monitors...
2020-07-06 21:38:39 RPINTS: starting command server
2020-07-06 21:38:39 RPINTS: resetting Arduino
2020-07-06 21:38:39 RPINTS: starting fan control
2020-07-06 21:38:39 RPINTS: Fan Control fanControl1 is Running
2020-07-06 21:38:39 RPINTS: Not Configured to run Fan
2020-07-06 21:38:40 RPINTS: waiting for Arduino to come alive
2020-07-06 21:38:41 RPINTS: Arduino alive...
2020-07-06 21:38:41 RPINTS: getting config data for Arduino
2020-07-06 21:38:41 RPINTS: Arduino config, about to send: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:38:41 RPINTS: Waiting for Config Response
2020-07-06 21:38:41 RPINTS: Arduino says: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:38:41 RPINTS: listening to Arduino
2020-07-06 21:38:41 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
I have tried powering the Arduino with its own power (7.5v), changing the baud in the .ino and config.py to 57600 and back, changing USB cables and ports, but I am seriously grasping at straws now. Response from Arduino is endless StatusCheck; messages, but for every 2 good messages there are maybe 6-10 incomplete messages:
Code:
StatusCheck;
tauCheck;
StatusCheck;
Satttshc;
tttatshek
ttuCettusCek
SauCec;
tttttshck
tattatttshc;
tatshSatsCek;
StatusCheck;
StatusCheck;
ttttttttttSttuCheck;
StatusCheck;
StatusCheck;
ttSatshec;
StatusCheck;
StatusCheck;
StatusCheck;

After that the Arduino puts on a good light show between the AREF/TX/RX lights and the FlowMon log indicates:
Code:
2020-07-06 21:57:22 RPINTS: alive
2020-07-06 21:57:22 RPINTS: Arduino was restarted, restart flowmonitor
2020-07-06 21:57:22 RPINTS: closing serial connection to Arduino...
2020-07-06 21:57:23 RPINTS: flowmonitor aborted, restarting...
2020-07-06 21:57:23 RPINTS: resetting Arduino
2020-07-06 21:57:24 RPINTS: waiting for Arduino to come alive
2020-07-06 21:57:25 RPINTS: Arduino alive...
2020-07-06 21:57:25 RPINTS: getting config data for Arduino
2020-07-06 21:57:25 RPINTS: Arduino config, about to send: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:57:25 RPINTS: Waiting for Config Response
2020-07-06 21:57:25 RPINTS: Arduino says: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:57:25 RPINTS: listening to Arduino
2020-07-06 21:57:25 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
And finally flowmonitor gets aborted, restarting, and resets the Arduino where it waits for the Arduino to come alive again until intervention.
20200706_222844.jpg
Does the Mega 2560 work for this project? Can I use an ESP32 or ESP8266 for serial that I have lying around? Would I try connecting via serial with level shifters (have those too)? I thought the USB would be the easiest way to go here, but can't figure out what's going wrong. What's giving the NOTOK command?
 
Aw...you mean he only implemented a single channel?
My implementation allowed for five - and could do more, but I've found top/bottom/tower/keg/ambient to be perfect...

Cheers!
Why are you being facetious? I don't know whose version is better. I stumbled across the RANDR+ verson first and so used it. Ive never even seen your version. Only randr+ and Tobor_8thman.

Where is the link to your version and how is it different to the others?
 
Hi all,

I've read maybe half of the thread in searching for help and learning about this project, but so much has changed with package support and the awesome maintenance to keep new installs going. I have a Pi3B+ (Raspbian Lite with control via SSH/X11) with fresh install of RPints, @RandR+ version with flowmeters. I have one Digiten flowmeter I got on Amazon just to test things out, and running it off of a Arduino Mega 2560 R3 I had lying around from from an old project (RFLink Gateway) with flowmeter on pin 8. Mega is connected to Pi with USB cable and selected USB from install choices on multiple installs. I have Rpints up and running, DB set up, beerXML imported and test keg running. When I start the FlowMon service this is my log:
Code:
pi@raspints:/ $ sudo /etc/init.d/flowmon start
[ ok ] Starting flowmon (via systemctl): flowmon.service.
pi@raspints:/ $ tail -f /var/log/rpints.log
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:0=0
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:1=0
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:2=0
2020-07-06 21:38:37 RPINTS: valve update: RPU:VALVE:3=0
2020-07-06 21:38:37 RPINTS: Could not import RFID Reader, RFID disabled. Assuming SPI not installed/configured
2020-07-06 21:38:39 RPINTS: starting setup...
2020-07-06 21:38:39 RPINTS: Ino new than Hex. manual upload assumed
2020-07-06 21:38:39 RPINTS: starting WS server
2020-07-06 21:38:39 RPINTS: starting device monitors...
2020-07-06 21:38:39 RPINTS: starting command server
2020-07-06 21:38:39 RPINTS: resetting Arduino
2020-07-06 21:38:39 RPINTS: starting fan control
2020-07-06 21:38:39 RPINTS: Fan Control fanControl1 is Running
2020-07-06 21:38:39 RPINTS: Not Configured to run Fan
2020-07-06 21:38:40 RPINTS: waiting for Arduino to come alive
2020-07-06 21:38:41 RPINTS: Arduino alive...
2020-07-06 21:38:41 RPINTS: getting config data for Arduino
2020-07-06 21:38:41 RPINTS: Arduino config, about to send: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:38:41 RPINTS: Waiting for Config Response
2020-07-06 21:38:41 RPINTS: Arduino says: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:38:41 RPINTS: listening to Arduino
2020-07-06 21:38:41 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
I have tried powering the Arduino with its own power (7.5v), changing the baud in the .ino and config.py to 57600 and back, changing USB cables and ports, but I am seriously grasping at straws now. Response from Arduino is endless StatusCheck; messages, but for every 2 good messages there are maybe 6-10 incomplete messages:
Code:
StatusCheck;
tauCheck;
StatusCheck;
Satttshc;
tttatshek
ttuCettusCek
SauCec;
tttttshck
tattatttshc;
tatshSatsCek;
StatusCheck;
StatusCheck;
ttttttttttSttuCheck;
StatusCheck;
StatusCheck;
ttSatshec;
StatusCheck;
StatusCheck;
StatusCheck;

After that the Arduino puts on a good light show between the AREF/TX/RX lights and the FlowMon log indicates:
Code:
2020-07-06 21:57:22 RPINTS: alive
2020-07-06 21:57:22 RPINTS: Arduino was restarted, restart flowmonitor
2020-07-06 21:57:22 RPINTS: closing serial connection to Arduino...
2020-07-06 21:57:23 RPINTS: flowmonitor aborted, restarting...
2020-07-06 21:57:23 RPINTS: resetting Arduino
2020-07-06 21:57:24 RPINTS: waiting for Arduino to come alive
2020-07-06 21:57:25 RPINTS: Arduino alive...
2020-07-06 21:57:25 RPINTS: getting config data for Arduino
2020-07-06 21:57:25 RPINTS: Arduino config, about to send: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:57:25 RPINTS: Waiting for Config Response
2020-07-06 21:57:25 RPINTS: Arduino says: C:4:8:0:0:0:0:300:200:30:250:0:0:1|
2020-07-06 21:57:25 RPINTS: listening to Arduino
2020-07-06 21:57:25 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
And finally flowmonitor gets aborted, restarting, and resets the Arduino where it waits for the Arduino to come alive again until intervention.
View attachment 688331
Does the Mega 2560 work for this project? Can I use an ESP32 or ESP8266 for serial that I have lying around? Would I try connecting via serial with level shifters (have those too)? I thought the USB would be the easiest way to go here, but can't figure out what's going wrong. What's giving the NOTOK command?
RANDR+ advised me to do this when I had a similar issue and it worked for a little while (but that wasn't my main issue.) I don't know much about all this but you could try that. You said you changed it to 57600 so maybe try 115200?

1. in the sketch change line 124
from
Serial.begin(9600);
to
Serial.begin(115200);

2. in python/FlowMonitor.py change line 227
from
self.arduino = serial.Serial(self.port,9600,timeout=.5)
to
self.arduino = serial.Serial(self.port,115200,timeout=.5)

then stop flowmon, upload sketch, and start flowmon.
 
Facetious? Moi? I suspect if you had a more robust historical perspective of the history of RaspberryPints here you might reconsider that assessment.

Anyway, fyi, I cobbled together a few "add-on" functions for the original, 2.0.1 version RaspberryPints, including an essentially n-channel temperature logger based on ds18b20 sensors. It utilizes an sqlite database and with the help of a couple of HBTers many years ago we managed to get the RaspberryPints gui to pull the data and display it in a quasi-scrolling manner in the top-right corner of the tap list display.

I've read often that the RandR+ fork supported a temperature display function. I had expected it was a replication of my implementation, at least in function if not structure...

Cheers!
 
Facetious? Moi? I suspect if you had a more robust historical perspective of the history of RaspberryPints here you might reconsider that assessment.

Anyway, fyi, I cobbled together a few "add-on" functions for the original, 2.0.1 version RaspberryPints, including an essentially n-channel temperature logger based on ds18b20 sensors. It utilizes an sqlite database and with the help of a couple of HBTers many years ago we managed to get the RaspberryPints gui to pull the data and display it in a quasi-scrolling manner in the top-right corner of the tap list display.

I've read often that the RandR+ fork supported a temperature display function. I had expected it was a replication of my implementation, at least in function if not structure...

Cheers!
Your right I don't have a historical perspective of the history of Raspberry Pints.

So there is no easy way to add a second temp display then?
 
Does anyone know of a way to add a second temperature reading to the main screen?
The code I used for reading temp probes is directly from day_trippr and supports multiple probes.

If you put another temperature probe wired in line with the first, Rpints will see it and add it to the temperature probe list.

The homepage gets the latest temperatures from the database and displays them so if there are 2 probes actively reading it will display both with no configuration changes (assuming you are already showing the temp)
 
When I start the FlowMon service this is my log:
That log looks good.
After initial comms, if nothing else is going on, the last line in the log will be
Sending Status;NOTOK;-1;0;0;0;0;0;|

I don't have it printing out repeats of that message otherwise the log would fill up pretty quickly.

When you start getting messages that are melded together, it most likely is a baudrate issue that troyp42 posted about.
 
That log looks good.
After initial comms, if nothing else is going on, the last line in the log will be
Sending Status;NOTOK;-1;0;0;0;0;0;|

Ahhh, I took the NOTOK response as an error. So the connection is made and everything should be working, but now then to troubleshoot why I am not getting any reading from the Digiten flowmeter. I have red->5v, black->ground, yellow->D8, all on the Arduino. I am not getting any output in the logs for pintDispatch or from the serial monitor on the Arduino. Will try upping the Baud rate to 115200
 
am not getting any output in the logs for pintDispatch or from the serial monitor on the Arduino
NOTOK is in reference to the RFID reader not reading a card.

It looks like you have it wired correctly and from your log I see that it has pin 8 configured for 1. You may need to get a meter or put a simple sketch on the Arduino to verify the signal when the meter is spinning.

A word of caution, the serial monitor can mess up comms between the pi and Arduino. If I have mine open I notice the messages get screwed with and the python code start failing. you can use the serial monitory by manually sending the pithon messages to the Arduino to get it in the right state
when you see alive just send
C:4:8:0:0:0:0:300:200:30:250:0:0:1|
it will echo it back then send a statuscheck
You don't need to respond to the status check message the Arduino doesn't need it for flow meters, but it is helpful to know if the Arduino code is still running
 
You may need to get a meter or put a simple sketch on the Arduino to verify the signal when the meter is spinning.

Tried this and have confirmed that the flowmeter works using a FlowMeterDIY.ino sketch I found. I also put an LED on the data line to ground and confirm with visual that meter spins (even though I am blowing into it). This leads me to believe it is an error in the sketch with the pulse counter or posting into the database. I did a full reinstall of everything and changed only the baud rates to 115200 in the sketch and flowmonitor.py. Still have no logged pours :( Any thoughts?

A word of caution, the serial monitor can mess up comms between the pi and Arduino.
Thanks for the reminder! Discovered this early on in my troubleshooting, but good for others who stumble upon this and forget!!
 
The code I used for reading temp probes is directly from day_trippr and supports multiple probes.

If you put another temperature probe wired in line with the first, Rpints will see it and add it to the temperature probe list.

The homepage gets the latest temperatures from the database and displays them so if there are 2 probes actively reading it will display both with no configuration changes (assuming you are already showing the temp)
Cheers mate, It works well but Ive noticed it seems to just randomly switch between fridge temp and freezer temp. Is there a way to show both at the same time?
 
fwiw, my original code cycled through the (n) sensors in order, with a 2 second period between each reading. When you have five sensors that's a bit much header space to make them all show, and I really didn't need that functionality anyway.

I would expect @RandR+'s fork would do something similar if only because it would be harder to make that random :)

Cheers!
 
Agreed. The cheap flow meters use the Hall effect but the SF800s use infrared sensors with a tiny impeller, so they are more accurate and robust. Hall effect devices are also susceptible to magnetic fields, and may need to be recalibrated if the local B-field changes.

I found these which seem to be specifically designed for beer. They are not particularly cheap but as they are made in the UK (I think) they work out cheaper than the Swiss flow ones for me. Don’t know if anyone has heard of these before but might be worth a punt?

[/https://www.ebay.co.uk/itm/173881600017
 
This leads me to believe it is an error in the sketch with the pulse counter or posting into the database
If it was an issue with the database you would see more in the log file, it would say it got a pour and then say something went wrong.

Which leads to an error in the sketch, its the same sketch others are running without issue.

Can you edit python/Config.py and turn on debugging by replacing False#True with just True like:
config['flowmon.debug' ] = True
#logging settings for pintdispatch
config['dispatch.debug' ] = True

then restart the service and check the log, it may have more information in why its not logging a pour
 
Is there a way to show both at the same time?
That was a design flaw in the code, I had it showing the latest temp taken so if they didn't update at the same time then they would flip between the two.
I committed a change to display all active probes and their temps. You can rerun the installer, it will prompt to update when it detects an installation
 
Which leads to an error in the sketch, its the same sketch others are running without issue.
I uploaded a new sketch, changing only the baud rate to 115200. Only difference I suspect with my install is using a Mega2560 instead of a Uno or Alamode? Does the Mega handle interrupts differently?
My log even after a "pour" reads only:
Code:
2020-07-08 09:24:42 RPINTS: Arduino reconfig in progress...
2020-07-08 09:24:42 RPINTS: closing serial connection to Arduino...
2020-07-08 09:24:43 RPINTS: flowmonitor aborted, restarting...
2020-07-08 09:24:43 RPINTS: resetting Arduino
2020-07-08 09:24:45 RPINTS: waiting for Arduino to come alive
2020-07-08 09:24:46 RPINTS: Arduino alive...
2020-07-08 09:24:46 RPINTS: getting config data for Arduino
2020-07-08 09:24:46 RPINTS: Arduino config, about to send: C:4:0:8:0:0:0:300:200:30:250:0:0:1|
2020-07-08 09:24:46 RPINTS: Waiting for Config Response
2020-07-08 09:24:46 RPINTS: Arduino says: C:4:0:8:0:0:0:300:200:30:250:0:0:1|
2020-07-08 09:24:46 RPINTS: listening to Arduino
2020-07-08 09:24:46 RPINTS: Sending Status;NOTOK;-1;0;0;0;0;0;|
In Tap History, it shows amounts in keg at 0.00oz
1594215190791.png

Even though I've given them values:
1594215249028.png


I've also tried various "count per gal" settings to test - 36, 360, 3600, and 36000 (all arbitrary numbers at this point)
 
I found these which seem to be specifically designed for beer. They are not particularly cheap but as they are made in the UK (I think) they work out cheaper than the Swiss flow ones for me. Don’t know if anyone has heard of these before but might be worth a punt?

Looks like that's the Drinkbrook DBS026 flow meter: DBS026 Flowmeter

The main difference seems to be that these are 500 pulses per liter compared to 5000 pulses per liter for the SF800. However, they seems to be marketed for commercial beer systems, so if they are good enough to keep Her Majesty's Customs and Excise happy, then there are probably good enough for RaspberryPints!

I'm curious to know how they work for you.
 
In Tap History, it shows amounts in keg at 0.00oz
I will double check the code, probably doesn't set the amount in the keg before creating the event. Though Tap history wont affect pours from the sketch
 
That it does Arduino Reference
it only has pins 2, 3, 18, 19, 20, 21 for interrupts.

Success!! I dug a little deeper in the sketch and see that you are not just referencing interrupts, but PCINT's. These are configured very differently on the Mega, utilizing pins per the following diagram: reference link
1594233151891.png


The sketch calls the numbered pin on the board, not the "Physical Pin" label, so flowmeter connected on pin 53, PCINT0 on the Mega results in a pour!! Other pins labeled PCINT# should work as well except for Pin 13 which is defined as the onboard LED.

The keg volume shows decreasing based on pour volume, but the image on the display still does not update based on keg type and volume. Is it supposed to?

Thanks for your patience and help troubleshooting, and most of all thanks for keeping this project alive!
 
You get what you pay for. The other choices work, however they seem to be more sensitive to physical alignment (meaning you may need to recalibrate at each keg change) and they are less accurate than the SwissFlow.

Buy once, cry once, but they might not be everyone's cup of tea.

First, I absolutely agree with you (and everyone else) about the SwissFlow meters.

However, if you have a hard time justifying $80, $140, in my case $200 on 3 flow meters...I think the Digiten meters that RandR+ recommended do a nice job. Yes, they are less accurate than the SF, but usually I’m only off by about 20-30oz when a keg kicks (Sometimes tighter)

As far as physical alignment of the sensors, well, there are ways to minimize that issue.
 

Attachments

  • C8CD4D1C-6C2B-43FE-9A1D-3049969716F5.jpeg
    C8CD4D1C-6C2B-43FE-9A1D-3049969716F5.jpeg
    86 KB · Views: 45
That was a design flaw in the code, I had it showing the latest temp taken so if they didn't update at the same time then they would flip between the two.
I committed a change to display all active probes and their temps. You can rerun the installer, it will prompt to update when it detects an installation
But whenever I try to update I get these sorts of errors and not sure how to get around it.

error: Your local changes to the following files would be overwritten by merge:
admin/includes/managers/tempProbe_manager.php
admin/includes/models/tapEvent.php
admin/tap_list.php
favicon.ico
img/RaspberryPints-4k.png
img/RaspberryPints.png
img/pint.ico
includes/beerListTable.php
includes/beerListTableVerticle.php
index.php
pint.ico
Please commit your changes or stash them before you merge.
Aborting
 
One way to get around the overwrite error is to rename the files before performing the update. Then do the update, the error should not show up. Then do a diff on the files to see what changed. You can apply your changes to the new files. This is not a great solution. But, it is a solution.
 
In the RandR+ version, is it possible to change the order of the columns? I'd like to move the IBU column next to ABV.
 
One way to get around the overwrite error is to rename the files before performing the update. Then do the update, the error should not show up. Then do a diff on the files to see what changed. You can apply your changes to the new files. This is not a great solution. But, it is a solution.
Cheers for that but I don't know what Then do a diff on the files to see what changed. Is or how I would do it? I assume you mean compare them but how do I do that?
 
Back
Top