> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spirii.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Temporary EVSE status

> Control the status a charger shows to drivers and roaming partners — for maintenance, commissioning, occupancy, or reservations.

A temporary EVSE status overrides the status a charger shows to drivers and roaming partners, while leaving the charger's real state untouched — so you can show a unit as out of service in every app and still keep it running for a technician to work on.

## Overview

Every EVSE has two statuses that normally agree: its **actual status** — what the charger reports over OCPP, such as available or charging — and its **displayed status**, what drivers see in eMSP apps. A temporary EVSE status lets you set the displayed status on its own, for a period you choose, without changing what the charger is really doing.

This solves something the standard OCPP controls can't. Setting an EVSE unavailable over OCPP (the [change availability command](/capabilities/operation-monitoring/remote-commands#change-availability)) takes it genuinely offline, which locks out the technician who needs to test it. A temporary status changes only what drivers see: the app reports the unit as out of service while the charger stays fully operational for on-site work.

<Frame>
  <img src="https://mintcdn.com/spirii-7457b714/3Ip819NLUxVKov8g/images/capabilities/temporary-evse-status-how-it-works.png?fit=max&auto=format&n=3Ip819NLUxVKov8g&q=85&s=9938f56766156b9155006f76664dc034" alt="A charger reports its real EVSE status (Available, Charging, etc.) to Spirii Connect, which is left unchanged. In Connect a temporary EVSE status of Maintenance is set, and only the displayed status update is pushed out to channels: Spirii Go and Hubject show Out of Service, and OCPI shows Inoperative." width="2172" height="1116" data-path="images/capabilities/temporary-evse-status-how-it-works.png" />
</Frame>

You set a status one of two ways, and that's the shape of the rest of this page: an operator sets **Maintenance** or **Commissioning** by hand, and an external system sets **Blocked** or **Reserved** through the API.

## How it works

You apply a temporary status to a single EVSE, choosing the status and an active period: a start, and an optional end. It takes effect at the start and clears automatically at the end; leave the end open and it holds until you remove it. Clearing it (at the end of the period, or with a [`remove`](/api-reference/temporary-evse-statuses-v2/remove-a-temporary-evse-status) call before then) reverts the displayed status to the charger's actual state.

Whatever status you set is translated into each channel's own vocabulary before it reaches a driver. The [table below](#how-the-status-appears-to-drivers) shows exactly what they see.

In Connect, the temporary status sits alongside the actual status in the charge box list, so you can watch the real one while drivers see the override. During a maintenance test you can confirm the unit is charging cleanly even as every app reports it out of service.

For example, you set EVSE `DE*SPI*E00012345` to **Maintenance** for a two-hour service window. In Spirii Go and to roaming partners the unit shows as out of service, so no driver arrives expecting to charge, while your technician runs test sessions on it throughout.

### Operator-set statuses: Maintenance and Commissioning

These are the statuses an operator controls directly, in Connect or through the API.

**Maintenance** covers a unit being serviced or tested. Drivers are shown it's out of service, so none turn up expecting to charge, while it stays live for the technician.

**Commissioning** covers a newly installed unit that isn't ready for drivers yet. It shows as out of service (or *Planned* to OCPI partners), keeping it off drivers' radar until you publish it properly.

In Connect, open the EVSE from its charge box on the location and set the status from the EVSE's menu, with a start date and an optional end. Through the API, [`create`](/api-reference/temporary-evse-statuses-v2/create-a-new-temporary-evse-status) the status against the EVSE ID.

### System-driven statuses: Blocked and Reserved

These come in through the API, so a platform in your wider ecosystem can drive them in real time.

**Blocked** is for a parking-sensor integration: when a sensor detects a vehicle occupying the bay in front of the charger, it sets the EVSE blocked, and drivers see the unit as occupied.

**Reserved** is for a booking or reservation platform: when a charger is reserved ahead of time, the platform sets it reserved, and drivers see it as reserved.

Both use the same [`create`](/api-reference/temporary-evse-statuses-v2/create-a-new-temporary-evse-status) call as the operator statuses. The difference is that a system, rather than a person, sets them.

## How the status appears to drivers

Each app, hub, and protocol carries its own status vocabulary, so the status you set is mapped to the nearest equivalent on each channel. This is what a driver actually sees:

| Temporary status | Spirii Go & branded apps | Hubject (OICP) | OCPI roaming partners |
| ---------------- | ------------------------ | -------------- | --------------------- |
| Maintenance      | Out of Service           | Out of Service | Inoperative           |
| Commissioning    | Out of Service           | Out of Service | Planned               |
| Blocked          | Occupied                 | Occupied       | Blocked               |
| Reserved         | Occupied                 | Reserved       | Reserved              |

## Dependencies & limitations

* **Displayed status only.** A temporary status never changes the charger's real state or interrupts an active session. The charger keeps reporting its true status, which stays visible to you in Connect. When you need to change the real state rather than what drivers see, use the [change availability command](/capabilities/operation-monitoring/remote-commands#change-availability) instead.
* **One EVSE at a time.** You set it per EVSE, not across a whole charge box or location.
* **Blocked and Reserved are API-only.** Operators set Maintenance and Commissioning in Connect or the API; Blocked and Reserved arrive through the API, typically from an external system.
* **Translation is fixed per channel.** You choose the Spirii status; how it appears on each channel follows the table above and isn't separately configurable.

## Related

<CardGroup cols={2}>
  <Card title="EVSEs and connectors" icon="plug" href="/components/charging/evses-and-connectors">
    The object a temporary status targets, and where its real status lives.
  </Card>

  <Card title="Roaming" icon="globe" href="/capabilities/roaming">
    The channels a temporary status is translated across before it reaches a driver.
  </Card>

  <Card title="Remote commands" icon="terminal" href="/capabilities/operation-monitoring/remote-commands">
    The change availability command, for when you need to change a charger's real operational state rather than its displayed one.
  </Card>

  <Card title="Temporary EVSE status API" icon="code" href="/api-reference/temporary-evse-statuses-v2/create-a-new-temporary-evse-status">
    Create, update, and clear statuses programmatically.
  </Card>
</CardGroup>
