Brewblox release 2020/09/23

Relevant links:

Brewblox release 2020/09/23

firmware release date: 2020/09/22

After one too many “Waiting for datastore…” notification, we decided to go looking for a replacement.
We evaluated multiple candidates, and decided to try Redis as a replacement.
This trial was a success. For our purposes, Redis is simpler, faster, and more reliable than CouchDB.

Your data will be migrated automatically, and the old CouchDB data will be moved to brewblox/couchdb-migrated-{DATE}.

brewblox-ctl backup load is backwards compatible with archives generated by brewblox-ctl backup save during previous releases.

We also added a new block: Temp Sensor (Combined). This is a sensor where the value is the min/max/average value of multiple other sensors.

This release includes a new system layer and bootloader.
If your Spark is connected to a Wifi network, the bootloader will be updated automatically.
If not, you can follow the instructions in brewblox-ctl flash to update the bootloader.

If your Spark is connected to the service using USB, then the UI update will throw an error.
The fix for this is included in the new firmware. To get this update you’ll have to use brewblox-ctl flash.

Changes 2020/09/28

  • (feature) Added Spark service action to reboot the service.
  • (improve) Non-fullscreen graphs are now static on mobile.
  • (feature) Long press on graph widget to open fullscreen.
  • (fix) Creating a Setpoint with default settings no longer causes an “invalid magnitude for Quantity” error.
  • (fix) Resolved a bug where fetching graph data would fail for some users.


  • (feature) Added the Temp Sensor (Combined) block.
  • (migrate) Replaced the CouchDB datastore implementation with Redis.
  • (remove) Removed deprecated AMQP listener in brewblox-history.
  • (remove) Removed deprecated brewcast/state/{SERVICE}/blocks publish in Spark service.
  • (improve) Setpoint blocks now always show their enable/disable toggle.
  • (improve) Builder no longer opens the editor when double clicking.
  • (improve) When using a touchscreen, interaction with Builder parts now requires a long press.
  • (improve) Added hint of how and when to flash the bootloader to the output of brewblox-ctl flash.
  • (update) Updated the firmware system layer from 1.5.2 to 2.0.0-rc1.
  • (fix) Improved stability of firmware / bootloader updates.
  • (fix) Graphs no longer show a line between the last and the first point after config changes.
  • (fix) If you open a new update dialog while the update is in progress, it will now receive update log messages.
  • (fix) Fixed default values in the Spark wifi config menu.

Automation changes

  • (improve) Added isLessThanEqual(other) alias for the qty().lte() function in automation sandbox.
  • (improve) Added isGreaterThanEqual(other) alias for the qty().gte() function in automation sandbox.
  • (improve) Set a timeout of 10 seconds for automation sandbox scripts.
  • (fix) Signficantly reduced memory usage of automation service.

After the update, the brewblox UI can’t find the Spark. Im pretty new at this so I might have done something wrong. I ran the brewblox-ctl update. And I also ran the brewblox-ctl flash.
If I use the brewblox-ctl discover-spark command, it discovers the spark on both wifi and usb.


Could you please run brewblox-ctl log?

Ok, done.


In docker-compose.yml, you explicitly set the controller address to This doesn’t match the address yielded by discovery.

Your device discovery seems to work fine, so there’s no big need to set the --device-host flag.

To fix, run:

brewblox-ctl add-spark -f --name spark-one 
1 Like

Oops, thats the ip to the raspberry pi.
Ran the command you provided, works now, sweet.
Thanks a lot.

Forgive the noob question, but besides the brewblox update and flashing of the spark, is there any updating we should be doing of the pi? Is it necessary, or optional? Could it break things brewblox related?

It’s optional, but strongly recommended to occasionally run

sudo apt update && sudo apt upgrade -y

This is not expected to break anything brewblox-related, and if it does, please report it as a bug.


Thanks for the quick message Bob!

As usual, couldn’t update spark over wifi and used the ssh command to flash. Flash seemed succesful however, the spark has a blank screen en fast flashing green led. Power cycle doesn’t help, instant same flashing led and blank screen. Spark is connected to pi via usb.

