Add thermostat settings attributes

This commit is contained in:
Michael Zanetti 2020-11-16 23:42:24 +01:00
parent b436710568
commit 9de4f1485b
3 changed files with 26 additions and 17 deletions

View File

@ -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)

View File

@ -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

View File

@ -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;