REST API

The bridge serves a JSON API on your network, with natural units: temperatures in °C, power in percent, readable mode names. No key, no account.

Full API reference OpenAPI file

Endpoints

Click an endpoint or a method for its details in the API reference.

EndpointMethodPurpose
/api/stateGETEverything at once: bridge, stove, sensors, controls, link diagnostics
/api/controlsGET POSTRead or change the settings (partial updates accepted)
/api/scheduleGET POSTWeekly heating schedule: 14 time slots and the setback temperature
/api/versionGETFirmware version and build date
/api/mqttGET POSTMQTT settings and connection status, see MQTT
/api/txgapGET POSTDelay between messages sent to the stove (50 to 600 ms, default 150)
/api/restartPOSTRestart the bridge
/api/forgetPOSTErase the Wi-Fi settings and go back to setup mode
/logGETPlain-text log of the dialogue with the stove

Read the state

curl http://open-firenet.local/api/state

The answer is grouped by topic. The parts you will use most:

FieldMeaning
stove.state, stove.model_name, stove.mainboard_versionOperating state, model and firmware version of the stove
stove.error_code, stove.warning_codeCurrent error and warning, 0 when there is none
sensors.room_temperatureRoom temperature, null when no RIKA room sensor is connected
sensors.pellets_total_kg, sensors.service_countdown_kgPellets burned in total, and what is left before the next service
controls.on, controls.mode, controls.target_temperature, controls.power_percentThe current settings
version_ack, version_frameWhether the stove accepted the bridge, and which protocol variant it answered: V3 (firmware 2.29), V28 (2.28), V1 (2.26 / 2.27)
usb.host_connected, usb.rx_bytesWhether the stove sees the bridge over USB, and how many bytes it has sent
raw_sensorsEvery value the stove reports, under its RIKA name

Send controls

Post a JSON object with only the fields you want to change:

# 21 °C in comfort mode
curl -X POST http://open-firenet.local/api/controls \
  -H "Content-Type: application/json" \
  -d '{"target_temperature": 21, "mode": "comfort"}'

# switch on at 80 % power
curl -X POST http://open-firenet.local/api/controls \
  -H "Content-Type: application/json" \
  -d '{"on": true, "power_percent": 80}'
FieldValues
ontrue / false
mode"manual", "auto", "comfort"
power_percent30 to 100
target_temperature14 to 28 °C, in whole degrees (a half degree is rounded)
frost_protection_active, frost_protection_temperaturetrue / false, 4 to 10 °C
room_temperature_offset-4.0 to +4.0 °C
convectionFan1Active, convectionFan1Level, convectionFan1Area (and Fan2)MultiAir: on/off, 0 = auto or 1 to 5, trim -30 to +30 %

On stove firmware 2.28, only on, mode, power_percent and target_temperature are applied for now.

Full reference

Every endpoint and every field, with its type, unit and range, is in the API reference. It is generated from the OpenAPI description of the firmware, which you can load into your own tools (documentation viewers, client generators).

The schedule format and the protocol notes are also in the firmware repository: README, REST API and PROTOCOL.md.