[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.
Rands script FTW! I do think that this thread should choose a code version and stop production on other forks and all put resources into one version. But I can't tell people what to do as I have done nothing but annoy people for help. Haha
Open Source has strengths in that anyone can take, use, and distribute the code as they see fit. Open Source has disadvantages in that anyone can take, use, and distribute the code as they see fit. If the original was not Open Source, people would not have been able to provide fixes. "Choosing a code version" is a little simplistic in that someone can have the neatest thing since sliced bread but then just sorta lose interest and 6 months later it's as broken as the original.
 
Do we really need the RP site? I've already rewritten the RPints code to run in the latest Debian 9.x, php 7.2.x, MariaDB, et al. Believe enough have tested. Only thing we're missing are the download/setup/configuration instructions (for Debian, php, etc) write-up. Should I post the latest RPints?

So, this rewrite is actually "complete" aside from documenting how to actually install it?

Cheers!
 
Open Source has strengths in that anyone can take, use, and distribute the code as they see fit. Open Source has disadvantages in that anyone can take, use, and distribute the code as they see fit. If the original was not Open Source, people would not have been able to provide fixes. "Choosing a code version" is a little simplistic in that someone can have the neatest thing since sliced bread but then just sorta lose interest and 6 months later it's as broken as the original.
I didn't mean to "remove the open sourceness", so to speak. I just meant to focus the efforts more strategically. But like you said, that's the problem with open source.
 
Rands script FTW! I do think that this thread should choose a code version and stop production on other forks and all put resources into one version. But I can't tell people what to do as I have done nothing but annoy people for help. Haha

Glad I’m not alone!
 
Is there any backup for the installation steps on raspberrypints? I finally got through my issues setting the base program up and was about to start the flow meter part when the site went down. I have some text on what to do but can't quite figure out how to physically attach meters to the alamode board to the pi.

Separately, I was running into the " Call to undefined function mysql_connect() " error and it took me the longest time to resolve so I'm going to post that here for posterity. I was following some guide I downloaded, can't remember exactly where, called RPints-Jessie-FlowMeters-Installation-Instructions.pdf. Essentially what was on raspberrypints.com but with some updated or changed commands. I wasn't able to get php5, mysql-php5, etc. Kept getting errors on the apt-get install commands saying they were unavailable. Eventually I installed without specifying a php version which I guess gave me 7.0. As we all know mysql commands no longer work, they were switched to mysqli. I tried going through the code to make all those updates but I must have been missing some since it never quite worked. [I see now some people here have that updated, hopefully it'll be made available soon for others with updated instructions.] It seemed others in this thread have been getting the php5 versions recently, but I couldn't. Eventually I found the following:

sudo echo "deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi" >> /etc/apt/sources.list

This allowed me to access a place to install php5 from. Since I already have 7.0 installed I continued running into the undefined function call until I also ran the following:

sudo a2dismod php7.0
sudo a2enmod php5
sudo service apache2 restart

sudo update-alternatives --set php /usr/bin/php5

This disabled php7.0, enabled php5, and finally allowed me to get Raspberry Pints up and running. Hopefully that helps someone else, or future me when I try and set this up again and need to google why it's not working.
 
Marketeers want to sell "New and Improved", I am sort of partial to "Old and Reliable".
I don't have load sensors set up, I just weigh the full keg before I tap it, and use flow meters after that. RandR+ introduced the load sensor code, my work was only the weight/volume calculations.

These are scales I use FWIW: Accuteck ShipPro 110lbs x 0.1 oz. Digital Shipping Postal Scale, Black (W-8580-110-Black) https://www.amazon.com/dp/B00KYA0RC2/ref=cm_sw_r_cp_apa_i_tOuJCbH1Q2FFS

Cheers,

Kal
Does the scale stay on long enough that you could use it to monitor filling of a keg?

I have been using a hanging fish scale to measure the keg after filling, but would like to be able monitor the actual filling.
 
That said, I still use a calculator to predict the gross weight (keg + 5 gallons * SG beer at cold-crash temperature) just in case the scale goes to sleep. If that happens I can still use the gross weight after waking the scale up.

Always good to have a Plan B...

Cheers! :)
 

That said, I still use a calculator to predict the gross weight (keg + 5 gallons * SG beer at cold-crash temperature) just in case the scale goes to sleep. If that happens I can still use the gross weight after waking the scale up.

Always good to have a Plan B...

Cheers! :)

Thanks for the info. Pretty good idea about calculating the expected fill weight. I have been using Kaljade's Kalculator easy to punch in a few number and get the estimate.

