diff --git a/usecases/eg/lpc/events.go b/usecases/eg/lpc/events.go index ef2a89bb..bd5f3073 100644 --- a/usecases/eg/lpc/events.go +++ b/usecases/eg/lpc/events.go @@ -102,6 +102,23 @@ func (e *LPC) connected(entity spineapi.EntityRemoteInterface) { logging.Log().Debug(err) } } + + if electricalConnection, err := client.NewElectricalConnection(e.LocalEntity, entity); err == nil { + if !electricalConnection.HasSubscription() { + if _, err := electricalConnection.Subscribe(); err != nil { + logging.Log().Debug(err) + } + } + + // get characteristics + selector := &model.ElectricalConnectionCharacteristicListDataSelectorsType{ + CharacteristicContext: util.Ptr(model.ElectricalConnectionCharacteristicContextTypeEntity), + CharacteristicType: util.Ptr(e.characteristicType(entity)), + } + if _, err := electricalConnection.RequestCharacteristics(selector, nil); err != nil { + logging.Log().Debug(err) + } + } } // the load control limit description data was updated diff --git a/usecases/eg/lpc/testhelper_test.go b/usecases/eg/lpc/testhelper_test.go index b8531828..e784d330 100644 --- a/usecases/eg/lpc/testhelper_test.go +++ b/usecases/eg/lpc/testhelper_test.go @@ -63,6 +63,7 @@ func (s *EgLPCSuite) BeforeTest(suiteName, testName string) { mockRemoteFeature := spinemocks.NewFeatureRemoteInterface(s.T()) mockRemoteDevice.EXPECT().FeatureByEntityTypeAndRole(mock.Anything, mock.Anything, mock.Anything).Return(mockRemoteFeature).Maybe() mockRemoteDevice.EXPECT().Ski().Return(remoteSki).Maybe() + mockRemoteDevice.EXPECT().DeviceType().Return(util.Ptr(model.DeviceTypeTypeChargingStation)).Maybe() s.mockRemoteEntity.EXPECT().Device().Return(mockRemoteDevice).Maybe() s.mockRemoteEntity.EXPECT().EntityType().Return(mock.Anything).Maybe() entityAddress := &model.EntityAddressType{} diff --git a/usecases/eg/lpp/events.go b/usecases/eg/lpp/events.go index bb91cd9c..3a0c694d 100644 --- a/usecases/eg/lpp/events.go +++ b/usecases/eg/lpp/events.go @@ -103,6 +103,23 @@ func (e *LPP) connected(entity spineapi.EntityRemoteInterface) { logging.Log().Debug(err) } } + + if electricalConnection, err := client.NewElectricalConnection(e.LocalEntity, entity); err == nil { + if !electricalConnection.HasSubscription() { + if _, err := electricalConnection.Subscribe(); err != nil { + logging.Log().Debug(err) + } + } + + // get characteristics + selector := &model.ElectricalConnectionCharacteristicListDataSelectorsType{ + CharacteristicContext: util.Ptr(model.ElectricalConnectionCharacteristicContextTypeEntity), + CharacteristicType: util.Ptr(e.characteristicType(entity)), + } + if _, err := electricalConnection.RequestCharacteristics(selector, nil); err != nil { + logging.Log().Debug(err) + } + } } // the load control limit description data was updated diff --git a/usecases/eg/lpp/testhelper_test.go b/usecases/eg/lpp/testhelper_test.go index 2d3b1285..1513982a 100644 --- a/usecases/eg/lpp/testhelper_test.go +++ b/usecases/eg/lpp/testhelper_test.go @@ -63,6 +63,7 @@ func (s *EgLPPSuite) BeforeTest(suiteName, testName string) { mockRemoteFeature := spinemocks.NewFeatureRemoteInterface(s.T()) mockRemoteDevice.EXPECT().FeatureByEntityTypeAndRole(mock.Anything, mock.Anything, mock.Anything).Return(mockRemoteFeature).Maybe() mockRemoteDevice.EXPECT().Ski().Return(remoteSki).Maybe() + mockRemoteDevice.EXPECT().DeviceType().Return(util.Ptr(model.DeviceTypeTypeChargingStation)).Maybe() s.mockRemoteEntity.EXPECT().Device().Return(mockRemoteDevice).Maybe() s.mockRemoteEntity.EXPECT().EntityType().Return(mock.Anything).Maybe() entityAddress := &model.EntityAddressType{}