Brewblox release 2021/04/07

Relevant links:

Brewblox release 2021/04/07

firmware release date: 2021/03/09

For this release, we’ve been looking at how to improve the general user experience.
The biggest change is that Brewblox now uses one single temperature unit setting.
This setting is automatically applied to the Spark display as well.

When you first open the UI after installing or updating Brewblox, it will prompt you to choose between Celsius and Fahrenheit.
The setting can also be found in the Admin page if you want to change it later.
Some limitations still apply: existing Graph / Metrics widget settings have to be updated manually after changing the temperature setting.

We have also made some improvements to the Spark service diagram view.
You can now use the scroll wheel to zoom in and out, and click and drag to reposition.
Pinch and drag is supported for touch screens.

The diagram is now the default mode when first opening the service page.
We feel that this provides better overview for novice users, but any and all feedback on this is welcome.

On the backend, the MQTT eventbus port (1883) is now exposed by default to reduce required setup steps for various integrations.
If this causes a port conflict (or you simply don’t want to expose the port) you can override this setting using brewblox-ctl or the docker-compose.yml file.

For those wishing for remote access, we added a tutorial for setting up a Wireguard VPN.
Many thanks to Douwe Houvast for the preparatory work!

We’re still planning to support secure remote access natively, but a VPN is a decent workaround until we find the time to do it right.


  • (feature) Added global configuration setting for preferred temperature unit (Celsius / Fahrenheit). This setting is used by the UI and all Spark and Tilt services.
  • (feature) The Spark service diagram is now the default/initial mode for the Spark service page.
  • (feature) The Spark service diagram now supports drag and zoom. Use the scroll wheel to zoom, and click and drag to reposition.
  • (feature) Replaced the toggle in the Spark service diagram with a button that resets zoom and position.
  • (feature) Added menu action to export Session Log widget graphs to CSV.
  • (feature) The 1883 eventbus port is now exposed by default.
  • (feature) You can use brewblox-ctl service ports --mqtt [PORT] to change the eventbus port. Alternatively, you can edit the BREWBLOX_PORT_MQTT variable in brewblox/.env.
  • (feature) The brewblox-hass service now automatically publishes Tilt measurements to Home Assistant.
  • (feature) Additional Mosquitto configuration can now be defined by placing .conf files in brewblox/mosquitto/.
    • This is useful for sharing MQTT events between brokers, or defining additional (password-protected) listener ports.
  • (enhancement) Quick start wizards now check for Spark services that were detected but not yet added to the UI.
  • (enhancement) brewblox-ctl backup commands will now also include config files in brewblox/mosquitto.
  • (enhancement) brewblox-ctl update no longer prompts whether to prune docker images and volumes. The default is true, but can be disabled with --no-prune.
  • (docs) Added a guide for setting up a local VPN for safe remote access. You can find it at
  • (docs) Updated the startup guide to use the Raspberry Pi Imager for SSH/Wifi configuration on a new Pi.
  • (docs) Added developer reference doc for using the datastore. You can find it at
  • (removed) Removed alternative /history/query/XXXXX routes for the /history/history/XXXXX endpoints. The API is otherwise unchanged.
  • (fix) Removed blocks now immediately disappear from the Spark service page.
  • (fix) Dashboard grid no longer is shifted if a widget is wider than the screen.
  • (fix) Dashboard grid now correctly extends to the edge of the rightmost widget.
  • (fix) Fixed a bug where the dashboard would not respond to adding / removing a widget.
  • (fix) The dot indicators in the Logic Actuator widget now correctly toggle between red/green to show condition result.
  • (fix) Disabled tooltips for the Quick Actions apply buttons in touch mode to prevent unwanted overlap. We’ll be looking at a more comprehensive fix to the underlying problem.
  • (fix) Temp Control Assistant no longer warns about undefined pin channels when using a Motor Valve block.
  • (fix) Long URLs in the Web Frame widget no longer cause the input field to grow wider than the widget.
  • (fix) Fixed a bug where the edges of blocks in the Spark service diagram were not clickable.
  • (fix) The Spark service diagram now updates when a block without links is added or removed.

Hi, after trying to update, my eventbus now conflicts with an already existing mosquitto instance on the system during the start of eventbus.

ERROR: for brewblox_eventbus_1 Cannot start service eventbus: driver failed programming external connectivity on endpoint brewblox_eventbus_1 (ff370c55fdbafa44c5f80824b473796cef6bafd89d6d1064115b3a07b97090f6): listen tcp4 bind: address already in use

You mention configuration options regarding this in your release notes and I also searched the documentation on, but I seem to do it wrong. My questions so far:

  • What is the best practice to de-expose the mqtt port? brewblox-ctl service expose only describes how to expose the service.
  • What is the best practice to reconfigure the exposed mqtt port? brewblox-ctl service expose or brewblox-ctl service ports --mqtt [PORT] or some thing different.
  • What actions have to be taken to activate these settings? I Tried all of those options, but I get always the same error messages.

My environment looks like this. I already altered the MQTT PORT with no effect so far.

brewblox-ctl env list
COMPOSE_FILE = docker-compose.shared.yml:docker-compose.yml

To not expose the port at all, edit docker-compose.yml, and replace the eventbus entry:

    ports: []

This will also override the .env variable.

If it still complains about the port conflict, could you please run brewblox-ctl log?

(Edit) to clarify:

  • brewblox-ctl service ports edits the variable in the .env file.
  • the .env file variable is used by the default config in docker-compose.shared.yml
  • brewblox-ctl service expose edits docker-compose.yml, overriding the default config.
  • the above configuration overrides port configuration with an empty list: no ports are exposed for the eventbus service.

I’ll make a note to add an explanation of this to documentation.

1 Like

Thx. This helped. Everything is up and running now.

I am up to date with the latest version having done a complete reinstall from scratch as I had to replace the SD card in my RPi.
I have three fridges for fermentaion and all is working perfectly with the settings “out of the box”
The problem I have encountered is with dashboards.
I have one per fridge and one with all three.

I have found that if I apply a change of setting on a fridge on one dashboard it is not carried over to the other dashboard the same fridge appears on. For example if I change Fridge 1 from control mode “Fridge” to control mode “Beer” it still displays the old setting on the other dashboard.


Temp control assistant widgets are the ones who keep track of concepts like “current mode”, and they’re not aware of others doing the same job.

If you’d toggle mode on one, and then check for problems on the other, it’ll just claim the blocks don’t match its current setting. Changes to mode settings also won’t carry over.

I do realize this is different from some other widgets that track a remote object (builder, setpoint profile). We may look at adding synchronization between assistants, but not sure yet how best to implement that.

Thanks for the explanation.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.