Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
.. _everest_modules_handwritten_CarloGavazzi_EM580:
|
||||
|
||||
.. *******************
|
||||
.. Carlo Gavazzi EM580
|
||||
.. *******************
|
||||
|
||||
Module implementing the Carlo Gavazzi EM580 power meter driver adapter via Modbus RTU (through SerialCommHub).
|
||||
This module also supports models without OCMF/Eichrecht support (e.g. EM300 series).
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The module consists of a single ``main`` implementation that serves the ``powermeter`` interface. Modbus access is done
|
||||
via the required ``serial_communication_hub`` interface.
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
- Live meter reads and ``powermeter`` publishing (interval configurable)
|
||||
- Resilient Modbus transport with retries and protocol-compliant write chunking
|
||||
|
||||
If supported by meter:
|
||||
- OCMF/Eichrecht transaction start/stop logic
|
||||
- Public key reading and publishing (hex)
|
||||
|
||||
Module Configuration
|
||||
====================
|
||||
|
||||
The module configuration parameters are defined in ``manifest.yaml``. A complete example configuration can be found at
|
||||
``config/bringup/config-bringup-CGEM580.yaml``.
|
||||
|
||||
Transaction flow (OCMF)
|
||||
=======================
|
||||
|
||||
Start transaction
|
||||
-----------------
|
||||
|
||||
At transaction start the module:
|
||||
|
||||
1. Ensures OCMF state is ``NOT_READY``
|
||||
2. Writes OCMF identification data, EVSE ID and tariff text (TT) (0-terminated, used bytes only)
|
||||
3. Writes session modality
|
||||
4. Sends the start command (``'B'``)
|
||||
|
||||
Stop transaction
|
||||
----------------
|
||||
|
||||
At transaction stop the module:
|
||||
|
||||
1. Sends the end command (``'E'``) for the tracked transaction
|
||||
2. Waits for OCMF state ``READY``
|
||||
3. Reads the OCMF file (size + content)
|
||||
4. Confirms the file read by setting state back to ``NOT_READY``
|
||||
|
||||
Notes / Limitations
|
||||
===================
|
||||
|
||||
- Modbus ``Write Multiple Registers`` requests are chunked to max 123 registers per request.
|
||||
- TT is a ``CHAR[252]`` field (126 words); overlong strings are warned and truncated.
|
||||
|
||||
Device identification code (register ``300012`` / ``000Bh``)
|
||||
----------------------------------------------------------
|
||||
At startup the driver reads the Carlo Gavazzi **Controls identification code** from Modbus register ``300012``
|
||||
(``000Bh``) to decide whether OCMF transactions are exposed.
|
||||
|
||||
The following identification codes are **explicitly supported** as **EM300/ET300 series** (live metering only;
|
||||
``start_transaction`` / ``stop_transaction`` return ``NOT_SUPPORTED``): **331**, **332**, **335**, **336**, **340**,
|
||||
**341**, **345**, **346**, **355**.
|
||||
|
||||
Any **other** identification code is treated as an OCMF-capable device (e.g. EM580 class): the full transaction flow
|
||||
applies. If a new meter without OCMF uses a code not listed above, the driver should be updated to recognise it;
|
||||
otherwise it may incorrectly attempt the OCMF path.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user