The thing handler will call the
- * {@link #initialize(ZigBeeThingHandler, Channel, ZigBeeCoordinatorHandler, IeeeAddress, int)} to initialise the
+ * {@link #initialize(ZigBeeBaseThingHandler, Channel, ZigBeeCoordinatorHandler, IeeeAddress, int)} to initialise the
* channel
* converter. This simply links the converter to the node endpoint.
*
The thing handler will call {@link #initializeDevice()} to initialise the device. This method may not be called
@@ -122,9 +122,9 @@ public abstract class ZigBeeBaseChannelConverter {
protected final int POLLING_PERIOD_HIGH = 60;
/**
- * The {@link ZigBeeThingHandler} to which this channel belongs.
+ * The {@link ZigBeeBaseThingHandler} to which this channel belongs.
*/
- protected ZigBeeThingHandler thing = null;
+ protected ZigBeeBaseThingHandler thing = null;
/**
* The {@link ZigBeeCoordinatorHandler} that controls the network
@@ -228,17 +228,18 @@ public boolean initializeDevice() {
public abstract Set getImplementedServerClusters();
/**
- * Initialise the converter. This is called by the {@link ZigBeeThingHandler} when the channel is created. The
+ * Initialise the converter. This is called by the {@link ZigBeeBaseThingHandler} when the channel is created.
+ * The
* converter should initialise any internal states, open any clusters, add reporting and binding that it needs to
* operate.
*
* A list of configuration parameters for the thing should be built and added to {@link #configOptions} based on the
* features the device supports.
*
- * @param thing the {@link ZigBeeThingHandler} the channel is part of
+ * @param thing the {@link ZigBeeBaseThingHandler} the channel is part of
* @return true if the converter was initialised successfully
*/
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
this.thing = thing;
return false;
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeThingTypeMatcher.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/discovery/ZigBeeThingTypeMatcher.java
similarity index 99%
rename from org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeThingTypeMatcher.java
rename to org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/discovery/ZigBeeThingTypeMatcher.java
index ecfbf2101..bb57bb7e9 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeThingTypeMatcher.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/discovery/ZigBeeThingTypeMatcher.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.zigbee.internal;
+package org.openhab.binding.zigbee.discovery;
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipant.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipant.java
index 2b4fff52e..222d29b78 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipant.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipant.java
@@ -21,7 +21,7 @@
import org.openhab.core.thing.ThingTypeUID;
import org.openhab.core.thing.ThingUID;
import org.openhab.binding.zigbee.discovery.ZigBeeDiscoveryParticipant;
-import org.openhab.binding.zigbee.internal.ZigBeeThingTypeMatcher;
+import org.openhab.binding.zigbee.discovery.ZigBeeThingTypeMatcher;
import org.osgi.service.component.annotations.Component;
import com.zsmartsystems.zigbee.ZigBeeNode;
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeThingHandler.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeBaseThingHandler.java
old mode 100755
new mode 100644
similarity index 72%
rename from org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeThingHandler.java
rename to org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeBaseThingHandler.java
index 3fe39fef1..56995e64d
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeThingHandler.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeBaseThingHandler.java
@@ -13,9 +13,7 @@
package org.openhab.binding.zigbee.handler;
import java.net.URI;
-import java.net.URISyntaxException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -33,22 +31,17 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
import org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory;
-import org.openhab.binding.zigbee.discovery.ZigBeeNodePropertyDiscoverer;
-import org.openhab.binding.zigbee.internal.ZigBeeConfigDescriptionParameters;
import org.openhab.binding.zigbee.internal.ZigBeeDeviceConfigHandler;
-import org.openhab.binding.zigbee.internal.converter.config.ZclClusterConfigFactory;
import org.openhab.binding.zigbee.internal.converter.config.ZclClusterConfigHandler;
import org.openhab.binding.zigbee.internal.converter.config.ZclReportingConfig;
import org.openhab.core.common.ThreadPoolManager;
import org.openhab.core.config.core.ConfigDescription;
import org.openhab.core.config.core.ConfigDescriptionBuilder;
-import org.openhab.core.config.core.ConfigDescriptionParameter;
import org.openhab.core.config.core.ConfigDescriptionProvider;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.thing.Channel;
@@ -58,7 +51,6 @@
import org.openhab.core.thing.ThingStatusDetail;
import org.openhab.core.thing.ThingStatusInfo;
import org.openhab.core.thing.binding.BaseThingHandler;
-import org.openhab.core.thing.binding.builder.ThingBuilder;
import org.openhab.core.thing.binding.firmware.Firmware;
import org.openhab.core.thing.binding.firmware.FirmwareUpdateHandler;
import org.openhab.core.thing.binding.firmware.ProgressCallback;
@@ -77,7 +69,6 @@
import com.zsmartsystems.zigbee.ZigBeeNetworkNodeListener;
import com.zsmartsystems.zigbee.ZigBeeNode;
import com.zsmartsystems.zigbee.ZigBeeNodeStatus;
-import com.zsmartsystems.zigbee.ZigBeeProfileType;
import com.zsmartsystems.zigbee.ZigBeeStatus;
import com.zsmartsystems.zigbee.app.otaserver.ZclOtaUpgradeServer;
import com.zsmartsystems.zigbee.app.otaserver.ZigBeeOtaFile;
@@ -93,41 +84,41 @@
* @author Chris Jackson - Initial Contribution
* @author Thomas Höfer - Injected ZigBeeChannelConverterFactory via constructor
*/
-public class ZigBeeThingHandler extends BaseThingHandler implements ZigBeeNetworkNodeListener, ZigBeeAnnounceListener,
- FirmwareUpdateHandler, ConfigDescriptionProvider, DynamicStateDescriptionProvider {
+public abstract class ZigBeeBaseThingHandler extends BaseThingHandler implements ZigBeeNetworkNodeListener,
+ ZigBeeAnnounceListener, FirmwareUpdateHandler, ConfigDescriptionProvider, DynamicStateDescriptionProvider {
/**
* Our logger
*/
- private final Logger logger = LoggerFactory.getLogger(ZigBeeThingHandler.class);
+ private final Logger logger = LoggerFactory.getLogger(ZigBeeBaseThingHandler.class);
/**
* The binding's {@link DynamicStateDescriptionProvider}
*/
- private final Map stateDescriptions = new ConcurrentHashMap<>();
+ protected final Map stateDescriptions = new ConcurrentHashMap<>();
/**
* The map of all the channels defined for this thing
*/
- private final Map channels = new HashMap<>();
+ protected final Map channels = new HashMap<>();
/**
* A list of all the configuration handlers at node level.
*/
- private final List configHandlers = new ArrayList<>();
+ protected final List configHandlers = new ArrayList<>();
/**
* The configuration description if dynamically generated
*/
- private ConfigDescription configDescription;
+ protected ConfigDescription configDescription;
/**
* The {@link IeeeAddress} for this device
*/
- private IeeeAddress nodeIeeeAddress = null;
+ protected IeeeAddress nodeIeeeAddress = null;
- private ZigBeeCoordinatorHandler coordinatorHandler;
+ protected ZigBeeCoordinatorHandler coordinatorHandler;
- private boolean nodeInitialised = false;
+ protected boolean nodeInitialised = false;
private final Object pollingSync = new Object();
private ScheduledFuture> pollingJob = null;
@@ -152,7 +143,7 @@ public class ZigBeeThingHandler extends BaseThingHandler implements ZigBeeNetwor
/**
* The factory to create the converters for the different channels.
*/
- private final ZigBeeChannelConverterFactory channelFactory;
+ protected final ZigBeeChannelConverterFactory channelFactory;
/**
* The service with timers to see if the device is still alive (ONLINE)
@@ -167,7 +158,7 @@ public class ZigBeeThingHandler extends BaseThingHandler implements ZigBeeNetwor
* @param zigbeeIsAliveTracker the tracker which sets the {@link Thing} to OFFLINE after a period without
* communication
*/
- public ZigBeeThingHandler(Thing zigbeeDevice, ZigBeeChannelConverterFactory channelFactory,
+ public ZigBeeBaseThingHandler(Thing zigbeeDevice, ZigBeeChannelConverterFactory channelFactory,
ZigBeeIsAliveTracker zigbeeIsAliveTracker) {
super(zigbeeDevice);
this.channelFactory = channelFactory;
@@ -186,7 +177,7 @@ public void initialize() {
}
nodeIeeeAddress = new IeeeAddress(configAddress);
- // we do not know the current state of the device until our scheduled job has initialized the device
+ // We do not know the current state of the device until our scheduled job has initialized the device
updateStatus(ThingStatus.UNKNOWN);
if (getBridge() != null) {
@@ -224,212 +215,69 @@ private void initialiseZigBeeNode() {
scheduler.schedule(new Callable() {
@Override
public Void call() throws Exception {
- doNodeInitialisation();
+ ZigBeeNode node = coordinatorHandler.getNode(nodeIeeeAddress);
+
+ doNodeInitialisation(node);
+ finalizeNodeInitialisation(node);
return null;
}
}, 10, TimeUnit.MILLISECONDS);
}
- private synchronized void doNodeInitialisation() {
- if (nodeInitialised) {
- return;
- }
-
- ZigBeeNode node = coordinatorHandler.getNode(nodeIeeeAddress);
- if (node == null) {
- logger.debug("{}: Node not found - deferring handler initialisation", nodeIeeeAddress);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.GONE, ZigBeeBindingConstants.OFFLINE_NODE_NOT_FOUND);
- return;
- }
-
- // Check if discovery is complete and we know all the services the node supports
- if (!node.isDiscovered()) {
- logger.debug("{}: Node has not finished discovery", nodeIeeeAddress);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE,
- ZigBeeBindingConstants.OFFLINE_DISCOVERY_INCOMPLETE);
- return;
- }
-
- logger.debug("{}: Start initialising ZigBee Thing handler", nodeIeeeAddress);
-
- // Update the general properties
- ZigBeeNodePropertyDiscoverer propertyDiscoverer = new ZigBeeNodePropertyDiscoverer();
- propertyDiscoverer.setProperties(getThing().getProperties());
- Map newProperties = propertyDiscoverer.getProperties(node);
- updateProperties(newProperties);
-
- // Clear the channels in case we are reinitialising
- channels.clear();
-
- // Get the configuration handlers applicable for the thing
- ZclClusterConfigFactory configFactory = new ZclClusterConfigFactory();
- for (ZigBeeEndpoint endpoint : coordinatorHandler.getNodeEndpoints(nodeIeeeAddress)) {
- List handlers = configFactory.getConfigHandlers(endpoint);
- configHandlers.addAll(handlers);
- }
-
- List nodeChannels;
-
- List parameters = new ArrayList<>(
- ZigBeeConfigDescriptionParameters.getParameters());
-
- if (getThing().getThingTypeUID().equals(ZigBeeBindingConstants.THING_TYPE_GENERIC_DEVICE)) {
- // Dynamically create the channels from the device
- // Process all the endpoints for this device and add all channels as derived from the supported clusters
- nodeChannels = new ArrayList<>();
- for (ZigBeeEndpoint endpoint : coordinatorHandler.getNodeEndpoints(nodeIeeeAddress)) {
- logger.debug("{}: Checking endpoint {} channels", nodeIeeeAddress, endpoint.getEndpointId());
- nodeChannels.addAll(channelFactory.getChannels(getThing().getUID(), endpoint));
- }
- logger.debug("{}: Dynamically created {} channels", nodeIeeeAddress, nodeChannels.size());
-
- for (ZclClusterConfigHandler handler : configHandlers) {
- parameters.addAll(handler.getConfiguration());
- }
- } else {
- // We already have the correct thing type so just use the channels
- nodeChannels = getThing().getChannels();
- logger.debug("{}: Using static definition with existing {} channels", nodeIeeeAddress, nodeChannels.size());
- }
-
- try {
- configDescription = ConfigDescriptionBuilder.create(new URI("thing:" + getThing().getUID()))
- .withParameters(parameters).build();
- } catch (IllegalArgumentException | URISyntaxException e) {
- logger.debug("Error creating URI for thing description:", e);
- }
-
- // Add statically defined endpoints and clusters
- for (Channel channel : nodeChannels) {
- // Process the channel properties
- Map properties = channel.getProperties();
- int endpointId = Integer.parseInt(properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_ENDPOINT));
- ZigBeeEndpoint endpoint = node.getEndpoint(endpointId);
- if (endpoint == null) {
- int profileId;
- if (properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_PROFILEID) == null) {
- profileId = ZigBeeProfileType.ZIGBEE_HOME_AUTOMATION.getKey();
- } else {
- profileId = Integer.parseInt(properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_PROFILEID));
- }
+ /**
+ * Called to allow the handler to perform any initialisation.
+ * This is called within a thread so there is no time requirement to return quickly.
+ *
+ * @param node the {@link ZigBeeNode} of the device linked to the thing
+ */
+ abstract protected void doNodeInitialisation(ZigBeeNode node);
- logger.debug("{}: Creating statically defined device endpoint {} with profile {}", nodeIeeeAddress,
- endpointId, ZigBeeProfileType.getByValue(profileId));
- endpoint = new ZigBeeEndpoint(node, endpointId);
- endpoint.setProfileId(profileId);
- node.addEndpoint(endpoint);
- }
+ private void finalizeNodeInitialisation(ZigBeeNode node) {
+ pollingPeriod = POLLING_PERIOD_MAX;
- List staticClusters;
- boolean modified = false;
- staticClusters = processClusterList(endpoint.getInputClusterIds(),
- properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_INPUTCLUSTERS));
- if (!staticClusters.isEmpty()) {
- logger.debug("{}: Forcing endpoint {} input clusters {}", nodeIeeeAddress, endpointId, staticClusters);
- endpoint.setInputClusterIds(staticClusters);
- modified = true;
+ // Create the channel map to simplify processing incoming events
+ for (Channel channel : getThing().getChannels()) {
+ ZigBeeBaseChannelConverter handler = createZigBeeChannelConverter(channel);
+ if (handler == null) {
+ logger.debug("{}: No handler found for {}", nodeIeeeAddress, channel.getUID());
+ continue;
}
- staticClusters = processClusterList(endpoint.getOutputClusterIds(),
- properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_OUTPUTCLUSTERS));
- if (!staticClusters.isEmpty()) {
- logger.debug("{}: Forcing endpoint {} output clusters {}", nodeIeeeAddress, endpointId, staticClusters);
- endpoint.setOutputClusterIds(staticClusters);
- modified = true;
+ if (handler.initializeConverter(this) == false) {
+ logger.info("{}: Channel {} failed to initialise converter", nodeIeeeAddress, channel.getUID());
+ continue;
}
- if (modified) {
- logger.debug("{}: Updating endpoint {}", nodeIeeeAddress, endpointId);
- node.updateEndpoint(endpoint);
+ if (channel.getConfiguration().get(ZclReportingConfig.CONFIG_POLLING) == null) {
+ channel.getConfiguration().put(ZclReportingConfig.CONFIG_POLLING, handler.getPollingPeriod());
}
- }
- try {
- pollingPeriod = POLLING_PERIOD_MAX;
+ handler.handleRefresh();
- // Check if the channels we've discovered are the same
- List oldChannelUidList = new ArrayList();
- for (Channel channel : getThing().getChannels()) {
- oldChannelUidList.add(channel.getUID());
- }
- List newChannelUidList = new ArrayList();
- for (Channel channel : nodeChannels) {
- newChannelUidList.add(channel.getUID());
-
- // Add the configuration from the existing channel into the new channel
- Channel currentChannel = getThing().getChannel(channel.getUID().toString());
- if (currentChannel != null) {
- channel.getConfiguration().setProperties(currentChannel.getConfiguration().getProperties());
- }
- }
+ handler.updateConfiguration(new Configuration(), channel.getConfiguration().getProperties());
- if (!newChannelUidList.equals(oldChannelUidList)) {
- logger.debug("{}: Updating thing definition as channels have changed from {} to {}", nodeIeeeAddress,
- oldChannelUidList, newChannelUidList);
- ThingBuilder thingBuilder = editThing();
- thingBuilder.withChannels(nodeChannels).withConfiguration(getConfig());
- updateThing(thingBuilder.build());
- }
+ channels.put(channel.getUID(), handler);
- boolean doInitializeDevice = !Boolean
- .parseBoolean(thing.getProperties().get(ZigBeeBindingConstants.THING_PROPERTY_DEVICE_INITIALIZED));
- if (doInitializeDevice) {
- initializeDevice();
- } else {
- logger.debug("{}: Device initialization will be skipped as the device is already initialized",
- nodeIeeeAddress);
+ if (handler.getPollingPeriod() < pollingPeriod) {
+ pollingPeriod = handler.getPollingPeriod();
}
- // Create the channel map to simplify processing incoming events
- for (Channel channel : getThing().getChannels()) {
- ZigBeeBaseChannelConverter handler = createZigBeeChannelConverter(channel);
- if (handler == null) {
- logger.debug("{}: No handler found for {}", nodeIeeeAddress, channel.getUID());
- continue;
- }
-
- if (handler.initializeConverter(this) == false) {
- logger.info("{}: Channel {} failed to initialise converter", nodeIeeeAddress, channel.getUID());
- continue;
- }
-
- if (channel.getConfiguration().get(ZclReportingConfig.CONFIG_POLLING) == null) {
- channel.getConfiguration().put(ZclReportingConfig.CONFIG_POLLING, handler.getPollingPeriod());
- }
-
- handler.handleRefresh();
-
- // TODO: Update the channel configuration from the device if method available
- handler.updateConfiguration(new Configuration(), channel.getConfiguration().getProperties());
-
- channels.put(channel.getUID(), handler);
-
- if (handler.getPollingPeriod() < pollingPeriod) {
- pollingPeriod = handler.getPollingPeriod();
- }
-
- // Provide the state descriptions if the channel provides them
- StateDescription stateDescription = handler.getStateDescription();
- if (stateDescription != null) {
- stateDescriptions.put(channel.getUID(), stateDescription);
- }
+ // Provide the state descriptions if the channel provides them
+ StateDescription stateDescription = handler.getStateDescription();
+ if (stateDescription != null) {
+ stateDescriptions.put(channel.getUID(), stateDescription);
}
- } catch (Exception e) {
- logger.error("{}: Exception creating channels ", nodeIeeeAddress, e);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.HANDLER_INITIALIZING_ERROR);
- return;
}
- logger.debug("{}: Channel initialisation complete", nodeIeeeAddress);
if (channels.isEmpty()) {
- logger.warn("{}: No supported clusters found", nodeIeeeAddress);
+ logger.warn("{}: No supported channels found", nodeIeeeAddress);
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.HANDLER_INITIALIZING_ERROR,
- "No supported clusters found");
+ "No supported channels found");
return;
}
// If this is an RFD then we reduce polling to the max to avoid wasting battery
- if (node.isReducedFuntionDevice()) {
+ if (node.isReducedFunctionDevice()) {
pollingPeriod = POLLING_PERIOD_DEFAULT;
logger.debug("{}: Thing is RFD, using long poll period of {}sec", nodeIeeeAddress, pollingPeriod);
}
@@ -461,7 +309,7 @@ private synchronized void doNodeInitialisation() {
coordinatorHandler.serializeNetwork(node.getIeeeAddress());
}
- private int getExpectedUpdatePeriod(Map channels) {
+ protected int getExpectedUpdatePeriod(Map channels) {
Set intervals = new HashSet<>();
for (ZigBeeBaseChannelConverter channelConverter : channels.values()) {
intervals.add(channelConverter.getPollingPeriod());
@@ -497,7 +345,7 @@ public void alive() {
updateStatus(ThingStatus.ONLINE);
}
- private synchronized void initializeDevice() {
+ protected synchronized void initializeDevice() {
logger.debug("{}: Initializing device", nodeIeeeAddress);
getThing().setProperty(ZigBeeBindingConstants.THING_PROPERTY_DEVICE_INITIALIZED, Boolean.FALSE.toString());
@@ -521,33 +369,13 @@ private synchronized void initializeDevice() {
channelInitializationSuccessful ? Boolean.TRUE.toString() : Boolean.FALSE.toString());
}
- private ZigBeeBaseChannelConverter createZigBeeChannelConverter(Channel channel) {
+ protected ZigBeeBaseChannelConverter createZigBeeChannelConverter(Channel channel) {
ZigBeeNode node = coordinatorHandler.getNode(nodeIeeeAddress);
Map properties = channel.getProperties();
return channelFactory.createConverter(channel, coordinatorHandler, node.getIeeeAddress(),
Integer.parseInt(properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_ENDPOINT)));
}
- /**
- * Process a static cluster list and add it to the existing list
- *
- * @param initialClusters a collection of existing clusters
- * @param newClusters a string containing a comma separated list of clusters
- * @return a list of clusters if the list is updated, or an empty list if it has not changed
- */
- private List processClusterList(Collection initialClusters, String newClusters) {
- if (newClusters == null || newClusters.length() == 0) {
- return Collections.emptyList();
- }
-
- Set clusters = new HashSet();
- clusters.addAll(initialClusters);
- return clusters.addAll(
- Arrays.asList(newClusters.split(",")).stream().map(s -> Integer.valueOf(s)).collect(Collectors.toSet()))
- ? new ArrayList(clusters)
- : Collections.emptyList();
- }
-
@Override
public void dispose() {
logger.debug("{}: Handler dispose.", nodeIeeeAddress);
@@ -572,7 +400,7 @@ public void dispose() {
nodeInitialised = false;
}
- private void stopPolling() {
+ protected void stopPolling() {
synchronized (pollingSync) {
if (pollingJob != null) {
pollingJob.cancel(true);
@@ -585,7 +413,7 @@ private void stopPolling() {
/**
* Start polling channel updates
*/
- private void startPolling() {
+ protected void startPolling() {
Runnable pollingRunnable = new Runnable() {
@Override
public void run() {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeGenericThingHandler.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeGenericThingHandler.java
new file mode 100755
index 000000000..cd57fd4cc
--- /dev/null
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeGenericThingHandler.java
@@ -0,0 +1,256 @@
+/**
+ * Copyright (c) 2010-2021 Contributors to the openHAB project
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.openhab.binding.zigbee.handler;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory;
+import org.openhab.binding.zigbee.discovery.ZigBeeNodePropertyDiscoverer;
+import org.openhab.binding.zigbee.internal.ZigBeeConfigDescriptionParameters;
+import org.openhab.binding.zigbee.internal.converter.config.ZclClusterConfigFactory;
+import org.openhab.binding.zigbee.internal.converter.config.ZclClusterConfigHandler;
+import org.openhab.core.config.core.ConfigDescriptionBuilder;
+import org.openhab.core.config.core.ConfigDescriptionParameter;
+import org.openhab.core.config.core.ConfigDescriptionProvider;
+import org.openhab.core.thing.Channel;
+import org.openhab.core.thing.ChannelUID;
+import org.openhab.core.thing.Thing;
+import org.openhab.core.thing.ThingStatus;
+import org.openhab.core.thing.ThingStatusDetail;
+import org.openhab.core.thing.binding.builder.ThingBuilder;
+import org.openhab.core.thing.binding.firmware.FirmwareUpdateHandler;
+import org.openhab.core.thing.type.DynamicStateDescriptionProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.zsmartsystems.zigbee.ZigBeeAnnounceListener;
+import com.zsmartsystems.zigbee.ZigBeeEndpoint;
+import com.zsmartsystems.zigbee.ZigBeeNetworkNodeListener;
+import com.zsmartsystems.zigbee.ZigBeeNode;
+import com.zsmartsystems.zigbee.ZigBeeProfileType;
+
+/**
+ * The standard ZigBee thing handler.
+ *
+ * @author Chris Jackson - Initial Contribution
+ */
+public class ZigBeeGenericThingHandler extends ZigBeeBaseThingHandler implements ZigBeeNetworkNodeListener,
+ ZigBeeAnnounceListener, FirmwareUpdateHandler, ConfigDescriptionProvider, DynamicStateDescriptionProvider {
+ /**
+ * Our logger
+ */
+ private final Logger logger = LoggerFactory.getLogger(ZigBeeGenericThingHandler.class);
+
+ private boolean nodeInitialised = false;
+
+ /**
+ * Creates a ZigBee thing.
+ *
+ * @param zigbeeDevice the {@link Thing}
+ * @param channelFactory the {@link ZigBeeChannelConverterFactory} to be used to create the channels
+ * @param zigbeeIsAliveTracker the tracker which sets the {@link Thing} to OFFLINE after a period without
+ * communication
+ */
+ public ZigBeeGenericThingHandler(Thing zigbeeDevice, ZigBeeChannelConverterFactory channelFactory,
+ ZigBeeIsAliveTracker zigbeeIsAliveTracker) {
+ super(zigbeeDevice, channelFactory, zigbeeIsAliveTracker);
+ }
+
+ @Override
+ protected synchronized void doNodeInitialisation(ZigBeeNode node) {
+ if (nodeInitialised) {
+ return;
+ }
+
+ if (node == null) {
+ logger.debug("{}: Node not found - deferring handler initialisation", nodeIeeeAddress);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.GONE, ZigBeeBindingConstants.OFFLINE_NODE_NOT_FOUND);
+ return;
+ }
+
+ // Check if discovery is complete and we know all the services the node supports
+ if (!node.isDiscovered()) {
+ logger.debug("{}: Node has not finished discovery", nodeIeeeAddress);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE,
+ ZigBeeBindingConstants.OFFLINE_DISCOVERY_INCOMPLETE);
+ return;
+ }
+
+ logger.debug("{}: Start initialising ZigBee Thing handler", nodeIeeeAddress);
+
+ // Update the general properties
+ ZigBeeNodePropertyDiscoverer propertyDiscoverer = new ZigBeeNodePropertyDiscoverer();
+ propertyDiscoverer.setProperties(getThing().getProperties());
+ Map newProperties = propertyDiscoverer.getProperties(node);
+ updateProperties(newProperties);
+
+ // Clear the channels in case we are reinitialising
+ channels.clear();
+
+ // Get the configuration handlers applicable for the thing
+ ZclClusterConfigFactory configFactory = new ZclClusterConfigFactory();
+ for (ZigBeeEndpoint endpoint : coordinatorHandler.getNodeEndpoints(nodeIeeeAddress)) {
+ List handlers = configFactory.getConfigHandlers(endpoint);
+ configHandlers.addAll(handlers);
+ }
+
+ List nodeChannels;
+
+ List parameters = new ArrayList<>(
+ ZigBeeConfigDescriptionParameters.getParameters());
+
+ if (getThing().getThingTypeUID().equals(ZigBeeBindingConstants.THING_TYPE_GENERIC_DEVICE)) {
+ // Dynamically create the channels from the device
+ // Process all the endpoints for this device and add all channels as derived from the supported clusters
+ nodeChannels = new ArrayList<>();
+ for (ZigBeeEndpoint endpoint : coordinatorHandler.getNodeEndpoints(nodeIeeeAddress)) {
+ logger.debug("{}: Checking endpoint {} channels", nodeIeeeAddress, endpoint.getEndpointId());
+ nodeChannels.addAll(channelFactory.getChannels(getThing().getUID(), endpoint));
+ }
+ logger.debug("{}: Dynamically created {} channels", nodeIeeeAddress, nodeChannels.size());
+
+ for (ZclClusterConfigHandler handler : configHandlers) {
+ parameters.addAll(handler.getConfiguration());
+ }
+ } else {
+ // We already have the correct thing type so just use the channels
+ nodeChannels = getThing().getChannels();
+ logger.debug("{}: Using static definition with existing {} channels", nodeIeeeAddress, nodeChannels.size());
+ }
+
+ try {
+ configDescription = ConfigDescriptionBuilder.create(new URI("thing:" + getThing().getUID()))
+ .withParameters(parameters).build();
+ } catch (IllegalArgumentException | URISyntaxException e) {
+ logger.debug("Error creating URI for thing description:", e);
+ }
+
+ // Add statically defined endpoints and clusters
+ for (Channel channel : nodeChannels) {
+ // Process the channel properties
+ Map properties = channel.getProperties();
+ int endpointId = Integer.parseInt(properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_ENDPOINT));
+ ZigBeeEndpoint endpoint = node.getEndpoint(endpointId);
+ if (endpoint == null) {
+ int profileId;
+ if (properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_PROFILEID) == null) {
+ profileId = ZigBeeProfileType.ZIGBEE_HOME_AUTOMATION.getKey();
+ } else {
+ profileId = Integer.parseInt(properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_PROFILEID));
+ }
+
+ logger.debug("{}: Creating statically defined device endpoint {} with profile {}", nodeIeeeAddress,
+ endpointId, ZigBeeProfileType.getByValue(profileId));
+ endpoint = new ZigBeeEndpoint(node, endpointId);
+ endpoint.setProfileId(profileId);
+ node.addEndpoint(endpoint);
+ }
+
+ List staticClusters;
+ boolean modified = false;
+ staticClusters = processClusterList(endpoint.getInputClusterIds(),
+ properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_INPUTCLUSTERS));
+ if (!staticClusters.isEmpty()) {
+ logger.debug("{}: Forcing endpoint {} input clusters {}", nodeIeeeAddress, endpointId, staticClusters);
+ endpoint.setInputClusterIds(staticClusters);
+ modified = true;
+ }
+
+ staticClusters = processClusterList(endpoint.getOutputClusterIds(),
+ properties.get(ZigBeeBindingConstants.CHANNEL_PROPERTY_OUTPUTCLUSTERS));
+ if (!staticClusters.isEmpty()) {
+ logger.debug("{}: Forcing endpoint {} output clusters {}", nodeIeeeAddress, endpointId, staticClusters);
+ endpoint.setOutputClusterIds(staticClusters);
+ modified = true;
+ }
+
+ if (modified) {
+ logger.debug("{}: Updating endpoint {}", nodeIeeeAddress, endpointId);
+ node.updateEndpoint(endpoint);
+ }
+ }
+
+ try {
+ // Check if the channels we've discovered are the same
+ List oldChannelUidList = new ArrayList();
+ for (Channel channel : getThing().getChannels()) {
+ oldChannelUidList.add(channel.getUID());
+ }
+ List newChannelUidList = new ArrayList();
+ for (Channel channel : nodeChannels) {
+ newChannelUidList.add(channel.getUID());
+
+ // Add the configuration from the existing channel into the new channel
+ Channel currentChannel = getThing().getChannel(channel.getUID().toString());
+ if (currentChannel != null) {
+ channel.getConfiguration().setProperties(currentChannel.getConfiguration().getProperties());
+ }
+ }
+
+ if (!newChannelUidList.equals(oldChannelUidList)) {
+ logger.debug("{}: Updating thing definition as channels have changed from {} to {}", nodeIeeeAddress,
+ oldChannelUidList, newChannelUidList);
+ ThingBuilder thingBuilder = editThing();
+ thingBuilder.withChannels(nodeChannels).withConfiguration(getConfig());
+ updateThing(thingBuilder.build());
+ }
+
+ boolean doInitializeDevice = !Boolean
+ .parseBoolean(thing.getProperties().get(ZigBeeBindingConstants.THING_PROPERTY_DEVICE_INITIALIZED));
+ if (doInitializeDevice) {
+ initializeDevice();
+ } else {
+ logger.debug("{}: Device initialization will be skipped as the device is already initialized",
+ nodeIeeeAddress);
+ }
+ } catch (Exception e) {
+ logger.error("{}: Exception creating channels ", nodeIeeeAddress, e);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.HANDLER_INITIALIZING_ERROR);
+ return;
+ }
+
+ logger.debug("{}: Channel initialisation complete", nodeIeeeAddress);
+ }
+
+ /**
+ * Process a static cluster list and add it to the existing list
+ *
+ * @param initialClusters a collection of existing clusters
+ * @param newClusters a string containing a comma separated list of clusters
+ * @return a list of clusters if the list is updated, or an empty list if it has not changed
+ */
+ private List processClusterList(Collection initialClusters, String newClusters) {
+ if (newClusters == null || newClusters.length() == 0) {
+ return Collections.emptyList();
+ }
+
+ Set clusters = new HashSet();
+ clusters.addAll(initialClusters);
+ return clusters.addAll(
+ Arrays.asList(newClusters.split(",")).stream().map(s -> Integer.valueOf(s)).collect(Collectors.toSet()))
+ ? new ArrayList(clusters)
+ : Collections.emptyList();
+ }
+
+}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeIsAliveTracker.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeIsAliveTracker.java
index ecaf4c4cc..b6b977b40 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeIsAliveTracker.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/handler/ZigBeeIsAliveTracker.java
@@ -41,30 +41,30 @@ public class ZigBeeIsAliveTracker {
private final Logger logger = LoggerFactory.getLogger(ZigBeeIsAliveTracker.class);
- private Map handlerIntervalMapping = new ConcurrentHashMap<>();
- private Map> scheduledTasks = new ConcurrentHashMap<>();
- private Set lastChance = new HashSet<>();
+ private Map handlerIntervalMapping = new ConcurrentHashMap<>();
+ private Map> scheduledTasks = new ConcurrentHashMap<>();
+ private Set lastChance = new HashSet<>();
protected final ScheduledExecutorService scheduler = ThreadPoolManager.getScheduledPool("ZigBeeIsAliveTracker");
/**
- * Adds a mapping from {@link ZigBeeThingHandler} to the interval in which it should have communicated
+ * Adds a mapping from {@link ZigBeeBaseThingHandler} to the interval in which it should have communicated
*
- * @param zigBeeThingHandler the {@link ZigBeeThingHandler}
+ * @param zigBeeThingHandler the {@link ZigBeeBaseThingHandler}
* @param expectedUpdateInterval the interval in which the device should have communicated with us
*/
- public void addHandler(ZigBeeThingHandler zigBeeThingHandler, int expectedUpdateInterval) {
+ public void addHandler(ZigBeeBaseThingHandler zigBeeThingHandler, int expectedUpdateInterval) {
logger.debug("IsAlive Tracker added for thingUID={}", zigBeeThingHandler.getThing().getUID());
handlerIntervalMapping.put(zigBeeThingHandler, expectedUpdateInterval);
resetTimer(zigBeeThingHandler);
}
/**
- * Removes a {@link ZigBeeThingHandler} from the map so it is not tracked anymore
+ * Removes a {@link ZigBeeBaseThingHandler} from the map so it is not tracked anymore
*
- * @param zigBeeThingHandler the {@link ZigBeeThingHandler}
+ * @param zigBeeThingHandler the {@link ZigBeeBaseThingHandler}
*/
- public void removeHandler(ZigBeeThingHandler zigBeeThingHandler) {
+ public void removeHandler(ZigBeeBaseThingHandler zigBeeThingHandler) {
logger.debug("IsAlive Tracker removed for thingUID={}", zigBeeThingHandler.getThing().getUID());
cancelTask(zigBeeThingHandler);
lastChance.remove(zigBeeThingHandler);
@@ -72,11 +72,12 @@ public void removeHandler(ZigBeeThingHandler zigBeeThingHandler) {
}
/**
- * Reset the timer for a {@link ZigBeeThingHandler}, i.e. expressing that some communication has just occurred
+ * Reset the timer for a {@link ZigBeeBaseThingHandler}, i.e. expressing that some communication has just
+ * occurred
*
- * @param zigBeeThingHandler the {@link ZigBeeThingHandler}
+ * @param zigBeeThingHandler the {@link ZigBeeBaseThingHandler}
*/
- public synchronized void resetTimer(ZigBeeThingHandler zigBeeThingHandler) {
+ public synchronized void resetTimer(ZigBeeBaseThingHandler zigBeeThingHandler) {
logger.debug("IsAlive Tracker reset for handler with thingUID={}", zigBeeThingHandler.getThing().getUID());
cancelTask(zigBeeThingHandler);
ScheduledFuture> existingTask = scheduledTasks.get(zigBeeThingHandler);
@@ -88,7 +89,7 @@ public synchronized void resetTimer(ZigBeeThingHandler zigBeeThingHandler) {
}
}
- private void scheduleTask(ZigBeeThingHandler handler, int interval) {
+ private void scheduleTask(ZigBeeBaseThingHandler handler, int interval) {
ScheduledFuture> task = scheduler.schedule(() -> {
synchronized (lastChance) {
scheduledTasks.remove(handler);
@@ -114,7 +115,7 @@ private void scheduleTask(ZigBeeThingHandler handler, int interval) {
scheduledTasks.put(handler, task);
}
- private void cancelTask(ZigBeeThingHandler handler) {
+ private void cancelTask(ZigBeeBaseThingHandler handler) {
lastChance.remove(handler);
ScheduledFuture> task = scheduledTasks.get(handler);
if (task != null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeDeviceConfigHandler.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeDeviceConfigHandler.java
index 28a5345d5..c29c8f054 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeDeviceConfigHandler.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeDeviceConfigHandler.java
@@ -18,7 +18,7 @@
import org.eclipse.jdt.annotation.NonNull;
import org.openhab.core.config.core.Configuration;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeGenericThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,7 +28,7 @@
import com.zsmartsystems.zigbee.zcl.protocol.ZclDataType;
/**
- * Class to handle ZigBee device configuration. This is a helper class used by the {@link ZigBeeThingHandler} for
+ * Class to handle ZigBee device configuration. This is a helper class used by the {@link ZigBeeGenericThingHandler} for
* managing device configuration.
*
* @author Chris Jackson - Initial Contribution
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeHandlerFactory.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeHandlerFactory.java
index 3833130b0..852cbd4e9 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeHandlerFactory.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/ZigBeeHandlerFactory.java
@@ -23,7 +23,8 @@
import org.openhab.core.thing.type.DynamicStateDescriptionProvider;
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.discovery.ZigBeeThingTypeMatcher;
+import org.openhab.binding.zigbee.handler.ZigBeeGenericThingHandler;
import org.openhab.binding.zigbee.handler.ZigBeeIsAliveTracker;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
@@ -60,7 +61,7 @@ protected ThingHandler createHandler(Thing thing) {
return null;
}
- ZigBeeThingHandler handler = new ZigBeeThingHandler(thing, zigbeeChannelConverterFactory, zigbeeIsAliveTracker);
+ ZigBeeGenericThingHandler handler = new ZigBeeGenericThingHandler(thing, zigbeeChannelConverterFactory, zigbeeIsAliveTracker);
bundleContext.registerService(ConfigDescriptionProvider.class.getName(), handler,
new Hashtable());
bundleContext.registerService(DynamicStateDescriptionProvider.class.getName(), handler,
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterAtmosphericPressure.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterAtmosphericPressure.java
index 3f7e97a43..98537aa65 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterAtmosphericPressure.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterAtmosphericPressure.java
@@ -22,14 +22,14 @@
import javax.measure.quantity.Pressure;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.SIUnits;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -110,7 +110,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclPressureMeasurementCluster) endpoint.getInputCluster(ZclPressureMeasurementCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryAlarm.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryAlarm.java
index 6fdf24b1b..dcbf330ea 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryAlarm.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryAlarm.java
@@ -20,13 +20,13 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.StringType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -116,7 +116,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclPowerConfigurationCluster) endpoint.getInputCluster(ZclPowerConfigurationCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryPercent.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryPercent.java
index f32ca59b3..e4848c645 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryPercent.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryPercent.java
@@ -18,13 +18,13 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -89,7 +89,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclPowerConfigurationCluster) endpoint.getInputCluster(ZclPowerConfigurationCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryVoltage.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryVoltage.java
index 2a9674479..85e54dc70 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryVoltage.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBatteryVoltage.java
@@ -19,14 +19,14 @@
import javax.measure.quantity.ElectricPotential;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.Units;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -86,7 +86,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclPowerConfigurationCluster) endpoint.getInputCluster(ZclPowerConfigurationCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBinaryInput.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBinaryInput.java
index 87a24da88..77c33463c 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBinaryInput.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterBinaryInput.java
@@ -16,13 +16,13 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -81,7 +81,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
binaryInputCluster = (ZclBinaryInputBasicCluster) endpoint
.getInputCluster(ZclBinaryInputBasicCluster.CLUSTER_ID);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorColor.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorColor.java
index 866320b58..a5be02ff1 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorColor.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorColor.java
@@ -27,6 +27,10 @@
import java.util.stream.Stream;
import org.eclipse.jdt.annotation.NonNull;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
+import org.openhab.binding.zigbee.internal.converter.config.ZclLevelControlConfig;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.HSBType;
@@ -37,10 +41,6 @@
import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.types.Command;
import org.openhab.core.types.UnDefType;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
-import org.openhab.binding.zigbee.internal.converter.config.ZclLevelControlConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -209,7 +209,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
colorUpdateScheduler = Executors.newSingleThreadScheduledExecutor();
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorTemperature.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorTemperature.java
index 73f90b9ef..d5523d355 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorTemperature.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterColorTemperature.java
@@ -18,6 +18,9 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.PercentType;
import org.openhab.core.thing.Channel;
@@ -25,9 +28,6 @@
import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.types.Command;
import org.openhab.core.types.UnDefType;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -107,7 +107,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterColorControl = (ZclColorControlCluster) endpoint.getInputCluster(ZclColorControlCluster.CLUSTER_ID);
if (clusterColorControl == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterDoorLock.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterDoorLock.java
index 3ae368807..fc5a5f86e 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterDoorLock.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterDoorLock.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
@@ -87,7 +87,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclDoorLockCluster) endpoint.getInputCluster(ZclDoorLockCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterFanControl.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterFanControl.java
index a1c247a2c..a2eb71e35 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterFanControl.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterFanControl.java
@@ -23,7 +23,7 @@
import org.eclipse.jdt.annotation.NonNull;
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.binding.zigbee.internal.converter.config.ZclFanControlConfig;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.library.types.DecimalType;
@@ -102,7 +102,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclFanControlCluster) endpoint.getInputCluster(ZclFanControlCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterGenericButton.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterGenericButton.java
index f9083e136..0e5cf9c5b 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterGenericButton.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterGenericButton.java
@@ -29,11 +29,11 @@
import java.util.function.Function;
import java.util.function.Predicate;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.CommonTriggerEvents;
import org.openhab.core.thing.ThingUID;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -84,7 +84,7 @@ public Set getImplementedServerClusters() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
for (ButtonPressType buttonPressType : ButtonPressType.values()) {
EventSpec eventSpec = parseEventSpec(channel.getProperties(), buttonPressType);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIas.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIas.java
index a8666cc54..5dda999bb 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIas.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIas.java
@@ -18,10 +18,10 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.OpenClosedType;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -104,7 +104,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
logger.debug("{}: Initialising device IAS Zone cluster for {}", endpoint.getIeeeAddress(),
channel.getChannelTypeUID());
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCieSystem.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCieSystem.java
index c86802113..0cda6db90 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCieSystem.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCieSystem.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
*/
public class ZigBeeConverterIasCieSystem extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM1;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCoDetector.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCoDetector.java
index dbfd3e6ba..6d4d0bf79 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCoDetector.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasCoDetector.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
*/
public class ZigBeeConverterIasCoDetector extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM1;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasContactPortal1.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasContactPortal1.java
index a68542b07..b0d951d95 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasContactPortal1.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasContactPortal1.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
*/
public class ZigBeeConverterIasContactPortal1 extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM1;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasFireIndicator.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasFireIndicator.java
index 3966e02b3..5d1d5c0bc 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasFireIndicator.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasFireIndicator.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
*/
public class ZigBeeConverterIasFireIndicator extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM1;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasLowBattery.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasLowBattery.java
index 0195d78b4..fd00271ba 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasLowBattery.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasLowBattery.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
@@ -28,7 +28,7 @@
public class ZigBeeConverterIasLowBattery extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_BATTERY;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionIntrusion.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionIntrusion.java
index 266cf80dc..4cbfc235f 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionIntrusion.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionIntrusion.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
*/
public class ZigBeeConverterIasMotionIntrusion extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM1;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionPresence.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionPresence.java
index 1d416c0b1..8f9ea78ef 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionPresence.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMotionPresence.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
*/
public class ZigBeeConverterIasMotionPresence extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM2;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMovement.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMovement.java
index b18c28699..02e1c9d91 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMovement.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasMovement.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
public class ZigBeeConverterIasMovement extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM1;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasTamper.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasTamper.java
index 2961c661e..fdc23a3c7 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasTamper.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasTamper.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
@@ -28,7 +28,7 @@
public class ZigBeeConverterIasTamper extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_TAMPER;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasVibration.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasVibration.java
index 329a73154..a8a2a7827 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasVibration.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasVibration.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
public class ZigBeeConverterIasVibration extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM2;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasWaterSensor.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasWaterSensor.java
index 0f68b45af..c42493f8b 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasWaterSensor.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIasWaterSensor.java
@@ -12,11 +12,11 @@
*/
package org.openhab.binding.zigbee.internal.converter;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import com.zsmartsystems.zigbee.ZigBeeEndpoint;
import com.zsmartsystems.zigbee.zcl.clusters.iaszone.ZoneTypeEnum;
@@ -29,7 +29,7 @@
*/
public class ZigBeeConverterIasWaterSensor extends ZigBeeConverterIas {
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
bitTest = CIE_ALARM1;
return super.initializeConverter(thing);
}
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIlluminance.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIlluminance.java
index de435e926..529725c92 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIlluminance.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterIlluminance.java
@@ -20,15 +20,15 @@
import java.util.concurrent.ExecutionException;
import org.eclipse.jdt.annotation.NonNull;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
+import org.openhab.binding.zigbee.internal.converter.config.ZclReportingConfig;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
-import org.openhab.binding.zigbee.internal.converter.config.ZclReportingConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -96,7 +96,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclIlluminanceMeasurementCluster) endpoint
.getInputCluster(ZclIlluminanceMeasurementCluster.CLUSTER_ID);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementPower.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementPower.java
index dad0855d8..26be48181 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementPower.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementPower.java
@@ -19,14 +19,14 @@
import javax.measure.quantity.Power;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.Units;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -92,7 +92,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterMeasurement = (ZclElectricalMeasurementCluster) endpoint
.getInputCluster(ZclElectricalMeasurementCluster.CLUSTER_ID);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsCurrent.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsCurrent.java
index a9b503511..d2a998496 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsCurrent.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsCurrent.java
@@ -19,14 +19,14 @@
import javax.measure.quantity.ElectricCurrent;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.Units;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -93,7 +93,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterMeasurement = (ZclElectricalMeasurementCluster) endpoint
.getInputCluster(ZclElectricalMeasurementCluster.CLUSTER_ID);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsVoltage.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsVoltage.java
index 7a6dc7bf6..0c4a1663c 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsVoltage.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeasurementRmsVoltage.java
@@ -19,14 +19,14 @@
import javax.measure.quantity.ElectricPotential;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.Units;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -93,7 +93,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterMeasurement = (ZclElectricalMeasurementCluster) endpoint
.getInputCluster(ZclElectricalMeasurementCluster.CLUSTER_ID);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringInstantaneousDemand.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringInstantaneousDemand.java
index 4c0a9e784..cae0d60f0 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringInstantaneousDemand.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringInstantaneousDemand.java
@@ -19,7 +19,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
@@ -92,7 +92,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterMetering = (ZclMeteringCluster) endpoint.getInputCluster(ZclMeteringCluster.CLUSTER_ID);
if (clusterMetering == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationDelivered.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationDelivered.java
index d98cff649..62c56c2b7 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationDelivered.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationDelivered.java
@@ -19,7 +19,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
@@ -92,7 +92,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterMetering = (ZclMeteringCluster) endpoint.getInputCluster(ZclMeteringCluster.CLUSTER_ID);
if (clusterMetering == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationReceived.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationReceived.java
index 9bc91093c..9aecd2d71 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationReceived.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterMeteringSummationReceived.java
@@ -19,7 +19,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
@@ -92,7 +92,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterMetering = (ZclMeteringCluster) endpoint.getInputCluster(ZclMeteringCluster.CLUSTER_ID);
if (clusterMetering == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterOccupancy.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterOccupancy.java
index 614a1150a..48ed4d687 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterOccupancy.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterOccupancy.java
@@ -16,13 +16,13 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -81,7 +81,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterOccupancy = (ZclOccupancySensingCluster) endpoint.getInputCluster(ZclOccupancySensingCluster.CLUSTER_ID);
if (clusterOccupancy == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterRelativeHumidity.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterRelativeHumidity.java
index d353fecf4..2f6c02639 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterRelativeHumidity.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterRelativeHumidity.java
@@ -17,13 +17,13 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -81,7 +81,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclRelativeHumidityMeasurementCluster) endpoint
.getInputCluster(ZclRelativeHumidityMeasurementCluster.CLUSTER_ID);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchLevel.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchLevel.java
index 60e3e8189..10f2ca9b8 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchLevel.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchLevel.java
@@ -28,7 +28,7 @@
import org.eclipse.jdt.annotation.NonNull;
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.binding.zigbee.internal.converter.config.ZclLevelControlConfig;
import org.openhab.binding.zigbee.internal.converter.config.ZclReportingConfig;
import org.openhab.core.config.core.Configuration;
@@ -233,7 +233,7 @@ private boolean initializeDeviceClient() {
}
@Override
- public synchronized boolean initializeConverter(ZigBeeThingHandler thing) {
+ public synchronized boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
updateScheduler = Executors.newSingleThreadScheduledExecutor();
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchOnoff.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchOnoff.java
index 8930f4da4..d2e9f6b38 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchOnoff.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterSwitchOnoff.java
@@ -26,7 +26,7 @@
import org.eclipse.jdt.annotation.NonNull;
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.binding.zigbee.internal.converter.config.ZclOnOffSwitchConfig;
import org.openhab.binding.zigbee.internal.converter.config.ZclReportingConfig;
import org.openhab.core.config.core.Configuration;
@@ -135,7 +135,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
updateScheduler = Executors.newSingleThreadScheduledExecutor();
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterTemperature.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterTemperature.java
index 727e151a9..4f1c055c9 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterTemperature.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterTemperature.java
@@ -16,13 +16,13 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.types.Command;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -93,7 +93,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclTemperatureMeasurementCluster) endpoint
.getInputCluster(ZclTemperatureMeasurementCluster.CLUSTER_ID);
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatLocalTemperature.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatLocalTemperature.java
index 9cc2bffaf..8668c32b7 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatLocalTemperature.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatLocalTemperature.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
@@ -85,7 +85,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedCooling.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedCooling.java
index c0b9ae4d8..7185dce63 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedCooling.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedCooling.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
@@ -87,7 +87,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedHeating.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedHeating.java
index a2a6c69e9..b01475c5a 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedHeating.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOccupiedHeating.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
@@ -83,7 +83,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOutdoorTemperature.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOutdoorTemperature.java
index 95cbc31ac..7b752e2a2 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOutdoorTemperature.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatOutdoorTemperature.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
@@ -83,7 +83,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatRunningMode.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatRunningMode.java
index 44ab36e19..bc4496612 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatRunningMode.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatRunningMode.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
@@ -89,7 +89,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatSystemMode.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatSystemMode.java
index c052192be..0ae23aca8 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatSystemMode.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatSystemMode.java
@@ -21,7 +21,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.thing.Channel;
@@ -96,7 +96,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedCooling.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedCooling.java
index 56006cfd2..a192ff42d 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedCooling.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedCooling.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
@@ -84,7 +84,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedHeating.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedHeating.java
index cd1fdf8dd..e1c4e7e40 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedHeating.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterThermostatUnoccupiedHeating.java
@@ -18,7 +18,7 @@
import org.openhab.binding.zigbee.ZigBeeBindingConstants;
import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
@@ -86,7 +86,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
cluster = (ZclThermostatCluster) endpoint.getInputCluster(ZclThermostatCluster.CLUSTER_ID);
if (cluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterWindowCoveringLift.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterWindowCoveringLift.java
index aece389d1..52c0fb05c 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterWindowCoveringLift.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/ZigBeeConverterWindowCoveringLift.java
@@ -17,6 +17,10 @@
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
+import org.openhab.binding.zigbee.internal.converter.config.ZclReportingConfig;
import org.openhab.core.library.types.PercentType;
import org.openhab.core.library.types.StopMoveType;
import org.openhab.core.library.types.UpDownType;
@@ -25,10 +29,6 @@
import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.thing.type.AutoUpdatePolicy;
import org.openhab.core.types.Command;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
-import org.openhab.binding.zigbee.internal.converter.config.ZclReportingConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -101,7 +101,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
clusterServer = (ZclWindowCoveringCluster) endpoint.getInputCluster(ZclWindowCoveringCluster.CLUSTER_ID);
if (clusterServer == null) {
diff --git a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/warningdevice/ZigBeeConverterWarningDevice.java b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/warningdevice/ZigBeeConverterWarningDevice.java
index 118cc4013..0bc8f6657 100644
--- a/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/warningdevice/ZigBeeConverterWarningDevice.java
+++ b/org.openhab.binding.zigbee/src/main/java/org/openhab/binding/zigbee/internal/converter/warningdevice/ZigBeeConverterWarningDevice.java
@@ -23,17 +23,17 @@
import java.util.stream.Stream;
import org.eclipse.jdt.annotation.NonNull;
+import org.openhab.binding.zigbee.ZigBeeBindingConstants;
+import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
+import org.openhab.binding.zigbee.converter.warningdevice.SquawkType;
+import org.openhab.binding.zigbee.converter.warningdevice.WarningType;
+import org.openhab.binding.zigbee.handler.ZigBeeBaseThingHandler;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.library.types.StringType;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ThingUID;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.types.Command;
-import org.openhab.binding.zigbee.ZigBeeBindingConstants;
-import org.openhab.binding.zigbee.converter.ZigBeeBaseChannelConverter;
-import org.openhab.binding.zigbee.converter.warningdevice.SquawkType;
-import org.openhab.binding.zigbee.converter.warningdevice.WarningType;
-import org.openhab.binding.zigbee.handler.ZigBeeThingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,7 +70,7 @@ public boolean initializeDevice() {
}
@Override
- public boolean initializeConverter(ZigBeeThingHandler thing) {
+ public boolean initializeConverter(ZigBeeBaseThingHandler thing) {
super.initializeConverter(thing);
iasWdCluster = (ZclIasWdCluster) endpoint.getInputCluster(ZclIasWdCluster.CLUSTER_ID);
if (iasWdCluster == null) {
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/channels.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/channels.xml
index e453f2858..7efc42aeb 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/channels.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/channels.xml
@@ -419,5 +419,4 @@
Blinds
-
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiremoteb286acn01.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiremoteb286acn01.xml
index 83fb4aa65..b3171abe6 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiremoteb286acn01.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiremoteb286acn01.xml
@@ -53,12 +53,6 @@
-
- Xiaomi
- lumi.remote.b286acn01
- END_DEVICE
-
-
zigbee_macaddress
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-magnet.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-magnet.xml
index 1ea342656..64b87cbed 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-magnet.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-magnet.xml
@@ -20,12 +20,6 @@
-
- Xiaomi
- lumi.sensor_magnet
- END_DEVICE
-
-
zigbee_macaddress
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-motion.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-motion.xml
index 16573ee0b..40b94d894 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-motion.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-motion.xml
@@ -17,12 +17,6 @@
-
- Xiaomi
- lumi.sensor_motion
- END_DEVICE
-
-
zigbee_macaddress
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/xiaomi_lumisensor-switchaq2.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-switchaq2.xml
similarity index 90%
rename from org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/xiaomi_lumisensor-switchaq2.xml
rename to org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-switchaq2.xml
index 170df6157..4ce153a66 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/xiaomi_lumisensor-switchaq2.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor-switchaq2.xml
@@ -33,12 +33,6 @@
-
- Xiaomi
- lumi.sensor_switch.aq2
- END_DEVICE
-
-
zigbee_macaddress
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor86sw2.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor86sw2.xml
index 1c3cfbc2c..be39b90b2 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor86sw2.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensor86sw2.xml
@@ -31,12 +31,6 @@
-
- Xiaomi
- lumi.sensor_86sw2
- END_DEVICE
-
-
zigbee_macaddress
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensorht.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensorht.xml
index aa6ddfc74..21f5ffa6a 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensorht.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumisensorht.xml
@@ -23,12 +23,6 @@
-
- Xiaomi
- lumi.sensor_ht
- END_DEVICE
-
-
zigbee_macaddress
diff --git a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiwleak-aq1.xml b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiwleak-aq1.xml
index 0b03bdbe7..4793628c7 100644
--- a/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiwleak-aq1.xml
+++ b/org.openhab.binding.zigbee/src/main/resources/OH-INF/thing/xiaomi/lumiwleak-aq1.xml
@@ -17,12 +17,6 @@
-
- Xiaomi
- lumi.sensor_wleak.aq1
- END_DEVICE
-
-
zigbee_macaddress
diff --git a/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipantTest.java b/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipantTest.java
index b16068df3..82c40b5c5 100644
--- a/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipantTest.java
+++ b/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/discovery/internal/ZigBeeDefaultDiscoveryParticipantTest.java
@@ -21,7 +21,7 @@
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentMatchers;
import org.mockito.Mockito;
-import org.openhab.binding.zigbee.internal.ZigBeeThingTypeMatcher;
+import org.openhab.binding.zigbee.discovery.ZigBeeThingTypeMatcher;
import org.openhab.core.config.discovery.DiscoveryResult;
import org.openhab.core.thing.ThingTypeUID;
import org.openhab.core.thing.ThingUID;
diff --git a/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/handler/ZigBeeThingHandlerTest.java b/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/handler/ZigBeeThingHandlerTest.java
index 354b4bef4..a7986d33f 100644
--- a/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/handler/ZigBeeThingHandlerTest.java
+++ b/org.openhab.binding.zigbee/src/test/java/org/openhab/binding/zigbee/handler/ZigBeeThingHandlerTest.java
@@ -58,9 +58,9 @@ private List processClusterList(Collection initialClusters, St
SecurityException {
Method privateMethod;
- ZigBeeThingHandler handler = new ZigBeeThingHandler(null, null, null);
+ ZigBeeGenericThingHandler handler = new ZigBeeGenericThingHandler(null, null, null);
- privateMethod = ZigBeeThingHandler.class.getDeclaredMethod("processClusterList", Collection.class,
+ privateMethod = ZigBeeGenericThingHandler.class.getDeclaredMethod("processClusterList", Collection.class,
String.class);
privateMethod.setAccessible(true);
@@ -155,13 +155,13 @@ private void testInitializeDevice(String deviceInitializedProperty)
ZigBeeIsAliveTracker zigBeeIsAliveTracker = mock(ZigBeeIsAliveTracker.class);
- ZigBeeThingHandler zigBeeThingHandler = new ZigBeeThingHandler(thing, zigBeeChannelConverterFactory,
+ ZigBeeGenericThingHandler zigBeeThingHandler = new ZigBeeGenericThingHandler(thing, zigBeeChannelConverterFactory,
zigBeeIsAliveTracker);
injectIntoPrivateField(zigBeeThingHandler, zigBeeCoordinatorHandler, "coordinatorHandler");
injectIntoPrivateField(zigBeeThingHandler, ieeeAddress, "nodeIeeeAddress");
// call doNodeInitialisation by reflection as it is not accessible
- Method doNodeInitialisationMethod = ZigBeeThingHandler.class.getDeclaredMethod("doNodeInitialisation",
+ Method doNodeInitialisationMethod = ZigBeeGenericThingHandler.class.getDeclaredMethod("doNodeInitialisation",
(Class