@nygma2004 - Here is the charging profile for Steve's flow, which charges at maximum possible;
{
"_msgid": "d7e2b9164bbbdff0",
"topic": "RemoteStartTransaction",
"payload": {
"command": "RemoteStartTransaction",
"data": {
"connectorId": 1,
"timestamp": "2025-05-14T11:49:39.079Z",
"idTag": "MYTAG",
"meterStart": 0
}
}
}
And this is the profile that I use to charge at a variable current (to match my solar surplus).
The initial profile sent to the charger sets the chargingProfilePurpose
to the TxDefaultProfile
{
"_msgid": "ba259d12d2062aa3",
"payload": {
"command": "SetChargingProfile",
"data": {
"connectorId": 1,
"csChargingProfiles": {
"chargingProfileId": 1,
"transactionId": 69357,
"stackLevel": 0,
"chargingProfilePurpose": "TxDefaultProfile",
"chargingProfileKind": "Relative",
"chargingSchedule": {
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 32,
"numberPhases": 1
}
]
}
}
}
},
"topic": "SetChargingProfile",
"_event": "node:2ee04367c8ee7e11"
}
...and all of the subsequent 15 second updated profiles changes the limit
amount and also the chargingProfilePurpose
to TxProfile
. This is to avoid the charger running through it's initialization each time I send a new profile, so the charging rate continues smoothly.
{
"_msgid": "ba259d12d2062aa3",
"payload": {
"command": "SetChargingProfile",
"data": {
"connectorId": 1,
"csChargingProfiles": {
"chargingProfileId": 1,
"transactionId": 69357,
"stackLevel": 0,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Relative",
"chargingSchedule": {
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 12,
"numberPhases": 1
}
]
}
}
}
},
"topic": "SetChargingProfile",
"_event": "node:2ee04367c8ee7e11"
}
Note also that a session transactionId
is required before submitting the profiles otherwise it will fail.
It's obtained by running a RemoteStartTransaction
first (posted above), which generates the transaction ID, which is saved to context.
I allow 20 seconds (as it doesn't arrive quickly!) using a delay node, then populate the profile by getting it from context thereafter.