Skip to main content
PUT
Update details of a user's solar inverter

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

org_id
string<uuid>
required

The organization ID of the user's organization

user_id
string<uuid>
required

The user ID of the user whom the solar inverter belongs to

inverter_id
string<uuid>
required

The ID of the modified solar inverter

Body

application/json
is_pause_power_active
boolean
default:false
is_smart_optimization_active
boolean
default:false
is_inverter_forced_mode_enabled
boolean
default:false
actual_steering_state
string
default:unknown
Maximum string length: 20
device_model
DeviceModelInput ยท object | null
battery_policy
enum<string> | null
Available options:
Optimize self consumption,
Optimize grid balancing,
Export all
price_zone
enum<string>
Available options:
AT,
AT_HOURLY,
BE,
CH,
EE,
DE_LU,
HR,
HU,
IE_SEM,
IT_CNOR,
IT_CSUD,
IT_NORD,
IT_PUN,
IT_SARD,
IT_SICI,
IT_SUD,
PT,
RO,
SE_1,
SE_2,
SE_3,
SE_4,
UK
has_household_load
boolean
default:true
has_on_site_pv
boolean
default:true
deleted_at
string<date-time> | null

When set, the device is considered deleted.

pause_power_until
string<date-time> | null
optimization_score
number | null
comment
string | null
Maximum string length: 300
last_monitoring_executed_at
string<date-time> | null
integration_credential_id
string<uuid> | null
solar_power_rating_kw
battery_capacity_kwh
is_battery_connected
boolean | null
default:false
max_charge_power_w
number | null
max_discharge_power_w
number | null
is_curtailment_active
boolean | null
default:false
max_battery_charge
min_battery_charge
charge_efficiency
number | null
discharge_efficiency
number | null
degradation_cost_eur_per_kwh
number | null
grid_fee_eur_per_kwh
number | null
user_limits_enabled
boolean | null
default:false
current_power_to_grid_w
inferred_max_charge_power_w
number | null
inferred_max_discharge_power_w
number | null
inferred_min_battery_soc_percent
number | null
inferred_battery_capacity_kwh
number | null
inferred_params_updated_at
string<date-time> | null
ac_rated_power_w
integer | null
export_power_limit_w
integer | null
inferred_export_limit_w
number | null
has_ev_in_household
boolean | null
ev_inferred_at
string<date-time> | null
ev_inference_confidence
number | null

0.0โ€“1.0; saturates at 16 EV-charging bouts in 30 days

Response

200 - application/json

OK

connection_status
enum<string>
required
Available options:
ok,
warning,
error,
unknown
monitoring_status
enum<string>
required
Available options:
ok,
warning,
error,
unknown
steering_status
enum<string>
required
Available options:
ok,
warning,
error,
unknown
tone
required

The device's console health tone, and the only verdict a client should render: action_required when a partner-resolvable action is pending, else the worst of connection and monitoring, with not_steered for a healthy device nobody optimizes. Do not re-derive it from connection_status/monitoring_status/steering_status โ€” those three are cue-blind and would report a device asking for reauthentication as healthy. The status filter on GET /org/{org_id}/devices and the tone counts on โ€ฆ/devices/summary grade the three statuses only, so a device with a pending action reads action_required here while being counted and filtered under its status tone.

Available options:
good,
warning,
critical,
not_steered
support
SupportCountsOutput ยท object
required

The device's pending cues per Support category.

health
enum<string> | null
required

The device's service-health verdict: unhealthy when any component reads no, else healthy when any reads yes, else unknown. As of the last hourly sweep for heat pumps and electric vehicles; unknown until a new device is first swept; null when soft-deleted.

