• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

[Version 2 Release] RaspberryPints - Digital Taplist Solution

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I poured a solo cup full of beer. Flow is a little slow, I can increase pressure a bit.
 
Up and running thanks to RandR+ install script - what format must the yeast temperature range be - it tells me to enter a valid number but won't accept 12 or 15
 
it tells me to enter a valid number but won't accept 12 or 15
Not that it matters, but What is your unit of measure for Temperature?

1664422771636.png



I ran a local test and found the same results that 12 and 15 didnt work for Fahrenheit but it doesnt make sense because the code isnt checking a range of nubmers just that the text is a number. Will look into more
 
it tells me to enter a valid number but won't accept 12 or 15
Ok i found the issue, the script was checking hidden inputs for validation which failed but showed up on the visible input. If you rerun the installer it will have an option to update, run that option and you will get the fix
 
Hi everyone, thanks for the installation and the others explications all along the thread... I finally installed rpints with flowmeters, temp and RFID, next step I would like to add some valves to finalize the system, I have 3 taps. What is better to do with a raspberry pi and Arduino uno r3 (and the 3 flowmeters also) ? To put some power supply to the uno (9V) for the 3 valves maybe ? And where do I plug the valves exactly? Or Is it better to use electrical relay ? Especially with some 12v valves maybe, I don't have the valves yet, I don't know what kind is the best. And with the hardware do I need to activate some things in Rpints? Or some script to open the valves with RFID and maybe a red/green led, or is it already includes?
 
add some valves
I have these
https://www.amazon.com/gp/product/B016MP1HX0/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1
I have a 12v power supply for the Pi that I also use for the valves through relays.
The relay triggers are plugged into the Pi, the shield will tell the Pi to turn them on or off. You can connect the relay trigger to the shield directly I dont have enough pins on it though.

You can control the valves through the tap page (turn on or off) or RPints will use your RFID reader will trigger them to open for a configurable amount of time through the tap page
1667229121162.png
 
Oooooh thanks, I'm really interested with the 12v power supply, I think it is the best way to handle relays and flowmeter and valves... Can I have more details about that, what kind, the connections and others stuffs please, if it is not to much to ask? And i see that the programmation directly in Rpints is easy... Thanks for that by the way...
 
Can I have more details about that, what kind, the connections and others stuffs please
The power supply description is Culver LED AC 110V-240V To DC 12V 8.3A(100W) Switching Power Supply Regulated Power Transformer Adapter for Industrial Automation, LED Strips,CCTV,Rad
the relay is JBtek DC 5V 8 Channel Relay Module & 40 Pin Female-Female Dupont Cable for Arduino Raspberry Pi DSP AVR PIC ARM
they are no longer on amazon to give you a link.

I use a 12v to 5v converter to power the relay board and my pi (cut usb cable). I connected basic wire from the other set to power the relays.
The positive feeds all the commons of the relays. the negative gets split to the valves using push to connect fittings (instead of wire nuts since I have 8 valves)

The relay board came with pinned ribbon wire that made connecting the pi to the board very easy. I had to connect the ground from the pi to the relay board otherwise the relays would not turn on.
 
Noice ! Thanks for the details, very interesting and something that I have in mind, I will try to connect all of that when i'll receive my valves ;)

And i have a question about Rpints, especially for the bottles, I understand that is used for the taps mostly but is there a way to have like several buttons for the same beer (in the same ligne) but for different type of bottles (12oz, 16oz...or more) instead of have to put the same beer with differents bottles, I don't know if it understandable or if I missed something, but I find the "click on the beer" for the bottles very useful to track the remaining bottles once you pick a beer, but if you have 3 or 4 kind of bottles with differents volumes for each beer, there is also 3 or 4 lignes for that... And if you have more beers... I could be a lot of lignes for the bottles...
 
Hello again, i have more questions :p everything seems to be working well, but one thing, what is the red cross around the keg ? i assume it's link to the valves, i don't have that icon when i deactivate the valves, but it doesn't change when i open the valves... what does it mean exactly ?
Screenshot-04-11-2022-15-21-03.png


and another thing, in the motion detector configuration, when you put a pin number for the LED, how we need to connect the LED exactly ? only the pin and the gnd with some resistor ? or it need to interact with the PIR ? on the Pi or arduino ?

thanks
 
i assume it's link to the valves, i don't have that icon when i deactivate the valves, but it doesn't change when i open the valves... what does it mean exactly
Yes that is linked to the valves, Open the valves and refresh the page to see if it changes. it could be that it doesnt see the update from the python to refresh the page when the valves changes.

