[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.
So I've been taking a lot from this forum over the last year or so without giving much back, so here's a screenshot of my RPints layout:

screenshot-12-medium-68211.png


My current setup can only fit 3 kegs, but I plan to upgrade to a 6 keg setup which will look more like this:

screenshot-11-medium-68210.png


Next steps: hook up PIR & temp logging kit courtesy of day_trippr (parts acquired, just need to allocate time).

Thanks to all involved in this amazing project including a posthumous thank you to the long departed original devs who started this.

Cheers,

Kal
 
Finaly i have arduino uno hooked with usb in RPi3 aflow meter connected like the following schema and jessie already installed in RPi3 whats next?
which code must be upload in arduino?

IMG_0499.PNG
 
This follow-up is an attempt to capture all of the changes required when installing RaspberryPints on Raspbian Jessie using the latest Apache2 web server and the latest LXDE desktop.

The full installation procedure can be found here.
Changes required to "make various things work" are listed below.

Notes For All New Installations On Jessie

Two of the instructions in Step 5 are out of date:

- Instead of using the autostart file shown in the instructions as
/etc/xdg/lxsession/LXDE-pi/autostart

use

/home/pi/.config/lxsession/LXDE-pi/autostart

- and instead of adding

@chromium --kiosk localhost

add

@chromium-browser --incognito --start-fullscreen localhost

Step 7 refers to the "default apache page" at /var/www

The current release of Apache2 has the default document root located at /var/www/html, where the RaspberryPints instructions reference /var/www, so you need to adjust accordingly - or change the document root back to /var/www.

If you want to keep the document root at /var/www/html you have to change a pointer in the Python listener.

Edit /var/www/html/python/flow_monitor.py
Find these two lines:

# Edit this line to point to where your rpints install is
poursdir = '/var/www'

Change /var/www to /var/www/html

If you want to change the document root to /var/www, don't change the Python listener pointer, but instead change the Apache2 config file.

Edit /etc/apache2/sites-available

and change DocumentRoot setting from /var/www/html to /var/www.

Using an AlaMode with Raspbian Jessie on RPi3

The RaspberryPints installation procedure as documented was developed using Raspbian Wheezy on RPiB and RPi2B platforms.
Since then, the warty Raspbian Jessie became the defacto standard, the RPiB and RPi2B faded into history, and the RPi3 implementation broke many paradigms.
One of which was to commandeer the hardware serial port for use by wifi and bluetooth modules on the RPi3.
This leaves a software serial port for use by devices such as the AlaMode.

To get an AlaMode working with RaspberryPints on an RPi3, do the following:

- Follow the full RaspberryPints installation up to Step 6 (don't execute what's shown).

- Install DOS2UNIX (a conversion tool to make text files written on Windows platforms more "unix-y"):

$ sudo apt-get update
$ sudo apt-get install dos2unix

- Disable Serial Port messaging:

Edit /boot/config.txt
Change enable_uart=0

- Now, fetch the Alamode setup kit:
wget https://github.com/wyolum/alamode/raw/master/bundles/alamode-setup.tar.gz

- Unpack it from your /home/pi folder:
pi@raspberrypi ~ $ tar -xvzf alamode-setup.tar.gz

- Change focus into the kit you just unpacked:
pi@raspberrypi ~ $ cd alamode-setup

- Run DOS2UNIX against the setup file for Jessie:

$ sudo dos2unix jessie-setup

- Execute the converted script:

$ sudo jessie-setup

- Re-start the RaspberryPi before continuing

- Continue the installation procedure from Step 7 as shown on the raspberrypints.com page, noting the applicable changes listed in this post.



If using an Uno instead of AlaMode

Do not perform the AlaMode support installation in Step 6 of the raspberrypints installation procedure. Skip Step 6 entirely.

The Python port "listener" needs to know what device to monitor for "pour" messages.
The default setting is to listen for TTYS0, while an Uno connected via USB will typically show up as TTYACM0.

Edit /var/www/html/python/flow_monitor.py
Find these lines:

#The following line is for serial over GPIO
port = '/dev/ttyS0'
#The following line is for serial over USB
#port = '/dev/ttyACM0'

Add a comment # in front of the ttyS0 line and remove same from the ttyACM0 line.


If using an Uno CLONE instead of AlaMode

Do not perform the AlaMode support installation in Step 6 of the raspberrypints installation procedure. Skip Step 6 entirely.

Again, the Python port "listener" needs to know what device to monitor for "pour" messages.
The default setting is to listen for TTYS0, while an Uno Clone connected via USB will typically show up as TTYUSB0
I believe this is due to clones using a CH340 USB/serial bridge chip instead of the Mega16U2 used on "genuine" Arduino Uno boards.

Edit /var/www/html/python/flow_monitor.py
Find these lines:

#The following line is for serial over GPIO
port = '/dev/ttyS0'
#The following line is for serial over USB
#port = '/dev/ttyACM0'

Add a comment # in front of the ttyS0 line and remove same from the ttyACM0 line.
Then change /dev/ttyACM0 to /dev/ttyUSB0.


If using the Adafruit flow meters

There are two files that need to be changed.
The first one is the sketch file that has to be loaded via the Arduino IDE.
This is the same file that always requires user-specific edits for the number of pins and the pin list.

- Edit /var/www/html/arduino/raspberrypints/raspberrypints.ino

Find this line:
if ( pulseCount > 100 ) {

and change it to:
if ( pulseCount > 35 ) {


The second file receives pour messages from the Python port listener (/var/www/html/python/flow_monitor.py) and translates them into data that fits the MySql database format.

- Edit /var/www/html/includes/pours.php

Find this line:
$amount = $PULSE_COUNT / 21120;

and change it to:
$amount = $PULSE_COUNT / 1500;


Cheers!

[edit]
Thought I'd try to capture everything in one post, so I've added the changes for using a USB-connected Uno instead of the AlaMode, and for using the Adafruit flow meters instead of the SwissFlow SF800s.
 
And he'll need to adjust the pours data because he's using the Adafruit meters instead of the default Swissflow meters. That's in pours.ino iirc.

Edit: pours.php is where the pours data is stored. raspberrypints.ino is where you would change the sensor to customize for those meters.
 
wow thanks for the replies tommorow i will config everything ang i will cross my fingers :)
 
hello again i ve already install everything according all the instructions but i have problem with flow meter when i try to start flow_monitor.py the following error raised
Traceback (most recent call last):
File "flow_monitor.py", line 13, in <module>
arduino = serial.Serial(port,9600,timeout=2)
File "/usr/local/lib/python2.7/dist-packages/serial/serialutil.py", line 240, in __init__
self.open()
File "/usr/local/lib/python2.7/dist-packages/serial/serialposix.py", line 268, in open
raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyACM0: [Errno 2] No such file or directory: '/dev/ttyACM0'

any idea?
 
[...]serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyACM0: [Errno 2] No such file or directory: '/dev/ttyACM0'

any idea?

Your system isn't seeing the Uno. Do you have it plugged into one of the USB ports on your RPi?
Were you able to load the Arduino sketch file in the IDE?

Cheers!
 
Your system isn't seeing the Uno. Do you have it plugged into one of the USB ports on your RPi?
Were you able to load the Arduino sketch file in the IDE?

Cheers!

yes already plugged and sketch already uploaded successfully according sketch uploader but on /dev/ttyUSB0

Screen Shot 2017-07-10 at 01.42.30.jpg
 
Yeeeaaah!!! i found it Thanks a lot all for your support i have change the port to /dev/ttyUSB0 and finally i have a working flow meter!!!!!!!!
 
I've added a blurb to my earlier roll-up post covering Uno clones.

We're allowed 30 days to edit posts, and the clock is running on that one.
If anyone has anything worth adding to the roll-up please let me know.
If it passes muster I'll add it, and eventually I'll have one of the mods stick a link to it from the first post in this thread...

Cheers!
 
My only very minor suggestion would be to make an edit to this line and make it less specific to the situation that you helped for panzo and more generic since the rest of your terrific post covers a lot of different options. It might confuse a first timer if they read that and skip the AlaMode support install without understanding what that means.

Keep in mind that you do not need to install the AlaMode support as shown in Step 6 as you're using an Uno which has native Arduino IDE support.
 
I really like the beer color images you have. Are those from BeerSmith? If so, how did you get them in RPints?

Right you are, as clever as the algorithm that the original devs used the colours always seemed slightly off in RPints compared to Beersmith, so I located the image files, resized them and edited the styles.css and index.php files.

If you want the same, extract this zip file, replace the existing srm folder within www/img/ with the new srm folder, then in styles.css starting from around line 182 replace:

PHP:
width: 55px;

with:

PHP:
width: 58px;

replace from around line 186:

PHP:
.srm-indicator{
	position: absolute; 
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 1;
	
	-webkit-mask-image: url(img/srm/pint-mask.png);
	-o-mask-image: url(img/srm/pint-mask.png);
	-moz-mask-image: url(img/srm/pint-mask.png);
	mask-image: url(img/srm/pint-mask.png);
}

.srm-stroke{
	position: absolute; 
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 2;
	
	background: url(img/srm/pint-stroke.png)
}

With:

PHP:
.srm-indicator{
	position: absolute; 
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
	
	background: url(img/srm/pint-stroke.png)
}

.srm-indicator .srm-0{
	background-image: url(img/srm/0-srm.png);
}
.srm-indicator .srm-1{
	background-image: url(img/srm/1-srm.png);
}
.srm-indicator .srm-2{
	background-image: url(img/srm/2-srm.png);
}
.srm-indicator .srm-3{
	background-image: url(img/srm/3-srm.png);
}
.srm-indicator .srm-4{
	background-image: url(img/srm/4-srm.png);
}
.srm-indicator .srm-5{
	background-image: url(img/srm/5-srm.png);
}
.srm-indicator .srm-6{
	background-image: url(img/srm/6-srm.png);
}
.srm-indicator .srm-7{
	background-image: url(img/srm/7-srm.png);
}
.srm-indicator .srm-8{
	background-image: url(img/srm/8-srm.png);
}
.srm-indicator .srm-9{
	background-image: url(img/srm/9-srm.png);
}
.srm-indicator .srm-10{
	background-image: url(img/srm/10-srm.png);
}
.srm-indicator .srm-11{
	background-image: url(img/srm/11-srm.png);
}
.srm-indicator .srm-12{
	background-image: url(img/srm/12-srm.png);
}
.srm-indicator .srm-13{
	background-image: url(img/srm/13-srm.png);
}
.srm-indicator .srm-14{
	background-image: url(img/srm/14-srm.png);
}
.srm-indicator .srm-15{
	background-image: url(img/srm/15-srm.png);
}
.srm-indicator .srm-16{
	background-image: url(img/srm/16-srm.png);
}
.srm-indicator .srm-17{
	background-image: url(img/srm/17-srm.png);
}
.srm-indicator .srm-18{
	background-image: url(img/srm/18-srm.png);
}
.srm-indicator .srm-19{
	background-image: url(img/srm/19-srm.png);
}
.srm-indicator .srm-20{
	background-image: url(img/srm/20-srm.png);
}
.srm-indicator .srm-21{
	background-image: url(img/srm/21-srm.png);
}
.srm-indicator .srm-22{
	background-image: url(img/srm/22-srm.png);
}
.srm-indicator .srm-23{
	background-image: url(img/srm/23-srm.png);
}
.srm-indicator .srm-24{
	background-image: url(img/srm/24-srm.png);
}
.srm-indicator .srm-25{
	background-image: url(img/srm/25-srm.png);
}
.srm-indicator .srm-26{
	background-image: url(img/srm/26-srm.png);
}
.srm-indicator .srm-27{
	background-image: url(img/srm/27-srm.png);
}
.srm-indicator .srm-28{
	background-image: url(img/srm/28-srm.png);
}
.srm-indicator .srm-29{
	background-image: url(img/srm/29-srm.png);
}
.srm-indicator .srm-30{
	background-image: url(img/srm/30-srm.png);
}
.srm-indicator .srm-31{
	background-image: url(img/srm/31-srm.png);
}
.srm-indicator .srm-32{
	background-image: url(img/srm/32-srm.png);
}
.srm-indicator .srm-33{
	background-image: url(img/srm/33-srm.png);
}
.srm-indicator .srm-34{
	background-image: url(img/srm/34-srm.png);
}
.srm-indicator .srm-35{
	background-image: url(img/srm/35-srm.png);
}
.srm-indicator .srm-36{
	background-image: url(img/srm/36-srm.png);
}

In index.php around line 158 replace:

PHP:
								<?php if($config[ConfigNames::ShowSrmCol]){ ?>
									<td class="srm">
										<h3><?php echo $beer['og']; ?> OG</h3>
										
										<div class="srm-container">
											<div class="srm-indicator" style="background-color: rgb(<?php echo $beer['srmRgb'] != "" ? $beer['srmRgb'] : "0,0,0" ?>)"></div>
											<div class="srm-stroke"></div> 
										</div>
										
										<h2><?php echo $beer['srm']; ?> SRM</h2>
									</td>
								<?php } ?>

With:

PHP:
								<?php if($config[ConfigNames::ShowSrmCol]){ ?>
									<td class="srm">
										<h3><?php echo $beer['og']; ?> OG</h3>
										<?php
											$ebc = $beer['srm'];
											?>
										<?php
										$srmImgClass = "";
										if( $ebc < 1 ) {
											$srmImgClass = "srm-0"; }
										else if( $ebc < 2 )
											$srmImgClass = "srm-1";
										else if( $ebc < 3 )
											$srmImgClass = "srm-2";
										else if( $ebc < 4 )
											$srmImgClass = "srm-3";
										else if( $ebc < 5 )
											$srmImgClass = "srm-4";
										else if( $ebc < 6 )
											$srmImgClass = "srm-5";
										else if( $ebc < 7 )
											$srmImgClass = "srm-6";
										else if( $ebc < 8 )
											$srmImgClass = "srm-7";
										else if( $ebc < 9 )
											$srmImgClass = "srm-8";
										else if( $ebc < 10 )
											$srmImgClass = "srm-9";
										else if( $ebc < 11 )
											$srmImgClass = "srm-10";
										else if( $ebc < 12 )
											$srmImgClass = "srm-11";
										else if( $ebc < 13 )
											$srmImgClass = "srm-12";
										else if( $ebc < 14 )
											$srmImgClass = "srm-13";
										else if( $ebc < 15 )
											$srmImgClass = "srm-14";
										else if( $ebc < 16 )
											$srmImgClass = "srm-15";
										else if( $ebc < 17 )
											$srmImgClass = "srm-16";
										else if( $ebc < 18 )
											$srmImgClass = "srm-17";
										else if( $ebc < 19 )
											$srmImgClass = "srm-18";
										else if( $ebc < 20 )
											$srmImgClass = "srm-19";
										else if( $ebc < 21 )
											$srmImgClass = "srm-20";
										else if( $ebc < 22 )
											$srmImgClass = "srm-21";
										else if( $ebc < 23 )
											$srmImgClass = "srm-22";
										else if( $ebc < 24 )
											$srmImgClass = "srm-23";
										else if( $ebc < 25 )
											$srmImgClass = "srm-24";
										else if( $ebc < 26 )
											$srmImgClass = "srm-25";
										else if( $ebc < 27 )
											$srmImgClass = "srm-26";
										else if( $ebc < 28 )
											$srmImgClass = "srm-27";
										else if( $ebc < 29 )
											$srmImgClass = "srm-28";
										else if( $ebc < 30 )
											$srmImgClass = "srm-29";
										else if( $ebc < 31 )
											$srmImgClass = "srm-30";
										else if( $ebc < 32 )
											$srmImgClass = "srm-31";
										else if( $ebc < 33 )
											$srmImgClass = "srm-32";
										else if( $ebc < 34 )
											$srmImgClass = "srm-33";
										else if( $ebc < 35 )
											$srmImgClass = "srm-34";
										else if( $ebc < 36 )
											$srmImgClass = "srm-35";
										else if( $ebc >= 36 )
											$srmImgClass = "srm-36";
										?>
										<div class="srm-container">
											<div class="srm-indicator"><div class="srm-indicator <?php echo $srmImgClass ?>"></div></div>
										</div>
										<h2><?php echo $beer['srm']; ?> SRM</h2>
									</td>
								<?php } ?>

Also around line 320 remove:
PHP:
											<div class="srm-stroke"></div>

Cheers,

Kal
 
Last edited:
Sure! You can use phpmyadmin, open the raspberrypints database, open the beerStyles table, edit any desired records, then save the table.

It'll look like this:

attachment.php


Cheers!

To make this happen, I exported the beerStyles table to CSV, downloaded the 2015 BJCP listing, rearranged the columns and values in that to match the beerStyles table listing, imported the 2015 data into a new table, made sure it looked similar to the original, then renamed original to 'beerStyles_orig' and the new table to 'beerStyles'.

Sorry for being long-winded to get to the point. The issue I'm having is that I've added a line to the table for 'Soda'. This style shows up in the drop down for style in the Beer Edit Window. I can select it and press Save, but when it goes back to the Beer list, it does not update to 'Soda'. Do I need to do any changes to any other tables to allow the addition of new styles? This is odd, because the number of styles increased significantly when I did the 2015 styles (118 items) and RPints is having no issue with any of the first 118. Just the 119th item.

I can provide pics if that would help.

Thanks!
 
To make this happen, I exported the beerStyles table to CSV, downloaded the 2015 BJCP listing, rearranged the columns and values in that to match the beerStyles table listing, imported the 2015 data into a new table, made sure it looked similar to the original, then renamed original to 'beerStyles_orig' and the new table to 'beerStyles'.

Sorry for being long-winded to get to the point. The issue I'm having is that I've added a line to the table for 'Soda'. This style shows up in the drop down for style in the Beer Edit Window. I can select it and press Save, but when it goes back to the Beer list, it does not update to 'Soda'. Do I need to do any changes to any other tables to allow the addition of new styles? This is odd, because the number of styles increased significantly when I did the 2015 styles (118 items) and RPints is having no issue with any of the first 118. Just the 119th item.

I can provide pics if that would help.

Thanks!

Have you done a restart? That table is also referenced by the wvGetActiveTaps table. Normally database changes require a server restart to apply.
Code:
sudo reboot
should fix it for you.
 
Good. I'm assuming at this point you have a working tap list and the only thing needed is to get the pour monitoring running.

Somewhere along the way you should also have executed these commands:
Code:
$ sudo chmod a+x /etc/init.d/flowmon
$ sudo update-rc.d flowmon defaults
And a reboot is advised.

One thing you can try will at least prove the AlaMode is issuing a pour packet towards the host RPi.

- Open a terminal window on console

- Stop the flowmon service:
Code:
$ sudo /etc/init.d/flowmon stop

- Now run flow_monitor.py in the terminal session:
Code:
$ sudo python /var/www/html/python/flow_monitor.py

If you have your meters wired and plumbed, try a short pour while observing the running terminal session (if not plumbed, gently blow through one in the forward-flow direction).
Within a second of stopping the pour you should see a few lines of "complaints" about display settings etc but the bottom line is you'll definitely see something after a pour (this worked cleaner on Wheezy - you could see the actual three line "pour message" instead a bunch of OS and app whining. I miss Wheezy, Jessie blows chunks ;))

If there's no response then the AlaMode isn't working properly. Double-check the ino file and make sure when uploading the sketch that there weren't any errors. Re-check your meter wiring for all three connections (btw, which meters are you using) being sure that the data connection is to one of the pins you've enabled in the sketch...

Cheers!

I ended up ditching the AlaMode. I just could not get it to work with the RPi3. I swapped in an Uno and uploaded the sketch no problem.

I'm now just trying to get the flowmon services right. I'm not able to get the GUI to reflect a pour yet. I followed your advice above and the terminal replies each time I pour with:

Code:
No Active Taps
Chrome does refresh. I have all of my taps active. :confused:

EDIT: Did some rebooting and everything works fine now. GUI updating and everything. Thank you guys again for the help!
 
Have you done a restart? That table is also referenced by the wvGetActiveTaps table. Normally database changes require a server restart to apply.
Code:
sudo reboot
should fix it for you.

I've rebooted countless times and it's still not keeping the 'soda' value. Also, interestingly, I changed the SRM on one of my stored beers. It reflects it in the values now, but is NOT updating my taplist! What could be going on?

Thanks!

2017-07-14-190805_1440x900_scrot.png
 
Which pins on the UNO are everyone using for flow sensor inputs? I'm having weird results trying to use what I think are 2,3,4,5,6,7 on the "Digital" header. Some are working but aren't seeming to correspond with the right taps. I have them set as "[2,3,4,5,6,7]" in the sketch that I uploaded with it set to 6 taps.

For example: pin 2 does not respond, pin 3 updates tap 4, pin 5 updates tap 5, etc.
 
I've rebooted countless times and it's still not keeping the 'soda' value. Also, interestingly, I changed the SRM on one of my stored beers. It reflects it in the values now, but is NOT updating my taplist! What could be going on?

Thanks!

Did you only update SRM in your Beers list? If so you need to edit the beer in your Tap list and resave it, descriptions seem to update immediately, but SRM, IBU, etc only updates on tap or edit keg.
 
Which pins on the UNO are everyone using for flow sensor inputs? I'm having weird results trying to use what I think are 2,3,4,5,6,7 on the "Digital" header. Some are working but aren't seeming to correspond with the right taps. I have them set as "[2,3,4,5,6,7]" in the sketch that I uploaded with it set to 6 taps.

For example: pin 2 does not respond, pin 3 updates tap 4, pin 5 updates tap 5, etc.

Any chance your optical registration is off by one pin? ;)

I've never run into an issue like that, but if I did the first thing I'd do is get a fresh copy of the raspberrypints.ino file and start over.
And double check my wiring.

fwiw, I run six taps and use digital IO 2 and 5 through 9, and have not had a single problem in over two years.

Back when we first got the flow meters working I tried using 2 through 7 but had unresolved issues with 3 and 4.
On the AlaMode digital IO 3 is shared with the RTC chip on the back of the board so potential conflict there seemed logical, but I was never able to find a similar shared status for digital IO 4. As I didn't need to use it I simply avoided it as well...

Cheers!
 
Did you only update SRM in your Beers list? If so you need to edit the beer in your Tap list and resave it, descriptions seem to update immediately, but SRM, IBU, etc only updates on tap or edit keg.



Updating the actual Taps fixed that issue! Thank you for the help!



I made the changes you specified regarding the SRM files, and now I'm getting the following. Any ideas why the images aren't showing up?



ugh, sorry for all the questions... does anyone know a decent php/css editor for raspbian? Vim was suggested but appears to be more terminal based.

Edit: fixed attachment.

View attachment ImageUploadedByHome Brew1500129449.291137.jpg
 
Updating the actual Taps fixed that issue! Thank you for the help!

I made the changes you specified regarding the SRM files, and now I'm getting the following. Any ideas why the images aren't showing up?

ugh, sorry for all the questions... does anyone know a decent php/css editor for raspbian? Vim was suggested but appears to be more terminal based.

Not sure if you intended to add a screenshot in that last post as I can't see what you are now getting, but caching is always an issue with editing css so
CTRL+F5 usually does a hard refresh and forces it to download all the new assets.

As for text editors I use nano in the Pi eg:
Code:
nano /var/www/index.php
nano /var/www/style.css
Though I prefer to download a copy of the file to my local machine and edit it locally in a text editor then upload it back up as it makes it a lot easier to revert changes if you make a mistake (of which I've made many).
 
[...]ugh, sorry for all the questions... does anyone know a decent php/css editor for raspbian? Vim was suggested but appears to be more terminal based.

fwiw, I almost never use local consoles on my RPi fleet, preferring to access them via WinSCP and doing edits using UltraEdit on my workstation remotely.
UE is a fabulous context-sensitive editor that I've been using for well over a decade to the point that my brain is wired into it.
WinSCP lets me just double-click on the selected file, do whatever edits are needed, and the save is written straight back to the RPi...

Cheers!
 
fwiw, I almost never use local consoles on my RPi fleet, preferring to access them via WinSCP and doing edits using UltraEdit on my workstation remotely.
UE is a fabulous context-sensitive editor that I've been using for well over a decade to the point that my brain is wired into it.
WinSCP lets me just double-click on the selected file, do whatever edits are needed, and the save is written straight back to the RPi...

Cheers!

Completely agree, I use Notepad++ and FileZilla but exactly the same ideology!
 
So, I can ftp in and edit the file contents on a remote box, sure, but can I edit the phpmyadmin stuff through it? Maybe setup a windows version and remote into that somehow?

Also, to add to the oddity of the new 2015 styles, I found that I can change any beer to one of the first 106 line items. Any style after that will not save to the beer. If any of you have the 2015 BJCP styles working, can you tell me how you did it and how many line items you have?

Thank you!
 
So, I can ftp in and edit the file contents on a remote box, sure, but can I edit the phpmyadmin stuff through it? Maybe setup a windows version and remote into that somehow?

Phpadmin is a web app that runs on the host, not the client. If you point a remote browser at the correct url it will run the app just like you were sitting at the local console.

Also, to add to the oddity of the new 2015 styles, I found that I can change any beer to one of the first 106 line items. Any style after that will not save to the beer. If any of you have the 2015 BJCP styles working, can you tell me how you did it and how many line items you have?

Thank you!

I haven't gotten that deep into adding styles, I have only added a few styles that I have brewed that weren't in the original kit.
Is it possible there's some Mysql parameter that needs to be raised with the increased depth of the Styles table?

Cheers!
 
Thanks, day_trippr. I'm now updating everything from the windows box.

Not sure how I can find out if there's a MySQL parameter for this, BUT I just found that the original table has 106 lines. There HAS to be a hard-coded somewhere. I'm looking through the code for beer_form.php. When you're in that form, the entire list of categories is shown. When I press 'Save' the value just doesn't save. To me, this means that in the Save function, it's checking to see if the ID is found in the list, and if not, will not save it. I've searched the text for all php files in the admin directory and there are no occurrences of '106'.

At this point, I'm temped to revert to the 2008 categories, but I'd rather not... I'm going to try some more stuff first. will keep you posted.
 
I made the changes you specified regarding the SRM files, and now I'm getting the following. Any ideas why the images aren't showing up?

Edit: fixed attachment.

I have sent you a PM requesting your index.php and style.css files as I suspect the issue is a missing carriage return or something simple like that but what is likely to take many back and forth posts to diagnose.

Not sure how I can find out if there's a MySQL parameter for this, BUT I just found that the original table has 106 lines. There HAS to be a hard-coded somewhere. I'm looking through the code for beer_form.php. When you're in that form, the entire list of categories is shown. When I press 'Save' the value just doesn't save. To me, this means that in the Save function, it's checking to see if the ID is found in the list, and if not, will not save it. I've searched the text for all php files in the admin directory and there are no occurrences of '106'.

I suspect an issue with the database structure that is not easily exposed in phpMyAdmin (for example 106 may already exist in the database so it will not let you create a duplicate). It's also worth seeing if your new entries are visible in the vwGetActiveTaps table one you save them in your Beers list:

2017-07-16_1010-68244.png


(ignore my entries as I repurposed this fixed list for brewing method and created a new free text field "beerType" for style to prevent the need to keep updating it in the database)

2017-07-16_1040-68245.png


I'd suggest installing a local client like MySQL Workbench as the web based one will be a lot less feature rich (depending on what version of PHP you have running on your Pi), and is only a benefit for servers that you cannot access from a local client.
 
FINALLY FIGURED OUT THE BJCP CATEGORIES!

There's apparently some 'Foreign Keys' in the SQL DB. They are linking the original 'beerStyles' table to the 'beers' table. I had renamed the original styles table to 'beerStyles2', which drove the limit of the style ID number to be no more than the max of the original table. The PHP beer_form sheet showed the 'beerStyles' table, but the code in the background used the 'beerStyles2' sheet. I could not figure out how to re-direct the relation, so I ended up re-renaming the original table back to 'beerStyles', appended the 2015 category table to the original, then just deleted all of the original line items in the now-merged table.
(EDIT: I found out how to change the relation in 'beers'. If you've renamed the original table to something (i.e. beerStyles2008) and named the 2015 cats to 'beerStyles', you'll need to go to 'beers', Structure, click on "Relations View under the fields. On the beerStyleId line, the 5th dropdown should be 'beerStyles2008'. Click on this and point to 'beerStyles'. Press Save, and your RPints should now allow all the categories found in the 'beerStyles' table!)

Something to note at this point: any beer you have in your 'beers' table needs to have the style updated to the new category. If you do not, and you delete the id from 'beerStyles', the beer entirely gets deleted from the 'beers' table. I only had a few, and I had my tap listing up on a monitor so it was easy to re-add the beers. That being said, if you've been using RPints for years and have tons of Beers in the table, you may want to forego this update. OR you can update the category IDs in the beer table with a relation table.

If anyone is interested in updating their category list to the 2015 BJCP cats, I will type up how to do it and post it here. I'll also try to add the 2008-2015 mapping table and SQL code to update the cats in the 'beers' table.


NOW... continue trying to figure out wtf is up with these BeerSmith SRM images...
 
Last edited:
Hello all,

I am finishing up my keezer in another thread and have an ESP8266 that is using some temp sensors and relays to control temp. Then I stumbled across this thread. I am amazed at what you guys have going on here and wanted to see if I could "add" to it, or ask for some direction.

I have walked through the installation on the raspberry pi and got that working (had to make some changes to the original instructions like /var/www/html and the cromium browser bit. What I would like to do, is add 2 temp displays at the top to the left or right of "Currently On Tap" one for the keezer, and one for the coffin. And here is the big one, I would like to port the .ino for the arduino to the ESP8266 and send the pulses + temps across the wifi signal, instead of usb/serial. basically serial over wifi. the Adafruit Huzzah has just enough GPIO pins to support 1 onewire bus (temp sensors), 2 relays (freezer cooling and 12v fans in my case), and 6 flow meters, assuming all GPIO pins can be used in that manner (will test soon). I'm not fluent in PHP, but decent in c/c++/c# and sql. I would like to help, just need to be pointed in the right direction.
 
Hello all,

I am finishing up my keezer in another thread and have an ESP8266 that is using some temp sensors and relays to control temp. Then I stumbled across this thread. I am amazed at what you guys have going on here and wanted to see if I could "add" to it, or ask for some direction.

I have walked through the installation on the raspberry pi and got that working (had to make some changes to the original instructions like /var/www/html and the cromium browser bit. What I would like to do, is add 2 temp displays at the top to the left or right of "Currently On Tap" one for the keezer, and one for the coffin. And here is the big one, I would like to port the .ino for the arduino to the ESP8266 and send the pulses + temps across the wifi signal, instead of usb/serial. basically serial over wifi. the Adafruit Huzzah has just enough GPIO pins to support 1 onewire bus (temp sensors), 2 relays (freezer cooling and 12v fans in my case), and 6 flow meters, assuming all GPIO pins can be used in that manner (will test soon). I'm not fluent in PHP, but decent in c/c++/c# and sql. I would like to help, just need to be pointed in the right direction.

Hello there and welcome to our little corner, sadly the original devs have long since departed, but the most knowledgeable/helpful/active contributor here would undoubtedly be day_trippr.

I believe he already has temperature displaying on his RPints page and he's even started a separate thread on temperature logging via the Pi here: https://www.homebrewtalk.com/showthread.php?t=469523 (which I'd suggest you take a read through).

I've ordered my sensors, etc and am just waiting for the "slow boat from China", but techo questions on this stuff should probably go in the other thread.

That said it is great to see someone with c/c++/c# and sql chops as this community is only surviving on the kindness of others so anything you have to offer is greatly appreciated.

Cheers,

Kal
 
got it working and added 2 kegs and 2 beers. when I go to "My Taps" and Tap a keg, it goes through, but doesn't persist. it still show nothing on tap. Where should I start looking?

do note that I set it up for flow meters, but havent configured that part yet.
 
got it working and added 2 kegs and 2 beers. when I go to "My Taps" and Tap a keg, it goes through, but doesn't persist. it still show nothing on tap. Where should I start looking?

do note that I set it up for flow meters, but havent configured that part yet.

Need a bit more info on this one, so are you saying you can see the new kegs and beers on the tap form, but can't get them to display on the tap list?

Have you made any code/database changes or is it a "virgin" RPints setup?
 
Back
Top