Skip to content

v3.0.10 - Bug Fix for Next Delivery Date

Choose a tag to compare

@skircr115 skircr115 released this 28 Feb 14:06
dc950d1

AmeriGas v3.0.10 — Release Notes

Release Summary

Field Value
Version 3.0.10
Type Bug Fix
Status ✅ Production Ready
Minimum HA 2024.1.0

Upgrading

From v3.0.8 or v3.0.9: Update via HACS and restart. No configuration changes required. The next delivery date sensor will immediately reflect the corrected lookup.

From any earlier v3.0.x: All v3.0.x updates are non-breaking. Update via HACS and restart.

From v2.x: See MIGRATION.md.


Full Changelog

v3.0.9...v3.0.10

# AmeriGas v3.0.10 — Release Notes

Release Summary

Field Value
Version 3.0.10
Type Bug Fix
Status ✅ Production Ready
Minimum HA 2024.1.0

What's Changed

v3.0.10 — Next Delivery Date API Fix

The next delivery date logic in api.py has been simplified and corrected.

The problem: v3.0.8 introduced a 5-level fallback chain to resolve next_delivery_date_raw, reading from estDeliveryWindowTo, estDeliveryWindowFrom, orderDate, and EstimatedDelivery before falling back to the account level. These fields don't exist or contain reliable data for all account types, causing some users to see incorrect or missing next delivery dates. The same block also applied parsed_result.replace(tzinfo=None) to strip timezone info — a workaround that was inconsistent with how every other date field in the file is handled.

The fix: Reverted to a direct, 3-step lookup and removed the timezone strip.

Before (v3.0.8):

# 5-level chain reading estDeliveryWindowTo, estDeliveryWindowFrom,
# orderDate, EstimatedDelivery, then account-level NextDeliveryDate
# ...followed by a timezone strip workaround
next_delivery_date = parsed_result.replace(tzinfo=None)

After (v3.0.10):

if open_orders and len(open_orders) > 0:
    next_delivery_date_raw = open_orders[0].get('DeliveryDate', '')
if not next_delivery_date_raw and one_click:
    next_delivery_date_raw = one_click.get('NextDeliveryDate', '')
if not next_delivery_date_raw:
    next_delivery_date_raw = account_data.get('NextDeliveryDate', '')

next_delivery_date = parse_date(next_delivery_date_raw)

v3.0.9 — CI Security Hardening (included)

The hassfest.yml GitHub Actions workflow now declares permissions: contents: read, scoping the GITHUB_TOKEN to the minimum required for a read-only validation job. This resolves CodeQL code scanning alert #1. No integration code was changed in v3.0.9.


Files Changed

File Version Change
api.py 3.0.10 Simplified next_delivery_date lookup; removed timezone strip workaround
manifest.json 3.0.10 Version bump
.github/workflows/hassfest.yml 3.0.9 Added permissions: contents: read

Upgrading

From v3.0.8 or v3.0.9: Update via HACS and restart. No configuration changes required. The next delivery date sensor will immediately reflect the corrected lookup.

From any earlier v3.0.x: All v3.0.x updates are non-breaking. Update via HACS and restart.

From v2.x: See [MIGRATION.md](MIGRATION.md).


Full Changelog

[v3.0.9...v3.0.10](v3.0.9...v3.0.10)