Available options:
unhealthy,
unknown,
healthy
device_model
DeviceModelOutput ยท object | null
required
owner
OwnerOutput ยท object
required
price_zone
enum<string>
required
Available options:
AT,
AT_HOURLY,
BE,
CH,
EE,
DE_LU,
HR,
HU,
IE_SEM,
IT_CNOR,
IT_CSUD,
IT_NORD,
IT_PUN,
IT_SARD,
IT_SICI,
IT_SUD,
PT,
RO,
SE_1,
SE_2,
SE_3,
SE_4,
UK
service_health
ServiceHealthOutput ยท object
required

Whether the platform is doing what it should for this inverter, component by component, and where the problem starts when it is not. Only the rows the platform maps for an inverter are listed, and a cell nothing has observed reads not_measured.

created_at
string<date-time>
required
updated_at
string<date-time>
required
has_household_load
boolean
required

False for an asset with no household load behind the meter

has_on_site_pv
boolean
required

False for an asset with no on-site PV array

action_needed
boolean
default:false
deprecated

Deprecated โ€” use GET /org/{org_id}/notifications/status for per-device-type counts, or GET /org/{org_id}/notifications/actions?device_id=โ€ฆ for the specifics. True when at least one action is pending against this device and the partner must take that action before the device can resume normal operation.

estimated_pv_capacity_kwp
number | null

PV array peak capacity in kWp inferred from observed solar production. Null until a supported fit is available; onboarding default assumptions are excluded.

is_authenticated
boolean | null
default:false
is_smart_optimization_active
boolean
default:false
is_inverter_forced_mode_enabled
boolean
default:false
actual_steering_state
string
default:unknown

Observed steering: active, degraded, inactive, blocked, disabled, or unevaluated. Unknown means no observation.

Maximum string length: 20
learning_phase
InverterLearningPhaseOutput ยท object | null

The inverter's learning phase, or null for an inverter that never had one.

id
string<uuid> | null
deleted_at
string<date-time> | null

When set, the device is considered deleted.

pause_power_until
string<date-time> | null
is_pause_power_active
boolean
default:false
external_device_id
string | null
default:""
Maximum string length: 255
optimization_score
number | null
current_mode
string | null
comment
string | null
Maximum string length: 300
current_state_last_updated_at
string<date-time> | null
last_monitoring_executed_at
string<date-time> | null
is_inverter_forced_mode_active
boolean
default:false
inverter_forced_mode_since
string<date-time> | null
default:0001-01-01T00:00:00Z
integration_credential
string<uuid> | null
solar_power_rating_kw
battery_capacity_kwh
is_battery_connected
boolean | null
default:false
max_charge_power_w
number | null
max_discharge_power_w
number | null
is_curtailment_active
boolean | null
default:false
max_battery_charge
min_battery_charge
charge_efficiency
number | null
discharge_efficiency
number | null
degradation_cost_eur_per_kwh
number | null
grid_fee_eur_per_kwh
number | null
user_limits_enabled
boolean | null
default:false
information_last_updated_at
string<date-time> | null
battery_policy
string | null
default:Optimize self consumption
Maximum string length: 100
battery_policy_last_updated_at
string<date-time> | null
current_solar_production_w
current_power_to_grid_w
household_consumption_w
solar_surplus_w
battery_charge_discharge_power_w
battery_charge_level_percent
production_last_day_kwh
production_last_week_kwh
production_last_month_kwh
production_last_updated_at
string<date-time> | null
inferred_max_charge_power_w
number | null
inferred_max_discharge_power_w
number | null
inferred_min_battery_soc_percent
number | null
inferred_battery_capacity_kwh
number | null
inferred_params_updated_at
string<date-time> | null
ac_rated_power_w
integer | null
export_power_limit_w
integer | null
inferred_export_limit_w
number | null
has_ev_in_household
boolean | null
ev_inferred_at
string<date-time> | null
ev_inference_confidence
number | null

0.0โ€“1.0; saturates at 16 EV-charging bouts in 30 days

information_notifications
string[] | null
embeddable_url
string | null

URL to embeddable onboarding form

authorization_url
string | null

Base URL for authorizing with the Podero server