When I seen the size of that unit I started wondering if it would be easy enough to hack the reading from the scale to use that with the rpints. It is cheaper than the swissflow meters and not too much over the cost of the cheap flow meters. I see a stainless unit for not too much more.
 
I'm having trouble with DS18b20 temperature sensors. It is connected to my Arduino Nano and is visible via Arduino IDE.
ROM = 28 FF EE E2 C1 17 4 65
Chip = DS18B20
Data = 1 56 1 4B 46 7F FF C 10 7B CRC=7B
Temperature = 21.37 Celsius, 70.47 Fahrenheit
No more addresses.​

In Admin of RPints under "Temperature Probes" they are turned on and I've followed the information that is linked: "Connect probes to pi according to this If correct probes will automatically populate." I'm not able to get a serial number using the following:
sudo nano /boot/config.txt and added "dtoverlay=w1-gpio" to the end and rebooted. Then:
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
cd 28-xxxx (change this to match what serial number pops up)
cat w1_slave
I've searched this forum and Google, cannot find any answers. Any ideas? Is this Stretch related?
 
[...]When I seen the size of that unit I started wondering if it would be easy enough to hack the reading from the scale to use that with the rpints. It is cheaper than the swissflow meters and not too much over the cost of the cheap flow meters. I see a stainless unit for not too much more.

I don't see a digital scale surviving for long in a fridge or freezer. Moisture will eventually kill it.

I'm having trouble with DS18b20 temperature sensors. [...]
I've searched this forum and Google, cannot find any answers. Any ideas? Is this Stretch related?

Seems like you did everything right so far. Might be a @RandR+ question as this is not part of the original Raspberry Pints...

Cheers!
 
I'm having trouble with DS18b20 temperature sensors. It is connected to my Arduino Nano and is visible via Arduino IDE.
In Admin of RPints under "Temperature Probes" they are turned on and I've followed the information that is linked: "Connect probes to pi according to this If correct probes will automatically populate."
I've searched this forum and Google, cannot find any answers. Any ideas? Is this Stretch related?

The Temperature Probe page is something specific to my version, and based on the work of @day_trippr for 1 Wire Temp sensors.
https://www.homebrewtalk.com/f258/web-accessible-temperature-logger-raspberry-pi-469523/#post6046710

Essentially my version monitors the directory for 1 wire files and creates a database entry for each one, Via the Admin page you can name each one for display purposes. My versions python will poll the temp based on the delay configured and place in the database.

But that is coded for the sensor to be connected to the Pi, not the shield like yours is. Because yours is on the shield the bash commands will not work, but like you can see the Arduino IDE will be the only place you can see the temps. Unfortunately I am unable to do any type of development to get the shield to manage the temp sensors like you have them hooked up.
 
But that is coded for the sensor to be connected to the Pi, not the shield like yours is. Because yours is on the shield the bash commands will not work, but like you can see the Arduino IDE will be the only place you can see the temps. Unfortunately I am unable to do any type of development to get the shield to manage the temp sensors like you have them hooked up.

I've looked at the tutorial again and this was completely my fault for not catching that...it clearly shows only a Pi without Arduino. I am using the 1 Wire probes, so good to go. Thank you @RandR+!
 
Is there any backup for the installation steps on raspberrypints? I finally got through my issues setting the base program up and was about to start the flow meter part when the site went down. I have some text on what to do but can't quite figure out how to physically attach meters to the alamode board to the pi.

Separately, I was running into the " Call to undefined function mysql_connect() " error and it took me the longest time to resolve so I'm going to post that here for posterity. I was following some guide I downloaded, can't remember exactly where, called RPints-Jessie-FlowMeters-Installation-Instructions.pdf. Essentially what was on raspberrypints.com but with some updated or changed commands. I wasn't able to get php5, mysql-php5, etc. Kept getting errors on the apt-get install commands saying they were unavailable. Eventually I installed without specifying a php version which I guess gave me 7.0. As we all know mysql commands no longer work, they were switched to mysqli. I tried going through the code to make all those updates but I must have been missing some since it never quite worked. [I see now some people here have that updated, hopefully it'll be made available soon for others with updated instructions.] It seemed others in this thread have been getting the php5 versions recently, but I couldn't. Eventually I found the following:

sudo echo "deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi" >> /etc/apt/sources.list

This allowed me to access a place to install php5 from. Since I already have 7.0 installed I continued running into the undefined function call until I also ran the following:

sudo a2dismod php7.0
sudo a2enmod php5
sudo service apache2 restart

sudo update-alternatives --set php /usr/bin/php5

