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

curl -X GET \
  'https://app.podero.com/api/partners/v2.0/org/{org_id}/users/{user_id}/heat-pumps' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {auth_token}'
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:
is_smart_optimization_activecurrent_modeSuggested display
false“Not optimizing”
true"min"”Min”
true"low"”ECO”
true"mid"”Comfort”
true"max"”Boost”

Live readings

FieldUnitDescription
current_power_consumption_wWCurrent power draw
dhw_temperature°CDomestic hot water temperature
inlet_temperature°CHeating circuit water entering the heat pump
indoor_actual_temperature°CIndoor temperature — null if no sensor is available
outdoor_temperature°COutdoor temperature measured by the device
current_state_last_updated_atdatetimeWhen state was last synced from the manufacturer’s API

Electric vehicle

Charge status

Derive the current state from two boolean fields:
is_plugged_inis_chargingSuggested display
false“Unplugged”
truefalse”Plugged in” — waiting for an optimal charging window
truetrue”Charging”

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:
boost_stateSuggested display
"available"”Charge Now” (enabled)
"requested"”Starting…” (disabled — poll every ~3 seconds)
"ongoing"”Charging” (disabled)
"unavailable"Disabled — vehicle is full, already charging, or not connected

Key fields

FieldDescription
battery_levelCurrent charge level (0–100%)
charge_rate_wCurrent charging rate in Watts
is_charge_policy_enabledWhether a charge deadline is active
charge_deadline_atTime by which the charge target must be reached (HH:MM)
minimum_charge_limitMinimum charge level the policy targets (0–100%)
current_state_last_updated_atWhen charge state was last synced

Solar inverter

Power flows

Four fields cover all energy movement in the system:
FieldUnitSign conventionDescription
current_solar_production_wWAlways positiveSolar panel output
household_consumption_wWAlways positiveTotal household power use
battery_charge_discharge_power_wWPositive = discharging, negative = chargingBattery power flow
current_power_to_grid_wWPositive = exporting, negative = importingGrid exchange
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.

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.
The Podero API does not provide a WebSocket or push mechanism. All state updates require polling.

Next Steps

Setting Preferences

Let users control optimization, boost, and charge schedules

API Reference

Complete list of available state fields