Contribute

Open Firenet is a community project. You do not need to write code to help: the most useful contributions so far were reports and tests from people with a stove we do not have.

Tell us what works on your stove

We can only test on the stoves we own. If the bridge works on yours, a two-minute report adds your stove model, its firmware version and your board to the lists, and helps the next person decide.

Open an "It works on my stove" report

Reports are most wanted for:

Report a problem

A good report saves several round trips: the stove model and firmware version, the bridge version, the log and the output of /api/state. The issue form asks for each of them, and Troubleshooting tells where to find them.

If you are willing to try a test build on your stove when we look for a fix, say so in the issue: that is how firmware 2.26, 2.27 and 2.28 got supported.

Translate

The bridge's web page, the Home Assistant integration and the installer are in English, French, German and Italian. Adding a language needs no programming: you copy the English texts, translate them, and a check tells you what is missing.

Translation guide

Improve the documentation

This website lives in its own repository, openfirenet.github.io. The pages are plain HTML files in src/; its README explains how to rebuild them. A correction, a clearer explanation or a missing step is welcome as a pull request, or simply as an issue describing what confused you.

Contribute code

The project has three repositories:

RepositoryWhat it isWritten in
open-firenetThe firmware of the bridge, with its web page and APIC++ (Arduino, ESP32-S3), HTML / JavaScript
open-firenet-haThe Home Assistant integrationPython
open-firenet-installerThe desktop installerRust (Tauri), JavaScript

How we work:

  1. Open an issue first, or comment on an existing one, to agree on what to do before you spend time on it.
  2. One branch per change, named after the issue: fix/42-short-description or feat/42-short-description.
  3. Run the tests. In the firmware repository, ./test/build_and_test.sh runs them all on your computer, without any hardware: the protocol, a simulated stove, the API description and the translations.
  4. Add a line to CHANGELOG.md under "Non publié", in English, written for users: what changes for them, not how it is coded.
  5. Open a pull request whose description starts with Fixes #42 (or Refs #42 for a partial change). The checks run by themselves.

Commit messages start with feat:, fix:, docs: or chore:: the release script reads them to choose the next version number.

About the stove protocol: it was reverse-engineered, and a wrong message can make a stove refuse the bridge. A change in the dialogue with the stove needs a test on a real stove, ideally on each firmware family, before it is merged. Say in your pull request what you could test and what you could not.

Questions

Not sure where to start, or whether an idea fits? Open an issue and ask: there is no wrong question.