A modern Home Assistant integration for FireBoard wireless thermometers using direct cloud API communication.
Status: β Ready for Testing
While there is an existing fireboard2mqtt integration, this implementation provides several key improvements:
- No MQTT Broker Required: Direct API integration vs. MQTT middleware
- UI Configuration: Easy setup through Home Assistant UI
- Auto-Discovery: Automatically discovers all devices and channels
- Native Python: Built with Home Assistant best practices
- Config Flow: Proper integration setup wizard with validation
- Modern Patterns: Uses current Home Assistant integration standards
- Real-time Updates: Live temperature data from FireBoard Cloud
- Multiple Device Support: Manage all your FireBoard devices in one integration
- Battery Monitoring: Track battery levels on wireless devices
- Connectivity Status: Know when devices go offline
- Extensive Testing: Comprehensive test coverage (>80%)
- Active Maintenance: Regular updates and bug fixes
- Code Quality: Modern Python patterns, type hints, comprehensive linting
- Documentation: Detailed setup guides and examples
- Temperature Monitoring: Real-time temperature readings from all channels
- Multiple Devices: Support for FireBoard 2 Pro, Spark, and other models
- Battery Monitoring: Track battery levels on wireless devices
- Cloud Connectivity: Uses official FireBoard Cloud API
- HACS Compatible: Easy installation through Home Assistant Community Store
- FireBoard 2 Pro: 6-channel WiFi thermometer
- FireBoard Spark: Portable instant-read thermometer with leave-in probe
- Other FireBoard Models: Any device compatible with FireBoard Cloud
- Open HACS in Home Assistant
- Go to Integrations
- Click "+ Explore & Download Repositories"
- Search for "FireBoard"
- Click "Download"
- Restart Home Assistant
- Download the latest release
- Extract to
custom_components/fireboard/in your Home Assistant config - Restart Home Assistant
- Add the integration through the UI
- Go to Settings > Devices & Services
- Click "Add Integration"
- Search for "FireBoard"
- Enter your FireBoard account credentials:
- Email: Your FireBoard account email
- Password: Your FireBoard account password
- Polling Interval: How often to update data (default: 40 seconds)
Note: The minimum polling interval is 40 seconds to respect FireBoard's API rate limit of 200 calls per hour.
- One sensor per temperature channel (typically 6 per device)
- Device class:
temperature - Unit: Fahrenheit (Β°F)
- Attributes:
channel: Channel number (1-6)label: Custom channel label from FireBoard apptarget_temp: Target temperature if set
- Battery level percentage for wireless devices
- Device class:
battery - Unit: Percent (%)
- Connectivity: Device online/offline status
- Battery Low: Alert when battery below 20%
type: entities
title: FireBoard Temperatures
entities:
- entity: sensor.backyard_smoker_probe_1
name: Grill Temp
- entity: sensor.backyard_smoker_probe_2
name: Brisket
- entity: sensor.backyard_smoker_probe_3
name: Pork Shouldertype: gauge
entity: sensor.backyard_smoker_probe_1
name: Grill Temperature
min: 0
max: 500
severity:
green: 225
yellow: 200
red: 150
needle: truetype: vertical-stack
cards:
# Device Status
- type: horizontal-stack
cards:
- type: entity
entity: binary_sensor.backyard_smoker_connectivity
name: Status
- type: entity
entity: sensor.fireboard_spark_battery
name: Battery
# Temperature Grid
- type: grid
columns: 2
square: false
cards:
- type: gauge
entity: sensor.backyard_smoker_probe_1
name: Probe 1
min: 0
max: 500
needle: true
- type: gauge
entity: sensor.backyard_smoker_probe_2
name: Probe 2
min: 0
max: 300
needle: trueautomation:
- alias: "FireBoard: Brisket Done"
trigger:
- platform: numeric_state
entity_id: sensor.backyard_smoker_probe_2
above: 203
action:
- service: notify.notify
data:
title: "π₯ Brisket is Done!"
message: >
Probe 2 has reached {{ states('sensor.backyard_smoker_probe_2') }}Β°Fautomation:
- alias: "FireBoard: Low Battery Warning"
trigger:
- platform: state
entity_id: binary_sensor.fireboard_spark_battery_low
to: "on"
action:
- service: notify.notify
data:
title: "π FireBoard Battery Low"
message: >
FireBoard Spark battery is at {{ states('sensor.fireboard_spark_battery') }}%automation:
- alias: "FireBoard: Device Offline"
trigger:
- platform: state
entity_id: binary_sensor.backyard_smoker_connectivity
to: "off"
for:
minutes: 5
action:
- service: notify.notify
data:
title: "β οΈ FireBoard Offline"
message: "Backyard Smoker has been offline for 5 minutes"Problem: "Invalid email or password"
Solution:
- Verify your credentials at https://fireboard.io
- Ensure you're using the email address associated with your FireBoard account
- Check for any typos in the password
Problem: "Rate limit exceeded"
Solution:
- Increase the polling interval in the integration configuration
- Default is 40 seconds (90 calls/hour)
- FireBoard allows 200 API calls per hour
- If you have multiple Home Assistant instances, they share the same limit
Problem: No devices or sensors created
Solution:
- Ensure your devices are online in the FireBoard app
- Check that devices are properly associated with your account
- Restart Home Assistant after adding the integration
- Check the Home Assistant logs for errors
Problem: "Cannot connect to FireBoard API"
Solution:
- Check your internet connection
- Verify FireBoard Cloud is operational: https://status.fireboard.io
- Check Home Assistant logs for detailed error messages
- Try removing and re-adding the integration
| Feature | ha-fireboard | fireboard2mqtt |
|---|---|---|
| Setup Complexity | Simple (UI config) | Complex (MQTT broker + addon) |
| Dependencies | None | MQTT broker required |
| Configuration | UI | YAML + Environment variables |
| Language | Python | Rust |
| Integration Type | Native HA | MQTT |
| Auto-Discovery | Yes | Yes (via MQTT) |
| Multiple Devices | Yes | Yes |
| Battery Monitoring | Yes | Yes |
- Python 3.9+
- Home Assistant 2023.1.0+
- FireBoard account with devices for testing
# Clone the repository
git clone https://github.com/GarthDB/ha-fireboard.git
cd ha-fireboard
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest tests/ --cov=custom_components/fireboard
# Run linting
black custom_components/fireboard tests/
isort custom_components/fireboard tests/
flake8 custom_components/fireboard tests/
# Run all checks
make check-all # If using Makefileha-fireboard/
βββ custom_components/
β βββ fireboard/
β βββ __init__.py # Integration setup
β βββ api_client.py # FireBoard API client
β βββ config_flow.py # UI configuration
β βββ const.py # Constants
β βββ coordinator.py # Data coordinator
β βββ entity.py # Base entity
β βββ sensor.py # Temperature sensors
β βββ binary_sensor.py # Status sensors
β βββ manifest.json # Integration metadata
β βββ strings.json # UI strings
βββ tests/ # Test suite
βββ .github/workflows/ # CI/CD
βββ docs/ # Documentation
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass (
pytest) - Ensure code is formatted (
black,isort) - Submit a pull request
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Home Assistant Community: Community Forum
This project is licensed under the MIT License - see the LICENSE file for details.
- Based on the fireboard2mqtt project
- Built for the Home Assistant community
- Uses the official FireBoard Cloud API
- Direct FireBoard Cloud API integration
- UI-based configuration
- Temperature sensor support
- Battery monitoring
- Connectivity status
- HACS compatibility
- Comprehensive test coverage
Maintained by: @GarthDB
License: MIT