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

    Homebrewing Facebook Group

Native Python BrewPi controller

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Ok no problem, in the mean time is there a way I can go back to the original github code?

I think the issue is that self.storedBeerSetting isn't initialized in the code prior to use. There's a pull request with what I think is the bugfix - once that is accepted you can update to the latest version of the code using the following commands in the fuscus folder:
Code:
git reset --hard HEAD
git pull

I could also be completely wrong, and that isn't it at all. I need to wire up more temperature sensors and use beer mode!
 
Thanks to the power of open source I am at work teaching Summer Camp, but some guy on the other side of the world has offered a fix. Thank you!

I accepted the Pull Request. @joebob296, please would you like to try it?
 
Thanks to the power of open source I am at work teaching Summer Camp, but some guy on the other side of the world has offered a fix. Thank you!

I accepted the Pull Request. @joebob296, please would you like to try it?


Of course, eating dinner now then the kids have to go to bed. But I will update tonight and report back.
 
That fixed the issue. I can switch modes and the web server updates. Thanks for the fix!
 
Excellent! Thank you for testing. I hope it all goes smoothly. Please report your experiences (good, bad or ugly).
 
We spoke about using a Zero to be the chamber device. I was wondering if anyone had ever used a "Robotics" shield for any of the Pi's to interface with a fridge? Seems like one of these hats on top of a Zero would make things pretty easy:

I say that not having tried it of course. It may require coding support.
 
What function could that totally passive device provide in this application?

Cheers!
It could serve the same function as a shield on an Arduino, providing an easier method of connecting the peripheral dices. To a guy that designs bijillion-layer printed circuits for a living this may not seem like a big deal. :) When presented with a Pi Zero and the limited size, this might make things easier to allow simple connections for the mouth-breathers (like me).

Just a thought.
 
I think it's just as easy to plug in to the GPIO pins (once you have soldered them on).

The minimal RPi Zero implementation looks like this:
fuscus_on_pizero_sml.png


You can also plug in an LCD and rotary encoder, but they are not required to make it work.

I will test this configuration in September.
 
Moving the relay to one-wire would be interesting. I say this as a person who doesn't know how much coding there would be, but streamlining the "communications" to the fridge makes sense aesthetically and mechanically depending on available nooks and crannies.

I have a Zero on the way to play with as well.
 
It's just Python. You could hack on the relay module, which is very simple, or write a new module and import it to the main code.

Probably you should use 1-wire filesystem (OWFS). I have had trouble getting the w1 modules other than w1-therm working.
 
Moving the relay to one-wire would be interesting. I say this as a person who doesn't know how much coding there would be, but streamlining the "communications" to the fridge makes sense aesthetically and mechanically depending on available nooks and crannies.

I have a Zero on the way to play with as well.


It's just Python. You could hack on the relay module, which is very simple, or write a new module and import it to the main code.

Probably you should use 1-wire filesystem (OWFS). I have had trouble getting the w1 modules other than w1-therm working.

I need to get some of the OneWire GPIO switches to play with here soon. Once I do, this would be a fun project to get working.
 
I can't seem to move beyond the AVR programming for the original Brewpi HOWTO install. i'm not really interested in using the Arduino as all of this can functionally be done on the pi. If you need one more set of sticky fingers running your code, i'd love to give it a shot. i've got a pi2, the sainsmart relay, 2 DS18b20's (out of 20), beer that needs tracking, and time. lemme know how i can help. I'd love to see this work.
Also, i'm pretty ok at python.
 
I have Fuscus up and running but get these errors in the std output of the Brewpi web console

Aug 26 2016 17:30:28 Warning: minimum BrewPi version compatible with this script is 0.4.0 but version number received is 0.2.11
Aug 26 2016 17:30:28 Warning: version number of local copy of logMessages.h does not match log version number received from controller.controller version = 1, local copy version = 3

Any ideas, seems not to create an issue though

Rich
 
Hello,

Glad to hear the software is working for you!

The error reports are probably due to using the current version of the BrewPi scripts, which have changed a lot to accommodate new BrewPi features.

In another thread there are instructions for downgrading BrewPi to an earlier "legacy" version for use with Arduino. If Fuscus stops working with the latest BrewPi software then it will probably be necessary to use the legacy version too.

However, if there are no problems then it it's fine to continue using the current BrewPi software.

Thanks for your observations. I'll check for the same error messages on mine later and decide if something needs to be done.
 
If I recall correctly, there were no changes to log messages - just new ones added. That message can be completely ignored.

For the v4 message, I am not sure what the meaningful changes were between the versions. I doubt it matters much!
 
Is there a way to 100% copy my sd card with Raspbian/BrewPi set up to my desktop? It's been working reliably and consistently. Is there some dd command or other way?

Here is a graph of a cider I did. There is no heater or fan installed; just cooling. Next fermentation I will have cooling, heating, and a fan for circulation; which will result in more accurate temps and readings. And yes I did spell testing wrong, just couldn't find out how to fix it without starting over. View attachment ImageUploadedByHome Brew1472358676.161578.jpg
 
What OS are you running? Jessie with the LXDE desktop has the SD Card Copier program built in, and it works perfectly to clone the running/booted SD card to another SD Card in a USB card reader.

If you're running Wheezy, there is https://github.com/billw2/rpi-clone, a command-line SD card cloning utility. I haven't used it myself but it gets good marks.

And if you don't mind getting down and dirty, you can follow this excellent tutorial on how to live-clone a Raspbian SD card on your RPix.
http://sysmatt.blogspot.com/2014/08/backup-restore-customize-and-clone-your.html
I've used this countless times - like the two alternatives above, the target SD card does not have to be identical size. It just has to fit the used space on the master.

