Add thermostat settings attributes
This commit is contained in:
parent
b436710568
commit
9de4f1485b
@ -49,7 +49,24 @@ public:
|
|||||||
AttributeAbsMaxCoolSetpointLimit = 0x0006,
|
AttributeAbsMaxCoolSetpointLimit = 0x0006,
|
||||||
AttributePICoolingDemand = 0x0007,
|
AttributePICoolingDemand = 0x0007,
|
||||||
AttributePIHeatingDemand = 0x0008,
|
AttributePIHeatingDemand = 0x0008,
|
||||||
AttributeHVACSystemTypeConfiguration = 0x0009
|
AttributeHVACSystemTypeConfiguration = 0x0009,
|
||||||
|
|
||||||
|
AttributeLocalTemperatureCalibratioon = 0x0010,
|
||||||
|
AttributeOccupiedCoolingSetpoint = 0x0011,
|
||||||
|
AttributeOccupiedHeatingSetpoint = 0x0012,
|
||||||
|
AttributeUnoccupiedCoolingSetpoint = 0x0013,
|
||||||
|
AttributeUnoccupiedHeatingSetpoint = 0x0014,
|
||||||
|
AttributeMinHeatSetpointLimit = 0x0015,
|
||||||
|
AttributeMaxHeatSetpointLimit = 0x0016,
|
||||||
|
AttributeMinCoolSetpointLimit = 0x0017,
|
||||||
|
AttributeMaxCoolSetpointLimit = 0x0018,
|
||||||
|
AttributeMinSetpointDeadBand = 0x0019,
|
||||||
|
AttributeRemoteSensing = 0x001a,
|
||||||
|
AttributeControlSequenceOfOperation = 0x001b,
|
||||||
|
AttributeSystemMode = 0x001c,
|
||||||
|
AttributeAlarmMask = 0x001d,
|
||||||
|
AttributeThermostatRunningMode = 0x001e
|
||||||
|
|
||||||
};
|
};
|
||||||
Q_ENUM(Attribute)
|
Q_ENUM(Attribute)
|
||||||
|
|
||||||
|
|||||||
@ -102,7 +102,7 @@ ZigbeeCluster *ZigbeeNodeEndpoint::getInputCluster(ZigbeeClusterLibrary::Cluster
|
|||||||
|
|
||||||
bool ZigbeeNodeEndpoint::hasInputCluster(ZigbeeClusterLibrary::ClusterId clusterId) const
|
bool ZigbeeNodeEndpoint::hasInputCluster(ZigbeeClusterLibrary::ClusterId clusterId) const
|
||||||
{
|
{
|
||||||
return m_inputClusters.keys().contains(clusterId);
|
return m_inputClusters.contains(clusterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ZigbeeCluster *> ZigbeeNodeEndpoint::outputClusters() const
|
QList<ZigbeeCluster *> ZigbeeNodeEndpoint::outputClusters() const
|
||||||
@ -117,7 +117,7 @@ ZigbeeCluster *ZigbeeNodeEndpoint::getOutputCluster(ZigbeeClusterLibrary::Cluste
|
|||||||
|
|
||||||
bool ZigbeeNodeEndpoint::hasOutputCluster(ZigbeeClusterLibrary::ClusterId clusterId) const
|
bool ZigbeeNodeEndpoint::hasOutputCluster(ZigbeeClusterLibrary::ClusterId clusterId) const
|
||||||
{
|
{
|
||||||
return m_outputClusters.keys().contains(clusterId);
|
return m_outputClusters.contains(clusterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZigbeeNodeEndpoint::ZigbeeNodeEndpoint(ZigbeeNetwork *network, ZigbeeNode *node, quint8 endpointId, QObject *parent) :
|
ZigbeeNodeEndpoint::ZigbeeNodeEndpoint(ZigbeeNetwork *network, ZigbeeNode *node, quint8 endpointId, QObject *parent) :
|
||||||
@ -167,56 +167,46 @@ ZigbeeCluster *ZigbeeNodeEndpoint::createCluster(ZigbeeClusterLibrary::ClusterId
|
|||||||
// General
|
// General
|
||||||
case ZigbeeClusterLibrary::ClusterIdBasic:
|
case ZigbeeClusterLibrary::ClusterIdBasic:
|
||||||
return new ZigbeeClusterBasic(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterBasic(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdPowerConfiguration:
|
case ZigbeeClusterLibrary::ClusterIdPowerConfiguration:
|
||||||
return new ZigbeeClusterPowerConfiguration(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterPowerConfiguration(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdIdentify:
|
case ZigbeeClusterLibrary::ClusterIdIdentify:
|
||||||
return new ZigbeeClusterIdentify(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterIdentify(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdOnOff:
|
case ZigbeeClusterLibrary::ClusterIdOnOff:
|
||||||
return new ZigbeeClusterOnOff(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterOnOff(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdLevelControl:
|
case ZigbeeClusterLibrary::ClusterIdLevelControl:
|
||||||
return new ZigbeeClusterLevelControl(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterLevelControl(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
|
|
||||||
// Measurement
|
// Measurement
|
||||||
case ZigbeeClusterLibrary::ClusterIdIlluminanceMeasurement:
|
case ZigbeeClusterLibrary::ClusterIdIlluminanceMeasurement:
|
||||||
return new ZigbeeClusterIlluminanceMeasurment(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterIlluminanceMeasurment(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdTemperatureMeasurement:
|
case ZigbeeClusterLibrary::ClusterIdTemperatureMeasurement:
|
||||||
return new ZigbeeClusterTemperatureMeasurement(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterTemperatureMeasurement(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdRelativeHumidityMeasurement:
|
case ZigbeeClusterLibrary::ClusterIdRelativeHumidityMeasurement:
|
||||||
return new ZigbeeClusterRelativeHumidityMeasurement(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterRelativeHumidityMeasurement(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdOccupancySensing:
|
case ZigbeeClusterLibrary::ClusterIdOccupancySensing:
|
||||||
return new ZigbeeClusterOccupancySensing(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterOccupancySensing(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
case ZigbeeClusterLibrary::ClusterIdPressureMeasurement:
|
case ZigbeeClusterLibrary::ClusterIdPressureMeasurement:
|
||||||
return new ZigbeeClusterPressureMeasurement(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterPressureMeasurement(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
|
|
||||||
// Colsures
|
// Colsures
|
||||||
case ZigbeeClusterLibrary::ClusterIdDoorLock:
|
case ZigbeeClusterLibrary::ClusterIdDoorLock:
|
||||||
return new ZigbeeClusterDoorLock(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterDoorLock(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
|
|
||||||
// Lighting
|
// Lighting
|
||||||
case ZigbeeClusterLibrary::ClusterIdColorControl:
|
case ZigbeeClusterLibrary::ClusterIdColorControl:
|
||||||
return new ZigbeeClusterColorControl(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterColorControl(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
|
|
||||||
// Security
|
// Security
|
||||||
case ZigbeeClusterLibrary::ClusterIdIasZone:
|
case ZigbeeClusterLibrary::ClusterIdIasZone:
|
||||||
return new ZigbeeClusterIasZone(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterIasZone(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
|
|
||||||
// OTA
|
// OTA
|
||||||
case ZigbeeClusterLibrary::ClusterIdOtaUpgrade:
|
case ZigbeeClusterLibrary::ClusterIdOtaUpgrade:
|
||||||
return new ZigbeeClusterOta(m_network, m_node, this, direction, this);
|
return new ZigbeeClusterOta(m_network, m_node, this, direction, this);
|
||||||
break;
|
|
||||||
|
// HVAC
|
||||||
|
case ZigbeeClusterLibrary::ClusterIdThermostat:
|
||||||
|
return new ZigbeeClusterThermostat(m_network, m_node, this, direction, this);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Return a default cluster since we have no special implementation for this cluster, allowing to use generic clusters operations
|
// Return a default cluster since we have no special implementation for this cluster, allowing to use generic clusters operations
|
||||||
|
|||||||
@ -57,6 +57,8 @@
|
|||||||
|
|
||||||
#include "zcl/ota/zigbeeclusterota.h"
|
#include "zcl/ota/zigbeeclusterota.h"
|
||||||
|
|
||||||
|
#include "zcl/hvac/zigbeeclusterthermostat.h"
|
||||||
|
|
||||||
class ZigbeeNode;
|
class ZigbeeNode;
|
||||||
class ZigbeeNetwork;
|
class ZigbeeNetwork;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user