A comprehensive Home Assistant custom integration for Aduro H1, H2, H3, H5 [H4 and H6 unconfirmed] hybrid pellet stoves.
Complete Control
- Start/Stop stove remotely
- Adjust heat level (1-3)
- Set target temperature (5-35°C)
- Toggle between operation modes
Smart Operation
- Automatic retry on command failures
- Fast polling during mode changes
- External change detection (sync with mobile app)
- Wood mode support with automatic resume for when the stove is in heat level mode.
Temperature Monitoring & Alerts
- High smoke temperature alert (300-450°C, configurable)
- Low wood mode temperature alert (20-200°C, configurable)
- Customizable duration of time before alert (10 seconds-30 minutes)
- Real-time temperature monitoring with hysteresis
Comprehensive Monitoring
- ~55 entities + attributes (temperatures, power, pellets, consumption, alerts)
- Real-time state and status tracking
- Operating time statistics
- Network information (WiFi signal, IP address)
Pellet Management
- Pellet level tracking (amount and percentage)
- Consumption monitoring (daily, monthly, yearly, total)
- Low pellet notifications
- Automatic shutdown at critical level
- Pellets consumption since last cleaning counter
Smart Features
- Ignition timer countdowns
- Mode transition tracking
- Change-in-progress detection
- Automatic state synchronization
Pellet Depletion Prediction
- A prediction system that learns your stove's actual consumption patterns and predicts when pellets will run out, including date and time.
How it works
The system automatically learns from your stove's operation by tracking:
1. Startup Consumption
- Ignition and flame establishment phase
- Average pellet consumption per startup
- Typical startup duration
2. Stable Operation Consumption (Heat Level & Temperature Modes)
- Heat Level 1, 2, and 3 consumption rates (kg/hour)
- Heating rates (how fast room temperature increases)
- Adapts to different conditions:
- Temperature delta (how far below target)
- Outdoor temperature (if configured)
3. Cooling/Waiting Periods (Temperature Mode Only)
- Room cooling rates during waiting
- Shutdown threshold (how far above target before stove stops) - saved but currently not used for calculation.
- Restart threshold (how far below target before stove restarts) - saved but currently not used for calculation.
Data Collection
- Records observations every 30 minutes during stable operation
- Records when heat levels change
- Records when stove stops/starts
- Filters out user-interrupted cycles (only learns automatic behavior)
- Filters out abnormal heat changes (i.e. if you open a door right beside the stove)
- Handles midnight consumption reset automatically
- Stores all data persistently across restarts
Heat Level Mode (Simple):
- Adds startup consumption once
- Calculates continuous operation until pellets depleted
- Formula:
time = startup + (pellets / consumption_rate)
Temperature Mode (Complex):
- Simulates complete heating cycles:
- Startup consumption
- Heating phases (adjusting between heat levels 1-3 based on temperature)
- Waiting periods (room cooling)
- Automatic restart when temperature drops
- Predicts multiple cycles until pellets run out
- Accounts for stove's automatic level adjustments every 10+ minutes
- Updates the calculation with the forecasted temperature for each hour into the simulation
- If the simulation ends where the room temperature is above target temperature, the simulation calculates a cooling period for the room temperature to cool down to the target temperature. This is to avoid big jumps in depletion times, where the calculation switches between adding another waiting period or burning through all pellets before reaching the waiting period.
High Confidence:
- 10+ hours learned per heat level
- Recent data (within 60 days)
- Heat level mode operation
- Fewer than 3 cycles predicted
Medium Confidence:
- Some learning data available
- 3-8 cycles predicted in temperature mode
- Established consumption patterns
Low Confidence:
- Minimal learning data
- 8+ cycles predicted
- Missing external temperature sensor (when configured)
Sensor Display
- Main Value: Date and time (e.g., "2026-01-17 23:30") either for when:
- Pellets will be depleted
- When auto shut down level is reached if that is activated
- When the temperature have droped to target temperature if the stove stops at a temperature higher than target temperature
- Status Messages:
- "Insufficient data" - Still learning (need 10hrs+ per heat level, 5+ waiting periods)
- "Empty" - No pellets remaining
Sensor Attributes
- Time remaining (hours)
- Depletion datetime (ISO format)
- Confidence level (high/medium/low)
- Current operation mode
- Consumption rate (kg/hour)
- Cycles remaining (temperature mode)
- Learning progress:
- Hours observed per heat level
- Number of waiting periods observed
- Total heating/cooling observations
- Startup observations count
- Total pellets learned from (kg)
- Shutdown/restart observation counts
- Optional External Sensor (Recommended) - Improved accuracy with outdoor temperature sensor
- Optional Weather forecast Sensor (Recommended) - Improved accuracy with hourly temperature forecast sensor
- Fully Automatic - No configuration needed, learns while you use the stove
- Adapts to Your Home - Learns your specific heating patterns and conditions
- Handles Midnight - Consumption tracking works across midnight resets
- Filters User Behavior - Only learns automatic stove behavior, not manual interventions
- Filters out abnormal heat changes - For example, if you open a door right beside the stove
- Persistent - All learning data saved and restored across restarts
- Multi-Condition - Learns different heating- and cooling-rates for different temperatures and conditions
- Real-Time Updates - Predictions update as conditions change
Before showing predictions, the system needs:
- 10+ hours of observations at each heat level (1, 2, 3)
- 5+ waiting periods observed (temperature mode)
- Recent data (within last 60 days)
Multi-Language Support
- English
- Danish
- French
- German
- Swedish
- Easy to add more languages
Persisting Settings and tracking
- Configurations, user settings and some sensors are saved on file to survive restarts and upgrades.
Only Aduro H1, H2, H3 & H5 have been confirmed to work with the integration.
Asumptions have been made for Aduro H4 and H6. They are not yet confirmed. If you can confirm that the integration work for a stove, please let me know via GitHub Issues.
- Home Assistant 2023.1 or newer
- Aduro hybrid stove with network connectivity
- Stove serial number and PIN code
- Open HACS in Home Assistant
- Click on "Integrations"
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add
https://github.com/NewImproved/Aduroas a custom repository - Category: Integration
- Click "Add"
- Search for "Aduro Hybrid Stove"
- Click "Download"
- Restart Home Assistant
- Download the latest release from GitHub releases
- Extract the
adurofolder to yourcustom_componentsdirectory - Restart Home Assistant
- Go to Settings → Devices & Services
- Click "+ ADD INTEGRATION"
- Search for "Aduro Hybrid Stove"
- Enter the following details:
- Serial Number: Your stove's serial number
- PIN Code: Your stove's PIN code
- Stove Model: Select your model (H1-H6)
- IP-address: Set fixed IP-address (optional)
- External temperature sensor: Set an outside temperature sensor (Recommended)
- Weather forecast sensor: Set an weather forecast sensor with hourly forecasts (Recommended)
The integration will automatically:
- Discover your stove on the network
- Create all entities
- Use sensible defaults for all settings
- Pellet container capacity (kg)
- Low pellet notification level (%)
- Auto-shutdown level (%)
- Enable/disable automatic shutdown
- High Smoke Temperature Alert
- Threshold: 300-450°C (default: 370°C)
- Duration threshold: 10 seconds -30 minutes (default: 30 seconds)
- Alerts when smoke temperature is dangerously high
- Low Wood Mode Temperature Alert
- Threshold: 20-200°C (default: 175°C)
- Duration threshold: 10 seconds -30 minutes (default: 5 minutes)
- Alerts when wood fire might be going out
- Auto-resume after wood mode (for when the stove is in heat level mode)
- State - Main status (Operating II, Stopped, etc.)
- Substate - Detailed status (with timers for i.e. start up)
- Heat Level - Current heat level (1-3)
- Heat Level Display - Roman numerals (I, II, III)
- Operation Mode - Current mode (0=Heat Level, 1=Temperature, 2=Wood)
- Room Temperature - Current room/boiler temperature
- Target Temperature - Temperature setpoint
- Smoke Temperature - Exhaust temperature
- Shaft Temperature - Shaft temperature
- High Smoke Temperature Alert - Alert status with attributes
alert_active- Boolean alert statecurrent_temp- Current smoke temperaturethreshold_temp- Configured thresholdthreshold_duration_seconds- Alert duration
- Low Wood Temperature Alert - Alert status with attributes
alert_active- Boolean alert statein_wood_mode- Wood mode statuscurrent_temp- Current shaft temperaturethreshold_temp- Configured thresholdthreshold_duration_seconds- Alert duration
- Power Output - Power in kW
- Pellets Remaining - Remaining pellets (kg)
- Pellets Percentage - Remaining pellets (%)
- Pellets Consumed - Consumed since last refill (kg)
- Pellets Consumed Since Cleaning - Consumed since cleaning (kg)
- Today's Consumption - Current day (kg)
- Yesterday's Consumption - Previous day (kg)
- This Month's Consumption - Current month (kg)
- This Year's Consumption - Current year (kg)
- Total Consumption - Lifetime consumption (kg)
- Pellet Depletion Prediction - Calculated time when stove stops to heat the room.
- Carbon Monoxide Level - Current Carbon monoxide level (ppm)
- Carbon Monoxide Level Yellow - Yellow Carbon monoxide level threshold (ppm)
- Carbon Monoxide Level Red - Red Carbon monoxide level threshold (ppm)
- Stove IP Address - Current IP
- WiFi Network - Connected SSID
- WiFi Signal Strength - RSSI in dBm
- MAC Address - Network MAC
- Firmware - Version and build
- Total Operating Time - Lifetime runtime
- Auger Operating Time - Auger runtime
- Ignition Operating Time - Ignition runtime
- Change In Progress - Boolean
- Display Format - Formatted display text
- Display Target - Current target value
- External Change Detected - App changes
- Power - Start/Stop the stove
- Auto Shutdown at Low Pellets - Enable automatic shutdown at a certain pellets level and time
- Auto Resume After Wood Mode - Enable automatic resume when in heat level mode. Activates when the smoke temperature drops below 120°C.
- Forced fan - Runs fan until either smoke temp exceeds 320°C or the set time is exceeded.
- Heat Level - Set heat level (1-3)
- Target Temperature - Set temperature (5-35°C)
- Pellet Capacity - Configure hopper capacity (8-25 kg)
- Low Pellet Notification Level - Warning threshold (%)
- Auto-Shutdown Pellet Level - Shutdown threshold (%)
- High Smoke Temp Alert Threshold - Alert threshold (300-450°C)
- High Smoke Temp Alert Duration threshold - Alert duration threshold (10-1800 seconds)
- Low Wood Temp Alert Threshold - Alert threshold (20-200°C)
- Low Wood Temp Alert Duration threshold - Alert duration threshold (10-1800 seconds)
- Forced fan duration - Fan duration threshold (1-900 seconds)
- Refill Pellets - Mark pellets as refilled
- Clean Stove - Reset refill counter after cleaning
- Toggle Mode - Switch between Heat Level/Temperature modes
- Resume After Wood Mode - Manual resume from wood mode
- Force Auger - Manually run auger (advanced)
- Alert Reset - Resets Alerts
All services are available under the aduro domain:
# Start the stove
service: aduro.start_stove
# Stop the stove
service: aduro.stop_stove
# Set heat level (1-3)
service: aduro.set_heatlevel
data:
heatlevel: 2
# Set target temperature (5-35°C)
service: aduro.set_temperature
data:
temperature: 22
# Set operation mode (0=Heat Level, 1=Temperature, 2=Wood)
service: aduro.set_operation_mode
data:
mode: 1
# Toggle between Heat Level and Temperature modes
service: aduro.toggle_mode# Resume pellet operation after wood mode
service: aduro.resume_after_wood_mode
# Force auger to run
service: aduro.force_auger
# Set custom parameter (advanced)
service: aduro.set_custom
data:
path: "auger.forced_run"
value: 1automation:
- alias: "Start Stove in Morning"
trigger:
- platform: time
at: "06:00:00"
condition:
- condition: numeric_state
entity_id: sensor.outdoor_temperature
below: 10
action:
- service: aduro.start_stove
- service: aduro.set_heatlevel
data:
heatlevel: 2automation:
- alias: "Adjust Heat by Weather"
trigger:
- platform: numeric_state
entity_id: sensor.outdoor_temperature
below: 0
action:
- service: aduro.set_heatlevel
data:
heatlevel: 3automation:
- alias: "Low Pellet Alert"
trigger:
- platform: numeric_state
entity_id: sensor.aduro_h2_pellets_percentage
below: 20
action:
- service: notify.mobile_app
data:
title: "Stove Alert"
message: "Pellets low: {{ states('sensor.aduro_h2_pellets_percentage') }}%"automation:
- alias: "Night Mode Temperature"
trigger:
- platform: time
at: "22:00:00"
action:
- service: aduro.set_temperature
data:
temperature: 18automation:
- alias: "High Smoke Temperature Alert"
trigger:
- platform: state
entity_id: sensor.aduro_h2_high_smoke_temperature_alert
to: "Alert"
action:
- service: notify.mobile_app
data:
title: "⚠️ Stove High Temperature Alert"
message: >
Smoke temperature too high!
Current: {{ state_attr('sensor.aduro_h2_high_smoke_temperature_alert', 'current_temp') }}°C
Threshold: {{ state_attr('sensor.aduro_h2_high_smoke_temperature_alert', 'threshold_temp') }}°C
data:
priority: highautomation:
- alias: "Low Wood Temperature Alert"
trigger:
- platform: state
entity_id: sensor.aduro_h2_low_wood_temperature_alert
to: "Alert"
action:
- service: notify.mobile_app
data:
title: "🔥 Add Wood to Stove"
message: >
Temperature too low in wood mode!
Current: {{ state_attr('sensor.aduro_h2_low_wood_temperature_alert', 'current_temp') }}°C
The fire may be going out.
data:
priority: highautomation:
- alias: "Stove Temperature Alert Cleared"
trigger:
- platform: state
entity_id: sensor.aduro_h2_high_smoke_temperature_alert
from: "Alert"
to: "OK"
action:
- service: notify.mobile_app
data:
title: "✅ Stove Alert Cleared"
message: "Smoke temperature has returned to normal"- Ensure stove is powered on and connected to network
- Check that serial number and PIN are correct
- Check firewall settings
- Check Home Assistant logs for errors
- Ensure stove is not in wood mode (state 9)
- Try restarting the integration
- Verify smoke and shaft temperature sensors are working
- Check that alert thresholds are appropriate for your stove
- Review logs for temperature detection messages
- Default thresholds (370°C for high smoke, 175°C for low wood) may need adjustment
If you see "Unknown State X" in sensors:
- Check Home Assistant logs for warnings
- Note the state and substate number
- Note the state and substate in aduro hybrid application
- See ADDING_STATES.md for how to add it
- Report it via GitHub Issues
Add to configuration.yaml:
logger:
default: info
logs:
custom_components.aduro: debugContributions are welcome! Please:
- Create an issue and discuss the wanted functionallity with integration owner.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
To add a new language:
- Copy
translations/en.jsontotranslations/[lang].json - Translate all text values
- Submit a pull request
If your stove reports states not in the integration:
- Check logs for state warnings
- Create a GitHub issue with:
- State number
- Stove model
- The state and substate number
- The corresponding state and substate in aduro hybrid application
See ADDING_STATES.md for details.
- Get confirmation/information about the remaining Aduro hybrid stoves.
- External and wireless temperature sensor is available as an accessory. Could it be possible to use other temperature sensors and send the information to the stove via Home Assistant?
A custom and optional Lovelace card for controlling Aduro Hybrid Stoves in Home Assistant can be found here: Aduro Stove Card
- Real-time Status Display - Shows current stove state and operation mode
- Temperature & Heat Level Control - Easy +/- buttons for quick adjustments
- Pellet Monitoring - Visual pellet level indicator and a consumption since cleaning indicator
- CO level - CO level indicator with the yellow and red thresholds
- Power Control - Start/stop the stove with a single tap
- Mode Toggle - Switch between Heat Level and Temperature modes
- Auto-Resume & Auto-Shutdown - Configure automatic behavior for wood mode and low pellet levels
- Maintenance Tracking - Quick access to pellet refill and stove cleaning buttons
- Change Indicator - Visual feedback when stove settings are updating
- English
- French
- German
- Swedish
- Easy to add more languages
This integration is built upon the excellent work of:
- Clément Prévot - Creator of pyduro, the Python library for controlling Aduro hybrid stoves
- SpaceTeddy - Creator of Home Assistant Aduro stove control scripts
- Claude.ai
This project is licensed under the MIT License - see the LICENSE file for details.
This project incorporates code from:
- pyduro by Clément Prévot (MIT License)
- homeassistant_aduro_stove_control_python_scripts by SpaceTeddy (GPL-2.0 license)
See NOTICE file for full third-party attribution details.
This is an unofficial integration and is not affiliated with or endorsed by Aduro. Use at your own risk.
Enjoy your smart Aduro stove!