question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Device Support Request] MoesHouse Presence sensor

See original GitHub issue

Is 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 image

Issue Analytics

  • State:open
  • Created a year ago
  • Reactions:2
  • Comments:44 (9 by maintainers)

github_iconTop GitHub Comments

2reactions
smittongcommented, Jul 26, 2022

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:

Screenshot_20220726-115615

1reaction
PlusPlus-uacommented, Oct 28, 2022

Thank you. How would I add this to my HA setup? When I first got these sensors I added a custom quirk called ts0601_motion.py in order to get a working sensor with just the basic two entities. Would I add your code as a new file?

Just remove ts0601_motion.py, since it overwrites file from zhaquirks package, and create new file ts0601_radar.py with content of my code.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found