A custom Home Assistant integration that pulls your Aurora Energy Tasmania billing and usage data into Home Assistant sensors and the Energy Dashboard.
- Estimated balance, amount owed, unbilled amount
- Daily energy usage (kWh) and cost
- Solar feed-in (kWh exported and earnings)
- Real-time T93 tariff period sensor (
peak/off_peak), DST-correct - Power Hours demand-response program sensors (status, timeslot, savings)
- Billing period totals (cumulative kWh and cost for the current billing cycle)
- Historical statistics for the Energy Dashboard (backfills up to 7 days on every HA restart to cover gaps; today's partial hourly data updated each poll)
- Polling aligned to the clock hour — sensors update within seconds of Aurora+ events rather than up to 59 minutes late
- Home Assistant 2025.11 or later
- An Aurora Energy Tasmania account with Aurora+ access
- In Home Assistant, open HACS
- Click the three-dot menu (⋮) → Custom repositories
- Add
https://github.com/Forcky/AuroraPlusHAwith category Integration - Click Add
- Search for Aurora Energy Tasmania in HACS and click Download
- Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for Aurora Energy Tasmania
- Click the Log in to Aurora+ link that appears, log in (tick Keep me logged in), then copy the full URL from your browser's address bar and paste it into Home Assistant
HACS will notify you of future updates so you can update with a single click.
- Copy the
aurora_energyfolder into your HAconfig/custom_components/directory:config/ └── custom_components/ └── aurora_energy/ ├── __init__.py ├── api.py ├── config_flow.py ├── const.py ├── coordinator.py ├── manifest.json └── sensor.py - Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for Aurora Energy Tasmania
- Click the Log in to Aurora+ link, log in (tick Keep me logged in), copy the full URL from your browser's address bar, and paste it into Home Assistant
If setup succeeds, a device called Aurora Energy will appear with all sensors populated.
| Sensor | Description | Unit |
|---|---|---|
| Estimated Balance | Current account balance | AUD |
| Amount Owed | Outstanding amount due | AUD |
| Unbilled Amount | Charges not yet on a bill | AUD |
| Average Daily Usage | Average daily spend | AUD |
| Bill Total Amount | Most recent bill total | AUD |
| Usage Days Remaining | Days remaining in billing period | d |
| Daily Total Usage | Previous day's consumption | kWh |
| Daily Total Cost | Previous day's energy cost | AUD |
| Solar Feed-in | Previous day's solar export | kWh |
| Solar Feed-in Earnings | Previous day's solar feed-in credit | AUD |
| T93 Tariff Period | Current tariff period: peak or off_peak |
— |
| Power Hour Status | Current Power Hours state (see below) | — |
| Power Hour Event | Name of the upcoming or active Power Hours event | — |
| Power Hour Start | Start of your accepted free-power timeslot | — |
| Power Hour End | End of your accepted free-power timeslot | — |
| Power Hour Selection Deadline | Deadline to select a timeslot | — |
| Power Hour Total Savings | Lifetime savings from Power Hours events | AUD |
| Billing Period Usage | Total kWh consumed in current billing cycle | kWh |
| Billing Period Cost | Total cost in current billing cycle | AUD |
| Billing Period Solar Feed-in | Total solar exported in current billing cycle | kWh |
| Billing Period Solar Earnings | Total solar feed-in credit in current billing cycle | AUD |
| Bill Due Date | Date the current bill is due | — |
| Overdue Amount | Amount currently overdue | AUD |
| Unpaid Bills | Count of unpaid bills | — |
Power Hour Status values:
| Value | Meaning |
|---|---|
no_event |
No upcoming Power Hours event |
selection_pending |
An event has been announced but you haven't selected a timeslot yet — act before the Selection Deadline |
confirmed |
You've accepted a timeslot — free electricity starts at Power Hour Start and ends at Power Hour End |
active |
Your Power Hours timeslot is currently running — electricity is free right now |
Note: The coordinator evaluates the start and end timestamps on every poll and sets the status to
activedirectly — your dashboard can use a simplecondition: statecheck rather than comparing timestamps in a template. Because polling is aligned to the clock hour, status transitions are reflected within ~5 seconds of the event start or end time.
The following sensors exist but are disabled by default. Enable them via Settings → Devices → Aurora Energy → entities if needed.
| Sensor | Description | Relevant for |
|---|---|---|
| T31 General Usage | T31 tariff consumption (kWh) | T31 flat-rate accounts |
| T31 General Cost | T31 tariff cost (AUD) | T31 flat-rate accounts |
| T41 Heating Usage | T41 tariff consumption (kWh) | T41 controlled load accounts |
| T41 Heating Cost | T41 tariff cost (AUD) | T41 controlled load accounts |
| T93 Peak Usage | T93 peak tariff consumption (kWh) | T93 time-of-use accounts |
| T93 Peak Cost | T93 peak tariff cost (AUD) | T93 time-of-use accounts |
| T93 Off-Peak Usage | T93 off-peak tariff consumption (kWh) | T93 time-of-use accounts |
| T93 Off-Peak Cost | T93 off-peak tariff cost (AUD) | T93 time-of-use accounts |
| T93 Tariff Period End | When the current T93 tariff period ends (peak or off-peak boundary) | T93 accounts |
| Unread Notifications | Number of unread Aurora+ notifications | All accounts |
| Direct Debit | Whether a direct debit arrangement is active (active/inactive) |
All accounts |
| Auto Payment | Whether auto-payment (card) is configured (active/inactive) |
All accounts |
The integration injects hourly statistics into the HA recorder, which can be used directly in the Energy Dashboard.
On every HA startup it checks the last 7 days and injects any that are missing from the recorder — this means gaps caused by downtime or broken authentication are automatically recovered after a restart. Each new completed day's records are injected once they become available from Aurora (typically 8–9am AEST). The integration also attempts to fetch today's in-progress hourly data on every poll — if the API returns it, the current day's bars will update hourly throughout the day.
To add to the Energy Dashboard:
- Go to Settings → Dashboards → Energy
- Under Electricity grid, add:
- Grid consumption:
aurora_energy:total_kwh
- Grid consumption:
- Under Solar panels, add:
- Energy production:
aurora_energy:solar_feedin_kwh - Return to grid:
aurora_energy:solar_feedin_kwh
- Energy production:
The following additional statistics are available for use in custom dashboard cards:
| Statistic ID | Description |
|---|---|
aurora_energy:total_kwh |
Total daily consumption |
aurora_energy:solar_feedin_kwh |
Solar feed-in (exported) |
aurora_energy:t93peak_kwh |
T93 peak consumption |
aurora_energy:t93offpeak_kwh |
T93 off-peak consumption |
aurora_energy:t31_kwh |
T31 general consumption |
aurora_energy:t41_kwh |
T41 heating consumption |
aurora_energy:total_dollars |
Total energy cost (excludes daily supply charge) |
aurora_energy:t31_dollars |
T31 general tariff cost |
aurora_energy:t41_dollars |
T41 heating tariff cost |
aurora_energy:t93peak_dollars |
T93 peak tariff cost |
aurora_energy:t93offpeak_dollars |
T93 off-peak tariff cost |
aurora_energy:solar_feedin_dollars |
Solar feed-in earnings |
Aurora's API only exposes dollar values at the day level, so per-hour cost statistics are produced by distributing each tariff's day total across hours weighted by that hour's share of the day's kWh for the same tariff.
Note for existing installs: The per-tariff
*_dollarsstatistics (t31_dollars,t41_dollars,t93peak_dollars,t93offpeak_dollars) and the correctedtotal_dollars/solar_feedin_dollarsdistribution were introduced in recent updates. Existing installs will not automatically backfill or correct these because the backfill guard sees previously injected dates as already processed. To trigger a fresh backfill, delete.storage/aurora_energy_<entry_id>_backfillfrom your HA config directory and restart Home Assistant.
HA 2026.11 compatibility: This integration uses the updated
StatisticMeanTypeAPI required by Home Assistant Core 2026.11. Update to the latest version of this integration before upgrading to HA 2026.11 or later.
| Data type | Refresh interval | Notes |
|---|---|---|
| Billing data | Every clock hour | Balance, amount owed, etc. — polled 5 seconds past each hour |
| Usage data | Every clock hour | Reflects the previous day; Aurora releases meter data around 8–9am AEST each morning |
| Energy Dashboard stats (historical) | Once per day | Hourly records injected once per completed day; up to 7-day backfill on every HA restart |
| Energy Dashboard stats (today) | Every clock hour | Today's partial hourly data re-injected each poll if the API returns it |
| Billing period totals | Every clock hour | Running kWh/cost totals for the current billing cycle |
| Power Hours (upcoming) | Every clock hour | Active event, timeslot, and selection deadline — status reflects transitions within ~5 seconds |
| Power Hours (total savings) | Once per day | Recalculated from full event history once daily |
On first login the integration exchanges your credentials for a longer-lived token pair. Under normal operation you will not need to re-authenticate for many months.
If your session fully expires (HA will show a notification), click through the re-authentication flow — the same login link approach as initial setup. Once re-authentication succeeds the new tokens are immediately saved and the integration reloads.
After re-authenticating, restart Home Assistant to trigger the automatic backfill and recover any Energy Dashboard data that was missed while authentication was broken.
This integration supports multiple Aurora tariff structures:
| Tariff | Description |
|---|---|
| T93 (T93PEAK / T93OFFPEAK) | Time of Use — the most common residential tariff in Tasmania |
| T31 | Flat rate general power |
| T41 | Flat rate controlled load (heating) |
| T140 | Solar feed-in / export (detected automatically) |
The integration automatically detects which tariffs are active on your account. T31/T41 and T93 breakdown sensors are disabled by default — enable only what's relevant to your account.
Aurora's T93 tariff boundaries are set by the NEM (National Electricity Market) clock, which runs on AEST (UTC+10) year-round and does not observe daylight saving time.
| Period | AEST time (year-round) | AEDT local time (Oct–Apr) | Days |
|---|---|---|---|
| Peak | 7:00 am – 10:00 am | 8:00 am – 11:00 am | Monday – Friday |
| Peak | 4:00 pm – 9:00 pm | 5:00 pm – 10:00 pm | Monday – Friday |
| Off-peak | 10:00 am – 4:00 pm | 11:00 am – 5:00 pm | Monday – Friday |
| Off-peak | 9:00 pm – 7:00 am | 10:00 pm – 8:00 am | Monday – Friday |
| Off-peak | All day | All day | Saturday & Sunday |
The sensor always computes against fixed AEST (UTC+10) regardless of local Hobart time. State transitions fire at the exact UTC times: 21:00 (7am peak start), 00:00 (10am off-peak), 06:00 (4pm peak start), 11:00 (9pm off-peak), 14:00 (midnight weekday boundary).
Note: Public holidays are currently treated as weekdays.
Make sure you copied the complete URL from your browser's address bar after the Aurora+ login redirect — it should start with https://my.auroraenergy.com.au/login/redirect?code=. Don't copy just part of the URL.
The login was rejected by Aurora+. Try again with a fresh login link (reload the setup step) and ensure you ticked Keep me logged in when logging in.
Ensure you are running the latest version of this integration. Earlier versions had a bug where the new tokens were not saved after re-auth, causing the integration to immediately fail again with the old expired credentials on reload.
The integration backfills up to 7 days of missing data automatically on every HA restart. After resolving the underlying issue (e.g. re-authenticating), restart Home Assistant to trigger the backfill. Data older than 7 days cannot be recovered as the Aurora+ API does not expose it.
- Estimated Balance and Usage Days Remaining may be
nullfor some account types — this is normal behaviour and not an error. - Usage sensors only update once per day when Aurora releases meter data (typically 8–9am AEST). They will show
Unknownor yesterday's value until then.
Power Hour sensors show Unknown when no Power Hours event is currently active or upcoming — this is normal. The Power Hour Status sensor will show no_event once the coordinator has fetched successfully at least once. If it remains Unknown after the first hourly refresh, check Settings → System → Logs and filter by aurora_energy for warnings.
- This is expected before ~8–9am AEST — Aurora has not yet released that day's data.
- If it persists past midday, check Settings → System → Logs and filter by
aurora_energy.
Ensure the following is in your configuration.yaml and that you have performed a full HA restart (not just a reload):
logger:
default: warning
logs:
custom_components.aurora_energy: debugAuthentication flow and API endpoint discovery based on community research from LeighCurran/AuroraPlusHA and shtrom/AuroraPlusHA.