This disabled php7.0, enabled php5, and finally allowed me to get Raspberry Pints up and running. Hopefully that helps someone else, or future me when I try and set this up again and need to google why it's not working.
The site's back up again
 
I've just been able to reinstall raspberrypints thanks to @RandR+'s script, which is amazing compared to what I had to go through before. Everything worked great except for a couple of small issues regarding the autostart portion. After some research I found that the handling of the global and user autostart files has seen some changes recently, so I had to manually create the ~/.config/lxsession/LXDE-pi/ path and copy in the global autostart file. I also had to edit the file to this to get it to execute correctly:

...@xset stuff...
Code:
@chromium-browser --kiosk localhost
@sudo /usr/bin/python /var/www/html/python/flow_monitor.py

The last issue which I have yet to solve is that if I reboot the pi my Alamode board seems to stop functioning (possibly due to my naive edits). It works if I re-upload raspberrypints.ino after boot, however it is a bit of a PITA considering I need to stop the flowmon and unplug pins from the Alamode in order for the sketch to upload correctly. The system is still usable, but I did not have this issue with my previous install. Any help would be appreciated.
 
Quick question for all you Pi geniuses. After multiple reinstalls, set-ups, flow meter readings-wiring, head-pounding and frustration, I finally got my system running again. OS is Wheezy with the Pints 2.0.1 program and using day_trippers motion sensor code. The new issue I’m running into is a Pi disconnect from the network after prolonged sleep time. I’ll walk downstairs and my display will wake up but the WiFi signal shows a disconnect from my network. If I try to reconnect to the network, it fails. Due to the lack of a refresh when I do a pour, pours don’t register. The only way I can get things operational again is if I shut the Pi down, unplug it, and plug it back in.
I already tried going into /etc/network/interface and adding in a line to disable power management on the WiFi but that didn’t do it. And the Pi IP address is static. Any thoughts as to how I can prevent it from dropping the signal aside from running an Ethernet cable and directly connecting it to my router?
 
@greenglom
My script does deal with the new global autostart file location, but it only writes to it if you select a monitor, if the pi isn't hooked up to a monitor it doesn't pay to start chromium automatically.

As for the flow_monitor autostart that is handled by a daemon so you shouldn't have needed to add anything to the autostart for that. Check if /etc/init.d/flowmon exists.
(If it is there then you may have 2 instances of the python running causing a conflict since they both cannot connect to the serial port at the same time)

As for the alamode, when the python starts it automatically tries to upload Arduino/raspberrypints/raspberrypints.cpp.hex to the shield if that file exists. Check /var/log/rpints.log to see if there is an error at the start of the file when it is uploading.
 
Quick question for all you Pi geniuses. After multiple reinstalls, set-ups, flow meter readings-wiring, head-pounding and frustration, I finally got my system running again. OS is Wheezy with the Pints 2.0.1 program and using day_trippers motion sensor code. The new issue I’m running into is a Pi disconnect from the network after prolonged sleep time. I’ll walk downstairs and my display will wake up but the WiFi signal shows a disconnect from my network. If I try to reconnect to the network, it fails. Due to the lack of a refresh when I do a pour, pours don’t register. The only way I can get things operational again is if I shut the Pi down, unplug it, and plug it back in.
I already tried going into /etc/network/interface and adding in a line to disable power management on the WiFi but that didn’t do it. And the Pi IP address is static. Any thoughts as to how I can prevent it from dropping the signal aside from running an Ethernet cable and directly connecting it to my router?
My rpi will lose wifi connect but will continue running so I found this while looking for configuration changed to fix the problem.
https://weworkweplay.com/play/rebooting-the-raspberry-pi-when-it-loses-wireless-connection-wifi/
this is kind of a hack, but it keeps me from connecting a key board to do the reboot.

I think someone else here had a similar problem and they changed their power supply and that fixed the problem. I swapped power modules and it seemed to improve but the issue still happened just less often.
 
@greenglom
My script does deal with the new global autostart file location, but it only writes to it if you select a monitor, if the pi isn't hooked up to a monitor it doesn't pay to start chromium automatically.

As for the flow_monitor autostart that is handled by a daemon so you shouldn't have needed to add anything to the autostart for that. Check if /etc/init.d/flowmon exists.
(If it is there then you may have 2 instances of the python running causing a conflict since they both cannot connect to the serial port at the same time)

As for the alamode, when the python starts it automatically tries to upload Arduino/raspberrypints/raspberrypints.cpp.hex to the shield if that file exists. Check /var/log/rpints.log to see if there is an error at the start of the file when it is uploading.