Finally, you can also use something like Win32DiskImager on a Windows system. It's virtually automatic, but it does a blind sector copy, so if the target SD card is even one block smaller than the master, it will fail...

Cheers!
 
I did a noobs install and am running Raspbian. I'm sure one the ways you previously mentioned will work.
 
If you did the install anytime in the last, say, six months, it'll be Raspbian Jessie.
If you dig into the desktop "Start Menu" you should find the SD Card Copier application.
Stick it on the desktop as it's very good and should encourage doing backups any time you make a significant update to your RPi...

Cheers!
 
Applepi baker is a great way to clone the the ad card on a Mac too. It greats an image 100% size of the SD card and then you can just zip it up.
 
@day tripper Thanks for the multiple ways to clone an sd card. I thought that I could copy my sd to a network location, but it appears that i need to use a USB to sd reader.

On another note, right now I am trying to get my chest freezer to freeze as in 0C. However, whenever I put in 0C it defaults to 1C. That is the lowest it will go. Is there a reason for this or is brewpi stopping it from gong any lower?
 
@day tripper Thanks for the multiple ways to clone an sd card. I thought that I could copy my sd to a network location, but it appears that i need to use a USB to sd reader.

On another note, right now I am trying to get my chest freezer to freeze as in 0C. However, whenever I put in 0C it defaults to 1C. That is the lowest it will go. Is there a reason for this or is brewpi stopping it from gong any lower?

I think this is limited on purpose, so that BrewPi will not freeze your beer accidentally. You may be able to override it in the Maintenance Panel under Advanced Settings | Control Constants. I don't know if the limit is enforced in the BrewPi script, or in the Arduino (now the fuscus script).

I have not tested playing with those settings. They might work, they might break, or they might just do nothing.
 
Thanks. I'll try it out. I was under the impression that none of the maintenance panel worked. But I guess that's mainly for set up of temp probes and such.
 
Well, unless I missed it, I could not find temperature minimum setting. Next attempt was to use Google, I read a thread that it was removed from version .41 now if only I could determine my brewpi version is....
 
Unless it was dropped from this "native" version, you missed it.

It was there in the 0.2.4 version that I still run widely on my Wheezy systems, and I'm running the latest/greatest BrewPi legacy-branch code (0.2.10, iirc) with an Uno on my Jessie system and both the Temperature setting minimum and Temperature setting maximum are still there...

Cheers!
 
Well I double checked and triple checked and its not there. Maintenance Panel-Advanced Settings-Control Constants. Is there a way to verify what version of brew pi I'm on? No luck using Google.
 
Well, unless I missed it, I could not find temperature minimum setting. Next attempt was to use Google, I read a thread that it was removed from version .41 now if only I could determine my brewpi version is....

Ok, well, there are three parts to the system.

1) The Arduino, which runs the controller software
2) The BrewPi script, which is the data logger and the link to the Arduino
3) The BrewPi webserver

Although they are separate parts, they are dependent on each other to varying degrees. As time goes on, features are added or improved, or sometimes removed.

I have concentrated solely on the Arduino, and replicated its core functions in Python (the fuscus script). It's still a separate part, even though it's running on the same host as the other parts.

I have assumed that later versions of the BrewPi script will talk to earlier versions of the controller, however, the BrewPi script is starting to diverge quite a lot from the original design now that Elco is using a Spark and has added a lot of new functionality.

So, it might be necessary to recommend that anyone using fuscus should use the legacy branch of the BrewPi script, because it has kept the original functionality and behaviour that was found on the Arduino. This is the advice given to people who are still using the Arduino, so it probably makes sense here too.

At home I am using whatever was the latest BrewPi script. I will look for the low-temperature limit setting. If it's not there I'll try 'downgrading' the BrewPi script to legacy and see what happens.

The next issue will be: if the BrewPi script sends a command to fuscus to change the limit will it work, or will it break?
 
Ok, the box for changing the minimum temperature limit has gone. It's a function of the BrewPi scripts, not the Arduino (therefore not fuscus).

So, reverting to 'legacy' may be the solution. I haven't tried it yet.
 
I am trying to add a second instance of fuscus, have followed to instructions to add fuss using an additional user (fuscus2)

I get the following while trying to run sudo ./fuscus.py as fuscus2 user.

Using config file 'fuscus.ini'
No 'calibration.ini' file or no calibration values present.
Network port: 25518 (not implemented)
No rotary encoder specified.
No LCD module specified.
Hot relay on pin None (not inverted)
Cold relay on pin None (not inverted)
Fridge sensor : 28-000005ea47e1 (+0.00)
Beer sensor : None (+0.00)
Ambient sensor: None (+0.00)
No door switch.
Traceback (most recent call last):
File "./fuscus.py", line 37, in <module>
import ui
File "/home/fuscus2/chamber2/fuscus/ui.py", line 23, in <module>
import displayLCD as display
File "/home/fuscus2/chamber2/fuscus/displayLCD.py", line 25, in <module>
from constants import *
File "/home/fuscus2/chamber2/fuscus/constants.py", line 220, in <module>
heater = relay.relay(relay_HOT, invert=invert_hot)
File "/home/fuscus2/chamber2/fuscus/relay.py", line 38, in __init__
GPIO.setup(self._pin, GPIO.OUT, initial=init ^ invert)
TypeError: unsupported operand type(s) for ^: 'bool' and 'NoneType'

any ideas anyone.
 
Hello. That's one way to do it.

Thanks for posting the error message. I think there is a typo or some other problem in your second fuscus.ini file. At the point where the heater relay is specified.

Can you post your second fuscus.ini file?
 

Latest posts

Back
Top