Skip to content

Fix RecursionError in DeliveryTime sensor#57

Merged
dvejsada merged 2 commits into
dvejsada:devfrom
eMeF1:fix/delivery-time-recursion-error
Dec 20, 2025
Merged

Fix RecursionError in DeliveryTime sensor#57
dvejsada merged 2 commits into
dvejsada:devfrom
eMeF1:fix/delivery-time-recursion-error

Conversation

@eMeF1
Copy link
Copy Markdown
Contributor

@eMeF1 eMeF1 commented Dec 19, 2025

Fixes #56

What was wrong

The DeliveryTime sensor crashed with a RecursionError when an order was placed but no delivery announcement existed. The code called itself infinitely, breaking the sensor.

What this fixes

Changes

  • Updated DeliveryTime.native_value to use order data instead of calling itself
  • Changed return type from str | None to datetime | None

- Fix infinite recursion when no delivery announcement exists but order is placed
- Get delivery time from order data using get_earliest_order() and parse_delivery_datetime_string()
- Fix return type from str | None to datetime | None to match SensorDeviceClass.TIMESTAMP
…nouncements stop

- Add RestoreEntity to DeliveryInfo and DeliveryTime sensors
- Fix infinite recursion bug in DeliveryTime.native_value
- Preserve last known values when announcements stop but order still exists
- Restore state on Home Assistant restart
- Clear values when is_ordered becomes False

This fixes the issue where sensor.rohlik_delivery_information and
sensor.rohlik_delivery_time would reset to None when announcements
stop broadcasting, even though binary_sensor.rohlik_next_order_made
is still True (right before delivery time).
@dvejsada dvejsada merged commit cad0856 into dvejsada:dev Dec 20, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants