diff --git a/.changeset/ev-api-busy-recovery.md b/.changeset/ev-api-busy-recovery.md new file mode 100644 index 0000000..07674fb --- /dev/null +++ b/.changeset/ev-api-busy-recovery.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Retry brief busy refusals so charging status can recover without a reload. Expire queued API calls and discard them on disconnect. Never retry a write after a timeout or a lost answer. diff --git a/.changeset/ev-client-readiness.md b/.changeset/ev-client-readiness.md new file mode 100644 index 0000000..7817fe7 --- /dev/null +++ b/.changeset/ev-client-readiness.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Show Pause charging and Resume plan as separate actions. Show whether the charger has stopped, and keep the charging goal while paused. Let owners set battery size beside the current level, with direct saving and readback. Show viewers the battery level, expire old charger readings even when house power is live, and explain whether the level survives a box restart. diff --git a/.changeset/ev-connected-status.md b/.changeset/ev-connected-status.md new file mode 100644 index 0000000..5a99799 --- /dev/null +++ b/.changeset/ev-connected-status.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Show charger status when a car is connected and open its controls from a charging notification. Keep old readings visibly out of date after a dropped connection. Notification switches save directly and retain later edits while the box responds. diff --git a/.changeset/ev-connection-confirmation-copy.md b/.changeset/ev-connection-confirmation-copy.md new file mode 100644 index 0000000..3de9613 --- /dev/null +++ b/.changeset/ev-connection-confirmation-copy.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Explain when charging needs a new choice because the charger or connection could not be confirmed, including after reconnecting. Keep the message separate from confirmation that current has stopped. diff --git a/.changeset/ev-effective-capacity.md b/.changeset/ev-effective-capacity.md new file mode 100644 index 0000000..9676dce --- /dev/null +++ b/.changeset/ev-effective-capacity.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Show when the current car uses a different battery size from the usual size just saved. diff --git a/.changeset/ev-feedback-and-direct-controls.md b/.changeset/ev-feedback-and-direct-controls.md new file mode 100644 index 0000000..9af8bc6 --- /dev/null +++ b/.changeset/ev-feedback-and-direct-controls.md @@ -0,0 +1,11 @@ +--- +"ftw-webapp": patch +--- + +Read the current FTW charge-level and schedule fields, including a plugged car at zero percent. Charging feedback follows the charger's status instead of treating a received request as proof of charging. Show unavailable readings and recover when contact returns. + +Apply schedule edits and changes to a running manual current without Save or Update. Keep an ongoing charge-level drag when an earlier response arrives. Keep failed requests visible, poll only while the panel is visible, and keep keyboard focus inside the dialog. + +Keep the charging goal and solar rule together, with no mode tabs. Show when Charge now overrides them. Show the current slider only while manual charging is active. Opening goal settings does not send a command. + +Preserve one-off goals and the home battery threshold for solar when editing a schedule. diff --git a/.changeset/ev-first-connection-help.md b/.changeset/ev-first-connection-help.md new file mode 100644 index 0000000..c86959e --- /dev/null +++ b/.changeset/ev-first-connection-help.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Explain where to connect and add the first charger when the box has none, instead of showing an empty charging panel. diff --git a/.changeset/ev-first-goal.md b/.changeset/ev-first-goal.md new file mode 100644 index 0000000..2a46de2 --- /dev/null +++ b/.changeset/ev-first-goal.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Let the user choose the displayed first charging goal without changing its values. Opening settings keeps the current charging intent. Later edits still apply directly. diff --git a/.changeset/ev-first-read-recovery.md b/.changeset/ev-first-read-recovery.md new file mode 100644 index 0000000..5ab4280 --- /dev/null +++ b/.changeset/ev-first-read-recovery.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Keep a busy or failed charger read in a waiting state. Show setup help only after the box confirms that no charger is configured. diff --git a/.changeset/ev-goal-plan-confirmation.md b/.changeset/ev-goal-plan-confirmation.md new file mode 100644 index 0000000..5985560 --- /dev/null +++ b/.changeset/ev-goal-plan-confirmation.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Confirm a saved charging goal before its new plan finishes. Show planning progress, hide old charge windows and preserve the save confirmation if a later status read fails. diff --git a/.changeset/ev-home-command-refresh.md b/.changeset/ev-home-command-refresh.md new file mode 100644 index 0000000..3656111 --- /dev/null +++ b/.changeset/ev-home-command-refresh.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Refresh the home charging card after a command or goal change. Give viewers guidance they can act on without offering controls their account cannot use. diff --git a/.changeset/ev-manual-save-feedback.md b/.changeset/ev-manual-save-feedback.md new file mode 100644 index 0000000..70b8d92 --- /dev/null +++ b/.changeset/ev-manual-save-feedback.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Show when a charging choice is active but could not be saved for restart. The notice clears when the box confirms its retry succeeded. diff --git a/.changeset/ev-new-goal-after-remove.md b/.changeset/ev-new-goal-after-remove.md new file mode 100644 index 0000000..e192cd2 --- /dev/null +++ b/.changeset/ev-new-goal-after-remove.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Suggest 80% when setting a new charging goal after removing the previous one. Clear the old target in the demo as the box does. diff --git a/.changeset/ev-plan-failure-feedback.md b/.changeset/ev-plan-failure-feedback.md new file mode 100644 index 0000000..336b872 --- /dev/null +++ b/.changeset/ev-plan-failure-feedback.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +When a new charging plan fails, explain that the settings are saved but charging times are unavailable. Keep the old plan hidden until a new one succeeds. diff --git a/.changeset/ev-reconnect-tap.md b/.changeset/ev-reconnect-tap.md new file mode 100644 index 0000000..5e01a94 --- /dev/null +++ b/.changeset/ev-reconnect-tap.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Open the charging panel when its car bubble is tapped during reconnection. Show connection progress and fill the same panel when the box answers; explain when a connected box lacks app charging controls. diff --git a/.changeset/ev-remove-confirmation.md b/.changeset/ev-remove-confirmation.md new file mode 100644 index 0000000..1615e15 --- /dev/null +++ b/.changeset/ev-remove-confirmation.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Confirm when a charging goal is removed, even if the next status read fails. Clear the previous save message so the removal's plan update cannot claim that a goal was saved. diff --git a/.changeset/ev-restart-choice.md b/.changeset/ev-restart-choice.md new file mode 100644 index 0000000..dddecd4 --- /dev/null +++ b/.changeset/ev-restart-choice.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Ask how to continue when an earlier charge request cannot be matched after restart. Offer Charge now, Resume plan and Pause charging without calling it a user pause. Keep actual power visible until a changed current limit reaches the charger. diff --git a/.changeset/ev-review-read-confirmation.md b/.changeset/ev-review-read-confirmation.md new file mode 100644 index 0000000..e305b05 --- /dev/null +++ b/.changeset/ev-review-read-confirmation.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Keep accepted battery levels and solar choices visible if the following status read fails. Use the charger's own plan windows to avoid blocking current status on a full plan read. Describe routine replanning without claiming a new goal was saved. diff --git a/.changeset/ev-soc-and-pv-only.md b/.changeset/ev-soc-and-pv-only.md new file mode 100644 index 0000000..3947ace --- /dev/null +++ b/.changeset/ev-soc-and-pv-only.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Correct the car's charge level from the EV panel with a slider the box's own estimate prefills, and switch charging from solar surplus only on or off. Both write through the door and reread the charger once the box has answered. diff --git a/.changeset/ev-soc-confirmation.md b/.changeset/ev-soc-confirmation.md new file mode 100644 index 0000000..91ec06b --- /dev/null +++ b/.changeset/ev-soc-confirmation.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Ask for the car's level when the box reports an unconfirmed battery estimate. Keep charging status attached to the active box after pairing or switching homes. diff --git a/.changeset/ev-solar-save-failure.md b/.changeset/ev-solar-save-failure.md new file mode 100644 index 0000000..cc52b89 --- /dev/null +++ b/.changeset/ev-solar-save-failure.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Explain a rejected solar-rule save without blaming charger connectivity. Keep the previous choice visible and allow retry. diff --git a/.changeset/ev-unplugged-battery-size.md b/.changeset/ev-unplugged-battery-size.md new file mode 100644 index 0000000..f835b32 --- /dev/null +++ b/.changeset/ev-unplugged-battery-size.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Let owners set the usual car battery size before plugging in. Save on field release and show the confirmed value, while keeping current charge and charging controls limited to a connected car. diff --git a/.changeset/ev-unplugged-goal.md b/.changeset/ev-unplugged-goal.md new file mode 100644 index 0000000..e32dab4 --- /dev/null +++ b/.changeset/ev-unplugged-goal.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Keep the saved target percentage beside the ready time when the car is unplugged or its battery level is unknown. diff --git a/.changeset/live-sheet-shell-width.md b/.changeset/live-sheet-shell-width.md new file mode 100644 index 0000000..425eeba --- /dev/null +++ b/.changeset/live-sheet-shell-width.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Keep the live power sheet centered within the app's width on tablets and desktops, matching the EV sheet. diff --git a/.changeset/overview-savings-week.md b/.changeset/overview-savings-week.md new file mode 100644 index 0000000..764f621 --- /dev/null +++ b/.changeset/overview-savings-week.md @@ -0,0 +1,5 @@ +--- +"ftw-webapp": patch +--- + +Read only seven savings days on the home screen. The displayed today and week totals stay the same without calculating an unused month before charger requests. diff --git a/.changeset/ux-native-feel-pass.md b/.changeset/ux-native-feel-pass.md new file mode 100644 index 0000000..5e96fcc --- /dev/null +++ b/.changeset/ux-native-feel-pass.md @@ -0,0 +1,7 @@ +--- +"ftw-webapp": patch +--- + +Make the app feel native on a phone: every control answers a press, tab changes slide in from the direction of travel, the theme follows the OS mid-session, and the Android keyboard no longer covers bottom sheets. On tablets and desktops the shell keeps a phone shape instead of hugging one edge. + +Recover on its own from two states that used to need an OS exit: a stalled passkey ceremony now offers Cancel, and a slow local open says so after a beat instead of sitting blank. Long-press shortcuts open Plan and History; update checks run at launch, not only after the first hide. diff --git a/contract/push-catalogue.yaml b/contract/push-catalogue.yaml index 5f4a2e1..f34ab4c 100644 --- a/contract/push-catalogue.yaml +++ b/contract/push-catalogue.yaml @@ -13,6 +13,9 @@ # lost every notification that mattered. version: 1 events: + - kind: charging.connected + title: Car plugged in + body: "Open to see charging status, check the battery level and set a ready time." - kind: charging.session_complete title: Car charged body: "{kwh} kWh delivered — ready to go." diff --git a/index.html b/index.html index 241a4b1..38756ca 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,9 @@
- + +