It seems to be working perfectly now! I removed flow_monitor.py from my autostart file and I ended up modifying the flow_monitor.py so that it uploads the .ino file (adjusted the sensor values to work with my SF800s) instead of the .cpp.hex. Any reason I shouldn't be doing it this way?

Just for the extra info, I did find /etc/init.d/flowmon, and I did not see an error in /var/log/rpints.log that looked like a failed arduino upload. Lastly, I'm fairly sure that the script gave me
Code:
@chromium --kiosk localhost
rather than
Code:
@chromium-browser --kiosk localhost
It's definitely possible that I selected something incorrectly during setup though. Thank you for the help!
 
My rpi will lose wifi connect but will continue running so I found this while looking for configuration changed to fix the problem.
https://weworkweplay.com/play/rebooting-the-raspberry-pi-when-it-loses-wireless-connection-wifi/
this is kind of a hack, but it keeps me from connecting a key board to do the reboot.

I think someone else here had a similar problem and they changed their power supply and that fixed the problem. I swapped power modules and it seemed to improve but the issue still happened just less often.
I had been working on a stand-alone wifi-checker/fixer. Gimme a few and I'll drop a link.

WiFi dropping seems to be a consistent issue with Raspbian.
 
This command will install a script that will attempt to keep your WiFi running:
Code:
curl -L wifi.brewpiremix.com | sudo bash
You'll see something like:
Code:
pi@brewpi:~ $ curl -L wifi.brewpiremix.com | sudo bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   354  100   354    0     0   3510      0 --:--:-- --:--:-- --:--:--  3540
100  6514  100  6514    0     0  25714      0 --:--:-- --:--:-- --:--:-- 25714

***Script doDaemon.sh starting.***

Installing checkWiFi.sh script to /usr/local/bin.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8545  100  8545    0     0  39645      0 --:--:-- --:--:-- --:--:-- 39744

Creating unit file for wificheck.
Reloading systemd config.
Enabling wificheck daemon.
Created symlink /etc/systemd/system/multi-user.target.wants/wificheck.service → /etc/systemd/system/wificheck.service.
Created symlink /etc/systemd/system/network.target.wants/wificheck.service → /etc/systemd/system/wificheck.service.
Starting wificheck daemon.

***Script doDaemon.sh complete.***
pi@brewpi:~ $
I've tested this on Stretch, but it should work on Wheezy. The only part I have any question about are the commands:
  • iwconfig
  • ip
