Ubisys S2 (also applies to S1)
**Device description**
I'd like to have the Ubisys S2 switch supported. It is a mains-powered, wall mounted, two-channel switch for loads, e.g. lights. Same goes for the S1 (difference: s2 is two channel, s1 is one channel, they produce the same error message)
[Manufacturer website](https://www.ubisys.de/en/products/light-and-consumers/power-switch-s2/)


**Supported in Zigbee2MQTT?**
The device is supported in Zigbee2MQTT. Same goes for S1. Interestingly the Ubisys D1 works flawlessly.
I am on the latest dev version, but I assume support for these has been around a while.

**Device model / Exposes information**

```json
{
    "date_code": "20191127-DE-FB0",
    "definition": {
      "description": "Power switch S2",
      "exposes": [
        {
          "endpoint": "l1",
          "features": [
            {
              "access": 7,
              "description": "On/off state of the switch",
              "endpoint": "l1",
              "name": "state",
              "property": "state_l1",
              "type": "binary",
              "value_off": "OFF",
              "value_on": "ON",
              "value_toggle": "TOGGLE"
            }
          ],
          "type": "switch"
        },
        {
          "endpoint": "l2",
          "features": [
            {
              "access": 7,
              "description": "On/off state of the switch",
              "endpoint": "l2",
              "name": "state",
              "property": "state_l2",
              "type": "binary",
              "value_off": "OFF",
              "value_on": "ON",
              "value_toggle": "TOGGLE"
            }
          ],
          "type": "switch"
        },
        {
          "access": 5,
          "description": "Instantaneous measured power",
          "endpoint": "meter",
          "name": "power",
          "property": "power",
          "type": "numeric",
          "unit": "W"
        },
        {
          "access": 1,
          "description": "Triggered action (e.g. a button click)",
          "name": "action",
          "property": "action",
          "type": "enum",
          "values": [
            "toggle_s1",
            "toggle_s2",
            "on_s1",
            "on_s2",
            "off_s1",
            "off_s2",
            "recall_*_s1",
            "recal_*_s2",
            "brightness_move_up_s1",
            "brightness_move_up_s2",
            "brightness_move_down_s1",
            "brightness_move_down_s2",
            "brightness_stop_s1",
            "brightness_stop_s2"
          ]
        },
        {
          "access": 1,
          "description": "Link quality (signal strength)",
          "name": "linkquality",
          "property": "linkquality",
          "type": "numeric",
          "unit": "lqi",
          "value_max": 255,
          "value_min": 0
        }
      ],
      "model": "S2",
      "supports_ota": true,
      "vendor": "Ubisys"
    },
    "endpoints": {
      "1": {
        "bindings": [
          {
            "cluster": "genOnOff",
            "target": {
              "endpoint": 1,
              "ieee_address": "0x00124b0021b7788c",
              "type": "endpoint"
            }
          }
        ],
        "clusters": {
          "input": [
            "genBasic",
            "genIdentify",
            "genGroups",
            "genScenes",
            "genOnOff"
          ],
          "output": []
        },
        "configured_reportings": [
          {
            "attribute": "onOff",
            "cluster": "genOnOff",
            "maximum_report_interval": 300,
            "minimum_report_interval": 0,
            "reportable_change": 0
          }
        ]
      },
      "2": {
        "bindings": [
          {
            "cluster": "genOnOff",
            "target": {
              "endpoint": 1,
              "ieee_address": "0x00124b0021b7788c",
              "type": "endpoint"
            }
          }
        ],
        "clusters": {
          "input": [
            "genBasic",
            "genIdentify",
            "genGroups",
            "genScenes",
            "genOnOff"
          ],
          "output": []
        },
        "configured_reportings": [
          {
            "attribute": "onOff",
            "cluster": "genOnOff",
            "maximum_report_interval": 300,
            "minimum_report_interval": 0,
            "reportable_change": 0
          }
        ]
      },
      "3": {
        "bindings": [
          {
            "cluster": "genOnOff",
            "target": {
              "endpoint": 1,
              "ieee_address": "0x001fee00000058d9",
              "type": "endpoint"
            }
          }
        ],
        "clusters": {
          "input": [
            "genBasic",
            "genIdentify"
          ],
          "output": [
            "genScenes",
            "genOnOff",
            "genLevelCtrl"
          ]
        },
        "configured_reportings": []
      },
      "4": {
        "bindings": [
          {
            "cluster": "genOnOff",
            "target": {
              "endpoint": 2,
              "ieee_address": "0x001fee00000058d9",
              "type": "endpoint"
            }
          }
        ],
        "clusters": {
          "input": [
            "genBasic",
            "genIdentify"
          ],
          "output": [
            "genScenes",
            "genOnOff",
            "genLevelCtrl"
          ]
        },
        "configured_reportings": []
      },
      "5": {
        "bindings": [
          {
            "cluster": "seMetering",
            "target": {
              "endpoint": 1,
              "ieee_address": "0x00124b0021b7788c",
              "type": "endpoint"
            }
          }
        ],
        "clusters": {
          "input": [
            "genBasic",
            "seMetering",
            "haElectricalMeasurement"
          ],
          "output": []
        },
        "configured_reportings": [
          {
            "attribute": "instantaneousDemand",
            "cluster": "seMetering",
            "maximum_report_interval": 3600,
            "minimum_report_interval": 5,
            "reportable_change": 1
          }
        ]
      },
      "200": {
        "bindings": [],
        "clusters": {
          "input": [],
          "output": []
        },
        "configured_reportings": []
      },
      "232": {
        "bindings": [],
        "clusters": {
          "input": [
            "genBasic",
            "genCommissioning",
            "manuSpecificUbisysDeviceSetup"
          ],
          "output": [
            "genIdentify",
            "genOta"
          ]
        },
        "configured_reportings": []
      },
      "242": {
        "bindings": [],
        "clusters": {
          "input": [
            "greenPower"
          ],
          "output": [
            "greenPower"
          ]
        },
        "configured_reportings": []
      }
    },
    "friendly_name": "KuecheWand",
    "ieee_address": "0x001fee00000058d9",
    "interview_completed": true,
    "interviewing": false,
    "model_id": "S2 (5502)",
    "network_address": 38227,
    "power_source": "Mains (single phase)",
    "supported": true,
    "type": "Router"
  }
```

**Missing features/functionality**
This device is currently not exposed at all, as it throws an error at start up

`[3/20/2021, 10:17:03 PM] [zigbee2mqtt] Failed to setup stateless programmable switch for accessory KuecheWand from expose "{"access":1,"description":"Triggered action (e.g. a button click)","name":"action","property":"action","type":"enum","values":["toggle_s1","toggle_s2","on_s1","on_s2","off_s1","off_s2","recall_*_s1","recal_*_s2","brightness_move_up_s1","brightness_move_up_s2","brightness_move_down_s1","brightness_move_down_s2","brightness_stop_s1","brightness_stop_s2"]}", error: Error: Device found with a wildcard in the exposed possible values for the action, which cannot be mapped: recall_*_s1`

Expected functionality: a simple lamp on/off (homekit Lightbulb)

I guess the problem stems from the "recall_*_s1" attribute, which I dont think is needed and can be ignored

**Suggested services and characteristics**
For end points l1 and l2, I would expect a homekit [Lightbulb](https://developers.homebridge.io/#/service/Lightbulb)