Skip to main content

Constellation

OCA · OCPP 1.6 OCA · OCPP 2.0.1

Purpose

Arthexis Constellation is a Django-based software suite for managing electric vehicle charging infrastructure, charger connectivity, operational state, transactions, authorization, and retained OCPP workflows.

Suite Features

  • Supports the retained OCPP 1.6 and OCPP 2.0.1 protocol surfaces.
  • Negotiates charger WebSocket connections by protocol version and keeps live connection state separate from persisted charger identity.
  • Records charger status, transactions, meter values, reservations, charging profiles, configuration or variables, notifications, certificates, and operation outcomes where required by the retained protocol contract.
  • Supports charger enrollment with an explicit enrollment credential and per-charger open or restricted authorization policy.
  • Provides typed reset, remote-start, and remote-stop operations for a selected charger.
  • Provides a read-only charger fleet report with connection, session, connector, and energy state.
  • Keeps outbound charger operations explicit: retained protocol operations are available without automatically scheduling firmware, diagnostics, reservations, configuration rollout, or maintenance work.

Every retained action below is covered by the executable support matrix and has a concrete inbound handler or outbound validator/emitter.

Charge point / charging station → CSMS

Action 1.6 2.0.1 What we do
Authorize ✅ ✅ Validate an identification token according to the charger's authorization policy and retain the decision.
BootNotification ✅ ✅ Register charger identity and boot information and update its operational record.
ClearedChargingLimit — ✅ Accept reports that a previously imposed charging limit has been cleared.
CostUpdated — ✅ Accept transaction cost updates reported by the charging station.
DataTransfer ✅ ✅ Accept vendor-specific protocol payloads through the retained data-transfer boundary.
DiagnosticsStatusNotification ✅ — Track OCPP 1.6 diagnostics-upload progress.
FirmwareStatusNotification ✅ ✅ Track charger firmware-update lifecycle state.
Get15118EVCertificate — ✅ Process ISO 15118 EV-certificate requests through the certificate domain boundary.
GetCertificateStatus — ✅ Process charging-station certificate-status requests.
Heartbeat ✅ ✅ Refresh liveness and last-contact state for the connected charger.
LogStatusNotification — ✅ Track log-upload progress for OCPP 2.0.1 diagnostics.
MeterValues ✅ ✅ Persist retained metering values, units, multipliers, and transaction energy data.
NotifyChargingLimit — ✅ Record charging-limit notifications reported by the station.
NotifyCustomerInformation — ✅ Accept customer-information report fragments.
NotifyDisplayMessages — ✅ Accept display-message reports from the charging station.
NotifyEVChargingNeeds — ✅ Accept EV charging-needs information for the active session.
NotifyEVChargingSchedule — ✅ Accept EV charging-schedule information reported by the station.
NotifyEvent — ✅ Persist retained monitoring and operational event notifications.
NotifyMonitoringReport — ✅ Accept monitoring-report fragments.
NotifyReport — ✅ Accept general OCPP 2.0.1 report fragments.
PublishFirmwareStatusNotification — ✅ Track publish-firmware lifecycle state.
ReportChargingProfiles — ✅ Accept charging-profile reports from the station.
ReservationStatusUpdate — ✅ Track reservation status changes reported by the station.
SecurityEventNotification — ✅ Record security events without persisting private certificate material.
SignCertificate — ✅ Accept certificate-signing requests through the retained certificate workflow.
StartTransaction ✅ — Open an OCPP 1.6 transaction and associate its initial authorization and meter state.
StatusNotification ✅ ✅ Update connector or EVSE availability and fault state.
StopTransaction ✅ — Close an OCPP 1.6 transaction and retain its final meter and stop state.
TransactionEvent — ✅ Create, update, or close OCPP 2.0.1 transaction state from transaction events.

CSMS → charge point / charging station

