Skip to main content

End-User Dashboard Integration

For end-users to understand the current status of software-based optimization, they must have access to a range of information about their account, devices, and optimization performance. The endpoints detailed below are used in the Whitelabel end-user dashboard Podero provides and can be used by Partners to build a comparable end-user experience.

Dashboard Overview Data

List All Devices

Retrieve all devices for a user to display on the dashboard:
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}'
Returns a list of all heat pumps with complete data for each unit.

Example Response

[
  {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "building": "94964bf8-4ec9-4f3f-b10e-0fe21980279e",
    "is_authenticated": true,
    "is_smart_optimization_active": true,
    "device_model": {
      "manufacturer": "Nibe",
      "model": "S-Series"
    },
    "operational_mode": "heating",
    "current_power_consumption_w": 2500,
    "indoor_actual_temperature": 21.5,
    "outdoor_temperature": 5.3,
    "consumption_last_day_kwh": 45.3,
    "consumption_last_week_kwh": 287.6,
    "consumption_last_month_kwh": 1204.8
  }
]

Key Dashboard Metrics

Device Status Indicators

Field: is_authenticatedShows if the device is successfully connected to the manufacturer’s API.
Field: is_smart_optimization_activeIndicates whether Podero’s optimization algorithm is actively controlling the device.
Field: operational_modeCurrent mode of operation (heating, cooling, standby, etc.).

Current Readings

Key fields available for real-time or near-real-time display:
  • indoor_actual_temperature - Indoor temperature in °C
  • outdoor_temperature - Outdoor temperature in °C
  • current_power_consumption_w - Current power consumption in watts
  • dhw_temperature - Domestic hot water temperature in °C

Consumption History

Energy consumption is available over different time periods:
  • consumption_last_day_kwh - Energy consumed in the last 24 hours
  • consumption_last_week_kwh - Energy consumed in the last 7 days
  • consumption_last_month_kwh - Energy consumed in the last 30 days
  • consumption_last_updated_at - Timestamp of last consumption update

Single Device View

Get Specific Device Details

Retrieve detailed information for a single device:
curl -X GET \
  'https://app.podero.com/api/partners/v2.0/org/{org_id}/users/{user_id}/heat-pumps/{device_id}' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {auth_token}'

Dashboard UI Components

Status Card Example

function DeviceStatusCard({ device }) {
  return (
    <Card>
      <h3>{device.device_model.manufacturer} {device.device_model.model}</h3>

      <StatusIndicator
        connected={device.is_authenticated}
        optimizing={device.is_smart_optimization_active}
      />

      <MetricsGrid>
        <Metric
          label="Indoor Temp"
          value={`${device.indoor_actual_temperature}°C`}
        />
        <Metric
          label="Current Power"
          value={`${device.current_power_consumption_w}W`}
        />
        <Metric
          label="Today's Consumption"
          value={`${device.consumption_last_day_kwh} kWh`}
        />
      </MetricsGrid>
    </Card>
  );
}

Real-Time Updates

State data refresh frequency depends on the manufacturer’s API limitations. Some values may update every 5-15 minutes.

Polling Strategy

Implement efficient polling for dashboard updates at regular intervals (typically 5-15 minutes). Check the current_state_last_updated_at timestamp to determine if new data is available.

Websocket Alternative

For real-time updates, consider implementing websockets on your backend to push updates to the dashboard when device state changes.

Error Handling

Connection Issues

Use the following fields to identify and display connection issues:
  • is_authenticated - If false, device is disconnected and needs reconnection
  • authorization_url - If present, device requires re-authentication (redirect user to this URL)
  • current_state_last_updated_at - Check if data is stale (older than 1 hour indicates potential issue)

Best Practices

  • Cache device data to reduce API calls
  • Implement efficient polling intervals (5-15 minutes)
  • Use pagination for users with many devices
  • Load critical data first, defer detailed metrics
  • Show loading states during data fetches
  • Display last update timestamps
  • Provide clear error messages with actions
  • Use visual indicators for status (colors, icons)
  • Round consumption values appropriately
  • Use consistent units throughout
  • Show trends with charts and graphs
  • Highlight important changes or alerts

Next Steps

API Reference

Complete list of available state fields

User Management

Partner back-office workflows