Brewfather is online brewing software for managing recipes and batches. It includes the ability to upload fermentation metrics such as gravity and temperature
Brewblox is a modular brewery control system design to work with the BrewPi Spark controller.
This service provides a way to upload metrics logged by Brewblox to Brewfather's Custom Stream feature
This service borrows heavily from robvdw2's Uploader script.
You need to create the ~/brewblox/brewfather-uploader
directory, and add the service to the docker-compose.yml
file.
mkdir ~/brewblox/brewfather-uploader
brewfather-uploader:
image: astephon88/brewblox-brewfather-uploader:${BREWBLOX_RELEASE}
restart: unless-stopped
volumes: ['./brewfather-uploader:/config']
Create the `~/brewblox/brewfather-uploader/metrics_config.yml' file which will contain the mapping from Brewblox sensor to Brewfather field. The following is an example.
settings:
temp_unit: "F"
gravity_unit: "G"
brewfather_url: "http://log.brewfather.net/stream?id=XXXXXXXXXXXXXX"
fermentations:
- name: "Fermenter 1"
sensors:
temp:
service_type: "spark"
service: "spark-one"
sensor: "Fermenter 1 Beer Sensor"
gravity:
service_type: "tilt"
uncalibrated: True
service: "tilt"
sensor: "Blue"
- name: "Fermenter 2"
sensors:
temp:
service_type: "spark"
service: "spark-one"
sensor: "Fermenter 2 Beer Sensor"
gravity:
service_type: "tilt"
service: "tilt"
sensor: "Orange"
The config file format is fairly self explanitory. The brewfather_url
value is the url provided by brewfather when enabling a custom stream. The temp_unit
and gravity_unit
are optional fields that default that default to C
and G
(possible values are F
and C
for temp_unit and G
and P
for gravity_unit
). For Spark temperature metrics, temp_unit
must match what you have configured Brewblox to log. For Tilt temperature and gravity metrics, all four units are logged. Eventually, these two settings will be pulled from the global brewblox unit configuration. There is a list item under fermentations
for each fermerter you would like to upload metrics. The keys in the sensors
dictionary are the keys that Brewfather is expecting. Each sensor has required service-type
, service
, and sensor
keys. The uncalibrated
key is a tilt specific option that specifies if uncalibrated metrics generated by the tilt service should be used.
Finally, you'll have to bring up the new service using
brewblox-ctl up
The service currently only supports the temp
, aux_temp
, ext_temp
and gravity
fields from the Brewfather custom stream data structure.
The temp
, aux_temp
, and ext_temp
metrics are currently supported by Spark and Tilt temperature sensors. The gravity
metric is only supported for Tilt. Sometime in the future, the Plaato airlock should also be added to the service, at which point bpm
will likely also be supported