NEW StrangeBrew Elsinore Thread

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.
Sorry, I was having some huge WiFi issues. I ended up getting a new one that seems to work much better.

The main graph page has a link for "Download all data" which will give a zip file containing individual CSV files.

Each CSV file will be labelled as <device>-<state>.csv, where state is temp (for temperature) or duty (for the duty cycle, PIDs only).

The Timestamps are in milliseconds since the epoch (using javas System.getCurrentTimeMillis()), so are easy to convert by most date things out there to local timezone.

The files themselves are stored in /graph-data/ in the Elsinore directory with sub-folders named after the System time when Elsinore started for that run.

Elsinore doesn't look at historical data, so you can just delete old directories when you're done with them.
 
Thanks Doug! glad you've got your WIFI sorted.

Speaking of WIFI - I'm on the RPi A+ using a RTL8188CU dongle and it's working fine.

Okay I'll check out the paths and files you described.

I successfully finished a Brewday with Elsinore 2 days ago and actually used Hysteria mode more than I thought I would...everything went well so thanks once again!!
 
Huge update tonight, the new controller is now the default controller (you can use oldcontroller to get to the old one but it's got a bug with the next change)

The Settings (in edit mode) have a much better layout so it should help with mobile views).
 
Thanks Doug...Wow didn't know there was a new controller!

Installed and looking good. Only thing I've noticed is that the timer has 'add new pump' button and if clicked will add a pump?! there's no way to add a timer at the moment.

Cheers!
 
I'm planning my first brew with Elsinore on Thursday. My Raspberry Pi is headless and I'll be using my phone as the interface.

Can Elsinore run as a service that automatically starts when the machine boots?
If html inputs are type='number', my phone will automatically display the numeric keyboard when editing that field. Could you update the input fields? (I tried editing my local copy and building, but I'm new to Linux/Maven development and I'm getting an error when attempting to reference jGPIO 0.0.4. (0.0.2 is in the repo directory)).
 
Can Elsinore run as a service that automatically starts when the machine boots?

People have done this, but it's unsupported since there's no guarantee the GPIO inputs are available at startup which causes issues.

If html inputs are type='number', my phone will automatically display the numeric keyboard when editing that field. Could you update the input fields? (I tried editing my local copy and building, but I'm new to Linux/Maven development and I'm getting an error when attempting to reference jGPIO 0.0.4. (0.0.2 is in the repo directory)).

It's fixed in the current build. As for building you'll need to download the jGPIO repository and install it using maven
 
New update tonight, GPIOs can now be set to inverted manually on PIDs (Editing a PID shows a checkbox for inverting the heat GPIO or cool GPIO).

I'll be expanding this to pumps later, probably tomorrow.
 
Pumps now support inverted outputs on an individual basis.

*All inverted outputs are tested on a theoretical basis, I should set up real testing sometime.
 
Thanks for setting the html input type to numbers for the numeric fields; this makes changing values much easier.

Something doesn't seem right with the PID output control now. I do not need inverted outputs and do not have inverted selected for the temperature sensor connected to my RIMS tube. When I ran the new code last night, I noticed that when I had the unit off, the power to my RIMS tube was on. I tried the inverted option, but it didn't seem to make a difference. I didn't have time to troubleshoot anymore, so I apologize for being a bit vague.

This is probably just a cosmetic issue, but now when setting the PID values, the fields are labeled "P", "I", and "I". The last field should be "D", right?
 
Thanks for setting the html input type to numbers for the numeric fields; this makes changing values much easier.

Something doesn't seem right with the PID output control now. I do not need inverted outputs and do not have inverted selected for the temperature sensor connected to my RIMS tube. When I ran the new code last night, I noticed that when I had the unit off, the power to my RIMS tube was on. I tried the inverted option, but it didn't seem to make a difference. I didn't have time to troubleshoot anymore, so I apologize for being a bit vague.

This is probably just a cosmetic issue, but now when setting the PID values, the fields are labeled "P", "I", and "I". The last field should be "D", right?

Fixed this and a few other issues today.
 
