Custom Stream

Integrate your logging device with a custom HTTP POST to the URL you are given in the settings.

Use the following JSON format in the body of the POST:

Supported fields for custom streaming device entry

POST http://log.brewfather.net/stream?id=:logging-id

Integrate any custom devices by posting data to Brewfather. When the first POST is logged a new device will be created using the "name" field. Requests can also be posted as HTTPS if your device supports it.

Headers

NameTypeDescription

Content-Type

string

application/json

Request Body

NameTypeDescription

name*

string

Unique name for your device. Used to identify the device. Required field.

temp

number

Temperature

aux_temp

number

Appears as Fridge Temp

ext_temp

number

Appears as Room Temp

temp_unit

string

Temperature units "C" for celcius, "F" for fahrenheit, "K" for kelvin. Default value is "C"

gravity

number

Gravity

gravity_unit

string

Gravity units "G" for SG (1.XXX) and "P" for Plato (X.XX). Default value is "G".

pressure

number

Pressure

pressure_unit

string

Pressure units "PSI", "BAR", "KPA". Default is "PSI".

ph

number

pH

bpm

number

Bubbles Per Minute

comment

string

Free Text

beer

string

Beer Style Text

battery

number

Battery level as volts (decimal number)

device_integration

string

Type of device integration. Only value "default" is possible now. Default value is "default". More values can be added in the future to support different kinds of integrations.

device_source

string

Device that is source for the logged values, for example "Tilt", "iSpindel", "X Sensor".

report_source

string

Device that is used to report the values to the service, for example "MyBrewbot", "MyCustomBuild", "HomeAutomation".

device_state

string

State of device, example: "heating", "cooling", "on", "off"

temp_target

number

Target Temperature. Uses unit from "temp_unit"

gravity_target

number

Target Gravity. Uses unit from "gravity_unit"

hysteresis

number

angle

number

Angle on a floating hydrometer

rssi

number

Received Signal Strength Indicator

count

number

Counter value, for example total amount of bubbles, or number of pours

volume

number

Volume left in container

volume_unit

string

Volume units "L", "GAL", "OZ". Default is "L".

pour_volume

number

Last pour volume

max_volume

number

Max total volume in container

percentage

number

Value that will be displayed as a percentage

{ "result": "OK" }

Example POST data:

{
  "name": "YourDeviceName", // Required field, this will be the ID in Brewfather
  "temp": 20.32,
  "aux_temp": 15.61, // Fridge Temp
  "ext_temp": 6.51, // Room Temp
  "temp_unit": "C", // C, F, K
  "gravity": 1.042,
  "gravity_unit": "G", // G, P
  "pressure": 10,
  "pressure_unit": "PSI", // PSI, BAR, KPA
  "ph": 4.12,
  "bpm": 123, // Bubbles Per Minute
  "comment": "Hello World",
  "beer": "Pale Ale",
  "battery": 4.98
}

Temperature units "C" for celcius, "F" for fahrenheit, "K" for kelvin. Gravity units "G" for SG and "P" for Plato. Pressure units "PSI", "BAR", "KPA".

Never log more than once every 15 minutes per device name, request logged more often than that will be ignored. If you are logging more than one device give them each a unique name, maximum rate: one POST per device per 15 minutes.

Field "name" is required. Other fields are optional. At least one value field must be provided (Temp, gravity or pressure, etc).

If your device supports https you can also replace HTTP with HTTPS in the logging URL.

Example HTTP POST

POST /stream?id=yourpersonalid HTTP/1.1
Host: log.brewfather.net
Content-Type: application/json
Content-Length: 57

{
"name": "YourDeviceName",
"pressure": 2.43
}

Last updated