OCPP: support empty chargepoint id (#3875)

This commit is contained in:
Xantalor 2022-07-17 22:57:49 +02:00 • committed by GitHub
parent 53246cda4a
commit 5861a65446
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 2 deletions

View file

@ -82,8 +82,14 @@ func NewOCPPFromConfig(other map[string]interface{}) (api.Charger, error) {
// NewOCPP creates OCPP charger
func NewOCPP(id string, connector int, idtag string, hasMeter bool, meterInterval time.Duration, initialReset core.ResetType) (*OCPP, error) {
cp := ocpp.Instance().Register(id, hasMeter)
logstr := "-charger"
if id != "" {
logstr = fmt.Sprintf("-%s", id)
}
c := &OCPP{
log: util.NewLogger(fmt.Sprintf("ocpp-%s:%d", id, connector)),
log: util.NewLogger(fmt.Sprintf("ocpp%s:%d", logstr, connector)),
cp: cp,
id: id,
connector: connector,

View file

@ -56,7 +56,16 @@ func (cs *CS) NewChargePoint(chargePoint ocpp16.ChargePointConnection) {
defer cs.mu.Unlock()
if _, err := cs.chargepointByID(chargePoint.ID()); err != nil {
cs.log.ERROR.Println(err)
cs.log.WARN.Println(err)
cs.log.INFO.Printf("new chargepoint with ID (%s) detected, atempting to remap", chargePoint.ID())
if unknownIDCP, ok := cs.cps[""]; ok && unknownIDCP != nil {
cs.mu.Lock()
unknownIDCP.id = chargePoint.ID()
cs.cps[chargePoint.ID()] = unknownIDCP
delete(cs.cps, "") // remove unknownID key
cs.mu.Unlock()
}
}
}