private void ButtonPressed(ButtonMapping mapping)
        {
            if (mapping.ButtonType == ButtonType.Target)
            {
                ButtonMappingTarget target = (ButtonMappingTarget)mapping;
                m_currentDevice = m_devices.FirstOrDefault(device => device.NodeID == target.DeviceID);
            }
            else
            {
                ButtonMappingAction action = (ButtonMappingAction)mapping;

                if (null == m_currentDevice)
                {
                    m_devices.ForEach(device => ApplyAction(device, action.Action));
                }
                else
                {
                    ApplyAction(m_currentDevice, action.Action);
                }
            }
        }
        private void ApplyAction(IZWaveDevice device, ButtonAction action)
        {
            IBinarySceneSwitch binarySwitch = device as IBinarySceneSwitch;
            IMultilevelSceneSwitch multiLevelSwitch = device as IMultilevelSceneSwitch;
            switch (action)
            {
                case ButtonAction.On:
                    if (null != binarySwitch)
                    {
                        binarySwitch.PowerOn();
                    }
                    break;
                case ButtonAction.Off:
                    if (null != binarySwitch)
                    {
                        binarySwitch.PowerOff();
                    }
                    break;
                case ButtonAction.Up:
                    if (null != multiLevelSwitch)
                    {
                        multiLevelSwitch.Level += 10;
                    }
                    break;
                case ButtonAction.Down:
                    if (null != multiLevelSwitch)
                    {
                        multiLevelSwitch.Level -= 10;
                    }
                    break;

            }
        }