[Device Support Request] MoesHouse Presence sensor
See original GitHub issueIs your feature request related to a problem? Please describe. Device support
Describe the solution you’d like Please provide support for MoesHouse (Tuya) Zigbee Presence Sensor
Device 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.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4098, 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": 260,
"device_type": "0x0051",
"in_clusters": [
"0x0000",
"0x0004",
"0x0005",
"0xef00"
],
"out_clusters": [
"0x000a",
"0x0019"
]
}
},
"manufacturer": "_TZE200_ikvncluo",
"model": "TS0601",
"class": "zigpy.device.Device"
}
Diagnostic information
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2022.6.7",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.9.12",
"docker": true,
"arch": "x86_64",
"timezone": "Australia/Perth",
"os_name": "Linux",
"os_version": "5.15.45",
"supervisor": "2022.06.2",
"host_os": "Home Assistant OS 8.2",
"docker_version": "20.10.14",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"braviatv_psk": {
"version": "0.4.2",
"requirements": [
"pySonyBraviaPSK==0.2.4"
]
},
"browser_mod": {
"version": "1.5.3",
"requirements": []
},
"adaptive_lighting": {
"version": "1.0.14",
"requirements": []
},
"presence_simulation": {
"version": "2.2",
"requirements": []
},
"tuya_local": {
"version": "1.2.3",
"requirements": [
"pycryptodome~=3.9",
"pytuya~=7.0.5"
]
},
"google_home": {
"version": "1.9.13",
"requirements": [
"glocaltokens==0.6.6"
]
},
"netradio": {
"version": "2013.3.0",
"requirements": []
},
"bureau_of_meteorology": {
"version": "1.1.10",
"requirements": []
},
"bom_radar": {
"version": "1.2.3",
"requirements": []
},
"smartir": {
"version": "1.17.6",
"requirements": [
"aiofiles==0.6.0"
]
},
"anniversaries": {
"version": "4.5.0",
"requirements": [
"python-dateutil>=2.8.1",
"integrationhelper>=0.2.2",
"voluptuous>=0.12.1"
]
},
"feedparser": {
"version": "0.1.7",
"requirements": [
"feedparser==6.0.8"
]
},
"sleep_as_android": {
"version": "1.9.2",
"requirements": [
"pyhaversion"
]
},
"fronius_inverter": {
"version": "v0.9.8",
"requirements": []
},
"hacs": {
"version": "1.25.5",
"requirements": [
"aiogithubapi>=22.2.4"
]
},
"fullykiosk": {
"version": "1.0.2",
"requirements": [
"python-fullykiosk==0.0.11"
]
},
"localtuya": {
"version": "4.0.1",
"requirements": []
},
"ytube_music_player": {
"version": "20220205.01",
"requirements": [
"ytmusicapi==0.19.5",
"pytube==10.5.1",
"integrationhelper==0.2.2"
]
},
"webrtc": {
"version": "v2.3.0",
"requirements": []
},
"plex_assistant": {
"version": "1.1.9",
"requirements": [
"gTTs>=2.2.1",
"pychromecast>=8.0.0",
"rapidfuzz==1.1.1",
"plexapi>=4.3.0",
"awesomeversion>=21.2.2"
]
},
"watchman": {
"version": "0.5.1",
"requirements": [
"prettytable==3.0.0"
]
},
"frigate": {
"version": "2.3",
"requirements": []
},
"mass": {
"version": "2022.6.10",
"requirements": [
"music-assistant==1.4.11"
]
},
"alarmo": {
"version": "v1.9.4",
"requirements": []
}
},
"integration_manifest": {
"domain": "zha",
"name": "Zigbee Home Automation",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/zha",
"requirements": [
"bellows==0.30.0",
"pyserial==3.5",
"pyserial-asyncio==0.6",
"zha-quirks==0.0.75",
"zigpy-deconz==0.16.0",
"zigpy==0.45.1",
"zigpy-xbee==0.14.0",
"zigpy-zigate==0.7.4",
"zigpy-znp==0.7.0"
],
"usb": [
{
"vid": "10C4",
"pid": "EA60",
"description": "*2652*",
"known_devices": [
"slae.sh cc2652rb stick"
]
},
{
"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"
]
}
],
"codeowners": [
"@dmulcahey",
"@adminiuga"
],
"zeroconf": [
{
"type": "_esphomelib._tcp.local.",
"name": "tube*"
},
{
"type": "_zigate-zigbee-gateway._tcp.local.",
"name": "*zigate*"
}
],
"after_dependencies": [
"usb",
"zeroconf"
],
"iot_class": "local_polling",
"loggers": [
"aiosqlite",
"bellows",
"crccheck",
"pure_pcapy3",
"zhaquirks",
"zigpy",
"zigpy_deconz",
"zigpy_xbee",
"zigpy_zigate",
"zigpy_znp"
],
"is_built_in": true
},
"data": {
"ieee": "**REDACTED**",
"nwk": 63169,
"manufacturer": "_TZE200_ikvncluo",
"model": "TS0601",
"name": "_TZE200_ikvncluo TS0601",
"quirk_applied": false,
"quirk_class": "zigpy.device.Device",
"manufacturer_code": 4098,
"power_source": "Mains",
"lqi": 239,
"rssi": -64,
"last_seen": "2022-07-07T10:57:41",
"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.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4098, 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": 260,
"device_type": "0x0051",
"in_clusters": [
"0x0000",
"0x0004",
"0x0005",
"0xef00"
],
"out_clusters": [
"0x000a",
"0x0019"
]
}
}
},
"entities": [],
"neighbors": [],
"endpoint_names": [
{
"name": "SMART_PLUG"
}
],
"user_given_name": "Ensuite Presence",
"device_reg_id": "af96549acbdde6ed48a449434bf1a679",
"area_id": "739384a020964a66982b7f118ece74c1"
}
}
Additional logs
Paste any additional debug logs here.
Don't remove the extra line breaks outside the ``` marks.
Additional context

