[Custom Integration] Smartfire 5.0 BBQ Controller – local LAN integration (HACS)

Hi everyone,

I’d like to share a new unofficial Home Assistant custom integration for the Smartfire 5.0 BBQ controller.

:fire: Smartfire 5.0 for Home Assistant

GitHub:

The integration communicates directly with the Smartfire controller over the local network using its WebSocket RPC interface.

No IFTTT webhook is required for sensor updates, and normal sensor operation does not depend on the Smartfire cloud.

Why I built this

This started because I wanted to get my Smartfire 5.0 data into Home Assistant.

My first idea was to use IFTTT, but while investigating the controller I discovered that the Smartfire 5.0 exposes a local HTTP server and WebSocket RPC endpoint.

Further investigation of Smartfire’s publicly available browser-side recovery tool provided enough information about the RPC protocol and authentication mechanism to communicate with the controller locally.

The controller exposes RPC methods including:

  • SF.Status
  • SF.Info
  • SF.Config

SF.Status provides the live cooking data used by the Home Assistant integration.

What started as an experiment eventually became a proper custom integration.

Currently supported

The integration currently exposes:

  • Pit temperature
  • Pit target temperature
  • Food probe 1 temperature + target
  • Food probe 2 temperature + target
  • Food probe 3 temperature + target
  • Fan percentage
  • Wi-Fi RSSI
  • Wi-Fi connection status
  • Cloud connection status
  • Smartfire mode
  • Alarm state
  • Celsius / Fahrenheit display selection

Disconnected food probes are reported as unknown rather than exposing the controller’s placeholder temperature.

Communication with the controller is local over the LAN.

Installation

The integration can be installed using HACS as a custom repository.

In HACS:

Integrations → Custom repositories

Add:

https://github.com/jkrchd/home-assistant-smartfire

Category:

Integration

Then install Smartfire 5.0, restart Home Assistant and add it from:

Settings → Devices & services → Add integration → Smartfire 5.0

Enter the local IP address of the Smartfire controller.

Current status: read-only alpha

The integration is intentionally read-only for now.

The controller exposes additional RPC methods capable of changing configuration and potentially controlling the device. I am investigating local control, but I don’t want to expose undocumented write operations until their behaviour has been verified safely.

OTA, filesystem, Wi-Fi configuration and system RPC methods are intentionally not exposed by the integration.

The longer-term goal is to investigate safe local cooking controls such as target temperatures and possibly fan/control modes.

Compatibility testing wanted

Development and testing so far has primarily been performed with a Smartfire 5.0 controller running firmware:

20230303121045-LFS

I’d especially appreciate reports from anyone using a Smartfire 5.0 with a different firmware version.

If you try the integration, please let me know:

  • Smartfire firmware version
  • Home Assistant version
  • whether setup succeeds
  • which sensors work
  • whether the food probes behave correctly
  • any relevant errors from the Home Assistant logs

There is also a compatibility report template in the GitHub repository.

Protocol documentation

I’ve started documenting the locally observed protocol here:

I’m trying to distinguish clearly between confirmed behaviour and anything that is still experimental.

Disclaimer

This is an unofficial community project and is not affiliated with or endorsed by Smartfire.

The integration is currently alpha software, so feedback, testing and contributions are very welcome.

Hopefully there are a few other Smartfire users here who can help test it. :fire: