Brewblox release 2020/06/15

Brewblox release 2020/06/15

Firmware release date: 2020/06/07

While evaluating what will be next for the automation service, we spent this release improving the internals of Brewblox.

The biggest change is that we decided to use a different protocol for eventbus messages (used to publish history data).
The short version is that the MQTT protocol is more lightweight, and can be used by external scripts and services without exposing the 5672 port.
The details of the how and why are described here and here.

The existing protocol will be supported until 2020/09/15.

After that, services and scripts that publish history data will have to use MQTT to be compatible.
We updated the boilerplate repository and the script tutorials to provide code examples.

The immediate advantage is that Brewblox needs one less Docker container: the emitter service was used to convert AMQP events to a protocol usable by the UI.
The UI can now subscribe directly to MQTT events, eliminating the need for the emitter service.

Brewblox server changes

  • (feature) Brewblox now uses the MQTT protocol for history events. AMQP is still supported, but will be disabled in three months.
  • (improve) Removed the emitter service.
  • (improve) Significantly reduced CPU usage in the Spark service when communicating with the controller.
  • (improve) Spark page behavior (list/relations, sorting mode) is no longer shared for all users of the UI.
  • (improve) Reduced output noise during brewblox-ctl setup
  • (improve) Improved handling for the Pump part:
    • If no block linked, it will toggle manually, and use part settings to remember on/off.
    • If a block is linked, but does not exist, it will show an error.
    • If a digital actuator is linked, it will toggle the block when clicked.
    • If a PWM is linked, it will show a slider dialog when clicked.
  • (improve) Reduced line stretching when the carboy is scaled.
  • (feature) Timestamp formatting when exporting history data to CSV is now configurable (nanoseconds, milliseconds, seconds, ISO 8601-string).
  • (feature) The troubleshooter now shows an “update firmware” button when firmware is incompatible.
  • (fix) Fixed too much config being imported when adding a block to the graph widget.

Changes (automation)

  • The Webhook action now has a “Try it” button in the template editor.

Firmware changes
Various improvements in the PID algorithm to reduce overshoot:

  • The integral part of the PID is now increased by (P + D) / Ti every second, instead of P/Ti. This will make the integral increase slower when moving quicker towards the setpoint, which reduces overshoot caused by the integral increasing too quickly.
  • The derivate is now always applied. In the previous release, it was only applied when it would reduce the output. Applying it always makes the calculation more balanced and can correct a move away from setpoint early.
1 Like

Bob, is there any chance that the update could have overwritten/removed my tilt configuration? I was having a spotty connection with the tilt, but after updating the pi and flashing the controller, I’m not seeing anything (and the tilt folder appears to be empty). Thanks, Win

Could you please run brewblox-ctl log?


Looks like there was an issue with our history service and the metrics widget.
I just pushed a fix. You can get it by running

docker-compose pull history
docker-compose up -d

Then refresh the page, and you should see your data.

thanks - will give it a shot

Looks like it is back to normal. Thanks again.

1 Like

Bob, FYI when clicking on the metrics “show full widget” button using a 2x2 widget size, the scrolling options are exceeding the size of the widget (floating transparently over other widgets).

What browser are you using?

For me it looks like this:


Also, if I open up the metric widget, I can see my spark, but tilt no longer shows up as an available device. I did try Brewblox-ctl service show and see tilt as a running service. I can see values coming through on my tiltpi raspberry pi.

I see you just responded on to my previous message - here is a screen cap on Safari:

Yea, that looks rather broken. It appears that the SVG icon in your cooling reservoir also went missing.

Is the Tilt available as a source in graph widgets?

No, I don’t see it. Attached is the previous graph I’d set up to talk with my Tilt. FYI, I did recently install a Tilt repeater to improve the signal, but I did have a connection before the update.

Could you please run brewblox-ctl log again? Graph fields are only shown if data was published the last 24h.

Your tilt service is getting data, but it’s being discarded due to being out of bound. (It’s reporting a raw SG of 0, with a 0.177 value at the end).

Weird. I’m getting 1.007 uncalibrated on TiltPi with a fresh time stamp.

Graph range is set to auto, and the tilt still isn’t showing up as a service on either the graph or metric widget.

The Tilt service discards raw values that are outside [0.5, 2.0]. This was done because sometimes the Tilt reported SG values in the millions.
Services will only show up in metrics/graph settings if they have published data in the last 24h. This is to filter out fields that were renamed or deleted.

I’m afraid I can’t help much with why your Tilt is reporting 0.0 values. @j616s is the resident expert for that.

OK - thank you Bob. Appreciate the help.

That’s utterly bizarre. Have you seen it working with the repeater before? Could be that the repeater encodes the data differently.