Brewblox release 2023/04/17

Relevant links:

Brewblox release 2023/04/17

firmware release date: 2023/04/14

History bug fixed

For some time, graphs suffered from a bug in the history database where it would sometimes fail to return any data for some fields.
This problem has now been fixed in the database.

Because the bug caused an incorrect cached index to be generated, the problem may persist for a few hours until a new index is generated.

If you wish to immediately re-generate the index, run:

brewblox-ctl down
sudo mv ./victoria/indexdb ./victoria/indexdb_bak
brewblox-ctl up

Wait for the system to start, and check whether graphs work again.
Then remove the old index with:

sudo rm -rf ./victoria/indexdb_bak

GitHub Container Registry

Mid-march, Docker announced they would drop support for free team accounts on Docker Hub.
Any teams that did not upgrade to a paid account would have their data deleted.

We migrated our images to the GitHub Container Registry.
The image names remain the same, but will be prefixed with ghcr.io/.
brewblox-ctl update will automatically adjust the image names for default tags.

Docker Compose

brewblox-ctl uses Docker Compose to manage and start Docker containers.
Docker Compose v1 (docker-compose) is a Python application we install in the Brewblox directory.
Docker Compose v2 (docker compose) no longer uses Python, and is installed as a plugin for Docker itself.

If you have a Pi or other Debian / Ubuntu system, this change happens automatically during your next update.

If you’re using a non-Debian OS such as Synology, you may need to manually install the Compose v2 plugin: https://docs.docker.com/compose/install/linux/.

MQTTS Connections

To improve support for remote devices, Brewblox now listens on a password-protected MQTTS (MQTT + TLS) port.
The default is 8883. To change it, set the BREWBLOX_PORT_MQTTS variable in the .env file.

As a beta implementation, we have added support for MQTT Spark connections.
Here, the Spark connects to the MQTTS port, and the service and controller exchange messages over MQTT.

This way, you can safely connect remote Sparks to a central system, with only the secure MQTTS port exposed to the internet.

Changes

  • (feature) Added periodic time synchronization to the Spark service, as backup to NTP.
  • (feature) Added beta support for MQTT Spark connections.
  • (feature) The eventbus now also listens on a TLS+password protected port.
    • The default is 8883. To change it, set the BREWBLOX_PORT_MQTTS variable in the .env file.
  • (feature) Added sidebar button and query arg (?kiosk) to activate UI kiosk mode.
  • (feature) The Spark System Info block now shows RAM diagnostics.
  • (feature) The Spark System Info block now reports measured voltage for both 5V and external.
  • (feature) brewblox-ctl now uses system-wide Compose v2, instead of locally installed docker-compose.
  • (feature) Switched from Docker Hub to the Github Container Registry as Docker image host.
  • (feature) Added the WAIT_DIGITAL_EQUALS Sequence instruction. This waits until a Digital Actuator state equals a given state.
  • (feature) Updated default CI file in brewblox/brewblox-boilerplate to use GitHub Actions.
  • (improve) Reduced the update interval when waiting for a Sequence instruction condition from 1s to 10ms.
  • (docs) Updated Spark service documentation.
  • (fix) Updated to Victoria Metrics 1.88, which includes a fix for the bug where history data would be missing on fetch.
  • (fix) The Graph display part in the Builder now re-renders when its size is changed.
  • (fix) The Metrics display part border can be toggled again.

Edit (2023/04/24): fixed .env variable name. MQTTS_PORTBREWBLOX_PORT_MQTTS

1 Like

I just updated to the this brewblox version and now get the following error:

Error response from daemon: driver failed programming external connectivity on endpoint brewblox-traefik-1 (3789a9776dac902a0027a887d4d11f0af74260138a64857990fa9801

5525b2c7): Bind for 0.0.0.0:1883 failed: port is already allocated

Log is here:
https://termbin.com/vckbr

I tried restarting brewblox and rebooting the Pi to no avail.

Edit your docker-compose.yml file, and remove

eventbus:
    ports:
    - 1883:1883

We moved the public 1883 port to the traefik service for consistency. Having it declared on the eventbus as well conflicts with this.

That did it. Bob, as always, you’re a wizard. :slight_smile:

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