If you want to be sure, go ahead and issue those two commands at the command line. They won't make any changes without arguments. As long as they don't return 'command not found' it all should work as-is. After the new service is running, issue the command sudo systemctl status wificheck and you should see something like:
Code:
● wificheck.service - Service for: wificheck
   Loaded: loaded (/etc/systemd/system/wificheck.service; enabled; vendor preset
   Active: active (running) since Sat 2019-03-23 16:55:31 CDT; 6min ago
     Docs: https://github.com/lbussy/rpi-wifi-checker
 Main PID: 18482 (bash)
   CGroup: /system.slice/wificheck.service
           ├─18482 /bin/bash /usr/local/bin/checkWiFi.sh -d
           └─18508 sleep 600

Mar 23 16:55:31 brewpi systemd[1]: Started Service for: wificheck.
If it looks like that (the host name may be different of course), you're fine.

Those of you who have a Legacy BrewPi host that want to use this should ditch the wificheck in cron.d. If you are running BrewPi Remix you already have something similar.

It will log to: /var/log/wificheck.log and /var/log/wificheck.err if there are any issues. If your RPi is REALLY flaky and a reboot is the only way to fix network issues, edit /usr/local/bin/checkWiFi.sh and change line line 34 to read REBOOT=true and it will reboot your Pi if it can't resolve the issue by "normal" means.
 
So I thought this was going to be straight forward following the raspberry pints install directions but I have spent about 20 hours trying to configure this to work and I'm not any further then when I started. Nothing seems to work error after error. I have the raspberry pi 3. Is this my problem. Is there a new updated process. Or did I waste my money. Im about to lose it. Any help would be great. Thanks.
 
So I thought this was going to be straight forward following the raspberry pints install directions but I have spent about 20 hours trying to configure this to work and I'm not any further then when I started. Nothing seems to work error after error. I have the raspberry pi 3. Is this my problem. Is there a new updated process. Or did I waste my money. Im about to lose it. Any help would be great. Thanks.

You're not alone in your frustrations. I just set mine up on a brand new Pi following RandR+ instructions:

There are two main ways to install:
Follow Day_tripprs: https://www.homebrewtalk.com/showpost.php?p=8040187&postcount=2643 to install the original
or
My installation script: https://www.homebrewtalk.com/forum/...-taplist-solution.487694/page-96#post-8457261 to install my version which has some new functionality in it.
 
Until the folks that massaged the original Raspberry Pints code to work under Raspbian Stretch (the current OS package version) come up with a legit installation procedure the easiest path to a working installation may well be following the RandR+ fork.

Even then, if my gist of the RandR+ fork is close to accurate there are advantages to be had with his version vs the original, which may make it the preferable path...

Cheers!
 
You're not alone in your frustrations. I just set mine up on a brand new Pi following RandR+ instructions:
I ran it and everything was looking good then...
E: Package 'php5' has no installation candidate
E: Package 'php5-mysql' has no installation candidate. this is what i keep running into. any suggestions
 
I don't think you both used the same installation kit :)

- One cannot follow the installation instructions found at raspberrypints.com if using Raspbian Stretch - which is the currently available Raspbian package.

- To use the original Raspberry Pints kit one has to have installed Raspbian Jessie - or Wheezy - which frankly at this point would likely be a challenge to RaspberryPi newbies as archive paths have to be manually altered.

-
The RandR+ fork can be installed on Stretch. And from most reports, easily.

- As mentioned earlier, there is an updated fork of the original code that is compatible with the Raspbian Stretch release, but currently there isn't a well-documented installation procedure to follow...

Cheers!
 
Last edited:
uploads the .ino file (adjusted the sensor values to work with my SF800s) instead of the .cpp.hex. Any reason I shouldn't be doing it this way?

You can do that, the only thing I questions is what did you modify in the .ino file? My version uses the webpage to do all the configuration for those that don't like to touch code.
 
You can do that, the only thing I questions is what did you modify in the .ino file? My version uses the webpage to do all the configuration for those that don't like to touch code.
Why would you have to write the firmware to modify a configuration? Isn't all that in the Eeprom?
 
Actually, I don't think the sketch ever touches the actual eeprom. But the pins for the flow meters are defined in the sketch so it has to be tailored then loaded to the program storage.

But...not every time the system is booted up. If that's what's happening that needs to be fixed...

Cheers!
 
Actually, I don't think the sketch ever touches the actual eeprom. But the pins for the flow meters are defined in the sketch so it has to be tailored then loaded to the program storage.

But...not every time the system is booted up. If that's what's happening that needs to be fixed...
I'd think pin assignments could be set at runtime as well .... might take some firmware changes of course but that's better than loading the firmware each time. I think there's a lifecycle limit on the controllers for that. It's high, but still, no sense in using it up just because there's no configuration written in.
 
Can i calibrate my flow meters with just uncarbonated water in my corny keg or does it have to be an actual carbonated beer to get a more precise reading? and if i ever change the length of my hose will it have to be calibrated?
 
Rand's version allows the pin numbers for the flow meters, scaling and debounce factors to be set in the GUI under taps.

He is reprogramming the UNO every power cycle. I believe that is insure device compatibility. I think embedding a version into UNO/Alamode code and polling or using that as part of the status wake up message would be a better approach. If the version is not up to date then reprogram. I doubt if you burn out the program memory but why reprogram if you don't have to.
 
I’ve read numbers like 10,000 cycles, up to over 1M. Who knows. Yes, it’s unlikely for any human user to reach that but burning into that number for something as simple as changing a setting is silly.

Compiling a program every time it starts is likewise silly. I mean, why bother with a compiler/controller? It would be just as easy (and error prone) at that point to use Python on the Pi.
 
I've tried for hours and hours and I keep getting this message
E: Package 'php5' has no installation candidate
E: Package 'php5-mysql' has no installation candidate.
Is there something I'm missing. Any help would be much appreciated
I have the Raspberry pi3 is this the problem.
 
Rand's version allows the pin numbers for the flow meters, scaling and debounce factors to be set in the GUI under taps. [...] He is reprogramming the UNO every power cycle. I believe that is insure device compatibility. [...]

More likely it is to implement setting the tap ids/scaling/etc from the gui - obviously if you're going to provide that capability there has to be a way to stuff the resulting sketch on the Arduino.

That said, it still doesn't have to be done more than one time after a change. No change, no need to reflash the Arduino...

Cheers!
 
I think we maybe saying the same thing. UNO code has been rewritten to allow pin usage to be programmed on the fly instead of hard coded.

I agree there is no need to re-flash the processor, just reporting my observations. I had expressed my thoughts when I first noticed it. I think the alive wake up message thing could use some fine tuning as well.

edit: his version also allows a mix of different meter types.
 

Latest posts

Back
Top