53 class AssociationCommandConfiguration;
54 class ControllerReplication;
56 class ManufacturerSpecific;
57 class MultiChannelAssociation;
72 class ProductDescriptor;
73 class ManufacturerSpecificDB;
119 Driver* GetDriver()
const;
245 return m_protocolInfoReceived;
249 return m_nodeInfoReceived;
253 return m_nodePlusInfoReceived;
263 m_nodePlusInfoReceived = _received;
274 void SetStaticRequests();
278 bool m_queryConfiguration;
279 uint8 m_queryRetries;
280 bool m_protocolInfoReceived;
281 bool m_basicprotocolInfoReceived;
282 bool m_nodeInfoReceived;
283 bool m_nodePlusInfoReceived;
284 bool m_manufacturerSpecificClassReceived;
285 bool m_nodeInfoSupported;
286 bool m_refreshonNodeInfoFrame;
318 return m_frequentListening;
334 return m_maxBaudRate;
368 return (m_basic == 0x01 || m_basic == 0x02) && (m_generic == 0x01 || m_generic == 0x02);
380 m_addingNode =
false;
385 bool m_frequentListening;
397 uint8 m_neighbors[29];
398 uint8 m_numRouteNodes;
399 uint8 m_routeNodes[5];
400 map<uint8, uint8> m_buttonMap;
409 string GetManufacturerName()
const
411 return m_manufacturerName;
413 string GetProductName()
const
415 return m_productName;
417 string GetNodeName()
const
421 string GetLocation()
const
427 uint16 GetManufacturerId()
const
429 return m_manufacturerId;
432 uint16 GetProductType()
const
434 return m_productType;
437 uint16 GetProductId()
const
442 void SetManufacturerName(
string const& _manufacturerName)
444 m_manufacturerName = _manufacturerName;
446 void SetProductName(
string const& _productName)
448 m_productName = _productName;
450 void SetNodeName(
string const& _nodeName);
451 void SetLocation(
string const& _location);
453 void SetManufacturerId(
uint16 const& _manufacturerId)
455 m_manufacturerId = _manufacturerId;
457 void SetProductType(
uint16 const& _productType)
459 m_productType = _productType;
461 void SetProductId(
uint16 const& _productId)
463 m_productId = _productId;
466 string m_manufacturerName;
467 string m_productName;
476 uint16 GetDeviceType()
const
480 string GetDeviceTypeString();
481 uint8 GetRoleType()
const
485 string GetRoleTypeString();
486 uint8 GetNodeType()
const
490 string GetNodeTypeString();
551 void RemoveCommandClass(
uint8 const _commandClassId);
552 void ReadXML(TiXmlElement
const* _nodeElement);
553 void ReadDeviceProtocolXML(TiXmlElement
const* _ccsElement);
554 void ReadCommandClassesXML(TiXmlElement
const* _ccsElement);
555 void WriteXML(TiXmlElement* _nodeElement);
557 map<uint8, Internal::CC::CommandClass*> m_commandClassMap;
559 map<uint8, string> m_globalInstanceLabel;
561 TiXmlNode *m_nodeCache;
578 return m_fileConfigRevision;
587 return m_loadedConfigRevision;
596 return m_latestConfigRevision;
621 std::shared_ptr<Internal::ProductDescriptor> m_Product;
623 uint32 m_fileConfigRevision;
624 uint32 m_loadedConfigRevision;
625 uint32 m_latestConfigRevision;
651 bool CreateValueBool(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint16 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
bool const _default,
uint8 const _pollIntensity);
656 bool CreateValueList(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint16 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
uint8 const _size, vector<Internal::VC::ValueList::Item>
const& _items,
int32 const _default,
uint8 const _pollIntensity);
657 bool CreateValueRaw(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint16 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
uint8 const* _default,
uint8 const _length,
uint8 const _pollIntensity);
674 Internal::VC::ValueStore* m_values;
680 bool SetConfigParam(
uint8 const _param,
int32 _value,
uint8 const _size);
681 void RequestConfigParam(
uint8 const _param);
682 bool RequestAllConfigParams(
uint32 const _requestFlags);
688 bool RequestDynamicValues();
699 uint8 GetNumGroups();
702 uint8 GetMaxAssociations(
uint8 const _groupIdx);
703 bool IsMultiInstance(
uint8 const _groupIdx);
704 string GetGroupLabel(
uint8 const _groupIdx);
705 void AddAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00);
706 void RemoveAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00);
707 void AutoAssociate();
711 void AddGroup(
Group* _group);
712 void WriteGroups(TiXmlElement* _associationsElement);
714 map<uint8, Group*> m_groups;
724 DeviceClass(TiXmlElement
const* _el);
727 delete[] m_mandatoryCommandClasses;
730 uint8 const* GetMandatoryCommandClasses()
732 return m_mandatoryCommandClasses;
734 uint8 GetBasicMapping()
736 return m_basicMapping;
738 string const& GetLabel()
744 uint8* m_mandatoryCommandClasses;
745 uint8 m_basicMapping;
750 class GenericDeviceClass:
public DeviceClass
753 GenericDeviceClass(TiXmlElement
const* _el);
754 ~GenericDeviceClass();
756 DeviceClass* GetSpecificDeviceClass(
uint8 const& _specific);
759 map<uint8, DeviceClass*> m_specificDeviceClasses;
762 bool SetDeviceClasses(
uint8 const _basic,
uint8 const _generic,
uint8 const _specific);
763 bool SetPlusDeviceClasses(
uint8 const _role,
uint8 const _nodeType,
uint16 const _deviceType);
764 bool AddMandatoryCommandClasses(
uint8 const* _commandClasses);
765 bool ReadDeviceClasses();
767 static bool s_deviceClassesLoaded;
768 static map<uint8, string> s_basicDeviceClasses;
769 static map<uint8, GenericDeviceClass*> s_genericDeviceClasses;
770 static map<uint8, DeviceClass*> s_roleDeviceClasses;
771 static map<uint16, DeviceClass*> s_deviceTypeClasses;
772 static map<uint8, DeviceClass*> s_nodeTypes;
821 void GetNodeStatistics(
NodeData* _data);
828 uint32 m_receivedUnsolicited;
833 uint32 m_averageRequestRTT;
834 uint32 m_averageResponseRTT;
836 uint8 m_lastReceivedMessage[254];
838 bool m_txStatusReportSupported;
847 uint8 m_lastTxChannel;
849 uint8 m_routeUsed[4];
852 uint8 m_lastFailedLinkFrom;
853 uint8 m_lastFailedLinkTo;
865 uint8 m_nonces[8][8];
910 void ReadMetaDataFromXML(TiXmlElement
const* _valueElement);
911 void WriteMetaDataXML(TiXmlElement*);
912 map<MetaDataFields, string> m_metadata;
913 map<uint32_t, ChangeLogEntry> m_changeLog;
unsigned short uint16
Definition Defs.h:88
unsigned int uint32
Definition Defs.h:91
signed short int16
Definition Defs.h:87
signed int int32
Definition Defs.h:90
TXSTATUS_ROUTING_SCHEME
Definition Defs.h:449
TXSTATUS_ROUTE_SPEED
Definition Defs.h:462
unsigned char uint8
Definition Defs.h:85
The Driver class handles communication between OpenZWave and a device attached via a serial port (typ...
Definition Driver.h:85
Manages a group of devices (various nodes associated with each other).
Definition Group.h:72
Implements COMMAND_CLASS_ASSOCIATION_COMMAND_CONFIGURATION (0x9b), a Z-Wave device command class.
Definition AssociationCommandConfiguration.h:47
Implements COMMAND_CLASS_ASSOCIATION (0x85), a Z-Wave device command class.
Definition Association.h:44
Base class for all Z-Wave command classes.
Definition CommandClass.h:61
Implements COMMAND_CLASS_CONTROLLER_REPLICATION (0x21), a Z-Wave device command class.
Definition ControllerReplication.h:44
Implements COMMAND_CLASS_HAIL (0x82), a Z-Wave device command class.
Definition Hail.h:44
Implements COMMAND_CLASS_MANUFACTURER_SPECIFIC (0x72), a Z-Wave device command class.
Definition ManufacturerSpecific.h:45
Implements COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION (0x8E), a Z-Wave device command class.
Definition MultiChannelAssociation.h:46
Implements COMMAND_CLASS_MULTI_INSTANCE (0x60), a Z-Wave device command class.
Definition MultiInstance.h:45
Implements COMMAND_CLASS_NODE_NAMING (0x77), a Z-Wave device command class.
Definition NodeNaming.h:57
Implements COMMAND_CLASS_VERSION (0x86), a Z-Wave device command class.
Definition Version.h:44
Implements COMMAND_CLASS_ZWAVEPLUS_INFO (0x5E), a Z-Wave device command class.
Definition ZWavePlusInfo.h:44
The _ManufacturerSpecificDB class handles the Config File Database that we use to configure devices.
Definition ManufacturerSpecificDB.h:117
List of values sent to/received from a node.
Definition ValueList.h:49
Container that holds all of the values associated with a given node.
Definition ValueStore.h:50
Base class for values associated with a node.
Definition Value.h:55
The main public interface to OpenZWave.
Definition Manager.h:109
The Node class describes a Z-Wave node object...typically a device on the Z-Wave network.
Definition Node.h:82
Internal::CC::CommandClass * GetCommandClass(uint8 const _commandClassId) const
Definition Node.cpp:2134
MetaDataFields GetMetaDataId(string)
Definition Node.cpp:3855
uint8 GetNodeId() const
Definition Node.h:345
void ClearAddingNode()
Definition Node.h:378
void UpdateProtocolInfo(uint8 const *_data)
Definition Node.cpp:1375
void RemoveValueList(Internal::VC::ValueList *_value)
Definition Node.cpp:2606
uint32 getFileConfigRevision()
Definition Node.h:576
bool CreateValueButton(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, uint8 const _pollIntensity)
Definition Node.cpp:2445
bool ProtocolInfoReceived() const
Definition Node.h:243
@ NodeBroadcast
Definition Node.h:309
bool CreateValueDecimal(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition Node.cpp:2481
uint8 GetGeneric(uint8 const _instance) const
Definition Node.cpp:1660
string GetSpecificString(uint8 const _instance)
Definition Node.cpp:1706
bool NodeInfoReceived() const
Definition Node.h:247
void RefreshValuesOnWakeup()
Definition Node.cpp:2340
string GetGenericString(uint8 const _instance)
Definition Node.cpp:1670
@ SecurityFlag_OptionalFunctionality
Definition Node.h:303
@ SecurityFlag_RoutingSlave
Definition Node.h:299
@ SecurityFlag_Sensor250ms
Definition Node.h:301
@ SecurityFlag_Sensor1000ms
Definition Node.h:302
@ SecurityFlag_Controller
Definition Node.h:297
@ SecurityFlag_Security
Definition Node.h:296
@ SecurityFlag_BeamCapability
Definition Node.h:300
@ SecurityFlag_SpecificDevice
Definition Node.h:298
friend class Group
Definition Node.h:85
void SetAddingNode()
Definition Node.h:374
void SetSecuredClasses(uint8 const *_data, uint8 const _length, uint32 const _instance=1)
Definition Node.cpp:1737
uint8 * GenerateNonceKey()
Definition Node.cpp:3606
bool CreateValueBool(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, bool const _default, uint8 const _pollIntensity)
Definition Node.cpp:2427
bool IsController() const
Definition Node.h:366
Internal::VC::Value * GetValue(ValueID const &_id)
Definition Node.cpp:2759
void SetNodeAlive(bool const _isAlive)
Definition Node.cpp:1936
void setLatestConfigRevision(uint32 rev)
Definition Node.cpp:3799
void QueryStageRetry(QueryStage const _stage, uint8 const _maxAttempts=0)
Definition Node.cpp:707
bool IsFrequentListeningDevice() const
Definition Node.h:316
bool IsBeamingDevice() const
Definition Node.h:320
bool IsRoutingDevice() const
Definition Node.h:324
uint8 GetSecurity() const
Definition Node.h:340
bool IsAddingNode() const
Definition Node.h:370
bool RemoveValue(uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex)
Definition Node.cpp:2797
void SetLevel(uint8 const _level)
Definition Node.cpp:2355
void QueryStageComplete(QueryStage const _stage)
Definition Node.cpp:682
uint32 getLoadedConfigRevision()
Definition Node.h:585
bool CreateValueByte(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2463
string GetQueryStageName(QueryStage const _stage)
Definition Node.cpp:760
uint8 GetSpecific(uint8 const _instance) const
Definition Node.cpp:1695
bool IsSecured()
Definition Node.cpp:1588
uint8 * GetNonceKey(uint32 nonceid)
Definition Node.cpp:3653
string const GetMetaDataString(MetaDataFields)
Definition Node.cpp:3891
bool CreateValueSchedule(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity)
Definition Node.cpp:2552
Node(uint32 const _homeId, uint8 const _nodeId)
Definition Node.cpp:101
uint8 GetBasic() const
Definition Node.h:350
string GetInstanceLabel(uint8 const _ccid, uint8 const _instance)
Definition Node.cpp:1601
QueryStage
Definition Node.h:126
@ QueryStage_SecurityReport
Definition Node.h:133
@ QueryStage_Session
Definition Node.h:143
@ QueryStage_Probe1
Definition Node.h:140
@ QueryStage_Complete
Definition Node.h:146
@ QueryStage_ProtocolInfo
Definition Node.h:128
@ QueryStage_NodeInfo
Definition Node.h:131
@ QueryStage_CacheLoad
Definition Node.h:139
@ QueryStage_Neighbors
Definition Node.h:142
@ QueryStage_NodePlusInfo
Definition Node.h:132
@ QueryStage_Probe
Definition Node.h:129
@ QueryStage_Dynamic
Definition Node.h:144
@ QueryStage_WakeUp
Definition Node.h:130
@ QueryStage_Static
Definition Node.h:138
@ QueryStage_ManufacturerSpecific2
Definition Node.h:137
@ QueryStage_Instances
Definition Node.h:136
@ QueryStage_ManufacturerSpecific1
Definition Node.h:135
@ QueryStage_Versions
Definition Node.h:134
@ QueryStage_None
Definition Node.h:127
@ QueryStage_Configuration
Definition Node.h:145
@ QueryStage_Associations
Definition Node.h:141
void ReadValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition Node.cpp:2706
bool CreateValueList(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _size, vector< Internal::VC::ValueList::Item > const &_items, int32 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2517
bool IsNodeReset()
Definition Node.cpp:3731
uint32 GetMaxBaudRate() const
Definition Node.h:332
ValueID CreateValueID(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, ValueID::ValueType const _type)
Definition Node.cpp:2400
void checkLatestConfigRevision()
Definition Node.cpp:3814
bool CreateValueString(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition Node.cpp:2588
virtual ~Node()
Definition Node.cpp:124
string const GetMetaData(MetaDataFields)
Definition Node.cpp:3827
uint8 GetVersion() const
Definition Node.h:336
bool IsListeningDevice() const
Definition Node.h:312
bool AllQueriesCompleted() const
Definition Node.h:256
bool CreateValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition Node.cpp:2616
void ApplicationCommandHandler(uint8 const *_data, bool encrypted)
Definition Node.cpp:2042
uint8 GetNumInstances(uint8 const _ccid)
Definition Node.cpp:1624
void SetNodeOn()
Definition Node.cpp:2374
ChangeLogEntry const GetChangeLog(uint32_t)
Definition Node.cpp:3840
void SetProductDetails(std::shared_ptr< Internal::ProductDescriptor > product)
Definition Node.cpp:3745
void setLoadedConfigRevision(uint32 rev)
Definition Node.cpp:3784
void SetNodeOff()
Definition Node.cpp:2387
bool IsNodeZWavePlus() const
Definition Node.h:251
string GetEndPointDeviceClassLabel(uint8 const _generic, uint8 const _specific)
Definition Node.cpp:3001
string GetBasicString()
Definition Node.cpp:1640
MetaDataFields
Definition Node.h:879
@ MetaData_ExclusionHelp
Definition Node.h:887
@ MetaData_OzwInfoPage_URL
Definition Node.h:880
@ MetaData_InclusionHelp
Definition Node.h:886
@ MetaData_ProductPic
Definition Node.h:882
@ MetaData_Identifier
Definition Node.h:893
@ MetaData_WakeupHelp
Definition Node.h:889
@ MetaData_Frequency
Definition Node.h:891
@ MetaData_ZWProductPage_URL
Definition Node.h:881
@ MetaData_ProductSupport_URL
Definition Node.h:890
@ MetaData_ProductPage_URL
Definition Node.h:885
@ MetaData_Invalid
Definition Node.h:894
@ MetaData_Name
Definition Node.h:892
@ MetaData_ProductManual_URL
Definition Node.h:884
@ MetaData_ResetHelp
Definition Node.h:888
@ MetaData_Description
Definition Node.h:883
void SetSecured(bool secure)
Definition Node.cpp:1583
void SetInstanceLabel(uint8 const _instance, char *label)
Definition Node.cpp:1593
void setFileConfigRevision(uint32 rev)
Definition Node.cpp:3768
bool CreateValueShort(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int16 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2570
uint32 getLatestConfigRevision()
Definition Node.h:594
string const & GetType() const
Definition Node.h:361
friend class Internal::CC::CommandClass
Definition Node.h:90
Node::QueryStage GetCurrentQueryStage()
Definition Node.h:197
void SetProtocolInfo(uint8 const *_protocolInfo, uint8 const _length)
Definition Node.cpp:1513
bool CreateValueInt(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2499
void UpdateNodeInfo(uint8 const *_data, uint8 const _length)
Definition Node.cpp:1841
bool IsNodeAlive() const
Definition Node.h:214
bool CreateValueRaw(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 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:2534
void AdvanceQueries()
Definition Node.cpp:173
string getConfigPath()
Definition Node.cpp:3755
friend class ValueButton
Definition Node.h:87
uint32 GetNeighbors(uint8 **o_neighbors)
Definition Node.cpp:769
bool CreateValueBitSet(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2409
void SetQueryStage(QueryStage const _stage, bool const _advance=true)
Definition Node.cpp:737
void SetNodePlusInfoReceived(const bool _received)
Definition Node.h:261
bool IsSecurityDevice() const
Definition Node.h:328
Provides a unique ID for a value reported by a Z-Wave device.
Definition ValueID.h:77
ValueType
Definition ValueID.h:99
ValueGenre
Definition ValueID.h:85
Definition Bitfield.cpp:31
struct OpenZWave::InstanceAssociation InstanceAssociation
int revision
Definition Node.h:901
string date
Definition Node.h:900
string author
Definition Node.h:899
string description
Definition Node.h:902
uint32 m_receivedCnt
Definition Node.h:782
uint32 m_sentCnt
Definition Node.h:781
uint8 m_commandClassId
Definition Node.h:780
uint32 m_sentCnt
Definition Node.h:787
TXSTATUS_ROUTING_SCHEME m_routeScheme
Definition Node.h:812
char m_rssi_4[8]
Definition Node.h:808
char m_rssi_2[8]
Definition Node.h:806
uint32 m_retries
Definition Node.h:789
bool m_txStatusReportSupported
Definition Node.h:802
uint8 m_lastFailedLinkTo
Definition Node.h:817
uint32 m_receivedUnsolicited
Definition Node.h:792
uint32 m_lastResponseRTT
Definition Node.h:797
uint32 m_lastRequestRTT
Definition Node.h:795
uint32 m_sentFailed
Definition Node.h:788
uint32 m_averageResponseRTT
Definition Node.h:798
uint8 m_lastTxChannel
Definition Node.h:811
uint32 m_receivedDups
Definition Node.h:791
char m_rssi_5[8]
Definition Node.h:809
uint32 m_averageRequestRTT
Definition Node.h:796
string m_receivedTS
Definition Node.h:794
uint8 m_routeTries
Definition Node.h:815
char m_routeUsed[9]
Definition Node.h:813
string m_sentTS
Definition Node.h:793
uint8 m_ackChannel
Definition Node.h:810
list< CommandClassData > m_ccData
Definition Node.h:801
uint8 m_quality
Definition Node.h:799
TXSTATUS_ROUTE_SPEED m_routeSpeed
Definition Node.h:814
char m_rssi_3[8]
Definition Node.h:807
uint16 m_txTime
Definition Node.h:803
uint8 m_lastFailedLinkFrom
Definition Node.h:816
uint32 m_receivedCnt
Definition Node.h:790
char m_rssi_1[8]
Definition Node.h:805
uint8 m_lastReceivedMessage[254]
Definition Node.h:800
uint8 m_hops
Definition Node.h:804