how we need to connect the LED exactly ? only the pin and the gnd with some resistor ?
I dont use the LED so i cant help, but im pretty sure you need a resistor in there.
 
1667577896875.png

It is based on a database value set by the python so if the python is not running this will not update. you can look at /var/log/rpints.log to see if there are any errors in it. Also if you dont have the value pin set correctly it wont change
 
yes, oki, the pins are correct and i hear the click and see the led of the relays, and when i have another internet tab with the tap's page, it refresh automatically when i click on "let it flow" or "stop", but i have some errors in the log effectively...:
Traceback (most recent call last):
File "/usr/lib/python3.9/socketserver.py", line 650, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.9/socketserver.py", line 360, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/var/www/rpints/python/mod_pywebsocket/standalone.py", line 673, in __init__
CGIHTTPServer.CGIHTTPRequestHandler.__init__(
File "/usr/lib/python3.9/http/server.py", line 653, in __init__
super().__init__(*args, **kwargs)
File "/usr/lib/python3.9/socketserver.py", line 720, in __init__
self.handle()
File "/usr/lib/python3.9/http/server.py", line 427, in handle
self.handle_one_request()
File "/usr/lib/python3.9/http/server.py", line 405, in handle_one_request
if not self.parse_request():
File "/var/www/rpints/python/mod_pywebsocket/standalone.py", line 774, in parse_request
self._options.dispatcher.transfer_data(request)
File "/var/www/rpints/python/mod_pywebsocket/dispatch.py", line 297, in transfer_data
request.ws_stream.close_connection()
File "/var/www/rpints/python/mod_pywebsocket/_stream_hybi.py", line 848, in close_connection
self._send_closing_handshake(code, reason)
File "/var/www/rpints/python/mod_pywebsocket/_stream_hybi.py", line 817, in _send_closing_handshake
self._write(frame)
File "/var/www/rpints/python/mod_pywebsocket/_stream_base.py", line 141, in _write
self._request.connection.write(bytes_to_write)
File "/var/www/rpints/python/mod_pywebsocket/standalone.py", line 198, in write
return self._request_handler.wfile.write(data)
File "/usr/lib/python3.9/socketserver.py", line 799, in write
self._sock.sendall(b)
BrokenPipeError: [Errno 32] Broken pipe
[2022-11-04 17:35:45,686] [ERROR] mod_pywebsocket.standalone.WebSocketServer: Exception in processing request from: ('::ffff:192.168.0.26', 11195, 0, 0)
None
Traceback (most recent call last):
File "/usr/lib/python3.9/socketserver.py", line 650, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.9/socketserver.py", line 360, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/var/www/rpints/python/mod_pywebsocket/standalone.py", line 673, in __init__
CGIHTTPServer.CGIHTTPRequestHandler.__init__(
File "/usr/lib/python3.9/http/server.py", line 653, in __init__
super().__init__(*args, **kwargs)
File "/usr/lib/python3.9/socketserver.py", line 720, in __init__
self.handle()
File "/usr/lib/python3.9/http/server.py", line 427, in handle
self.handle_one_request()
File "/usr/lib/python3.9/http/server.py", line 405, in handle_one_request
if not self.parse_request():
File "/var/www/rpints/python/mod_pywebsocket/standalone.py", line 774, in parse_request
self._options.dispatcher.transfer_data(request)
File "/var/www/rpints/python/mod_pywebsocket/dispatch.py", line 297, in transfer_data
request.ws_stream.close_connection()
File "/var/www/rpints/python/mod_pywebsocket/_stream_hybi.py", line 848, in close_connection
self._send_closing_handshake(code, reason)
File "/var/www/rpints/python/mod_pywebsocket/_stream_hybi.py", line 817, in _send_closing_handshake
self._write(frame)
File "/var/www/rpints/python/mod_pywebsocket/_stream_base.py", line 141, in _write
self._request.connection.write(bytes_to_write)
File "/var/www/rpints/python/mod_pywebsocket/standalone.py", line 198, in write
return self._request_handler.wfile.write(data)
File "/usr/lib/python3.9/socketserver.py", line 799, in write
self._sock.sendall(b)
BrokenPipeError: [Errno 32] Broken pipe
[2022-11-04 17:35:45,694] [ERROR] mod_pywebsocket.standalone.WebSocketServer: Exception in processing request from: ('::ffff:192.168.0.100', 53424, 0, 0)
None
2022-11-04 17:35:45 RPINTS: Sending Status;N;-1;0;0;0;0;|
 
Just wanted to drop in and say thank you to RandR+, and all the others that are keeping this running. Also, I want to remind everyone to backup their SD cards if they haven't done it recently. I had a scare last weekend where I thought my card was corrupt. Turns out I was just impatient and didn't wait for the PI to fully boot. You better believe that once it came back up that I backed up the card.

Now I've got a question, what weight sensors are people using on their systems? I'm thinking about building/adding a scale to keep track of my CO2 tank. I know I'll need an HX711, but what kind of load sensors are compatible? Do you use one sensor or a group (like 1 under each corner)? Also does the HX711 plug into the PI GPIO pins or does it plug into the Arduino (I'm running a Nano).
 
i have some errors in the log effectively
Most likely those error are because a screen refreshed and the python is trying to talk to the old connection. I thought i surpressed those errors as they arent a real problem.

You can try checking the database for the value, from the terminal
sudo mysql
use raspberrypints (or your database name)
select valvepinstate from tapconfig;


any tap that returns 0 should be on and that should indicate on the main tap list
 
Also does the HX711 plug into the PI GPIO pins or does it plug into the Arduino
while i dont use scales, I do know that the sensor hooks up to the PI GPIO pins as RPints uses python running on the PI to talk to it
 
select valvepinstate from tapconfig;

when i check my database, i see the correct pin number valvePin, and the valveOn to 0 (it changes to 1 when I click on "let it flow"), but for the valvePinState, i have NULL, and if I change that manually to 0, it changes the red cross to a green check, but not automatically...

just in case, i don't have the valves connected yet, i simulate them with the relays, (if it does change something...) i am just too impatient to try ^^
 
valvePinState, i have NULL
Are relays connected to the Pi or Shield?

If its the shield i found a bug in the python that would cause this. In python\PintDispatch.py ~line 711
change
str(-1*pin)
to
str(pin)

the python expects the pins to be on the Pi i will have to do something to fix that
 
Are relays connected to the Pi or Shield?

to the shield, it is easier for me, but i can try to connect them to the Pi when i have the time, i think i have still some available pins, and in this case, i need to check the case Valvle Pi pin ? and put the gnd between the relay and the Pi (instead of the shield) to have the pin's state loop.
 
to the shield, it is easier for me, but i can try to connect them to the Pi when i have the time, i think i have still some available pins, and in this case, i need to check the case Valvle Pi pin ?
I think if you can make that code change you shouldnt have to change the wiring. its just the update is trying to set the state for a negative pin but you only have positive pins
 
need to check the case Valvle Pi pin
Im going back on my last post, I realized the shield is the one that makes the decision to turn on or off the valves not the python. So if the valves are on the shield the python does not get an update that they changed.
So yes you can switch the wiring and check the pi pin for each tap or i can code up a new message that will tell the Python to update the database (which i will do eventually now that i know about this).
 
i tried to change the wires to the Pi, it works, the icon change to green check, but question ? is it possible to change the timing to refresh the web page ? because it refreshes too fast, and the update does not occur at the first automatic update of the database, but if i refresh the page again one second later, i see the change...

and with a RFID card, it opens the relays, change the valves to open, but i need to refresh manually to see the green check ^^ that's weird
 
Last edited:
I have a new problem with my installation, and i don't really know why, sometimes the valves close right after they open when I scan a RFID card, but not always...like 1 out of 10 maybe... not regular...that's the problem really, I tried to search for similar problem in the thread, and i found that I could be power dumb, but the pins valves are link to the raspberry (with a power only for him, I checked for undervoltage, it is fine), and i have a 12v power for the valves, the uno is link to the raspberry with USB, but it has its own 9v power...and I have only 3 valves.


Maybe in the script, is it possible to add some wait time after switch on relays between the valves? Like 200ms or so between each valves, to avoid that ? I don't know if it could help... Because like I said, it happens not so often.
 
Maybe in the script, is it possible to add some wait time after switch on relays between the valves?
It would be possible, in the Arduino code function piStatusCheck loops through the valves to turn them on, thats were the delay would need to be added.

Before that i would rather check the logs to see if they are being turned off right after turning on. To do that verify in /python/Config.py
config['flowmon.debug' ] = True
and
config['dispatch.debug' ] = True

if not set them that way and restart the service.

When it does happen, stop and look at /var/log/rpints.log
Towards the end of the file there should be a WP;1;3;<pin1>;<pin2>;<pin3> message then general logging after that, if you see a WP;0;3;<pin1>;<pin2>;<pin3> message after that then the logic is closing the valves and its not a power issue.

When I first started with valves I ran into the same issue and found that the new logic wasnt right so I added a lot of debug log to trace why they were shutting down. If you see the WP;0 message feel free to post the logs between WP;1 and WP;0 message for me to decode
 

Latest posts

Back
Top