Action 1.6 2.0.1 What we do
CancelReservation ✅ ✅ Compose and correlate a request to cancel a reservation.
CertificateSigned — ✅ Deliver a signed certificate response to a charging station.
ChangeAvailability ✅ ✅ Request an operative or inoperative availability state.
ChangeConfiguration ✅ — Set an OCPP 1.6 configuration key through the explicit operation boundary.
ClearChargingProfile ✅ ✅ Request removal of matching charging profiles.
ClearDisplayMessage — ✅ Request removal of a charging-station display message.
ClearVariableMonitoring — ✅ Clear selected OCPP 2.0.1 variable-monitoring settings.
CustomerInformation — ✅ Request customer-information reporting or deletion.
DataTransfer ✅ ✅ Send an explicit vendor-specific data-transfer request.
DeleteCertificate — ✅ Request deletion of a selected installed certificate.
GetBaseReport — ✅ Request one of the standard OCPP 2.0.1 base reports.
GetCompositeSchedule ✅ ✅ Request a calculated charging schedule from the charger.
GetConfiguration ✅ — Read selected OCPP 1.6 configuration keys.
GetDiagnostics ✅ — Request an OCPP 1.6 diagnostics upload.
GetDisplayMessages — ✅ Request display messages currently known by the charging station.
GetInstalledCertificateIds — ✅ Request metadata identifying installed certificates.
GetLocalListVersion ✅ ✅ Read the charger's local authorization-list version.
GetLog — ✅ Request an OCPP 2.0.1 diagnostics or security log upload.
GetReport — ✅ Request a filtered OCPP 2.0.1 component/variable report.
GetVariables — ✅ Read selected OCPP 2.0.1 variables.
InstallCertificate — ✅ Request installation of a certificate on the charging station.
PublishFirmware — ✅ Request that the charging station publish firmware information.
RemoteStartTransaction ✅ — Start an OCPP 1.6 transaction remotely for an identification token.
RemoteStopTransaction ✅ — Stop a selected OCPP 1.6 transaction remotely.
RequestStartTransaction — ✅ Start an OCPP 2.0.1 transaction remotely for an identification token.
RequestStopTransaction — ✅ Stop a selected OCPP 2.0.1 transaction remotely.
ReserveNow ✅ ✅ Request a connector or EVSE reservation.
Reset ✅ ✅ Request a graceful or immediate charger reset.
SendLocalList ✅ ✅ Publish an updated local authorization list.
SetChargingProfile ✅ ✅ Apply a charging profile to the charger.
SetDisplayMessage — ✅ Configure a display message on the charging station.
SetMonitoringBase — ✅ Select the charging station's monitoring-base behavior.
SetMonitoringLevel — ✅ Select the station-wide monitoring severity threshold.
SetVariableMonitoring — ✅ Configure monitoring criteria for selected variables.
SetVariables — ✅ Set selected OCPP 2.0.1 variables.
TriggerMessage ✅ ✅ Ask the charger to emit a supported message immediately.
UnlockConnector ✅ ✅ Request release of a locked connector.
UpdateFirmware ✅ ✅ Request a charger firmware update and correlate its outcome.

Operational Capabilities

The protocol matrix describes what Arthexis can exchange with a charger. The application also provides the following operational surfaces around those protocol messages.

Capability Behavior
Fleet inspection Read configured chargers as a captured fleet snapshot, optionally filtering by charger identity, enabled state, connection state, or charging state. Detail mode includes connector, transaction timing, and resolvable energy information.
Charger enrollment Enroll an unknown charger only after successful OCPP subprotocol negotiation and presentation of the configured enrollment credential. Invalid or missing enrollment credentials do not create charger records.
Authorization policy Configure each charger for open or restricted authorization. Open mode accepts a non-empty protocol-valid identifier while retaining an audit record; restricted mode requires an active matching card or account.
Explicit charger control Request reset, remote start, or remote stop for one selected charger. Arthexis derives the correct OCPP 1.6 or 2.0.1 action from the charger's configured protocol and rejects incompatible options before delivery.
Operation correlation Track outbound protocol calls through pending, completed, errored, timed-out, and disconnected outcomes without treating an attempted send as a successful charger action.
Administration Inspect and maintain retained application records through Django admin, including chargers, sessions, operation outcomes, authorization state, certificates, reservations, profiles, and related records.
Structured events Publish and persist typed event envelopes with an event type, producer, JSON payload, creation time, and publication time.
Energy and account records Maintain customer accounts, tariffs, kWh balances, ledger entries, logical card credentials, and charging attribution data used by retained authorization and accounting flows.
Node topology Record Terminal, Control, Satellite, and Watchtower node identities and explicit links between nodes without dynamically changing the installed Django application set.

