# fake

The `fake` switch model is a model for testing switch functionality without physical hardware. It simulates a multi-position switch which you can control programmatically.

- [JSON Template](https://docs.viam.com/reference/components/switch/fake/#tabset-referencecomponentsswitchfake-1-0)
- [JSON Example](https://docs.viam.com/reference/components/switch/fake/#tabset-referencecomponentsswitchfake-1-1)

## Attributes

The following attributes are available for the `fake` switch model:

| Name                | Type   | Required?   | Description                                                                                          |
| ------------------- | ------ | ------------ | ---------------------------------------------------------------------------------------------------- |
| `position_count`    | int    | **Required** | The number of positions that the switch can be in. Default: `2`                                   |
| `labels`            | array  | Optional     | An array of labels corresponding to the positions. Default: numeric values for the number of positions, starting with 0. |

## Troubleshooting

If your fake switch is not working as expected:

1. Check your machine logs on the **LOGS** tab to check for errors.
2. Make sure the `position_count` matches the number of `labels` if both are specified.
3. Verify that position values used with `SetPosition` are within the valid range (0 to `position_count - 1`).
4. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the switch there.
