@@ -915,7 +915,7 @@ void COpenZWave::EnableDisableDebug()
915
915
bool COpenZWave::OpenSerialConnector ()
916
916
{
917
917
_log.Log (LOG_STATUS, " OpenZWave: Starting..." );
918
- _log.Log (LOG_STATUS, " OpenZWave: Version: %s" , GetVersionLong ().c_str ());
918
+ // _log.Log(LOG_STATUS, "OpenZWave: Version: %s", GetVersionLong().c_str());
919
919
920
920
m_allNodesQueried = false ;
921
921
m_updateTime = mytime (NULL );
@@ -2907,39 +2907,45 @@ int COpenZWave::ListGroupsForNode(const int nodeID)
2907
2907
return m_pManager->GetNumGroups (m_controllerID, nodeID);
2908
2908
}
2909
2909
2910
- int COpenZWave::ListAssociatedNodesinGroup (const int nodeID, const int groupID, std::vector<int > &nodesingroup)
2910
+ int COpenZWave::ListAssociatedNodesinGroup (const int nodeID, const int groupID, std::vector<string > &nodesingroup)
2911
2911
{
2912
2912
2913
2913
if (m_pManager == NULL )
2914
2914
return 0 ;
2915
2915
2916
- uint8 * arr;
2916
+ InstanceAssociation * arr;
2917
2917
int retval = m_pManager->GetAssociations (m_controllerID, nodeID, groupID, &arr);
2918
2918
if (retval > 0 ) {
2919
2919
for (int i = 0 ; i < retval; i++) {
2920
- nodesingroup.push_back (arr[i]);
2920
+ char str[32 ];
2921
+ if (arr[i].m_instance == 0 ) {
2922
+ snprintf ( str, 32 , " %d" , arr[i].m_nodeId );
2923
+ } else {
2924
+ snprintf ( str, 32 , " %d.%d" , arr[i].m_nodeId , arr[i].m_instance );
2925
+ }
2926
+ nodesingroup.push_back (str);
2921
2927
}
2922
2928
delete[] arr;
2923
2929
}
2924
2930
return retval;
2925
2931
}
2926
2932
2927
- bool COpenZWave::AddNodeToGroup (const int nodeID, const int groupID, const int addID)
2933
+ bool COpenZWave::AddNodeToGroup (const int nodeID, const int groupID, const int addID, const int instance )
2928
2934
{
2929
2935
2930
2936
if (m_pManager == NULL )
2931
2937
return false ;
2932
- m_pManager->AddAssociation (m_controllerID, nodeID, groupID, addID);
2933
- _log.Log (LOG_STATUS, " OpenZWave: added node: %d (0x%02x) in group: %d of node: %d (0x%02x)" , addID, addID, groupID, nodeID, nodeID);
2938
+ m_pManager->AddAssociation (m_controllerID, nodeID, groupID, addID, instance );
2939
+ _log.Log (LOG_STATUS, " OpenZWave: added node: %d (0x%02x) instance %d in group: %d of node: %d (0x%02x)" , addID, addID, instance , groupID, nodeID, nodeID);
2934
2940
return true ;
2935
2941
}
2936
2942
2937
- bool COpenZWave::RemoveNodeFromGroup (const int nodeID, const int groupID, const int removeID)
2943
+ bool COpenZWave::RemoveNodeFromGroup (const int nodeID, const int groupID, const int removeID, const int instance )
2938
2944
{
2939
2945
if (m_pManager == NULL )
2940
2946
return false ;
2941
- m_pManager->RemoveAssociation (m_controllerID, nodeID, groupID, removeID);
2942
- _log.Log (LOG_STATUS, " OpenZWave: removed node: %d (0x%02x) from group: %d of node: %d (0x%02x)" , removeID, removeID, groupID, nodeID, nodeID);
2947
+ m_pManager->RemoveAssociation (m_controllerID, nodeID, groupID, removeID, instance );
2948
+ _log.Log (LOG_STATUS, " OpenZWave: removed node: %d (0x%02x) instance %d from group: %d of node: %d (0x%02x)" , removeID, removeID, instance , groupID, nodeID, nodeID);
2943
2949
2944
2950
return true ;
2945
2951
}
@@ -3920,7 +3926,7 @@ namespace http {
3920
3926
{
3921
3927
std::vector<std::string> sd = *itt;
3922
3928
3923
- unsigned int homeID = atoi (sd[1 ]. c_str () );
3929
+ unsigned int homeID = boost::lexical_cast< unsigned int > (sd[1 ]);
3924
3930
int nodeID = atoi (sd[2 ].c_str ());
3925
3931
// if (nodeID>1) //Don't include the controller
3926
3932
{
@@ -4272,7 +4278,9 @@ namespace http {
4272
4278
if (pHardware != NULL )
4273
4279
{
4274
4280
COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
4275
- pOZWHardware->RemoveNodeFromGroup (atoi (node.c_str ()), atoi (group.c_str ()), atoi (removenode.c_str ()));
4281
+ int nodeId = 0 , instance = 0 ;
4282
+ sscanf (removenode.c_str ()," %d.%d" , &nodeId, &instance);
4283
+ pOZWHardware->RemoveNodeFromGroup (atoi (node.c_str ()), atoi (group.c_str ()), nodeId, instance);
4276
4284
root[" status" ] = " OK" ;
4277
4285
root[" title" ] = " ZWaveRemoveGroupNode" ;
4278
4286
}
@@ -4302,7 +4310,9 @@ namespace http {
4302
4310
if (pHardware != NULL )
4303
4311
{
4304
4312
COpenZWave *pOZWHardware = (COpenZWave*)pHardware;
4305
- pOZWHardware->AddNodeToGroup (atoi (node.c_str ()), atoi (group.c_str ()), atoi (addnode.c_str ()));
4313
+ int nodeId = 0 , instance = 0 ;
4314
+ sscanf (addnode.c_str ()," %d.%d" , &nodeId, &instance);
4315
+ pOZWHardware->AddNodeToGroup (atoi (node.c_str ()), atoi (group.c_str ()), nodeId, instance);
4306
4316
root[" status" ] = " OK" ;
4307
4317
root[" title" ] = " ZWaveAddGroupNode" ;
4308
4318
}
@@ -4347,14 +4357,14 @@ namespace http {
4347
4357
if (numGroups > MaxNoOfGroups)
4348
4358
MaxNoOfGroups = numGroups;
4349
4359
4350
- std::vector< int > nodesingroup;
4360
+ std::vector< string > nodesingroup;
4351
4361
int gi = 0 ;
4352
4362
for (int x = 1 ; x <= numGroups; x++)
4353
4363
{
4354
4364
int numNodesInGroup = pOZWHardware->ListAssociatedNodesinGroup (nodeID, x, nodesingroup);
4355
4365
if (numNodesInGroup > 0 ) {
4356
4366
std::stringstream list;
4357
- std::copy (nodesingroup.begin (), nodesingroup.end (), std::ostream_iterator<int >(list, " ," ));
4367
+ std::copy (nodesingroup.begin (), nodesingroup.end (), std::ostream_iterator<string >(list, " ," ));
4358
4368
root[" result" ][" nodes" ][ii][" groups" ][gi][" id" ] = x;
4359
4369
root[" result" ][" nodes" ][ii][" groups" ][gi][" nodes" ] = list.str ();
4360
4370
}
0 commit comments