Skip to main content

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

Append /{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, the boost_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_authenticatedfalse 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_neededtrue 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 while boost_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