### Problem description
[This device](https://www.bosch-smarthome.com/uk/en/p…roducts/devices/shutter-control/) looks like an interesting choice for roller/shutter control. After pairing it via code (as it needs this route to succeed) it is detected as `RBSH-MMS-ZB-EU`.
The issue is that the device has to modes: lights (2 separate relays for switching lights) or shutter (the firmware prevents both relays being switched on at the same time and allows for shutter-specific settings like timings).
Without setting this mode both options (a cover and two lights) are detected but seem non-functional.
### Solution description
Looking at [this code](https://github.com/Koenkk/zigbee-herdsman-converters/commit/54ce782cdc89c6cdc515285766d28cc2bc35f956) I have a basic idea of what value needs to be written to the manufacturer specific cluster to set the mode I am interested in but I have no experience writing quirks. If someone could point me to a quirk with a similar use case (most stuff looks quite okay out of the box but a man. spec. cluster needs to be mapped to two specific settable values) I would love to see what I manage to get together.
### Device signature
<details><summary>Device signature</summary>
```json
{
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4617, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": "0x0104",
"device_type": "0x0202",
"input_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0102",
"0x0702",
"0x0b04",
"0x0b05",
"0xfca0"
],
"output_clusters": [
"0x000a",
"0x0019"
]
},
"2": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0xfca0"
],
"output_clusters": []
},
"3": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0xfca0"
],
"output_clusters": []
}
},
"manufacturer": "Bosch",
"model": "RBSH-MMS-ZB-EU",
"class": "zigpy.device.Device"
}
```
</details>
### Diagnostic information
<details><summary>Diagnostic information</summary>
```json
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2023.8.1",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.11.4",
"docker": true,
"arch": "aarch64",
"timezone": "Europe/Vienna",
"os_name": "Linux",
"os_version": "6.1.21-v8",
"supervisor": "2023.08.1",
"host_os": "Home Assistant OS 10.4",
"docker_version": "23.0.6",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {},
"integration_manifest": {
"domain": "zha",
"name": "Zigbee Home Automation",
"after_dependencies": [
"onboarding",
"usb"
],
"codeowners": [
"@dmulcahey",
"@adminiuga",
"@puddly"
],
"config_flow": true,
"dependencies": [
"file_upload"
],
"documentation": "https://www.home-assistant.io/integrations/zha",
"iot_class": "local_polling",
"loggers": [
"aiosqlite",
"bellows",
"crccheck",
"pure_pcapy3",
"zhaquirks",
"zigpy",
"zigpy_deconz",
"zigpy_xbee",
"zigpy_zigate",
"zigpy_znp"
],
"requirements": [
"bellows==0.35.8",
"pyserial==3.5",
"pyserial-asyncio==0.6",
"zha-quirks==0.0.102",
"zigpy-deconz==0.21.0",
"zigpy==0.56.4",
"zigpy-xbee==0.18.1",
"zigpy-zigate==0.11.0",
"zigpy-znp==0.11.4"
],
"usb": [{
"vid": "10C4",
"pid": "EA60",
"description": "*2652*",
"known_devices": [
"slae.sh cc2652rb stick"
]
}, {
"vid": "1A86",
"pid": "55D4",
"description": "*sonoff*plus*",
"known_devices": [
"sonoff zigbee dongle plus v2"
]
}, {
"vid": "10C4",
"pid": "EA60",
"description": "*sonoff*plus*",
"known_devices": [
"sonoff zigbee dongle plus"
]
}, {
"vid": "10C4",
"pid": "EA60",
"description": "*tubeszb*",
"known_devices": [
"TubesZB Coordinator"
]
}, {
"vid": "1A86",
"pid": "7523",
"description": "*tubeszb*",
"known_devices": [
"TubesZB Coordinator"
]
}, {
"vid": "1A86",
"pid": "7523",
"description": "*zigstar*",
"known_devices": [
"ZigStar Coordinators"
]
}, {
"vid": "1CF1",
"pid": "0030",
"description": "*conbee*",
"known_devices": [
"Conbee II"
]
}, {
"vid": "10C4",
"pid": "8A2A",
"description": "*zigbee*",
"known_devices": [
"Nortek HUSBZB-1"
]
}, {
"vid": "0403",
"pid": "6015",
"description": "*zigate*",
"known_devices": [
"ZiGate+"
]
}, {
"vid": "10C4",
"pid": "EA60",
"description": "*zigate*",
"known_devices": [
"ZiGate"
]
}, {
"vid": "10C4",
"pid": "8B34",
"description": "*bv 2010/10*",
"known_devices": [
"Bitron Video AV2010/10"
]
}
],
"zeroconf": [{
"type": "_esphomelib._tcp.local.",
"name": "tube*"
}, {
"type": "_zigate-zigbee-gateway._tcp.local.",
"name": "*zigate*"
}, {
"type": "_zigstar_gw._tcp.local.",
"name": "*zigstar*"
}, {
"type": "_slzb-06._tcp.local.",
"name": "slzb-06*"
}
],
"is_built_in": true
},
"data": {
"ieee": "**REDACTED**",
"nwk": 57174,
"manufacturer": "Bosch",
"model": "RBSH-MMS-ZB-EU",
"name": "Bosch RBSH-MMS-ZB-EU",
"quirk_applied": false,
"quirk_class": "zigpy.device.Device",
"manufacturer_code": 4617,
"power_source": "Mains",
"lqi": 188,
"rssi": -53,
"last_seen": "2023-08-09T11:27:24",
"available": true,
"device_type": "Router",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4617, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": "0x0104",
"device_type": "0x0202",
"input_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0102",
"0x0702",
"0x0b04",
"0x0b05",
"0xfca0"
],
"output_clusters": [
"0x000a",
"0x0019"
]
},
"2": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0xfca0"
],
"output_clusters": []
},
"3": {
"profile_id": "0x0104",
"device_type": "0x0100",
"input_clusters": [
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0xfca0"
],
"output_clusters": []
}
},
"manufacturer": "Bosch",
"model": "RBSH-MMS-ZB-EU"
},
"active_coordinator": false,
"entities": [{
"entity_id": "light.bosch_rbsh_mms_zb_eu_light",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "light.bosch_rbsh_mms_zb_eu_light_2",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "sensor.bosch_rbsh_mms_zb_eu_power_factor",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "sensor.bosch_rbsh_mms_zb_eu_active_power",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "sensor.bosch_rbsh_mms_zb_eu_instantaneous_demand",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "sensor.bosch_rbsh_mms_zb_eu_summation_delivered",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "cover.bosch_rbsh_mms_zb_eu_cover",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "select.bosch_rbsh_mms_zb_eu_start_up_behavior",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "select.bosch_rbsh_mms_zb_eu_start_up_behavior_2",
"name": "Bosch RBSH-MMS-ZB-EU"
}, {
"entity_id": "button.bosch_rbsh_mms_zb_eu_identify",
"name": "Bosch RBSH-MMS-ZB-EU"
}
],
"neighbors": [
],
"routes": [
],
"endpoint_names": [{
"name": "WINDOW_COVERING_DEVICE"
}, {
"name": "ON_OFF_LIGHT"
}, {
"name": "ON_OFF_LIGHT"
}
],
"user_given_name": null,
"device_reg_id": "",
"area_id": null,
"cluster_details": {
"1": {
"device_type": {
"name": "WINDOW_COVERING_DEVICE",
"id": 514
},
"profile_id": 260,
"in_clusters": {
"0x0000": {
"endpoint_attribute": "basic",
"attributes": {
"0x0009": {
"attribute_name": "generic_device_type",
"value": 255
},
"0x0004": {
"attribute_name": "manufacturer",
"value": "Bosch"
},
"0x0005": {
"attribute_name": "model",
"value": "RBSH-MMS-ZB-EU"
}
},
"unsupported_attributes": {}
},
"0x0003": {
"endpoint_attribute": "identify",
"attributes": {},
"unsupported_attributes": {}
},
"0x0004": {
"endpoint_attribute": "groups",
"attributes": {},
"unsupported_attributes": {}
},
"0x0005": {
"endpoint_attribute": "scenes",
"attributes": {},
"unsupported_attributes": {}
},
"0x0102": {
"endpoint_attribute": "window_covering",
"attributes": {
"0x0007": {
"attribute_name": "config_status",
"value": 3
},
"0x0008": {
"attribute_name": "current_position_lift_percentage",
"value": 0
},
"0x0009": {
"attribute_name": "current_position_tilt_percentage",
"value": 0
},
"0x0017": {
"attribute_name": "window_covering_mode",
"value": 0
}
},
"unsupported_attributes": {
"0x0015": {
"attribute_name": "acceleration_time_lift"
}
}
},
"0x0702": {
"endpoint_attribute": "smartenergy_metering",
"attributes": {
"0x0000": {
"attribute_name": "current_summ_delivered",
"value": 0
},
"0x0302": {
"attribute_name": "divisor",
"value": 100
},
"0x0400": {
"attribute_name": "instantaneous_demand",
"value": 0
},
"0x0306": {
"attribute_name": "metering_device_type",
"value": 0
},
"0x0301": {
"attribute_name": "multiplier",
"value": 1
},
"0x0200": {
"attribute_name": "status",
"value": 0
},
"0x0303": {
"attribute_name": "summation_formatting",
"value": 42
},
"0x0300": {
"attribute_name": "unit_of_measure",
"value": 0
}
},
"unsupported_attributes": {
"0x0100": {
"attribute_name": "current_tier1_summ_delivered"
},
"0x0102": {
"attribute_name": "current_tier2_summ_delivered"
},
"0x0104": {
"attribute_name": "current_tier3_summ_delivered"
},
"0x0304": {
"attribute_name": "demand_formatting"
},
"0x0106": {
"attribute_name": "current_tier4_summ_delivered"
},
"0x0108": {
"attribute_name": "current_tier5_summ_delivered"
},
"0x010a": {
"attribute_name": "current_tier6_summ_delivered"
}
}
},
"0x0b04": {
"endpoint_attribute": "electrical_measurement",
"attributes": {
"0x0605": {
"attribute_name": "ac_power_divisor",
"value": 1
},
"0x0604": {
"attribute_name": "ac_power_multiplier",
"value": 1
},
"0x050b": {
"attribute_name": "active_power",
"value": 0
},
"0x0000": {
"attribute_name": "measurement_type",
"value": 1
}
},
"unsupported_attributes": {
"0x0300": {
"attribute_name": "ac_frequency"
},
"0x0601": {
"attribute_name": "ac_voltage_divisor"
},
"0x0302": {
"attribute_name": "ac_frequency_max"
},
"0x0603": {
"attribute_name": "ac_current_divisor"
},
"0x0602": {
"attribute_name": "ac_current_multiplier"
},
"0x0505": {
"attribute_name": "rms_voltage"
},
"0x0600": {
"attribute_name": "ac_voltage_multiplier"
},
"0x0507": {
"attribute_name": "rms_voltage_max"
},
"0x0508": {
"attribute_name": "rms_current"
},
"0x050a": {
"attribute_name": "rms_current_max"
},
"0x0403": {
"attribute_name": "power_divisor"
},
"0x050d": {
"attribute_name": "active_power_max"
},
"0x050f": {
"attribute_name": "apparent_power"
},
"0x0400": {
"attribute_name": "ac_frequency_multiplier"
},
"0x0401": {
"attribute_name": "ac_frequency_divisor"
},
"0x0402": {
"attribute_name": "power_multiplier"
}
}
},
"0x0b05": {
"endpoint_attribute": "diagnostic",
"attributes": {},
"unsupported_attributes": {}
},
"0xfca0": {
"endpoint_attribute": "manufacturer_specific",
"attributes": {},
"unsupported_attributes": {}
}
},
"out_clusters": {
"0x000a": {
"endpoint_attribute": "time",
"attributes": {},
"unsupported_attributes": {}
},
"0x0019": {
"endpoint_attribute": "ota",
"attributes": {},
"unsupported_attributes": {}
}
}
},
"2": {
"device_type": {
"name": "ON_OFF_LIGHT",
"id": 256
},
"profile_id": 260,
"in_clusters": {
"0x0003": {
"endpoint_attribute": "identify",
"attributes": {},
"unsupported_attributes": {}
},
"0x0004": {
"endpoint_attribute": "groups",
"attributes": {},
"unsupported_attributes": {}
},
"0x0005": {
"endpoint_attribute": "scenes",
"attributes": {},
"unsupported_attributes": {}
},
"0x0006": {
"endpoint_attribute": "on_off",
"attributes": {
"0x0000": {
"attribute_name": "on_off",
"value": 0
},
"0x4003": {
"attribute_name": "start_up_on_off",
"value": 0
}
},
"unsupported_attributes": {}
},
"0xfca0": {
"endpoint_attribute": "manufacturer_specific",
"attributes": {},
"unsupported_attributes": {}
}
},
"out_clusters": {}
},
"3": {
"device_type": {
"name": "ON_OFF_LIGHT",
"id": 256
},
"profile_id": 260,
"in_clusters": {
"0x0003": {
"endpoint_attribute": "identify",
"attributes": {},
"unsupported_attributes": {}
},
"0x0004": {
"endpoint_attribute": "groups",
"attributes": {},
"unsupported_attributes": {}
},
"0x0005": {
"endpoint_attribute": "scenes",
"attributes": {},
"unsupported_attributes": {}
},
"0x0006": {
"endpoint_attribute": "on_off",
"attributes": {
"0x0000": {
"attribute_name": "on_off",
"value": 0
},
"0x4003": {
"attribute_name": "start_up_on_off",
"value": 0
}
},
"unsupported_attributes": {}
},
"0xfca0": {
"endpoint_attribute": "manufacturer_specific",
"attributes": {},
"unsupported_attributes": {}
}
},
"out_clusters": {}
}
}
}
}
```
</details>