[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.
Error inside Serial.serialEvent()
java.io.IOException: Inappropriate ioctl for device in nativeavailable​

Any ideas?

I don't think its this error but there is an odd error if you try to upload the sketch when something else is using the serial. like if the flowmonitor python is running at the same time you try to upload.
 
Ok I thought I was done but alas having issues getting the screensaver to activate. The script and PIR work and if I manually preview the screensaver they will deactivate it but it wont activate when left idle. Any ideas?
 
Could you rephrase the content of the second sentence so I have some idea what you're actually seeing? :)
And tell me how you know the PIR and script "work"...

Cheers!

[edit] If I go out on a limb and assume that the test script is what works, then the probability is the run time script isn't running.

Try running the following command when you think the pir_run.py is running:

ps aux |grep pir_run

The response should look like this:

Code:
pi@bpints ~ $ ps aux |grep pir_run
root      2939  0.0  0.1   5080  1400 ?        S     2018   0:00 sudo python /home/pi/pir_run.py
root      2964  0.0  0.4  16916  3824 ?        Sl    2018   0:05 python /home/pi/pir_run.py
pi       14789  0.0  0.1   4044  1584 pts/0    S+   20:40   0:00 grep --color=auto pir_ru
pi@bpints ~ $

If you only get one line that's actually the query itself, and the most likely problem is the pir_run.py startup command is in the wrong LXDE startup file.

We used /etc/xdg/lxsession/LXDE/autostart for Wheezy but Jessie and Stretch need to use /home/pi/.config/lxsession/LXDE-pi/autostart.

Cheers!
 
Last edited:
Could you rephrase the content of the second sentence so I have some idea what you're actually seeing? :)
And tell me how you know the PIR and script "work"...

Cheers!

[edit] If I go out on a limb and assume that the test script is what works, then the probability is the run time script isn't running.

Try running the following command when you think the pir_run.py is running:

ps aux |grep pir_run

The response should look like this:

Code:
pi@bpints ~ $ ps aux |grep pir_run
root      2939  0.0  0.1   5080  1400 ?        S     2018   0:00 sudo python /home/pi/pir_run.py
root      2964  0.0  0.4  16916  3824 ?        Sl    2018   0:05 python /home/pi/pir_run.py
pi       14789  0.0  0.1   4044  1584 pts/0    S+   20:40   0:00 grep --color=auto pir_ru
pi@bpints ~ $

If you only get one line that's actually the query itself, and the most likely problem is the pir_run.py startup command is in the wrong LXDE startup file.

We used /etc/xdg/lxsession/LXDE/autostart for Wheezy but Jessie and Stretch need to use /home/pi/.config/lxsession/LXDE-pi/autostart.

Cheers!
Sorry I wasn’t more clear. My problem is the screensaver won’t turn on after a period of time. If I open the screensaver and select preview it goes on and motion in front of the PIR turns it off. The test script also works when run.
 
Anyone have an idea of why mine will not wake up from the screensaver with motion? It test perfectly with “motion detected” in the terminal.

Also I’ve read some post on here about what people are using for mounting RPI. I used a door lock relay from my old car audio days and it turned out pretty slick. The wire harness even fits on the RPI. Just a small amount of hot glue to hold it in place inside. Then drill two small holes to have access to the adjustment knobs. You can find it online mostly from EBay. 451m micro door lock relay
https://www.ebay.com/p/DEI-451M-Door-Lock-Relay-Keyless-Car-Alarm-Viper-Python-Avital/1811813553

89AC5EA9-9453-476F-8EF1-DDE5280F221A.jpeg
C96D8B2C-1064-467A-8BF3-05C9CC6BF7DC.jpeg
 
Anyone have an idea of why mine will not wake up from the screensaver with motion? It test perfectly with “motion detected” in the terminal.

Also I’ve read some post on here about what people are using for mounting RPI. I used a door lock relay from my old car audio days and it turned out pretty slick. The wire harness even fits on the RPI. Just a small amount of hot glue to hold it in place inside. Then drill two small holes to have access to the adjustment knobs. You can find it online mostly from EBay. 451m micro door lock relay
https://www.ebay.com/p/DEI-451M-Door-Lock-Relay-Keyless-Car-Alarm-Viper-Python-Avital/1811813553

View attachment 609719 View attachment 609720
Have you added the following?
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
add line sudo python pir_run.py
Ctrl O, enter ctrl x and then sudo reboot and try again
 
Try putting it in /etc/xdg/lxsession/LXDE/autostart

edit: or /etc/xdg/lxsession/LXDE-pi/autostart

These are the global locations which should be overridden by your file in the home directory, but try nonetheless.
 
Last edited:
Exactly, I know not exactly related to the forum but thought you guys might have some ideas.

is it possible the PIR is firing so frequently it doesn't allow the screensaver to actually kick in?
There are two adjustments on the PIR. Try increasing the retrigger delay pot...

Cheers!
 
I need help.
I am using the Arduino Uno (clone) with the YF-S201 flow sensor, when the tap flow is low the sensor does not measure. Can you solve this problem?
 

Attachments

  • sku161654-3.jpg
    sku161654-3.jpg
    36.5 KB · Views: 32
when the tap flow is low the sensor does not measure.

I am assuming that you mean you are not see a pour being registered for which There is at least two possibilities:
1. the sensor isn't sensitive enough to measure the flow
2. logic in the Sketch is filtering out the pour because the count isn't high enough:
Look for a line like the following and change number after the > to 0 and see if that registers pours
if ( pulseCount > 100 ) {
//filter out tiny bursts
 
Looking at the YF-S201 spec sheet it claims a working range of 1 to 30 liters per minute.
I run my faucets at roughly 1 ounce per second which works out to ~1.77 LPM. Looking at the ticks vs flow rate in the spec that would result in around 14 ticks per second, which is pretty darned low and may well be triggering the noise filter...

Cheers!
 
Have you added the following?
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
add line sudo python pir_run.py
Ctrl O, enter ctrl x and then sudo reboot and try again

Sorry I misread your instructions. I did not try that, but I just got done doing it and it works like a charm. Thanks so much! I owe you a beer!
 
Circa 1990 Beverage-Air BM23 retrofitted with SwissFlow SF800's. Unit wasn't cooling below 45.F but after I swapped out the condenser fan, it chills below freezing. Thanks again for all the technical support. Cheers!

RaspberryPints%20Montage-X3.jpg
 
Last edited:
Completely rewritten index.php (aka "The Tap List"). With sample data loaded.
2019-1-31 Tap List.jpg


As I work on debugging, etc in Debian, php 7.2, MariaDB does anyone have any requests/tweaks/suggestions/improvements/features I can implement?

Sorry, pouring free beer isn't possible here...
 
Thanks for your work on this. Incorporating the code to have the weight converted to volume for the initial keg volume would be awesome.
 
Last edited:
Dave, eventually you save so much stuff you need a search engine of your own to find it all. Twice now you've sent me links and when I got there and went to bookmark them I found that I already had them :oops:
 
Didn't someone come up with an extended "Beer Styles" list to replace the original?
If I'm misremembering that forget it, but if that actually happened and someone has a copy of the list it would be nice to have that pre-loaded...

Cheers!

[edit] Found it! And I had updated all of my systems with it...

https://www.homebrewtalk.com/forum/...-taplist-solution.487694/page-76#post-8133327

This is a simple update to the sql schema. No big deal. I will do, but why are all the dates "2017-11-01 19:25:30"?
 
Unless doing

https://www.homebrewtalk.com/forum/...-taplist-solution.487694/page-98#post-8479841

then the weight is unused and no reason to convert to volume. If doing the mod then weight is needed (not volume).

However, the explanation of use was never completed in post 8479841.
That mod is really great, especially if you are starting with a partially full keg. Some of us use a spreadsheet to convert the weight and pressure to volume and then enter the volume into 'pints. But with that model, everything is in the system for you to use. With that calculator and a properly balanced serving system, you can expect your flow meters to be within a pint or two of being accurate when you are low on a keg.
 
Unless doing

https://www.homebrewtalk.com/forum/...-taplist-solution.487694/page-98#post-8479841

then the weight is unused and no reason to convert to volume. If doing the mod then weight is needed (not volume).

However, the explanation of use was never completed in post 8479841.
The forum locked me out before I could edit posts three and four, but seeing as we are working on this together (and that I also was planning on incorporating the keg volume kalculator code), I can answer any of your questions in our PM thread.

Cheers,

Kal
 
Didn't someone come up with an extended "Beer Styles" list to replace the original?
If I'm misremembering that forget it, but if that actually happened and someone has a copy of the list it would be nice to have that pre-loaded...

Cheers!

[edit] Found it! And I had updated all of my systems with it...

https://www.homebrewtalk.com/forum/...-taplist-solution.487694/page-76#post-8133327
Thanks for post this, I was going to just manually add the few styles I used, but this was a time saver.

There a few more posts that below that on that where required too, I had to do the second link info first to get it to work.
https://www.homebrewtalk.com/forum/...-taplist-solution.487694/page-76#post-8133794
https://www.homebrewtalk.com/forum/...-taplist-solution.487694/page-76#post-8135902

Sort of messes up the beer list syle references so they needed to be edited. I did not have many so it was not a big deal.
 
that I also was planning on incorporating the keg volume kalculator code).

if you want something a little different I did incorporate it into my version. The biggest change is that I made it javascript based so values can be updated after the user types without needing to refresh the page. It might be more work to take what I did and use it but its available if you want it.

https://github.com/rtlindne/RaspberryPints/blob/master/admin/scripts/kegAssistFunctions.js
used in: https://github.com/rtlindne/RaspberryPints/blob/master/admin/tap_list.php ~line 519

p.s. as an added benefit I also put in the framework to have the python check load cells and use the weight from them to update the volume left, but I didn't code up communication to the load cells and don't plan to as I don't want to buy them.
 
@RandR+, does your version of Rpints have the same relationship of kegs and beers?

It seems a bit awkward that the association of beer and keg only happens at tapping time with the original version.

Also can your version save pour data for a keg?
Sometimes I have keg online then take it off to serve something else, not a big deal before but to do this with Rpints I would need to keep track of the last pour info and manually insert it back in.
 
@RandR+, does your version of Rpints have the same relationship of kegs and beers?

Also can your version save pour data for a keg? .

In my version you can put a beer in a keg at any time, and you don't need to do it before tapping the keg. You can change the beer in a keg from the tap list screen so if your like me and don't care about tracking kegs you can simple change the beer on tap.


As for the pour history, it is associated to the tap not the keg, but I see that it would be beneficial to keep the current volume on the keg vs the tap in case you remove it. I will look into adding it in the keg so it is saved.
 
Thanks for clarifying RandR+.

Most of my kegs run to completion once tapped but some either need time or I have a change of taste and swap them out.

For me I manage kegs not taps, everyone is a bit different I guess. I have a spread sheet to track my kegs and with the original Rpints I would still need the spreadsheet.

Being able to track the keg date and days online would be nice to have as well. I would image there is probable a way to glean that stuff from the database but I not familiar with SQL.

Another feature that would be nice is a what's on deck display of beers that are conditioning.
 
if you want something a little different I did incorporate it into my version. The biggest change is that I made it javascript based so values can be updated after the user types without needing to refresh the page. It might be more work to take what I did and use it but its available if you want it.

https://github.com/rtlindne/RaspberryPints/blob/master/admin/scripts/kegAssistFunctions.js
used in: https://github.com/rtlindne/RaspberryPints/blob/master/admin/tap_list.php ~line 519

p.s. as an added benefit I also put in the framework to have the python check load cells and use the weight from them to update the volume left, but I didn't code up communication to the load cells and don't plan to as I don't want to buy them.
Nice work @RandR+ you truly are a wizard. Admittedly I tried to keep mine as close to the original RPints as possible to make for an easy upgrade path for existing users. BTW you don't need to refresh the page, just change the keg selection and it'll recalculate.
 
Thanks for clarifying RandR+.

Most of my kegs run to completion once tapped but some either need time or I have a change of taste and swap them out.

For me I manage kegs not taps, everyone is a bit different I guess. I have a spread sheet to track my kegs and with the original Rpints I would still need the spreadsheet.

Being able to track the keg date and days online would be nice to have as well. I would image there is probable a way to glean that stuff from the database but I not familiar with SQL.

Another feature that would be nice is a what's on deck display of beers that are conditioning.
If you know all the values (empty keg weight, current keg weight, temp, pressure, altitude, and specific gravity), you could just retap it as long as you have the keg vlume kalculator mod installed, alternatively here's the Excel spreadsheet version:
https://www.homebrewtalk.com/forum/index.php?threads/633022/

Keg Volume Calculator
Cheers,

Kal
 
Back
Top