pi@raspberrypi:~/brewblox $ brewblox-ctl flash
Command is about to: Flash firmware on Spark.
Do you want to continue? (yes, no, verbose, dry-run) [press ENTER for default value ‘yes’]y
Please press ENTER when your Spark is connected over USB
INFO Pulling flasher image…
edge: Pulling from brewblox/firmware-flasher
Digest: sha256:b49772b40141104fee68e4cea1c5d47a320d4a7a218ee3cb43f944adc50ea640
Status: Image is up to date for brewblox/firmware-flasher:edge
INFO Stopping services…
Stopping brewblox_automation_1 … done
Stopping brewblox_influx_1 … done
Stopping brewblox_eventbus_1 … done
Stopping brewblox_ui_1 … done
Stopping brewblox_redis_1 … done
Stopping brewblox_spark-one_1 … done
Stopping brewblox_spark-test_1 … done
Stopping brewblox_traefik_1 … done
Stopping brewblox_history_1 … done
Removing brewblox_automation_1 … done
Removing brewblox_influx_1 … done
Removing brewblox_eventbus_1 … done
Removing brewblox_ui_1 … done
Removing brewblox_redis_1 … done
Removing brewblox_spark-one_1 … done
Removing brewblox_spark-test_1 … done
Removing brewblox_traefik_1 … done
Removing brewblox_history_1 … done
Removing network brewblox_default
INFO Flashing Spark…
Triggering dfu on port /dev/serial/by-id/usb-Particle_Photon_330023000947363335343832-if00
Flashing Photon…
Flashing System 1 file…

Flash success!
Flashing System 2 file…

Flash success!
Flashing Firmware file…

Flash success!
Your firmware has been updated.
If a new bootloader is required, your Spark will automatically download it over WiFi.
ONLY If your Spark LED keeps blinking blue, run: ‘brewblox-ctl particle -c flash-bootloader’

Fast green flashing indicates that it’s still looking for wifi, and likely was unable to download its bootloader update.

You can update the bootloader by running brewblox-ctl particle -c flash-bootloader. This should let the controller function normally again.

If it’s then still blinking green, you may need to fix wifi credentials in the UI, or set up your Spark to have better reception.

Thanks. Didn’t want to do that because the text says ‘ONLY If your spark LED keeps blinking blue…’

Will give it a go!

Edit: Up and running, thanks Bob.

It will blink blue if it has no WiFi credentials, green if it tries to connect to a known WiFi network but can’t.
Forgot about that in the message that’s printed.

It needs network to download the bootloader.

1 Like

Released a small fix for a mysterious graph bug + minor changes we had ready.

1 Like

Hi Elco and Bob,
Thank you for such a great tool btw.
I took the opportunity to re-install everything between brews. My Spark 3 no longer appears in the services. It has picked up where it left off though and is keeping my fridge where my last brew finished up, so its partially working. I have another spark on a separate pi ( working fine ) connected over wifi but its the one connected over usb that I’m interested in.
pi@leftpi:~/brewblox $ brewblox-ctl log
INFO Log file: /home/pi/brewblox/brewblox.log
INFO Writing Brewblox .env values…
INFO Writing active containers…
INFO Writing service logs…
INFO Writing docker-compose configuration…
INFO Writing Spark blocks…
INFO Writing dmesg output…
INFO Uploading brewblox.log to
pi@leftpi:~/brewblox $ brewblox-ctl discover-spark
INFO Discovering devices…
INFO usb 480023000551353432383931 P1
INFO wifi 3F002B000851353532343835 8332
INFO Done!
pi@leftpi:~/brewblox $

Any help much appreciated.
Thank you

It’s currently saying your Spark is connected just fine. Are you seeing your dashboards in the UI?

Thank you, Bob. Heres a screenshot of my UI. Apologies if its my finger trouble. It complains about a lack of an active Spark service in the wizard.

You can ignore that warning when creating dashboards.

Another thing to check:

  • press ctrl+shift+I to open your dev console
  • go to the network tab
  • reload the page to get all requests to show up
  • search for “eventbus”, and see if the connection is open and active

Many thanks, Bob. All working now.

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