@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.