MQTT

The bridge can publish the stove state to your MQTT broker and accept commands from it. It is the way in for home automation systems other than Home Assistant: Jeedom, openHAB, Node-RED, Domoticz and any MQTT client.

MQTT is optional and off by default. It needs bridge firmware 3.3 or newer, and a broker on your network (Mosquitto, for example). For Home Assistant, the integration remains the most complete way; MQTT discovery is the alternative that needs nothing installed.

Set it up

  1. Open the bridge's page and go to the Bridge tab (http://open-firenet.local/#bridge).
  2. In the MQTT card, enter the broker address and port (1883 by default), and the user and password if your broker asks for them.
  3. Tick Enable MQTT and save. The badge turns to "Connected" within a few seconds.
Bridge tab with the MQTT settings

What the bridge publishes

All topics start with a base topic, openfirenet by default. Change it in the settings if you have several bridges.

TopicContent
openfirenet/availabilityonline or offline. The broker sets it to offline by itself when the bridge disappears.
openfirenet/stateOne JSON message with the device, stove, sensors and controls objects, same names and units as the REST API. Sent when something changes, at most every 5 seconds and at least every minute.
openfirenet/<section>/<name>The same values, one per topic, for systems that prefer plain values: openfirenet/sensors/room_temperature, openfirenet/stove/state, openfirenet/controls/on...

Everything is published with the retain flag, so a client gets the current values as soon as it subscribes. openfirenet/device/connected tells whether the bridge is linked to the stove; until it is, only the device values are published.

Send commands

TopicPayload
openfirenet/set/ontrue / false, or ON / OFF
openfirenet/set/modemanual, auto or comfort
openfirenet/set/power_percent30 to 100
openfirenet/set/target_temperature14 to 28, in whole degrees
openfirenet/setSeveral settings at once, as JSON: {"mode": "comfort", "target_temperature": 21}

The other settings of the REST API (frost protection, MultiAir fans, schedule...) are accepted the same way, under the same names.

# 21 °C, with the Mosquitto command line client
mosquitto_pub -h 192.168.1.10 -u myuser -P mypassword \
  -t openfirenet/set/target_temperature -m 21

# watch everything the bridge publishes
mosquitto_sub -h 192.168.1.10 -u myuser -P mypassword -t 'openfirenet/#' -v

Do not publish commands with the retain flag. The broker would replay them at every reconnection, and could switch the stove on by itself; the bridge ignores them for that reason. Commands are also ignored while the stove is not linked.

Home Assistant discovery

Since firmware 3.4, the bridge can also announce the stove to Home Assistant's own MQTT integration: tick Home Assistant discovery in the MQTT card and save. The stove then appears by itself in Home Assistant, as one device with:

Home Assistant needs its MQTT integration connected to the same broker. Unticking the option removes the entities.

Use one or the other. If you already use the Open Firenet integration, leave discovery off: you would get the stove twice. The integration remains the most complete way: it also has the MultiAir fans, the slots of the weekly schedule and the external temperature sensor.

Encrypted connection (TLS)

Since firmware 3.5, the bridge can reach a broker that listens with TLS, usually on port 8883: tick Encrypted connection (TLS) in the MQTT card. The bridge then checks the broker's certificate, in one of two ways:

Only when you need it. Encryption is demanding for this small chip: it takes about 50 kB of its memory while connected. On a broker of your own network, plain MQTT remains the simplest choice. Use TLS when the broker requires it, or is outside your network.

Good to know

Something does not work? See Troubleshooting.