Ocpp: test power and energy

This commit is contained in:
andig 2023-04-15 12:10:56 +02:00
parent 29dc7bd2f3
commit 8bd8c2dbcc
3 changed files with 19 additions and 8 deletions

View file

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

View file

@ -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)
}

View file

@ -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},