3232import org .openhab .core .config .discovery .DiscoveryResultBuilder ;
3333import org .openhab .core .thing .ThingTypeUID ;
3434import org .openhab .core .thing .ThingUID ;
35+ import org .openhab .core .thing .binding .ThingHandler ;
3536import org .osgi .service .component .annotations .Component ;
3637import org .osgi .service .component .annotations .ServiceScope ;
3738import org .slf4j .Logger ;
@@ -56,9 +57,16 @@ public SedifDiscoveryService() {
5657 super (BridgeSedifWebHandler .class , SCAN_DURATION_IN_S );
5758 }
5859
59- public SedifDiscoveryService (BridgeSedifWebHandler controllerHandler ) {
60- this ();
61- setThingHandler (controllerHandler );
60+ @ Override
61+ public void setThingHandler (ThingHandler handler ) {
62+ super .setThingHandler (handler );
63+ thingHandler .addListener (this );
64+ }
65+
66+ @ Override
67+ public void deactivate () {
68+ super .deactivate ();
69+ thingHandler .removeListener (this );
6270 }
6371
6472 @ Override
@@ -68,14 +76,11 @@ public Set<ThingTypeUID> getSupportedThingTypes() {
6876
6977 @ Override
7078 protected void startBackgroundDiscovery () {
71- logger .debug ("Start Sedif device background discovery" );
72- thingHandler .addListener (this );
79+
7380 }
7481
7582 @ Override
7683 protected void stopBackgroundDiscovery () {
77- logger .debug ("Stop Sedif device background discovery" );
78- thingHandler .removeListener (this );
7984 }
8085
8186 @ Override
@@ -91,22 +96,17 @@ protected void startScan() {
9196 for (Contract contract : contracts .values ()) {
9297 detectNewWaterMeterFromContract (contract );
9398 }
94-
95- // Start the search for new devices
96- thingHandler .addListener (this );
9799 }
98100
99101 @ Override
100102 public synchronized void abortScan () {
101103 logger .debug ("Sedif discovery: Abort {}" , thingHandler .getThing ().getUID ());
102- thingHandler .removeListener (this );
103104 super .abortScan ();
104105 }
105106
106107 @ Override
107108 protected synchronized void stopScan () {
108109 logger .debug ("Sedif discovery: Stop {}" , thingHandler .getThing ().getUID ());
109- thingHandler .removeListener (this );
110110 super .stopScan ();
111111 }
112112
0 commit comments