Only request an explainer when the device is actively using smart optimization and explainers are enabled for the organization. For solar inverters, also confirm that a battery is connected. This is the same fail-closed approach used by myPodero.
Supported devices and endpoints
Substituteheat-pumps/{heat_pump_id} or inverters/{inverter_id} for {device_path} in the endpoints below.
All examples use the base URL
https://app.podero.com/api/partners/v2.0 and require a bearer token. The user_id in the path is the owner of the device.
1. Fetch the current explainer
Use the current endpoint for the active optimization plan. You can pass an optionallanguage query parameter, such as en or de. When it is omitted, Podero uses the organization’s default language.
- Heat pump
- Solar inverter
id, the localized explanation, and the authenticated caller’s own most recent feedback:
200 OK with a JSON body of null when no explanation is available, for example when a plan has not been solved yet. Treat this as a normal empty state rather than an error.
2. Fetch a historical explainer
Use the historical endpoint to explain what happened during a completed past window. Supplystart and end as ISO 8601 timestamps. Use URL encoding rather than concatenating the query string so that timezone offsets containing + are preserved.
- Heat pump
- Solar inverter
200 OK with null. For daily history views, normalize the selected day to explicit UTC instants and use the same window in the cache key.
Historical explainers are persisted for their window. myPodero therefore caches a successfully fetched historical explainer for the rest of the session.
3. Collect feedback
Use the explainerid from either read endpoint when a customer rates the explanation. Positive feedback only needs helpful. Negative feedback can include one of these stable reason codes:
wrong_languageconfusingdisagree_with_steering
- Heat pump
- Solar inverter
user_id. The next read returns only that caller’s latest rating in the feedback field. An unsupported reason code returns 422 Unprocessable Entity.
4. Dismiss an explainer
Dismiss an explainer when the customer closes it permanently:- Heat pump
- Solar inverter
Recommended UI behavior
- Check the organization’s explainer setting and the device’s smart-optimization state before making a request.
- Show a loading placeholder because the first read may generate the explanation synchronously.
- Render nothing when the API returns
null. - Display
explanationas plain text. Do not interpret it as HTML or Markdown. - Use
idfor feedback and dismissal actions. - Hide the feedback prompt when
feedbackis already present, or reflect the saved rating. - Do not retry generation requests automatically in a tight loop. myPodero disables automatic retries and lets the user or a later refresh try again.
