diff --git a/charger/ocpp.go b/charger/ocpp.go index fe458c997..2a7f148a6 100644 --- a/charger/ocpp.go +++ b/charger/ocpp.go @@ -230,7 +230,7 @@ func NewOCPP(id string, connector int, idtag string, } // get initial meter values and configure sample rate - if c.hasMeasurement("Power.Active.Import") || c.hasMeasurement("Energy.Active.Import.Register") { + if c.hasMeasurement(types.MeasurandPowerActiveImport) || c.hasMeasurement(types.MeasurandEnergyActiveImportRegister) { ocpp.Instance().TriggerMeterValuesRequest(cp.ID(), cp.Connector()) if !noConfig && meterSampleInterval > meterInterval && meterInterval > 0 { diff --git a/charger/ocpp_test.go b/charger/ocpp_test.go index 6407136b6..aa9c096ad 100644 --- a/charger/ocpp_test.go +++ b/charger/ocpp_test.go @@ -26,7 +26,8 @@ func TestOcpp(t *testing.T) { type ocppTestSuite struct { suite.Suite - cp ocpp16.ChargePoint + clock *clock.Mock + cp ocpp16.ChargePoint } func (suite *ocppTestSuite) SetupSuite() { @@ -34,6 +35,7 @@ func (suite *ocppTestSuite) SetupSuite() { suite.NotNil(ocpp.Instance()) // setup cp + suite.clock = clock.NewMock() cp := ocpp16.NewChargePoint("test", nil, nil) // set a handler for all callback functions @@ -70,9 +72,10 @@ func (suite *ocppTestSuite) handleTrigger(msg remotetrigger.MessageTrigger) { case core.MeterValuesFeatureName: if res, err := suite.cp.MeterValues(1, []types.MeterValue{ { - Timestamp: types.NewDateTime(time.Now()), + Timestamp: types.NewDateTime(suite.clock.Now()), SampledValue: []types.SampledValue{ {Measurand: types.MeasurandPowerActiveImport, Value: "1000"}, + {Measurand: types.MeasurandEnergyActiveImportRegister, Value: "1.2", Unit: "kWh"}, }, }, }); err != nil { @@ -99,11 +102,19 @@ func (suite *ocppTestSuite) TestConnect() { return } - clock := clock.NewMock() - c.cp.TestClock(clock) - - clock.Add(ocppTestTimeout) + suite.clock.Add(ocppTestTimeout) + c.cp.TestClock(suite.clock) _, err = c.Status() suite.NoError(err) + + // power + f, err := c.currentPower() + suite.NoError(err) + suite.Equal(1e3, f) + + // energy + f, err = c.totalEnergy() + suite.NoError(err) + suite.Equal(1.2, f) } diff --git a/charger/ocpp_test_handler.go b/charger/ocpp_test_handler.go index 058e412c8..3481dc196 100644 --- a/charger/ocpp_test_handler.go +++ b/charger/ocpp_test_handler.go @@ -35,7 +35,7 @@ func (handler *ChargePointHandler) OnDataTransfer(request *core.DataTransferRequ func (handler *ChargePointHandler) OnGetConfiguration(request *core.GetConfigurationRequest) (confirmation *core.GetConfigurationConfirmation, err error) { fmt.Printf("%T %+v\n", request, request) one := "1" - meter := "Power.Active.Import" + meter := "Power.Active.Import,Energy.Active.Import.Register" return core.NewGetConfigurationConfirmation([]core.ConfigurationKey{ {Key: "AuthorizationKey"}, {Key: "NumberOfConnectors", Value: &one},