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.
Changes
(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.
Heya.
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.
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?
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 docker.io/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’
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.
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 termbin.com… https://termbin.com/b05m
pi@leftpi:~/brewblox $ brewblox-ctl discover-spark
INFO Discovering devices…
INFO usb 480023000551353432383931 P1
INFO wifi 3F002B000851353532343835 192.168.1.209 8332
INFO Done!
pi@leftpi:~/brewblox $