Explicit control boundary

Arthexis deliberately separates protocol support from automatic orchestration. A retained outbound OCPP action can be validated, emitted, and correlated when an administrator or integration explicitly requests it, but the application does not automatically schedule charger firmware updates, diagnostics, configuration rollouts, reservations, resets, starts, or stops.

The initial high-level charger controls are intentionally narrow:

Operation OCPP 1.6 OCPP 2.0.1 Behavior
Reset Reset Reset Graceful by default; an explicit hard option requests the immediate reset form for the selected protocol.
Start RemoteStartTransaction RequestStartTransaction Requires an identification token and accepts only the connector/EVSE selector appropriate to the configured protocol.
Stop RemoteStopTransaction RequestStopTransaction Uses the sole active local transaction when unambiguous, or requires an explicit transaction selector when several are active.

Role Architecture

Arthexis retains four node-role identities for topology and deployment modeling. They are configuration identities rather than automatic bundles of host features.

Role Intended place in a constellation
Terminal A local or single-user Arthexis node.
Control A node associated with local equipment or a focused operational task.
Satellite An edge or remote node participating in a wider constellation.
Watchtower A central or hosted node used for shared access and orchestration.

Role-specific capabilities can be built on top of these identities without requiring the application model to dynamically install or remove Django apps.

Quick Guide

Installation

Arthexis can be installed directly or through Gway.

Option 1: Manual installation

Clone the repository and run the bundled installer:

git clone https://github.com/arthexis/arthexis.git
cd arthexis
./install.sh

The installer creates the local virtual environment, installs the pinned application requirements, prepares the database, applies migrations, and seeds required application state.

Option 2: Install with Gway

Install Gway, then let it install and prepare Arthexis:

python -m pip install gway
gway install arthexis/arthexis
gway arthexis migrate --noinput
gway arthexis seed

Gway manages the project installation while Arthexis retains its own application and protocol behavior.

Run locally

After installation, run the ASGI application with the project environment:

.venv/bin/daphne -b 127.0.0.1 -p 8888 arthexis.asgi:application

The default application endpoint is 127.0.0.1:8888.

Inspect the charger fleet

The fleet command is read-only:

.venv/bin/python manage.py fleet

It can filter by charger identity and by enabled, connected, or charging state, and can include connector, transaction, and energy detail.

Publish a structured event

Events can be published explicitly from the application command line:

.venv/bin/python manage.py event publish charger.audit --producer operator --payload '{"source":"manual"}'

The payload must be a JSON object. The command persists the event envelope and prints its generated event identifier.

Administration

Django administration remains available at /admin/ for authorized staff. It is intentionally not linked from the public site navigation.

The administration surface exposes retained application records and operation outcomes; it is not a raw OCPP payload console.

Operator guidance

Start with the Operator Guide for deployment-health and operating notes that are appropriate to expose through the Markdown site.

Support

Arthexis Constellation is actively maintained with operational guidance and protocol coverage kept alongside the application source.

For professional services and commercial support, contact tecnologia@gelectriic.com or visit Gelectriic.

Metadata

Release files for arthexis 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arthexis 2.0.0
File Size Uploaded
arthexis-2.0.0.tar.gz 117.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arthexis 2.0.0
File Interpreter ABI Platform
arthexis-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 294.6 kB

Release files / arthexis-2.0.0.tar.gz

Download URL arthexis-2.0.0.tar.gz
Size 117.9 kB
Tags Source
SHA-256 checksum
How to use checksums
875cbdb160f458776d91bf56d9e24da18268e0d768503e7ecdc3c232ecea329f
BLAKE2b-256 checksum
How to use checksums
608b1805f376632d61e6ac66c474ff09bb93d0df7d08fe680a08bd158698a1ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / arthexis-2.0.0-py3-none-any.whl

Download URL arthexis-2.0.0-py3-none-any.whl
Size 176.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eebedd8e943b1cdb6906df21f5530887e1221a982b6688a27820d81532cc8911
BLAKE2b-256 checksum
How to use checksums
a089cb7f6042cc4c537eb3303d0ea67e4182c6c9264a20f5b319e9002671e8ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.0

1 release file

0.1.34

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page