Skip to content

astephon88/brewblox-brewfather-uploader

Repository files navigation

Brewblox Service for Uploading Metrics to Brewfather

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

Credits

This service borrows heavily from robvdw2's Uploader script.

Usage

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

Limitations

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published