Feature #92
Z-Wave support for inclusion/ configuration
| Status: | Closed | Start date: | 01/20/2012 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | - | % Done: | 0% |
|
| Category: | - | |||
| Target version: | - | |||
| Resolution: |
Description
After just adding a few new modules to domotiga I miss being able to include them from domotiga itself as well as setting parameters to set them up in the desired way.
Modules: FGD211 and EZMotion 3-in-1 sensor.
These modules have configurable parameters which can alter the behaviour.
(PDF)Manual for FGD211: http://materialy.fibaro.com/instrukcje/Dimmer%20FGD211%20v1_4%20eng.pdf
(PDF)Manual for EZMotion: http://downloads.ezhome.nl/en/EXP/EXP_EZM_in_en.pdf
As far as I can tell the openzwave wrapper at least has support for inclusion/exclusion which would need to be tapped into somehow.
Sending parameters to devices isn't found in documentation, so status unknown.
As a workaround LinuxMCE can be used to set parameters, or maybe even a trial version of homeseer.
History
Updated by rdnzl 4 months ago
Are you sure Manager::Get()->BeginAddNode and Manager::Get()->EndAddNode or something similar are still in the open-zwave api?
I seems it's not anymore, it was in revision 94 or so, but not in latest.
The more I look into the open-zwave project the weirder it looks... my patch for compiling on 64 bits os isn't even committed yet.
My fix was posted in May 2011... http://code.google.com/p/open-zwave/issues/detail?id=25
Updated by rdnzl 4 months ago
Are you sure Manager::Get()->BeginAddNode and Manager::Get()->EndAddNode or something similar are still in the open-zwave api?
I seems it's not anymore, it was in r94 or so, but not in latest.
The more I look into the open-zwave project the weirder it looks... my patch for compiling on 64 bits os isn't even committed yet.
My fix was posted in May 2011... http://code.google.com/p/open-zwave/issues/detail?id=25
Can you sent me some more info on how and which parameters to set for those devices, what do you select/fill in in homeseer or example?
Updated by j.hoekstra 4 months ago
As far as I can tell there's still a function to add nodes to the network, however resposibility seems to have moved to driver.cpp.
If I'm reading this correctly:
/-----------------------------------------------------------------------------
// <Manager::RefreshNodeInfo>
// Fetch the data for a node from the Z-Wave network
//-----------------------------------------------------------------------------
bool Manager::RefreshNodeInfo
(
uint32 const _homeId,
uint8 const _nodeId
)
{
if( Driver* driver = GetDriver( _homeId ) )
{
// Cause the node's data to be obtained from the Z-Wave network
// in the same way as if it had just been added.
driver->AddNodeInfoRequest( _nodeId );
return true;
}
return false;
}
Points to:
//-----------------------------------------------------------------------------
// <Driver::HandleAddNodeToNetworkRequest>
// Process a request from the Z-Wave PC interface
//-----------------------------------------------------------------------------
void Driver::HandleAddNodeToNetworkRequest
(
uint8* _data
)
//Long method...
If I read it correctly the driver handles adding a node and has methodes as well for removing:
//-----------------------------------------------------------------------------
// <Driver::HandleRemoveNodeFromNetworkRequest>
// Process a request from the Z-Wave PC interface
//-----------------------------------------------------------------------------
void Driver::HandleRemoveNodeFromNetworkRequest
I don't know how it should be called however....
As a reference for setting parameters I used a VM of linuxMCE and used this as a guide:
http://wiki.linuxmce.org/index.php/Tweak_advanced_ZWave_settings
As for the open-zwave project: I'm astounded as well and it seems to repeatedly stop people from compiling succesfully on a 64bit system...
Updated by rdnzl 4 months ago
These are the one I couldn't find anymore in Manager.cpp, they are also in Driver.cpp//-----------------------------------------------------------------------------
// Controller commands
//-----------------------------------------------------------------------------
public:
void ResetController();
void SoftReset();
void RequestNodeNeighborUpdate( uint8 _nodeId );
void AssignReturnRoute( uint8 _srcNodeId, uint8 _dstNodeId );
void BeginAddNode( bool _bHighpower = false );
void BeginAddController( bool _bHighpower = false );
void EndAddNode();
void BeginRemoveNode();
void EndRemoveNode();
void BeginReplicateController();
void EndReplicateController();
void RequestNetworkUpdate();
void ControllerChange();
Will investigate, thanks.
Updated by j.hoekstra 4 months ago
I looked in it some more, configuration parameters can be set in:
// <Manager::SetConfigParam>
// Set the value of one of the configuration parameters of a device
Which points to Driver.cpp as well:
/-----------------------------------------------------------------------------
// <Driver::SetConfigParam>
// Set the value of one of the configuration parameters of a device
After looking at the corresponding Driver.h and Manager.h files it becomes clearer, these methods are public and can be tapped in to.
Updated by rdnzl 4 months ago
I have added inclusion/exclusion support to r810, can you please test? It's called add/remove device in commander.
Not sure if removing works 100% ok, it didn't one time, but then I didn't had the Cancel controller button available to cancel any pending commands.
Will now look into adding setvalue support.
Updated by rdnzl 4 months ago
You can also set parameter values now, download and compile r811.
I also tried to get RequestAllConfigParams or GetConfigParam to work, but didn't succeed yet..
Next task is to get metering and multi-instance switching to work.
Updated by j.hoekstra 4 months ago
Somehow my database didn't get upgraded properly and by starting DomotiGa via Gambas ide produces an error about the setting polltime not being found in zwave-settings table.
I've added a field polltime with the value of 0 and type int(11), it seems to work.
Adding and removing nodes works, they get assigned a different nodenumber and all. AFAIK there“s no way to change the nodenumber, so one of my devices switfched from 2 to 6. Small price to pay 
Setting a parameter seems to work as well, using a FGD211 from Fibaro I can switch the dimming-level on and off and dim or switch the module as intended, no more hassle with linuxmce.
As for requesting parameters:
/**/**
- \brief Request the value of a configurable parameter from a device.
- Some devices have various parameters that can be configured to control the device behaviour.
- These are not reported by the device over the Z-Wave network, but can usually be found in
- the device's user manual.
- This method requests the value of a parameter from the device, and then returns immediately,
- without waiting for a response. If the parameter index is valid for this device, and the
- device is awake, the value will eventually be reported via a ValueChanged notification callback.
- The ValueID reported in the callback will have an index set the same as _param and a command class
- set to the same value as returned by a call to Configuration::StaticGetCommandClassId.
- \param _homeId The Home ID of the Z-Wave controller that manages the node.
- \param _nodeId The ID of the node to configure.
- \param _param The index of the parameter.
- \see SetConfigParam, ValueID, Notification
*/
void RequestConfigParam( uint32 const _homeId, uint8 const _nodeId, uint8 const _param );
- \brief Request the values of all known configurable parameters from a device.
- \param _homeId The Home ID of the Z-Wave controller that manages the node.
- \param _nodeId The ID of the node to configure.
- \see SetConfigParam, ValueID, Notification
*/
void RequestAllConfigParams( uint32 const _homeId, uint8 const _nodeId );
These methods won't return anything, to get the parameter-values you'll have to wait until it's pushed on to network(AFAICT).
I'm really happy for these additions, they make adding nodes a bit simpler in domotiga 
Updated by rdnzl 3 months ago
One request, can you try DomotiGa r817 together with the new open-zwave wrapper and check if you EZMotion 3-in-1 sensor is reporting values to DomotiGa?
I have added support for logging Luminance, Temperature and Battery level.
Couldn't find any example for Motion, but if you enable ZWave debug log and e-mail (to keep it private) me the log I can add it I think.
Thanks!