+ * This class provides methods used by the {@link ZigBeeTimeExtension} to maintain the remote device clock. + * {@link #doPoll()} is used to periodically get the remote time in order to observe the remote clock, and + * {@link #doUpdate()} is used to set the remote clock. + *
+ * This class will attempt to calculate the drift rate of the clock on the remote device, and will estimate the time at
+ * which the clock will be out of specification.
+ *
+ * @author Chris Jackson
+ *
+ */
+public class ZclTimeClient {
+ /**
+ * The {@link Logger}.
+ */
+ private final Logger logger = LoggerFactory.getLogger(ZclTimeClient.class);
+
+ /**
+ * Don't use interval data of less than MINIMUM_USABLE_DELTA_DURATION seconds in the drift calculation unless the
+ * drift is above MINIMUM_USABLE_DELTA_DRIFT seconds.
+ */
+ private final static int MINIMUM_USABLE_DELTA_DURATION = 1800;
+
+ /**
+ * Don't use interval data of less than MINIMUM_USABLE_DELTA_DURATION seconds in the drift calculation unless the
+ * drift is above MINIMUM_USABLE_DELTA_DRIFT seconds.
+ */
+ private final static int MINIMUM_USABLE_DELTA_DRIFT = 10;
+
+ /**
+ * The time cluster linked to the remote server
+ */
+ private final ZclTimeCluster timeCluster;
+
+ private ZigBeeUtcTime dstStart;
+ private ZigBeeUtcTime dstEnd;
+ private int dstOffset;
+
+ /**
+ * Calculation of the daily drift rate. This is updated following each time set or poll.
+ */
+ private double dailyDriftRate;
+
+ /**
+ * The local time we last synchronised the remote
+ */
+ private ZigBeeUtcTime lastUpdate;
+
+ private Integer lastStatus = Integer.valueOf(0);
+ private final Set
+ * This is a client side status as opposed to the {@link #isRemoteMasterDst()} method which is a server side status
+ *
+ * @return true if the DST data has been set by the client on the remote device
+ */
+ public boolean isDstSet() {
+ return dstUpdated;
+ }
+
+ /**
+ * Get the {@link ZigBeeEndpointAddress} for this client
+ *
+ * @return the {@link ZigBeeEndpointAddress} for this client
+ */
+ public ZigBeeEndpointAddress getZigBeeAddress() {
+ return timeCluster.getZigBeeAddress();
+ }
+
+ /**
+ * Reads the current time from the remote device
+ *
+ * @return the {@link ZigBeeUtcTime} from the remote device
+ */
+ public ZigBeeUtcTime getTime() {
+ return timeCluster.getTime(0);
+ }
+
+ /**
+ * Gets the time returned from the device after it is updated
+ *
+ * @return
+ */
+ public ZigBeeUtcTime getLastSetTime() {
+ return lastSetTime;
+ }
+
+ /**
+ * Returns the last update {@link ZigBeeUtcTime} that the client last completed the time synchronisation
+ *
+ * @return the last update {@link ZigBeeUtcTime} that the client last completed the time synchronisation
+ */
+ public ZigBeeUtcTime getLastUpdate() {
+ return lastUpdate;
+ }
+
+ /**
+ * Returns the last {@link ZigBeeUtcTime} that the client last requested the remote time.
+ *
+ * @return the last {@link ZigBeeUtcTime} that the client last requested the remote time, or null if the time has
+ * never
+ * been requested
+ */
+ public ZigBeeUtcTime getLastRequestedTime() {
+ return lastRequestedTime;
+ }
+
+ /**
+ * Gets the number of seconds difference between local time and remote time at the point the time was last set on
+ * the remote.
+ *
+ * @return remote time difference when the time was last updated
+ */
+ public int getLastDelta() {
+ return lastTimeDelta;
+ }
+
+ /**
+ * Gets the number of seconds difference between local time and remote time at the last poll
+ *
+ * @return remote time difference when the time was last polled
+ */
+ public int getCurrentDelta() {
+ return currentTimeDelta;
+ }
+
+ /**
+ * Gets the time up until when we have calculated the remote device clock will remain valid.
+ *
+ * @return {@link ZigBeeUtcTime} defining the time we expect the clock will drift out of spec
+ */
+ public ZigBeeUtcTime getValidUntil() {
+ return null;
+ }
+
+ /**
+ * Returns true if the remote device time is synchronised
+ *
+ * @return true if the remote device time is synchronised
+ */
+ public boolean isRemoteSynchronized() {
+ return statusBitmap.contains(TimeStatusBitmap.SYNCHRONIZED);
+ }
+
+ /**
+ * Returns true if the remote device is a master time server
+ *
+ * @return true if the remote device is a master time server
+ */
+ public boolean isRemoteMaster() {
+ return statusBitmap.contains(TimeStatusBitmap.MASTER);
+ }
+
+ /**
+ * Returns true if the remote device is a superceding time server
+ *
+ * @return true if the remote device is a superceding time server
+ */
+ public boolean isRemoteSuperceding() {
+ return statusBitmap.contains(TimeStatusBitmap.SUPERSEDING);
+ }
+
+ /**
+ * Returns true if the remote device is synchronised to the time server for DST configuration
+ *
+ * @return true if the remote device is synchronised to the time server for DST configuration
+ */
+ public boolean isRemoteMasterDst() {
+ return statusBitmap.contains(TimeStatusBitmap.MASTER_ZONE_DST);
+ }
+
+ /**
+ * Gets the approximate drift rate of the remote device over a 24 hour period. This is the number of seconds the
+ * time would drift on the remote device if it was not updated.
+ *
+ * @return the 24 hour drift rate, in seconds, of the remote device.
+ */
+ public double getDailyDriftRate() {
+ return dailyDriftRate;
+ }
+
+ /**
+ * Performs a poll on the remote device to get the current time delta.
+ *
+ * Note that this method will block and is intended to be run within a worker thread.
+ *
+ * @return true if the poll was performed successfully
+ */
+ protected boolean doPoll() {
+ logger.debug("{}: Time client: poll start", timeCluster.getZigBeeAddress());
+ ZigBeeUtcTime currentTime = timeCluster.getTime(0);
+ if (currentTime == null) {
+ logger.debug("{}: Time client: poll failed getting time", timeCluster.getZigBeeAddress());
+ return false;
+ }
+ lastRequestedTime = ZigBeeUtcTime.now();
+
+ currentTimeDelta = (int) (lastRequestedTime.getEpochSecond() - currentTime.getEpochSecond());
+
+ // If we have no records in the drift map, then add this as a baseline
+ if (driftMap.isEmpty()) {
+ driftMap.put(lastRequestedTime, currentTime);
+ } else {
+ updateDrift(ZigBeeUtcTime.now(), currentTime);
+ }
+
+ updateStatus();
+
+ logger.debug("{}: Time client: poll complete. Delta {} seconds.", timeCluster.getZigBeeAddress(),
+ currentTimeDelta);
+ return true;
+ }
+
+ /**
+ * Performs a time synchronisation on the remote device.
+ *
+ * Note that this method will block and is intended to be run within a worker thread.
+ *
+ * @return true if the time was set successfully
+ * @throws ExecutionException
+ * @throws InterruptedException
+ */
+ protected boolean doUpdate() throws InterruptedException, ExecutionException {
+ logger.debug("{}: Time client: synchronisation start", timeCluster.getZigBeeAddress());
+
+ ZigBeeUtcTime currentTime = timeCluster.getTime(0);
+ if (currentTime == null) {
+ logger.debug("{}: Time client: synchronisation failed getting time", timeCluster.getZigBeeAddress());
+ return false;
+ }
+ lastRequestedTime = ZigBeeUtcTime.now();
+
+ lastTimeDelta = (int) (lastRequestedTime.getEpochSecond() - currentTime.getEpochSecond());
+
+ CommandResult result = timeCluster.setTime(ZigBeeUtcTime.now()).get();
+ if (!result.isSuccess()) {
+ logger.debug("{}: Time client: synchronisation failed setting time", timeCluster.getZigBeeAddress());
+ return false;
+ }
+ updateDrift(lastRequestedTime, currentTime);
+ lastUpdate = ZigBeeUtcTime.now();
+ driftMap.put(lastUpdate, currentTime);
+
+ // Set the synchronised bit in the remote time status attribute
+ timeCluster.setTimeStatus(TimeStatusBitmap.SYNCHRONIZED.getKey());
+
+ updateStatus();
+
+ // Has DST data been updated since we last set the time?
+ if (!dstUpdated) {
+ timeCluster.setDstStart(dstStart);
+ timeCluster.setDstEnd(dstEnd);
+ timeCluster.setDstShift(dstOffset);
+ dstUpdated = true;
+ }
+ lastSetTime = timeCluster.getLastSetTime(0);
+
+ // Do a poll to update our knowledge
+ // TODO: Some devices don't actually seem to update their clock.
+ // We could check here to see if the delta has changed.
+ currentTime = timeCluster.getTime(0);
+ if (currentTime == null) {
+ logger.debug("{}: Time client: poll failed getting time", timeCluster.getZigBeeAddress());
+ return false;
+ }
+ lastRequestedTime = ZigBeeUtcTime.now();
+ currentTimeDelta = (int) (lastRequestedTime.getEpochSecond() - currentTime.getEpochSecond());
+
+ // TODO: Set the ValidUntilTime attribute based on the calculated drift, plus margin
+
+ logger.debug("{}: Time client: synchronisation complete. Delta {} seconds.", timeCluster.getZigBeeAddress(),
+ currentTimeDelta);
+ return true;
+ }
+
+ private void updateStatus() {
+ lastStatus = timeCluster.getTimeStatus(0);
+ synchronized (statusBitmap) {
+ statusBitmap.clear();
+ for (TimeStatusBitmap bitmap : TimeStatusBitmap.values()) {
+ if ((lastStatus & bitmap.getKey()) != 0) {
+ statusBitmap.add(bitmap);
+ }
+ }
+ }
+ }
+
+ private void updateDrift(ZigBeeUtcTime lastLocalTime, ZigBeeUtcTime lastRemoteTime) {
+ double duration = 0;
+ double drift = 0;
+ boolean first = true;
+ ZigBeeUtcTime lastSet = null;
+ ZigBeeUtcTime lastTime = null;
+ for (Entry
+ * A single instance of {@link ZclTimeServer} is created to act as a local time server. This server manages requests
+ * from remote clients that may want to update their time.
+ *
+ * An instance of {@link ZclTimeClient} is created for each node on the network that has a time server. The
+ * {@link ZclTimeClient} will periodically poll the time on the remote server, update the time when it is above the
+ * maximum allowed delta. The client will keep track of the time drift seen in a 24 hour period.
+ *
+ * Management of both {@link ZclTimeClient} and {@link ZclTimeServer} are handled through the
+ * {@link ZigBeeTimeExtension}. This class consolidates the client and server requests in the event that a device
+ * supports both, and ensures that time, and time configuration (eg Daylight Saving Time) is managed centrally and
+ * consistently.
+ *
+ * It should be noted that a single thread is used to keep resource usage to a minimum. The updates are therefore
+ * managed directly in the {@link ZigBeeTimeExtension} class.
+ *
+ * @author Chris Jackson
+ *
+ */
+public class ZigBeeTimeExtension implements ZigBeeNetworkExtension, ZigBeeNetworkNodeListener {
+ /**
+ * The {@link Logger}.
+ */
+ private final Logger logger = LoggerFactory.getLogger(ZigBeeTimeExtension.class);
+
+ /**
+ * The default time (in seconds) between each poll of the time on a remote device
+ */
+ private final static int DEFAULT_POLL_PERIOD = 3600;
+
+ private final static long MINIMUM_WORKER_PERIOD = 30;
+
+ private ZigBeeNetworkManager networkManager;
+
+ /**
+ * Our time server that handles any requests from remote clients
+ */
+ private ZclTimeServer localTimeServer;
+
+ private ZigBeeUtcTime dstStart;
+ private ZigBeeUtcTime dstEnd;
+ private int dstOffset;
+
+ private boolean master = true;
+ private boolean superceding = false;
+
+ /**
+ * The maximum allowed time delta (in seconds) after when the time will be updated by the client.
+ */
+ private int updateDelta = 25;
+
+ /**
+ * The approximate number of seconds between each time request to each remote server. The time is requested
+ * periodically so that the system can ensure it remains within the value set by {@link #setUpdateDelta(int)}.
+ */
+ private int pollPeriod = DEFAULT_POLL_PERIOD;
+
+ /**
+ * The worker thread that is scheduled periodically to check the synchronisation of remote devices
+ */
+ private ScheduledFuture> workerJob;
+ /**
+ * A map of all the time clients on the network
+ */
+ private final Map
+ * The main manager is the {@link ZigBeeTimeExtension} class. This provides a centralised interface for all
+ * time services. It handles the instantiation of the single {@link ZigBeeTimeServer} which in turn is responsible
+ * for responding to requests from remote devices for time information. The {@link ZigBeeTimeServer} acts as a
+ * master time source on the network. In addition, the {@link ZigBeeTimeExtension} instantiates a
+ * {@link ZigBeeTimeClient}s
+ * to interface with each remote client.
+ *
+ * The {@link ZigBeeTimeExtension} will periodically poll the remote clients, checking their current time against
+ * the system master time. If the time is outside of an allowable delta, it will be set. Daylight Saving Time can
+ * also be centrally managed through the {@link ZigBeeTimeExtension}, which will in turn be set consistently for
+ * requests via the {@link ZigBeeTimeClient} or {@link ZigBeeTimeServer}.
+ *
+ */
+package com.zsmartsystems.zigbee.app.time;
diff --git a/com.zsmartsystems.zigbee/src/main/java/com/zsmartsystems/zigbee/serialization/DefaultDeserializer.java b/com.zsmartsystems.zigbee/src/main/java/com/zsmartsystems/zigbee/serialization/DefaultDeserializer.java
index fe64edd1ea..40f2aaffda 100644
--- a/com.zsmartsystems.zigbee/src/main/java/com/zsmartsystems/zigbee/serialization/DefaultDeserializer.java
+++ b/com.zsmartsystems.zigbee/src/main/java/com/zsmartsystems/zigbee/serialization/DefaultDeserializer.java
@@ -20,6 +20,7 @@
import com.zsmartsystems.zigbee.zcl.field.ExtensionFieldSet;
import com.zsmartsystems.zigbee.zcl.field.ZclArrayList;
import com.zsmartsystems.zigbee.zcl.field.ZclDataPair;
+import com.zsmartsystems.zigbee.zcl.field.ZigBeeUtcTime;
import com.zsmartsystems.zigbee.zcl.protocol.ZclDataType;
import com.zsmartsystems.zigbee.zdo.ZdoStatus;
import com.zsmartsystems.zigbee.zdo.field.BindingTable;
@@ -270,6 +271,8 @@ public
* Code is auto-generated. Modifications may be overwritten!
*/
-@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2022-05-28T21:15:34Z")
+@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2022-12-09T01:34:23Z")
public class ZclDemandResponseAndLoadControlCluster extends ZclCluster {
/**
* The ZigBee Cluster Library Cluster ID
@@ -184,7 +184,7 @@ public Future
* Code is auto-generated. Modifications may be overwritten!
*/
-@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2022-05-28T21:15:34Z")
+@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2022-12-09T01:34:23Z")
public class ZclMessagingCluster extends ZclCluster {
/**
* The ZigBee Cluster Library Cluster ID
@@ -127,7 +127,7 @@ public Future
* Code is auto-generated. Modifications may be overwritten!
*/
-@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2024-05-18T20:58:44Z")
+@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2024-05-18T21:19:38Z")
public class ZclMeteringCluster extends ZclCluster {
/**
* The ZigBee Cluster Library Cluster ID
@@ -4000,7 +4000,7 @@ public Integer getPowerFactor(final long refreshPeriod) {
* CurrentMaxDemandDelivered, and CurrentMaxDemandReceived attributes that are
* supported by the device were updated.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4027,21 +4027,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getReadingSnapshotTime(final long refreshPeriod) {
+ public ZigBeeUtcTime getReadingSnapshotTime(final long refreshPeriod) {
if (serverAttributes.get(ATTR_READINGSNAPSHOTTIME).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_READINGSNAPSHOTTIME).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_READINGSNAPSHOTTIME).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_READINGSNAPSHOTTIME));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_READINGSNAPSHOTTIME));
}
/**
@@ -4052,7 +4052,7 @@ public Calendar getReadingSnapshotTime(final long refreshPeriod) {
* CurrentMaxDemandDelivered, and CurrentMaxDemandReceived attributes that are
* supported by the device were updated.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4073,7 +4073,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4098,21 +4098,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getCurrentMaxDemandDeliveredTime(final long refreshPeriod) {
+ public ZigBeeUtcTime getCurrentMaxDemandDeliveredTime(final long refreshPeriod) {
if (serverAttributes.get(ATTR_CURRENTMAXDEMANDDELIVEREDTIME).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_CURRENTMAXDEMANDDELIVEREDTIME).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_CURRENTMAXDEMANDDELIVEREDTIME).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_CURRENTMAXDEMANDDELIVEREDTIME));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_CURRENTMAXDEMANDDELIVEREDTIME));
}
/**
@@ -4121,7 +4121,7 @@ public Calendar getCurrentMaxDemandDeliveredTime(final long refreshPeriod) {
* The CurrentMaxDemandDeliveredTime attribute represents the time when
* CurrentMaxDemandDelivered reading was captured.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4142,7 +4142,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4167,21 +4167,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getCurrentMaxDemandReceivedTime(final long refreshPeriod) {
+ public ZigBeeUtcTime getCurrentMaxDemandReceivedTime(final long refreshPeriod) {
if (serverAttributes.get(ATTR_CURRENTMAXDEMANDRECEIVEDTIME).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_CURRENTMAXDEMANDRECEIVEDTIME).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_CURRENTMAXDEMANDRECEIVEDTIME).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_CURRENTMAXDEMANDRECEIVEDTIME));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_CURRENTMAXDEMANDRECEIVEDTIME));
}
/**
@@ -4190,7 +4190,7 @@ public Calendar getCurrentMaxDemandReceivedTime(final long refreshPeriod) {
* The CurrentMaxDemandReceivedTime attribute represents the time when
* CurrentMaxDemandReceived reading was captured.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -5449,7 +5449,7 @@ public Integer getActiveRegisterTierReceived(final long refreshPeriod) {
* value will not change but the LastBlockSwitchTime attribute shall be updated to
* indicate this change.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is OPTIONAL
*
@@ -5484,21 +5484,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is OPTIONAL
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getLastBlockSwitchTime(final long refreshPeriod) {
+ public ZigBeeUtcTime getLastBlockSwitchTime(final long refreshPeriod) {
if (serverAttributes.get(ATTR_LASTBLOCKSWITCHTIME).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_LASTBLOCKSWITCHTIME).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_LASTBLOCKSWITCHTIME).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_LASTBLOCKSWITCHTIME));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_LASTBLOCKSWITCHTIME));
}
/**
@@ -8318,7 +8318,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -8343,21 +8343,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getCurrentPartialProfileIntervalStartTimeDelivered(final long refreshPeriod) {
+ public ZigBeeUtcTime getCurrentPartialProfileIntervalStartTimeDelivered(final long refreshPeriod) {
if (serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMEDELIVERED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMEDELIVERED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMEDELIVERED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMEDELIVERED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMEDELIVERED));
}
/**
@@ -8366,7 +8366,7 @@ public Calendar getCurrentPartialProfileIntervalStartTimeDelivered(final long re
* CurrentPartialProfileIntervalStartTimeDelivered represents the start time of the
* current Load Profile interval being accumulated for commodity delivered.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -8387,7 +8387,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -8412,21 +8412,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getCurrentPartialProfileIntervalStartTimeReceived(final long refreshPeriod) {
+ public ZigBeeUtcTime getCurrentPartialProfileIntervalStartTimeReceived(final long refreshPeriod) {
if (serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMERECEIVED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMERECEIVED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMERECEIVED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMERECEIVED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_CURRENTPARTIALPROFILEINTERVALSTARTTIMERECEIVED));
}
/**
@@ -8435,7 +8435,7 @@ public Calendar getCurrentPartialProfileIntervalStartTimeReceived(final long ref
* CurrentPartialProfileIntervalStartTimeReceived represents the start time of the
* current Load Profile interval being accumulated for commodity received.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -13907,7 +13907,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -13932,21 +13932,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getBillToDateTimeStampDelivered(final long refreshPeriod) {
+ public ZigBeeUtcTime getBillToDateTimeStampDelivered(final long refreshPeriod) {
if (serverAttributes.get(ATTR_BILLTODATETIMESTAMPDELIVERED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_BILLTODATETIMESTAMPDELIVERED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_BILLTODATETIMESTAMPDELIVERED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_BILLTODATETIMESTAMPDELIVERED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_BILLTODATETIMESTAMPDELIVERED));
}
/**
@@ -13955,7 +13955,7 @@ public Calendar getBillToDateTimeStampDelivered(final long refreshPeriod) {
* The UTC timestamp when the associated BillToDateDelivered attribute was last
* updated.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14051,7 +14051,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14076,21 +14076,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getProjectedBillTimeStampDelivered(final long refreshPeriod) {
+ public ZigBeeUtcTime getProjectedBillTimeStampDelivered(final long refreshPeriod) {
if (serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPDELIVERED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPDELIVERED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPDELIVERED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPDELIVERED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPDELIVERED));
}
/**
@@ -14099,7 +14099,7 @@ public Calendar getProjectedBillTimeStampDelivered(final long refreshPeriod) {
* The UTC timestamp when the associated ProjectedBillDelivered attribute was last
* updated.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14268,7 +14268,7 @@ public Future
* The UTC timestamp when the associated BillToDateReceived attribute was last updated.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14292,21 +14292,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getBillToDateTimeStampReceived(final long refreshPeriod) {
+ public ZigBeeUtcTime getBillToDateTimeStampReceived(final long refreshPeriod) {
if (serverAttributes.get(ATTR_BILLTODATETIMESTAMPRECEIVED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_BILLTODATETIMESTAMPRECEIVED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_BILLTODATETIMESTAMPRECEIVED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_BILLTODATETIMESTAMPRECEIVED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_BILLTODATETIMESTAMPRECEIVED));
}
/**
@@ -14314,7 +14314,7 @@ public Calendar getBillToDateTimeStampReceived(final long refreshPeriod) {
*
* The UTC timestamp when the associated BillToDateReceived attribute was last updated.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14410,7 +14410,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14435,21 +14435,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getProjectedBillTimeStampReceived(final long refreshPeriod) {
+ public ZigBeeUtcTime getProjectedBillTimeStampReceived(final long refreshPeriod) {
if (serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPRECEIVED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPRECEIVED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPRECEIVED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPRECEIVED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_PROJECTEDBILLTIMESTAMPRECEIVED));
}
/**
@@ -14458,7 +14458,7 @@ public Calendar getProjectedBillTimeStampReceived(final long refreshPeriod) {
* The UTC timestamp when the associated ProjectedBillReceived attribute was last
* updated.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14557,7 +14557,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -14583,21 +14583,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getProposedChangeSupplyImplementationTime(final long refreshPeriod) {
+ public ZigBeeUtcTime getProposedChangeSupplyImplementationTime(final long refreshPeriod) {
if (serverAttributes.get(ATTR_PROPOSEDCHANGESUPPLYIMPLEMENTATIONTIME).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_PROPOSEDCHANGESUPPLYIMPLEMENTATIONTIME).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_PROPOSEDCHANGESUPPLYIMPLEMENTATIONTIME).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_PROPOSEDCHANGESUPPLYIMPLEMENTATIONTIME));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_PROPOSEDCHANGESUPPLYIMPLEMENTATIONTIME));
}
/**
@@ -14607,7 +14607,7 @@ public Calendar getProposedChangeSupplyImplementationTime(final long refreshPeri
* proposed change to the supply is to be implemented. If there is no change of supply
* pending, this attribute will be set to 0xFFFFFFFF.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -15521,7 +15521,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -15547,21 +15547,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getCurrentAlternativePartialProfileIntervalStartTimeDelivered(final long refreshPeriod) {
+ public ZigBeeUtcTime getCurrentAlternativePartialProfileIntervalStartTimeDelivered(final long refreshPeriod) {
if (serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMEDELIVERED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMEDELIVERED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMEDELIVERED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMEDELIVERED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMEDELIVERED));
}
/**
@@ -15571,7 +15571,7 @@ public Calendar getCurrentAlternativePartialProfileIntervalStartTimeDelivered(fi
* start time of the current Load Profile interval being accumulated for commodity
* delivered.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -15593,7 +15593,7 @@ public Future
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -15619,21 +15619,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getCurrentAlternativePartialProfileIntervalStartTimeReceived(final long refreshPeriod) {
+ public ZigBeeUtcTime getCurrentAlternativePartialProfileIntervalStartTimeReceived(final long refreshPeriod) {
if (serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMERECEIVED).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMERECEIVED).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMERECEIVED).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMERECEIVED));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_CURRENTALTERNATIVEPARTIALPROFILEINTERVALSTARTTIMERECEIVED));
}
/**
@@ -15643,7 +15643,7 @@ public Calendar getCurrentAlternativePartialProfileIntervalStartTimeReceived(fin
* start time of the current Load Profile interval being accumulated for commodity
* received.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -17135,7 +17135,7 @@ public Future
* This command is used to request snapshot data from the cluster server.
*
- * @param earliestStartTime {@link Calendar} Earliest Start Time
- * @param latestEndTime {@link Calendar} Latest End Time
+ * @param earliestStartTime {@link ZigBeeUtcTime} Earliest Start Time
+ * @param latestEndTime {@link ZigBeeUtcTime} Latest End Time
* @param snapshotOffset {@link Integer} Snapshot Offset
* @param snapshotCause {@link Integer} Snapshot Cause
* @return the {@link Future
* This command is sent when the Client command GetProfile is received.
*
- * @param endTime {@link Calendar} End Time
+ * @param endTime {@link ZigBeeUtcTime} End Time
* @param status {@link Integer} Status
* @param profileIntervalPeriod {@link Integer} Profile Interval Period
* @param numberOfPeriodsDelivered {@link Integer} Number Of Periods Delivered
@@ -17624,7 +17624,7 @@ public Future
* Code is auto-generated. Modifications may be overwritten!
*/
-@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2024-05-18T20:27:57Z")
+@Generated(value = "com.zsmartsystems.zigbee.autocode.ZigBeeCodeGenerator", date = "2024-05-18T21:19:38Z")
public class ZclPrepaymentCluster extends ZclCluster {
/**
* The ZigBee Cluster Library Cluster ID
@@ -1080,7 +1080,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -1104,21 +1104,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getCreditRemainingTimestamp(final long refreshPeriod) {
+ public ZigBeeUtcTime getCreditRemainingTimestamp(final long refreshPeriod) {
if (serverAttributes.get(ATTR_CREDITREMAININGTIMESTAMP).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_CREDITREMAININGTIMESTAMP).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_CREDITREMAININGTIMESTAMP).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_CREDITREMAININGTIMESTAMP));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_CREDITREMAININGTIMESTAMP));
}
/**
@@ -1126,7 +1126,7 @@ public Calendar getCreditRemainingTimestamp(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -1936,7 +1936,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -1960,21 +1960,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getNextFriendlyCreditPeriod(final long refreshPeriod) {
+ public ZigBeeUtcTime getNextFriendlyCreditPeriod(final long refreshPeriod) {
if (serverAttributes.get(ATTR_NEXTFRIENDLYCREDITPERIOD).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_NEXTFRIENDLYCREDITPERIOD).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_NEXTFRIENDLYCREDITPERIOD).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_NEXTFRIENDLYCREDITPERIOD));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_NEXTFRIENDLYCREDITPERIOD));
}
/**
@@ -1982,7 +1982,7 @@ public Calendar getNextFriendlyCreditPeriod(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2132,7 +2132,7 @@ public ByteArray getTokenCarrierId(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2156,21 +2156,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getTopUpDateTime1(final long refreshPeriod) {
+ public ZigBeeUtcTime getTopUpDateTime1(final long refreshPeriod) {
if (serverAttributes.get(ATTR_TOPUPDATETIME1).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_TOPUPDATETIME1).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_TOPUPDATETIME1).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_TOPUPDATETIME1));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_TOPUPDATETIME1));
}
/**
@@ -2178,7 +2178,7 @@ public Calendar getTopUpDateTime1(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2394,7 +2394,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2418,21 +2418,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getTopUpDateTime2(final long refreshPeriod) {
+ public ZigBeeUtcTime getTopUpDateTime2(final long refreshPeriod) {
if (serverAttributes.get(ATTR_TOPUPDATETIME2).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_TOPUPDATETIME2).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_TOPUPDATETIME2).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_TOPUPDATETIME2));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_TOPUPDATETIME2));
}
/**
@@ -2440,7 +2440,7 @@ public Calendar getTopUpDateTime2(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2656,7 +2656,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2680,21 +2680,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getTopUpDateTime3(final long refreshPeriod) {
+ public ZigBeeUtcTime getTopUpDateTime3(final long refreshPeriod) {
if (serverAttributes.get(ATTR_TOPUPDATETIME3).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_TOPUPDATETIME3).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_TOPUPDATETIME3).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_TOPUPDATETIME3));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_TOPUPDATETIME3));
}
/**
@@ -2702,7 +2702,7 @@ public Calendar getTopUpDateTime3(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2918,7 +2918,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -2942,21 +2942,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getTopUpDateTime4(final long refreshPeriod) {
+ public ZigBeeUtcTime getTopUpDateTime4(final long refreshPeriod) {
if (serverAttributes.get(ATTR_TOPUPDATETIME4).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_TOPUPDATETIME4).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_TOPUPDATETIME4).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_TOPUPDATETIME4));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_TOPUPDATETIME4));
}
/**
@@ -2964,7 +2964,7 @@ public Calendar getTopUpDateTime4(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -3180,7 +3180,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -3204,21 +3204,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getTopUpDateTime5(final long refreshPeriod) {
+ public ZigBeeUtcTime getTopUpDateTime5(final long refreshPeriod) {
if (serverAttributes.get(ATTR_TOPUPDATETIME5).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_TOPUPDATETIME5).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_TOPUPDATETIME5).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_TOPUPDATETIME5));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_TOPUPDATETIME5));
}
/**
@@ -3226,7 +3226,7 @@ public Calendar getTopUpDateTime5(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -3638,7 +3638,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -3662,21 +3662,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getDebtRecoveryStartTime1(final long refreshPeriod) {
+ public ZigBeeUtcTime getDebtRecoveryStartTime1(final long refreshPeriod) {
if (serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME1).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME1).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME1).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME1));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME1));
}
/**
@@ -3684,7 +3684,7 @@ public Calendar getDebtRecoveryStartTime1(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4163,7 +4163,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4187,21 +4187,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getDebtRecoveryStartTime2(final long refreshPeriod) {
+ public ZigBeeUtcTime getDebtRecoveryStartTime2(final long refreshPeriod) {
if (serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME2).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME2).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME2).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME2));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME2));
}
/**
@@ -4209,7 +4209,7 @@ public Calendar getDebtRecoveryStartTime2(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4688,7 +4688,7 @@ public Future
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -4712,21 +4712,21 @@ public Future
* This method will block until the response is received or a timeout occurs unless the current value is returned.
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
* @param refreshPeriod the maximum age of the data (in milliseconds) before an update is needed
- * @return the {@link Calendar} attribute value, or null on error
+ * @return the {@link ZigBeeUtcTime} attribute value, or null on error
* @deprecated As of release 1.2.0, replaced by {@link #ZclAttribute#readValue(long refreshPeriod)}
*/
@Deprecated
- public Calendar getDebtRecoveryStartTime3(final long refreshPeriod) {
+ public ZigBeeUtcTime getDebtRecoveryStartTime3(final long refreshPeriod) {
if (serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME3).isLastValueCurrent(refreshPeriod)) {
- return (Calendar) serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME3).getLastValue();
+ return (ZigBeeUtcTime) serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME3).getLastValue();
}
- return (Calendar) readSync(serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME3));
+ return (ZigBeeUtcTime) readSync(serverAttributes.get(ATTR_DEBTRECOVERYSTARTTIME3));
}
/**
@@ -4734,7 +4734,7 @@ public Calendar getDebtRecoveryStartTime3(final long refreshPeriod) {
*
* ADDME
*
- * The attribute is of type {@link Calendar}.
+ * The attribute is of type {@link ZigBeeUtcTime}.
*
* The implementation of this attribute by a device is MANDATORY
*
@@ -9429,7 +9429,7 @@ public Future
* FIXME: This command is used to request the cluster server for snapshot data.
*
- * @param earliestStartTime {@link Calendar} Earliest Start Time
- * @param latestEndTime {@link Calendar} Latest End Time
+ * @param earliestStartTime {@link ZigBeeUtcTime} Earliest Start Time
+ * @param latestEndTime {@link ZigBeeUtcTime} Latest End Time
* @param snapshotOffset {@link Integer} Snapshot Offset
* @param snapshotCause {@link Integer} Snapshot Cause
* @return the {@link Future
* FIXME: This command is used to request the contents of the repayment log.
*
- * @param latestEndTime {@link Calendar} Latest End Time
+ * @param latestEndTime {@link ZigBeeUtcTime} Latest End Time
* @param numberOfDebts {@link Integer} Number Of Debts
* @param debtType {@link Integer} Debt Type
* @return the {@link Futurecluster.sendCommand(new reportEventStatus(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getScheduledEvents(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new loadControlEventCommand(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new cancelLoadControlEvent(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new displayMessageCommand(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new displayProtectedMessageCommand(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new cancelAllMessagesCommand(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getLastMessage(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new messageConfirmation(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getMessageCancellation(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new cancelAllMessages(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getProfile(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getSnapshot(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new startSampling(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getSampledData(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new changeSupply(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getProfileResponse(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new requestFastPollModeResponse(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new publishSnapshot(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getSampledDataResponse(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new supplyStatusResponse(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new selectAvailableEmergencyCredit(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new changeDebt(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new emergencyCreditSetup(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new creditAdjustment(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new changePaymentMode(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getPrepaySnapshot(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getTopUpLog(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new getDebtRepaymentLog(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new setMaximumCreditLimit(parameters ...))
*/
@Deprecated
- public Futurecluster.sendCommand(new setOverallDebtCap(parameters ...))
*/
@Deprecated
- public Future