Hi Guys,
feel like a moron here. Have actually had this up and running brilliantly driving and element and pump. Recently I poured water (Don't ask) over my pi, and both sd and pi were rendered useless.
So I figured I'd just go from the start again (with new), but am struggling to even get elsinore up and running.

I have run updates etc, installed my thermo probe (which seems to be working fine). i've cloned the github repository, but when I go to run the jar script I get the following errors:


pi@raspberrypi ~/BrewServer $ sudo java -jar Elsinore.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/sb/elsinore/LaunchControl : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: com.sb.elsinore.LaunchControl. Program will exit.

I am guessing this is something java related - I've installed jre and jdk...what am I missing this time that I got right last time?
all help appreciated.

thanks,

James
 
Hi Guys,
feel like a moron here. Have actually had this up and running brilliantly driving and element and pump. Recently I poured water (Don't ask) over my pi, and both sd and pi were rendered useless.
So I figured I'd just go from the start again (with new), but am struggling to even get elsinore up and running.

I have run updates etc, installed my thermo probe (which seems to be working fine). i've cloned the github repository, but when I go to run the jar script I get the following errors:


pi@raspberrypi ~/BrewServer $ sudo java -jar Elsinore.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/sb/elsinore/LaunchControl : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: com.sb.elsinore.LaunchControl. Program will exit.

I am guessing this is something java related - I've installed jre and jdk...what am I missing this time that I got right last time?
all help appreciated.

thanks,

James

You need java 7 or above.
 
Hi Doug,

This project looks great. I am hoping to dive in really soon. Do you have a wiring guide for dummies to connect up things like the SSRs and thermal sensors? I have never done any kind of wiring or soldering before.

Thanks
 
This error, "Unsupported major.minor version 51.0", can occur if you have multiple versions of the Java runtime installed -- but are defaulting to a version older that what Elsinore requires.

Try the command below. If it shows multiple versions of Java, select the latest (or at least one that is version 7 or higher.

alternatives --config java
 
This error, "Unsupported major.minor version 51.0", can occur if you have multiple versions of the Java runtime installed -- but are defaulting to a version older that what Elsinore requires.

Try the command below. If it shows multiple versions of Java, select the latest (or at least one that is version 7 or higher.

alternatives --config java

thanks both - seems to have worked a treat. Much appreciated.
 
Hi Doug. I had it work it working, but then rebooted and now getting an error. One thing I did before reboot was to take apache out of startup sequence, so it's not running. Is elsinore dependent on apache?

Code:
ubuntu@arm:~/SB_Elsinore_Server$ sudo ./launch.sh
Starting Elsinore as root
Dec 09, 2014 4:34:12 AM com.sb.elsinore.LaunchControl main
INFO: Running Brewery Controller.
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl readConfig
INFO: CFG IS NULL
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl enableRecorder
INFO: Enabling the recorder
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section pumps
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section general
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section device
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Parsing XML Device: System
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Not enough volume data points, 0 found
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp <init>
INFO: Adding
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp <init>
INFO:  added.
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl startDevice
INFO: Adding System GPIO is (null)
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp setScale
WARNING: Cut off is: -999
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp setScale
WARNING: Cut off is now: -999
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section device
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Parsing XML Device: 28-000004f22a44
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Not enough volume data points, 0 found
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl startDevice
INFO: No Probe specified for 28-000004f22a44
Looking for: ti_am335x-bone
Exception in thread "main" java.lang.NullPointerException:
        at com.sb.elsinore.LaunchControl.parseDevice(LaunchControl.java:2589)
        at com.sb.elsinore.LaunchControl.parseXMLSections(LaunchControl.java:2354)
        at com.sb.elsinore.LaunchControl.readConfig(LaunchControl.java:796)
        at com.sb.elsinore.LaunchControl.<init>(LaunchControl.java:468)
        at com.sb.elsinore.LaunchControl.main(LaunchControl.java:353)
 
Correct me if I'm wrong, but I believe the web interface to control SBE relies on apache.

-Josh
 
Hi Doug. I had it work it working, but then rebooted and now getting an error. One thing I did before reboot was to take apache out of startup sequence, so it's not running. Is elsinore dependent on apache?

Code:
ubuntu@arm:~/SB_Elsinore_Server$ sudo ./launch.sh
Starting Elsinore as root
Dec 09, 2014 4:34:12 AM com.sb.elsinore.LaunchControl main
INFO: Running Brewery Controller.
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl readConfig
INFO: CFG IS NULL
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl enableRecorder
INFO: Enabling the recorder
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section pumps
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section general
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section device
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Parsing XML Device: System
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Not enough volume data points, 0 found
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp <init>
INFO: Adding
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp <init>
INFO:  added.
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl startDevice
INFO: Adding System GPIO is (null)
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp setScale
WARNING: Cut off is: -999
Dec 09, 2014 4:34:13 AM com.sb.elsinore.Temp setScale
WARNING: Cut off is now: -999
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseXMLSections
INFO: Checking section device
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Parsing XML Device: 28-000004f22a44
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl parseDevice
INFO: Not enough volume data points, 0 found
Dec 09, 2014 4:34:13 AM com.sb.elsinore.LaunchControl startDevice
INFO: No Probe specified for 28-000004f22a44
Looking for: ti_am335x-bone
Exception in thread "main" java.lang.NullPointerException:
        at com.sb.elsinore.LaunchControl.parseDevice(LaunchControl.java:2589)
        at com.sb.elsinore.LaunchControl.parseXMLSections(LaunchControl.java:2354)
        at com.sb.elsinore.LaunchControl.readConfig(LaunchControl.java:796)
        at com.sb.elsinore.LaunchControl.<init>(LaunchControl.java:468)
        at com.sb.elsinore.LaunchControl.main(LaunchControl.java:353)

Your configuration appears to be corrupted. Did you shutdown Elsinore before shutting down the system? Can you post the contents of your configuration?
 
Correct me if I'm wrong, but I believe the web interface to control SBE relies on apache.

-Josh

Consider yourself corrected, Elsinore is 100% self contained, otherwise the instructions would tell you to install Apache.
 
Note; I did receive a ph Probe today, but I won't be pushing any code til I have some calibration solutions delivered and tested.
 
Note; I did receive a ph Probe today, but I won't be pushing any code til I have some calibration solutions delivered and tested.

That's great news...Can't wait!!

Are you able to list the hardware components required so I can get them ordered now for the new year??
 
Update: If you have volume measurement setup you can now enter the specific gravity and it should adjust the volume of the liquid represented to match.

I.e. if your wort is at 1.045 SG it's 1.045 times the same volume of water (at least that's my very very basic understanding).

This of course assumes you calibrate at 1.000.
 
Thanks Doug...only issue I see with that probe is its operating temp.:

Measuring Temperature :0-60 &#8451;

Yes, you would be correct, but my searching didn't find anything reasonably priced that would go to 100C, so this will be a limitation that you'd need to take a sample, and chill it first, before measuring the pH.

Since most of the initial water adjustments are made from the mash water, it should be sufficient for the majority of homebrewers to measure the pH of the plain water, plan their adjustments, then make minor ones based of later samples.
 
Update: If you have volume measurement setup you can now enter the specific gravity and it should adjust the volume of the liquid represented to match.

I.e. if your wort is at 1.045 SG it's 1.045 times the same volume of water (at least that's my very very basic understanding).

This of course assumes you calibrate at 1.000.

i was unable to find any info on setting up the volume measurements. maybe its just been a long day and i am blind. if you can point me in the right direction that would be great.

This setup is just awesome. I have brewed 6-10 batches with it flawlessly!!! thank you!


nevermind... found it..
http://dougedey.github.io/2014/05/14/New-Elsinore_Setup/

Peter
 
Kind of realized that the volume units wasn't very clear for what was accepted so I made it into a drop down so you can select a valid volume unit.
 
Your configuration appears to be corrupted. Did you shutdown Elsinore before shutting down the system? Can you post the contents of your configuration?

Hi Doug..here's elsinore.cfg, is that what you want? I think I shut down elsinore before rebooting but can't be sure... I was doing few things and rebooted multiple times.

Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<elsinore>
  <pumps/>
  <general>
    <pagelock>true</pagelock>
    <scale>F</scale>
    <recorder>true</recorder>
    <recorderDiff>0.15</recorderDiff>
    <recorderTime>5000</recorderTime>
    <brewery_name>Big Fin Temp Chamber</brewery_name>
  </general>
  <device id="System">
    <probe/>
    <cutoff>-999</cutoff>
    <calibration>0F</calibration>
  </device>
  <device id="28-000004f22a44">
    <duty_cycle>0</duty_cycle>
    <set_point>0</set_point>
    <heat>
      <cycle_time>0</cycle_time>
      <proportional>0</proportional>
      <integral>0</integral>
      <derivative>0</derivative>
      <gpio>Gpio8_12</gpio>
      <invert>false</invert>
    </heat>
    <cool>
      <cycle_time>0</cycle_time>
      <delay>0</delay>
       <proportional>0</proportional>
      <integral>0</integral>
      <derivative>0</derivative>
      <gpio/>
      <invert>false</invert>    
  </cool>
    <min>0</min>
    <max>0</max>
    <time>0</time>
    <aux/>
  </device>
</elsinore>
 
Yes, you would be correct, but my searching didn't find anything reasonably priced that would go to 100C, so this will be a limitation that you'd need to take a sample, and chill it first, before measuring the pH.

So completely outside of Elsinore? Sort of defeats the purpose doesn't it? I might as well keep doing it manually unless I'm missing something obvious?
 
So completely outside of Elsinore? Sort of defeats the purpose doesn't it? I might as well keep doing it manually unless I'm missing something obvious?

What do you mean "outside of elsinore"?

Were you intending on leaving a pH probe in the mash/boil kettle?

This will be in elsinore and you would take a sample of liquid, wait for it to be in the temperature range, and press a button to record it on the data recorder and show it to you.

When submerged in a solution, hydrogen ions will migrate towards the conductive glass electrode and replace some of the metal ions in the coating. This creates a small voltage that the silver electrode is able to pick up, which is then passed on to the voltmeter, which converts the signal into a pH reading. The reference electrode acts as a baseline measurement, and completes the electrical circuit.

This is why I have always been told not to leave the probe in a solution, it degrades the coating much faster.
 
Great news for the ph sensor and thanks for the volume/gravity adjust!
This project is amazing!

I'm joining the bandwagon for tests! Just received temp. probes and 40A ssr with heatsink, time to play :)


:mug:
 
What do you mean "outside of elsinore"?

Were you intending on leaving a pH probe in the mash/boil kettle?

This will be in elsinore and you would take a sample of liquid, wait for it to be in the temperature range, and press a button to record it on the data recorder and show it to you.



This is why I have always been told not to leave the probe in a solution, it degrades the coating much faster.

Thanks Doug, just needed it explained was all and can now see how it all fits together.
 
Hi Doug,
wired everything, fresh raspbian/git clone, modded /etc/modules, get this error everytime i add a GPIO port for PID usage, no mather if is GPIO21/22/24/18

dic 13, 2014 4:22:57 PM com.sb.elsinore.BrewServer editVessel
AVVERTENZA: Updated temp name EBIAB
No definitions file found, assuming direct mapping
dic 13, 2014 4:23:03 PM com.sb.elsinore.devices.OutputDevice <init>
AVVERTENZA: Unable to initialize the SSR: Could not write to GPIO file: Dispositivo o risorsa occupata
No definitions file found, assuming direct mapping
dic 13, 2014 4:23:07 PM com.sb.elsinore.devices.OutputDevice <init>
AVVERTENZA: Unable to initialize the SSR: Could not write to GPIO file: Dispositivo o risorsa occupata
dic 13, 2014 4:23:07 PM com.sb.elsinore.BrewServer editVessel
AVVERTENZA: Create PID
No definitions file found, assuming direct mapping
dic 13, 2014 4:23:12 PM com.sb.elsinore.devices.OutputDevice <init>
AVVERTENZA: Unable to initialize the SSR: Could not write to GPIO file: Dispositivo o risorsa occupata
(translation: WARNING: Unable to initialize the SSR: Could not write to GPIO file: Device/Resource is busy)

When i set the pid in MANUAL (100% , 10s) nothing happen on the ssr side, checked with a multimeter there's no voltage on the pin. and i get this

dic 13, 2014 4:30:55 PM com.sb.elsinore.OutputControl run
AVVERTENZA: Could not control the GPIO Pin during loop. Did you start as root?
java.lang.RuntimeException: Could not write to GPIO file: Dispositivo o risorsa occupata
at jGPIO.GPIO.writeFile(GPIO.java:176)
at jGPIO.GPIO.<init>(GPIO.java:109)
at jGPIO.OutPin.<init>(OutPin.java:16)
at com.sb.elsinore.devices.OutputDevice.initializeSSR(OutputDevice.java:65)
at com.sb.elsinore.devices.OutputDevice.runCycle(OutputDevice.java:86)
at com.sb.elsinore.OutputControl.run(OutputControl.java:105)
at java.lang.Thread.run(Thread.java:744)
dic 13, 2014 4:30:55 PM com.sb.elsinore.OutputControl run
AVVERTENZA: Output Control turning off outputs


If i set GPIO21 as a pump i can normally operate the SSR or a test led.

Am i missing something? I had to manually install lshw...don't know if this is normal.
 

Latest posts

Back
Top