FTSS Glycol Setup Brewblox

@Bob_Steers layout selector missing?

@JoeV Doo you get a JavaScript error in the console (F12 in most browsers).

Apologies was just obfuscating my IP address there :smile:

TypeError: “t.layout is null”
render https://raspberrypi/ui/js/7.19cbd42e.js:1
renderList https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
render https://raspberrypi/ui/js/7.19cbd42e.js:1
_render https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
Watcher https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
mountComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
$mount https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
init https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
merged https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createElm https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
updateChildren https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patchVnode https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patch https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
_update https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
run https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushSchedulerQueue https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
nextTick https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushCallbacks https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
vendor.5a0c9fc5.js:30:13591
logError https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
globalHandleError https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
handleError https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
_render https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
Watcher https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
mountComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
$mount https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
init https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
merged https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createElm https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
updateChildren https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patchVnode https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patch https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
_update https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
run https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushSchedulerQueue https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
nextTick https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushCallbacks https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
TypeError: “t.layout is null”
render https://raspberrypi/ui/js/7.19cbd42e.js:1
renderList https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
render https://raspberrypi/ui/js/7.19cbd42e.js:1
_render https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
Watcher https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
mountComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
$mount https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
init https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
merged https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createElm https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
updateChildren https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patchVnode https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patch https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
_update https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
run https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushSchedulerQueue https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
nextTick https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushCallbacks https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
vendor.5a0c9fc5.js:30:13591
TypeError: “t.layout is null”
render https://raspberrypi/ui/js/7.19cbd42e.js:1
renderList https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
render https://raspberrypi/ui/js/7.19cbd42e.js:1
_render https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
Watcher https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
mountComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
$mount https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
init https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
merged https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createComponent https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
createElm https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
updateChildren https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patchVnode https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
patch https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
_update https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
l https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
get https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
run https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushSchedulerQueue https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
nextTick https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
flushCallbacks https://raspberrypi/ui/js/vendor.5a0c9fc5.js:30
vendor.5a0c9fc5.js:30:13591

There’s no need for obfuscation: it’ll be using a 192.168.xxx.xxx address, which is used by everyone’s local network, and can’t be accessed from the outside.

If you first go to a dashboard page, and then switch to the brewery page, does that work? It looks like it needs some more safeguards for initial load.

Hey Bob

No it doesn’t make any difference going to dashboards first!

Cheers

The dashboards do work?

Hi Bob

Yep the dashboard displays as per screenshot. Just nothing when clicking on Brewery!
Although that same layout error exist when I do F12

Cheers

Joe

Thanks! I’ll get that fixed for next release.

Also I did that ramp up and down test you were suggesting, see attached. It doesnt seem to track well at all!

One difficulty I ran into with the ramp up and down was the mutex linked to the heat and cool actuator prevented the cooling coming on quick enough but even just doing a straight ramp down youll see from the graph that it didnt track well. Was that exacerbated by the fact that it had got out of sync because of the mutex and then wasn’t able to catch up?

Youll note from the graph that i had to reset the setpoint start time at various points due to the fact that it was lagging behind so much.

Cheers

Joe

The earlier spikes (up until 01:20) mostly demonstrate that your system isn’t very responsive. Given how the optimum PWM period is ~30 minutes, I’m not terribly surprised. My fridge wouldn’t be able to track this profile either.

The downward line from 01:20 onwards is more interesting. The system is no longer blocked by mutex lockouts or PWM cycles, and still isn’t responding aggressively enough.
To improve this, you can increase your Kp setting. I think you can safely double it.

If I can make a suggestion for a test profile:
t = 0, setpoint = 14C
t = 1h, setpoint = 14C (give it time to heat to starting point)
t = 3h, setpoint = 12C (it should be able to track 1C/hour)
t = 4h, setpoint = 12C (keep it steady for a while)
t = 4h1m, setpoint = 5C (cold crash)
t = 10h, setpoint = 5C (runoff, test results are in as soon as it hit the 5C)

I think that’d cover all the bases for a fermentation system: slopes, steady state, and cold crashing.

Top stuff Bob, running it now will report back :slight_smile:

I’ll run it with the settings similar to Elcos glycol system and then see where we are at after that

Thanks for your patience.

1 Like

I took a quick look at the code for the brewery page. The error is caused by your localstorage still having the ID from a now-deleted layout.
The issue will be fixed in the next release, but for now you can also get it working again in Firefox by opening the UI, going to the developer pane (ctrl + shift + i) -> storage tab -> local storage -> right click on the entry for the UI, and remove it.

Refresh the UI, and the brewery page should no longer raise errors.

1 Like

Cool.

Can you just confirm that ive set the profile up correctly for the test. Extended the times by 30 minutes as it looked like it wouldnt get to 14 in time with just 1 hour.

Looks good. The important thing is indeed that it is at 14C when the ramp down starts. If required, you can shift the start time to adjust all points.

1 Like

Result :smile:

Seems to have kept old layout names Ferment Left Layout and Ferment Right Layout are now just one Layout called Fermentation

1 Like

Bob

Here is the progress so far, hows it looking?, i’ve extended the heating time out a little to see if it will reach target before crash, still 15 minutes to go and its got 0.2 to achieve in this time frame.


Bob

Here is a graph of the initial ramp down. With the associated settings, I started with minimum on time of 10 Secs, with pwm period of 10 minutes, Kp of -5 but this wasnt keeping things in check. I then changed this to minimum on time of 15 secs and doubled the Kp to -10 and kept the pwm period to 10 minutes. I could see this still wasnt keeping things in check so increased minimum on time to 20 Secs and then finally 25 secs but you will see there is still a bit of a drift.

Hope you can help out with some recommendations.

Cheers

Joe


Could you please post the PID graph for this duration?

When it comes to block settings, you can also export your blocks to file, and upload that. It’s a bit more efficient than screenshots.

Point taken on the export rather than screenshots apologies :slight_smile:

I’d say you’re on the right track with the settings you’re tweaking. Maybe set minimum on to 1 minute, and then keep upping Kp until it can follow a 1C/h slope down without the integrator rising too much.

1 Like

Hey Bob

Set the Kp to 15 and minimum on time to 30 secs, seems to be maintaining pretty well. Notmuch rise in the integrator. This is the graph from the start of the ramp down from 14 to 12.


brewblox-blocks-spark-one.json (10.1 KB)
Thoughts?

Cheers

Joe