60 class ProductDescriptor;
265 void SetStaticRequests();
269 bool m_queryConfiguration;
270 uint8 m_queryRetries;
271 bool m_protocolInfoReceived;
272 bool m_basicprotocolInfoReceived;
273 bool m_nodeInfoReceived;
274 bool m_nodePlusInfoReceived;
275 bool m_manufacturerSpecificClassReceived;
276 bool m_nodeInfoSupported;
277 bool m_refreshonNodeInfoFrame;
317 string const&
GetType()
const{
return m_type; }
319 bool IsController()
const{
return ( m_basic == 0x01 || m_basic == 0x02 ) && ( m_generic == 0x01 || m_generic == 0x02 ); }
326 bool m_frequentListening;
338 uint8 m_neighbors[29];
339 uint8 m_numRouteNodes;
340 uint8 m_routeNodes[5];
341 map<uint8,uint8> m_buttonMap;
350 string GetManufacturerName()
const{
return m_manufacturerName; }
351 string GetProductName()
const{
return m_productName; }
352 string GetNodeName()
const{
return m_nodeName; }
353 string GetLocation()
const{
return m_location; }
356 uint16 GetManufacturerId()
const{
return m_manufacturerId; }
358 uint16 GetProductType()
const{
return m_productType; }
360 uint16 GetProductId()
const{
return m_productId; }
362 void SetManufacturerName(
string const& _manufacturerName ){ m_manufacturerName = _manufacturerName; }
363 void SetProductName(
string const& _productName ){ m_productName = _productName; }
364 void SetNodeName(
string const& _nodeName );
365 void SetLocation(
string const& _location );
367 void SetManufacturerId(
uint16 const& _manufacturerId ){ m_manufacturerId = _manufacturerId; }
368 void SetProductType(
uint16 const& _productType ){ m_productType = _productType; }
369 void SetProductId(
uint16 const& _productId ){ m_productId = _productId; }
371 string m_manufacturerName;
372 string m_productName;
381 uint16 GetDeviceType()
const {
return m_deviceType; }
382 string GetDeviceTypeString();
383 uint8 GetRoleType()
const {
return m_role; }
384 string GetRoleTypeString();
385 uint8 GetNodeType()
const {
return m_nodeType; }
386 string GetNodeTypeString();
424 CommandClass* AddCommandClass(
uint8 const _commandClassId,
bool advertised =
false);
431 void RemoveCommandClass(
uint8 const _commandClassId );
432 void ReadXML( TiXmlElement
const* _nodeElement );
433 void ReadDeviceProtocolXML( TiXmlElement
const* _ccsElement );
434 void ReadCommandClassesXML( TiXmlElement
const* _ccsElement );
435 void WriteXML( TiXmlElement* _nodeElement );
437 map<uint8,CommandClass*> m_commandClassMap;
438 map<uint8,CommandClass*> m_advertisedCommandClassMap;
492 uint32 m_fileConfigRevision;
493 uint32 m_loadedConfigRevision;
494 uint32 m_latestConfigRevision;
520 bool CreateValueBool(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
bool const _default,
uint8 const _pollIntensity );
525 bool CreateValueList(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
uint8 const _size, vector<ValueList::Item>
const& _items,
int32 const _default,
uint8 const _pollIntensity );
526 bool CreateValueRaw(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
uint8 const* _default,
uint8 const _length,
uint8 const _pollIntensity );
529 bool CreateValueString(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
string const& _default,
uint8 const _pollIntensity );
538 ValueStore* GetValueStore()
const{
return m_values; }
540 ValueStore* m_values;
546 bool SetConfigParam(
uint8 const _param,
int32 _value,
uint8 const _size );
547 void RequestConfigParam(
uint8 const _param );
548 bool RequestAllConfigParams(
uint32 const _requestFlags );
554 bool RequestDynamicValues();
560 uint8 GetNumGroups();
563 uint8 GetMaxAssociations(
uint8 const _groupIdx );
564 string GetGroupLabel(
uint8 const _groupIdx );
565 void AddAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00 );
566 void RemoveAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00 );
567 void AutoAssociate();
571 void AddGroup(
Group* _group );
572 void WriteGroups( TiXmlElement* _associationsElement );
574 map<uint8,Group*> m_groups;
584 DeviceClass( TiXmlElement
const* _el );
585 ~DeviceClass(){
delete [] m_mandatoryCommandClasses; }
587 uint8 const* GetMandatoryCommandClasses(){
return m_mandatoryCommandClasses; }
588 uint8 GetBasicMapping(){
return m_basicMapping; }
589 string const& GetLabel(){
return m_label; }
592 uint8* m_mandatoryCommandClasses;
593 uint8 m_basicMapping;
598 class GenericDeviceClass :
public DeviceClass
601 GenericDeviceClass( TiXmlElement
const* _el );
602 ~GenericDeviceClass();
604 DeviceClass* GetSpecificDeviceClass(
uint8 const& _specific );
607 map<uint8,DeviceClass*> m_specificDeviceClasses;
611 bool SetDeviceClasses(
uint8 const _basic,
uint8 const _generic,
uint8 const _specific );
612 bool SetPlusDeviceClasses(
uint8 const _role,
uint8 const _nodeType,
uint16 const _deviceType );
613 bool AddMandatoryCommandClasses(
uint8 const* _commandClasses );
614 void ReadDeviceClasses();
615 string GetEndPointDeviceClassLabel(
uint8 const _generic,
uint8 const _specific );
617 static bool s_deviceClassesLoaded;
618 static map<uint8,string> s_basicDeviceClasses;
619 static map<uint8,GenericDeviceClass*> s_genericDeviceClasses;
620 static map<uint8,DeviceClass*> s_roleDeviceClasses;
621 static map<uint16,DeviceClass*> s_deviceTypeClasses;
622 static map<uint8, DeviceClass*> s_nodeTypes;
656 void GetNodeStatistics(
NodeData* _data );
663 uint32 m_receivedUnsolicited;
668 uint32 m_averageRequestRTT;
669 uint32 m_averageResponseRTT;
671 uint8 m_lastReceivedMessage[254];
684 uint8 m_nonces[8][8];
713 void ReadMetaDataFromXML(TiXmlElement
const* _valueElement);
714 void WriteMetaDataXML(TiXmlElement*);
715 map<MetaDataFields, string> m_metadata;
string const GetMetaDataString(MetaDataFields)
Definition: Node.cpp:3851
Implements COMMAND_CLASS_SWITCH_BINARY (0x25), a Z-Wave device command class.
Definition: SwitchBinary.h:40
Implements COMMAND_CLASS_INDICATOR (0x87), a Z-Wave device command class.
Definition: Indicator.h:40
bool IsAddingNode() const
Definition: Node.h:320
Implements COMMAND_CLASS_ASSOCIATION (0x85), a Z-Wave device command class.
Definition: Association.h:39
bool IsFrequentListeningDevice() const
Definition: Node.h:304
Implements COMMAND_CLASS_THERMOSTAT_FAN_MODE (0x44), a Z-Wave device command class.
Definition: ThermostatFanMode.h:43
string const & GetType() const
Definition: Node.h:317
Implements COMMAND_CLASS_ASSOCIATION_COMMAND_CONFIGURATION (0x9b), a Z-Wave device command class.
Definition: AssociationCommandConfiguration.h:43
Definition: Bitfield.h:34
void QueryStageRetry(QueryStage const _stage, uint8 const _maxAttempts=0)
Definition: Node.cpp:770
Container that holds all of the values associated with a given node.
Definition: ValueStore.h:44
uint32 m_lastResponseRTT
Definition: Node.h:648
void SetProtocolInfo(uint8 const *_protocolInfo, uint8 const _length)
Definition: Node.cpp:1531
uint32 m_receivedCnt
Definition: Node.h:633
bool AllQueriesCompleted() const
Definition: Node.h:253
void checkLatestConfigRevision()
Definition: Node.cpp:3813
Implements COMMAND_CLASS_SECURITY (0x98), a Z-Wave device command class.
Definition: Security.h:64
ValueID CreateValueID(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, ValueID::ValueType const _type)
Definition: Node.cpp:2276
uint32 getFileConfigRevision()
Definition: Node.h:455
Implements COMMAND_CLASS_MANUFACTURER_SPECIFIC (0x72), a Z-Wave device command class.
Definition: ManufacturerSpecific.h:39
uint32 m_sentFailed
Definition: Node.h:639
unsigned short uint16
Definition: Defs.h:93
ValueType
Definition: ValueID.h:94
The _ManufacturerSpecificDB class handles the Config File Database that we use to configure devices.
Definition: ManufacturerSpecificDB.h:106
bool CreateValueDecimal(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition: Node.cpp:2411
Implements COMMAND_CLASS_METER_PULSE (0x35), a Z-Wave device command class.
Definition: MeterPulse.h:40
bool RemoveValue(uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex)
Definition: Node.cpp:2769
Implements COMMAND_CLASS_THERMOSTAT_SETPOINT (0x43), a Z-Wave device command class.
Definition: ThermostatSetpoint.h:42
void SetSecured(bool secure)
Definition: Node.cpp:1594
Implements COMMAND_CLASS_WAKE_UP (0x84), a Z-Wave device command class.
Definition: WakeUp.h:44
The main public interface to OpenZWave.
Definition: Manager.h:110
string GetQueryStageName(QueryStage const _stage)
Definition: Node.cpp:829
bool NodeInfoReceived() const
Definition: Node.h:250
MetaDataFields
Definition: Node.h:697
Implements COMMAND_CLASS_SENSOR_ALARM (0x9c), a Z-Wave device command class.
Definition: SensorAlarm.h:42
bool CreateValueList(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _size, vector< ValueList::Item > const &_items, int32 const _default, uint8 const _pollIntensity)
Definition: Node.cpp:2471
uint32 GetNeighbors(uint8 **o_associations)
Definition: Node.cpp:841
bool ProtocolInfoReceived() const
Definition: Node.h:249
struct OpenZWave::InstanceAssociation InstanceAssociation
Implements COMMAND_CLASS_LOCK (0x76), a Z-Wave device command class.
Definition: Lock.h:40
Implements COMMAND_CLASS_SENSOR_BINARY (0x30), a Z-Wave device command class.
Definition: SensorBinary.h:40
QueryStage
Definition: Node.h:136
bool IsSecurityDevice() const
Definition: Node.h:307
void ClearAddingNode()
Definition: Node.h:322
friend class Group
Definition: Node.h:69
Implements COMMAND_CLASS_THERMOSTAT_FAN_STATE (0x45), a Z-Wave device command class.
Definition: ThermostatFanState.h:43
void ReadValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition: Node.cpp:2684
void SetNodeAlive(bool const _isAlive)
Definition: Node.cpp:1810
void SetSecuredClasses(uint8 const *_data, uint8 const _length)
Definition: Node.cpp:1601
Implements COMMAND_CLASS_METER (0x32), a Z-Wave device command class.
Definition: Meter.h:40
uint8 GetVersion() const
Definition: Node.h:309
Definition: ManufacturerSpecificDB.h:46
void SetProductDetails(ProductDescriptor *product)
Definition: Node.cpp:3724
uint8 m_commandClassId
Definition: Node.h:631
The Node class describes a Z-Wave node object...typically a device on the Z-Wave network.
Definition: Node.h:65
bool IsNodeAlive() const
Definition: Node.h:223
Implements COMMAND_CLASS_ALARM (0x71), a Z-Wave device command class.
Definition: Alarm.h:40
void setLoadedConfigRevision(uint32 rev)
Definition: Node.cpp:3775
void QueryStageComplete(QueryStage const _stage)
Definition: Node.cpp:742
list< CommandClassData > m_ccData
Definition: Node.h:652
Base class for all Z-Wave command classes.
Definition: CommandClass.h:54
bool IsController() const
Definition: Node.h:319
bool CreateValueByte(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _default, uint8 const _pollIntensity)
Definition: Node.cpp:2381
uint8 * GetNonceKey(uint32 nonceid)
Definition: Node.cpp:3637
Implements COMMAND_CLASS_SWITCH_TOGGLE_BINARY (0x28), a Z-Wave device command class.
Definition: SwitchToggleBinary.h:40
uint8 GetSecurity() const
Definition: Node.h:310
string m_sentTS
Definition: Node.h:644
signed short int16
Definition: Defs.h:92
bool IsNodeReset()
Definition: Node.cpp:3708
virtual ~Node()
Definition: Node.cpp:199
Implements COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE (0x46), a Z-Wave device command class.
Definition: ClimateControlSchedule.h:42
bool CreateValueBool(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, bool const _default, uint8 const _pollIntensity)
Definition: Node.cpp:2325
string getConfigPath()
Definition: Node.cpp:3741
Implements COMMAND_CLASS_THERMOSTAT_MODE (0x40), a Z-Wave device command class.
Definition: ThermostatMode.h:43
Implements COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION (0x8E), a Z-Wave device command class.
Definition: MultiChannelAssociation.h:40
string m_receivedTS
Definition: Node.h:645
The Driver class handles communication between OpenZWave and a device attached via a serial port (typ...
Definition: Driver.h:63
MetaDataFields const GetMetaDataId(string)
Definition: Node.cpp:3839
signed int int32
Definition: Defs.h:95
void SetNodePlusInfoReceived(const bool _received)
Definition: Node.h:255
unsigned int uint32
Definition: Defs.h:96
void SetNodeOn()
Definition: Node.cpp:2246
uint32 m_sentCnt
Definition: Node.h:638
uint32 m_sentCnt
Definition: Node.h:632
void setFileConfigRevision(uint32 rev)
Definition: Node.cpp:3756
Manages a group of devices (various nodes associated with each other).
Definition: Group.h:49
Implements COMMAND_CLASS_HAIL (0x82), a Z-Wave device command class.
Definition: Hail.h:38
void RemoveValueList(ValueList *_value)
Definition: Node.cpp:2623
bool CreateValueRaw(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const *_default, uint8 const _length, uint8 const _pollIntensity)
Definition: Node.cpp:2503
void AdvanceQueries()
Definition: Node.cpp:249
uint8 m_lastReceivedMessage[254]
Definition: Node.h:651
uint32 getLatestConfigRevision()
Definition: Node.h:465
bool CreateValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition: Node.cpp:2636
uint32 m_averageResponseRTT
Definition: Node.h:649
Implements COMMAND_CLASS_SWITCH_MULTILEVEL (0x26), a Z-Wave device command class.
Definition: SwitchMultilevel.h:42
uint32 GetMaxBaudRate() const
Definition: Node.h:308
void ApplicationCommandHandler(uint8 const *_data, bool encrypted)
Definition: Node.cpp:1927
void SetLevel(uint8 const _level)
Definition: Node.cpp:2224
void SetQueryStage(QueryStage const _stage, bool const _advance=true)
Definition: Node.cpp:803
uint32 m_lastRequestRTT
Definition: Node.h:646
void UpdateNodeInfo(uint8 const *_data, uint8 const _length)
Definition: Node.cpp:1709
Implements COMMAND_CLASS_PROTECTION (0x75), a Z-Wave device command class.
Definition: Protection.h:40
Provides a unique ID for a value reported by a Z-Wave device.The ValueID is used to uniquely identify...
Definition: ValueID.h:62
uint8 GetNodeId() const
Definition: Node.h:312
bool CreateValueSchedule(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity)
Definition: Node.cpp:2534
bool IsBeamingDevice() const
Definition: Node.h:305
void SetAddingNode()
Definition: Node.h:321
bool IsNodeZWavePlus() const
Definition: Node.h:251
uint32 m_averageRequestRTT
Definition: Node.h:647
bool CreateValueString(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition: Node.cpp:2593
Implements COMMAND_CLASS_BATTERY (0x80), a Z-Wave device command class.
Definition: Battery.h:40
void setLatestConfigRevision(uint32 rev)
Definition: Node.cpp:3794
Implements COMMAND_CLASS_SWITCH_ALL (0x27), a Z-Wave device command class.
Definition: SwitchAll.h:40
Node(uint32 const _homeId, uint8 const _nodeId)
Definition: Node.cpp:122
Node::QueryStage GetCurrentQueryStage()
Definition: Node.h:209
uint32 getLoadedConfigRevision()
Definition: Node.h:460
uint32 m_receivedUnsolicited
Definition: Node.h:643
uint8 * GenerateNonceKey()
Definition: Node.cpp:3597
Implements COMMAND_CLASS_CLOCK (0x81), a Z-Wave device command class.
Definition: Clock.h:41
Implements COMMAND_CLASS_SWITCH_TOGGLE_MULTILEVEL (0x29), a Z-Wave device command class.
Definition: SwitchToggleMultilevel.h:40
Implements COMMAND_CLASS_THERMOSTAT_OPERATING_STATE (0x42), a Z-Wave device command class.
Definition: ThermostatOperatingState.h:43
CommandClass * GetCommandClass(uint8 const _commandClassId, bool advertised=false) const
Definition: Node.cpp:1996
uint32 m_receivedCnt
Definition: Node.h:641
Implements COMMAND_CLASS_ENERGY_PRODUCTION (0x90), a Z-Wave device command class.
Definition: EnergyProduction.h:40
Implements COMMAND_CLASS_MULTI_INSTANCE (0x60), a Z-Wave device command class.
Definition: MultiInstance.h:39
Implements COMMAND_CLASS_LANGUAGE (0x89), a Z-Wave device command class.
Definition: Language.h:40
Implements a platform-independent TimeStamp.
Definition: TimeStamp.h:40
Base class for values associated with a node.
Definition: Value.h:48
uint8 GetGeneric() const
Definition: Node.h:315
Implements COMMAND_CLASS_ZWAVE_PLUS_INFO (0x5E), a Z-Wave device command class.
Definition: ZWavePlusInfo.h:38
Implements COMMAND_CLASS_VERSION (0x86), a Z-Wave device command class.
Definition: Version.h:40
void UpdateProtocolInfo(uint8 const *_data)
Definition: Node.cpp:1419
Implements COMMAND_CLASS_NODE_NAMING (0x77), a Z-Wave device command class.
Definition: NodeNaming.h:54
uint32 m_retries
Definition: Node.h:640
bool IsRoutingDevice() const
Definition: Node.h:306
Implements COMMAND_CLASS_SENSOR_MULTILEVEL (0x31), a Z-Wave device command class.
Definition: SensorMultilevel.h:40
void SetNodeOff()
Definition: Node.cpp:2261
Implements COMMAND_CLASS_CONTROLLER_REPLICATION (0x21), a Z-Wave device command class.
Definition: ControllerReplication.h:38
bool IsListeningDevice() const
Definition: Node.h:303
bool CreateValueBitSet(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity)
Definition: Node.cpp:2292
Implements COMMAND_CLASS_BASIC (0x20), a Z-Wave device command class.
Definition: Basic.h:40
Value * GetValue(ValueID const &_id)
Definition: Node.cpp:2738
uint8 GetBasic() const
Definition: Node.h:314
ValueGenre
Definition: ValueID.h:80
uint32 m_receivedDups
Definition: Node.h:642
string const GetMetaData(MetaDataFields)
Definition: Node.cpp:3828
bool CreateValueButton(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, uint8 const _pollIntensity)
Definition: Node.cpp:2355
bool CreateValueInt(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity)
Definition: Node.cpp:2441
uint8 m_quality
Definition: Node.h:650
bool CreateValueShort(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int16 const _default, uint8 const _pollIntensity)
Definition: Node.cpp:2563
List of values sent to/received from a node.
Definition: ValueList.h:46
friend class CommandClass
Definition: Node.h:79
uint8 GetSpecific() const
Definition: Node.h:316
unsigned char uint8
Definition: Defs.h:90