Issue Analytics
- State:
- Created a year ago
- Reactions:2
- Comments:44 (9 by maintainers)
Top Results From Across the Web
MOES Smart WiFi ZigBee Smart 2/3 Way Switch Socket ...
Moes is a brand for anyone interested in high-quality smart home devices ... Bluetooth Smart Temperature Humidity Sensor LCD Indoor Hygrometer Thermometer.
Read more >MOES PIR Motion Sensor, Requires MOES Tuya ZigBee Hub ...
The Motion Sensor not compatible with HomeKit, Smartthing and Google Assistant. Not support 5GHz WiFi. 【Unauthorized Entry Detectiong】 Whenever unexpected ...
Read more >Wake your Windows 11 PC when you approach
Some Windows 11 PCs have a presence sensor built in. ... turn off automatically when you leave, and then have your device wake...
Read more >Tweets with replies by Moes (@moes_smart) / Twitter
moeshouse.com ... Meet your demand on technology and security! ... moes have the presence sensor too dear featured with wifi and zigbee two...
Read more >The £33 Zigbee Smart Home Hub That Could Destroy ...
This Zigbee hub costs just £33 and rivals Samsung Smartthings in both functionality and ease of use, but for versatility it has Smartthings ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Hello
I connected the presence sensor (“_TZE200_ikvncluo”) back via the SmartLife app to get the dp_id values from Tuya IOT. This is the resulting debugging decode: If someone could take these to make a configurable quirk for the “_TZE200_ikvncluo” that would be awesome. I’m not sure this is 100% correct from Tuya IOT - also no info on Lux levels for example. Note the example dp_4 is the maximum distance value and as reported by @sparkydave1981 above the value of 600 is for the default value of 6 meters. And dp_3 is the minimum distance and if you wanted that to be 1 meter you would have to enter 100. According to the product specs the max detect range is 6 meters, but the Tuya IOT and SmartLife app allows for a value up to 9.5 meters (950). Could the units be set to “cm” (centimeters) to match the device values?
{ “result”: { “category”: “hps”, “functions”: [ { “code”: “sensitivity”, “dp_id”: 2, “type”: “Integer”, “values”: “{"min":0,"max":9,"scale":0,"step":1}” }, { “code”: “near_detection”, “dp_id”: 3, “type”: “Integer”, “values”: “{"unit":"m","min":0,"max":950,"scale":2,"step":15}” }, { “code”: “far_detection”, “dp_id”: 4, “type”: “Integer”, “values”: “{"unit":"m","min":0,"max":950,"scale":2,"step":15}” } ], “status”: [ { “code”: “presence_state”, “dp_id”: 1, “type”: “Enum”, “values”: “{"range":["none","presence"]}” }, { “code”: “sensitivity”, “dp_id”: 2, “type”: “Integer”, “values”: “{"min":0,"max":9,"scale":0,"step":1}” }, { “code”: “near_detection”, “dp_id”: 3, “type”: “Integer”, “values”: “{"unit":"m","min":0,"max":950,"scale":2,"step":15}” }, { “code”: “far_detection”, “dp_id”: 4, “type”: “Integer”, “values”: “{"unit":"m","min":0,"max":950,"scale":2,"step":15}” }, { “code”: “checking_result”, “dp_id”: 6, “type”: “Enum”, “values”: “{"range":["checking","check_success","check_failure","others","comm_fault","radar_fault"]}” }, { “code”: “target_dis_closest”, “dp_id”: 9, “type”: “Integer”, “values”: “{"unit":"m","min":0,"max":1000,"scale":2,"step":1}” } ] }, “success”: true, “t”: 1658791225182, “tid”: “5cce9b550c7011edaf8fbae27635b1d4” }
screenshot from the SmartLife App showing the configurable options for the device:
Just remove ts0601_motion.py, since it overwrites file from zhaquirks package, and create new file ts0601_radar.py with content of my code.