End-User Dashboard Integration
This page covers which fields to surface for each device type and how to keep data fresh. All device data is returned from the standard GET endpoint — there is no separate state endpoint.Fetching device data
- Heat Pumps
- Electric Vehicles
- Solar Inverters
/{device_id} to any of the above to retrieve a single device with its latest state.
Heat pump
Optimization status
Two fields together determine what to show the user:Live readings
Electric vehicle
Charge status
Derive the current state from two boolean fields:Boost state
When a user triggers a boost charge, theboost_state field transitions through a state machine. Use it to drive the charge now button:
Key fields
Solar inverter
Power flows
Four fields cover all energy movement in the system:
Current battery level is in
battery_charge_level_percent (0–100%).
The solar_surplus_w field gives the same value pre-calculated, or derive it as current_solar_production_w - household_consumption_w.
All inverter state is timestamped in current_state_last_updated_at.
Connection and action status
Two fields indicate whether a device needs attention:is_authenticated — false means the manufacturer connection has lapsed. The user needs to reconnect their device. Check the actions array for a resolution_link URL to redirect them to.
action_needed — true when the actions array contains one or more unresolved items. Inspect actions[].code to determine the type and actions[].resolution_link for how to resolve it.
See the Notifications journey for the full resolution flow, and for the org-wide view of pending items across all of a user’s devices.
Keeping data fresh
Device state updates every 5–15 minutes depending on the manufacturer’s API. A 30-second stale time works well for device lists — refetch in the background when data becomes stale and provide a manual pull-to-refresh. For EV detail views, poll every ~3 seconds whileboost_state === 'requested' to catch the transition to 'ongoing'. Return to standard background refetches once the boost is underway.
Device state (readings, charge levels, power flows) requires polling — there is no push mechanism for it. For device issues that need user attention, Podero can push to your backend via notification webhooks instead of you polling.
Next Steps
Setting Preferences
Let users control optimization, boost, and charge schedules
API Reference
Complete list of available state fields
