Skip to content

Commit

Permalink
πŸ’„βœ¨ Manually specify and push charging profiles
Browse files Browse the repository at this point in the history
Update the node-red UI to allow the user to specify start and
end time and max current, and then send that to the station
through the CSMS.

High level flow:
- Created UI for start/end time and max current
- When changed, store them in the context
- Use injection to initialize them to standard values
- When button clicked, read values from the context, assemble
  into message and send it off

Testing done:
- Value was originally set to 10

```
2024-11-17 06:47:01.046160 [DEBG] iso15118_car    pybind11_init_everestpy(pybind11::module_&)::<lambda(const std::string&)> :: Decoded message (ns=Namespace.ISO_V2_MSG_DEF): {"V2G_Message":{"Header":{"SessionID":"C21CF353E7BDD35F"},"Body":{"ChargingStatusRes":{"ResponseCode":"OK","EVSEID":"DE*PNX*00001","SAScheduleTupleID":1,"EVSEMaxCurrent":{"Multiplier":-1,"Unit":"A","Value":100},"AC_EVSEStatus":{"NotificationMaxDelay":0,"EVSENotification":"None","RCD":false}}}}}
```

- Profile was received

```
2024-11-17 06:47:01.604088 [ERRO] ocpp:OCPP201    void ocpp::v201::ChargePoint::handle_set_charging_profile_req(ocpp::Call<ocpp::v201::SetChargingProfileRequest>) :: Received SetChargingProfileRequest: {
    "chargingProfile": {
        "chargingProfileKind": "Absolute",
        "chargingProfilePurpose": "ChargingStationMaxProfile",
        "chargingSchedule": [
            {
                "chargingRateUnit": "A",
                "chargingSchedulePeriod": [
                    {
                        "limit": 20.0,
                        "numberPhases": 3,
                        "startPeriod": 0
                    }
                ],
                "duration": 3564,
                "id": 0,
                "minChargingRate": 0.0,
                "startSchedule": "2024-11-17T06:03:36.694Z"
            }
        ],
        "id": 2000,
        "stackLevel": 0
    },
    "evseId": 0
}
with messageId: 4ce9af96-74a2-495d-8d46-1da729625cfc
2024-11-17 06:47:01.608717 [ERRO] ocpp:OCPP201    void ocpp::v201::ChargePoint::handle_set_charging_profile_req(ocpp::Call<ocpp::v201::SetChargingProfileRequest>) :: Accepting SetChargingProfileRequest
```

- charge status messages now used the new value

```
2024-11-17 06:47:01.677162 [DEBG] iso15118_car    pybind11_init_everestpy(pybind11::module_&)::<lambda(const std::string&)> :: Decoded message (ns=Namespace.ISO_V2_MSG_DEF): {"V2G_Message":{"Header":{"SessionID":"C21CF353E7BDD35F"},"Body":{"ChargingStatusRes":{"ResponseCode":"OK","EVSEID":"DE*PNX*00001","SAScheduleTupleID":1,"EVSEMaxCurrent":{"Multiplier":-1,"Unit":"A","Value":100},"MeterInfo":{"MeterID":"YETI_POWERMETER","MeterReading":4984},"AC_EVSEStatus":{"NotificationMaxDelay":0,"EVSENotification":"None","RCD":false}}}}}

2024-11-17 06:47:02.369101 [DEBG] iso15118_car    pybind11_init_everestpy(pybind11::module_&)::<lambda(const std::string&)> :: Decoded message (ns=Namespace.ISO_V2_MSG_DEF): {"V2G_Message":{"Header":{"SessionID":"C21CF353E7BDD35F"},"Body":{"ChargingStatusRes":{"ResponseCode":"OK","EVSEID":"DE*PNX*00001","SAScheduleTupleID":1,"EVSEMaxCurrent":{"Multiplier":-1,"Unit":"A","Value":100},"MeterInfo":{"MeterID":"YETI_POWERMETER","MeterReading":4986},"AC_EVSEStatus":{"NotificationMaxDelay":0,"EVSENotification":"None","RCD":false}}}}}

2024-11-17 06:47:03.010898 [DEBG] iso15118_car    pybind11_init_everestpy(pybind11::module_&)::<lambda(const std::string&)> :: Decoded message (ns=Namespace.ISO_V2_MSG_DEF): {"V2G_Message":{"Header":{"SessionID":"C21CF353E7BDD35F"},"Body":{"ChargingStatusRes":{"ResponseCode":"OK","EVSEID":"DE*PNX*00001","SAScheduleTupleID":1,"EVSEMaxCurrent":{"Multiplier":-1,"Unit":"A","Value":100},"AC_EVSEStatus":{"NotificationMaxDelay":0,"EVSENotification":"None","RCD":false}}}}}

2024-11-17 06:47:03.664962 [DEBG] iso15118_car    pybind11_init_everestpy(pybind11::module_&)::<lambda(const std::string&)> :: Decoded message (ns=Namespace.ISO_V2_MSG_DEF): {"V2G_Message":{"Header":{"SessionID":"C21CF353E7BDD35F"},"Body":{"ChargingStatusRes":{"ResponseCode":"OK","EVSEID":"DE*PNX*00001","SAScheduleTupleID":1,"EVSEMaxCurrent":{"Multiplier":-1,"Unit":"A","Value":200},"MeterInfo":{"MeterID":"YETI_POWERMETER","MeterReading":4988},"AC_EVSEStatus":{"NotificationMaxDelay":0,"EVSENotification":"None","RCD":false}}}}}
```

Signed-off-by: Shankari <[email protected]>
  • Loading branch information
Shankari committed Nov 17, 2024
1 parent a897c86 commit d559d43
Showing 1 changed file with 373 additions and 62 deletions.
Loading

0 comments on commit d559d43

Please sign in to comment.