Wyze sense sensor integrations

Hi, I am getting the following in error. I am using the latest build v0.0.3. What will the reason for this be?

2019-08-17 08:29:39 ERROR (MainThread) [homeassistant.components.binary_sensor] Error while setting up platform wyzesense
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 149, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/wyzesense/binary_sensor.py", line 84, in setup_platform
    result = ws.List()
  File "/usr/local/lib/python3.7/site-packages/wyzesense/gateway.py", line 497, in List
    sensors = self._GetSensors()
  File "/usr/local/lib/python3.7/site-packages/wyzesense/gateway.py", line 469, in _GetSensors
    self._DoCommand(Packet.GetSensorList(count), cmd_handler, timeout=self._CMD_TIMEOUT * count)
  File "/usr/local/lib/python3.7/site-packages/wyzesense/gateway.py", line 374, in _DoCommand
    raise TimeoutError("_DoCommand")
TimeoutError: _DoCommand

@eBoon could you provide a bit more detail on how you got this working? I have a Synology and am not seeing any device under /dev/hidrawx on the host nor my docker container. I’m running vanilla Home Assistant via docker, not HASS.IO, but I wouldn’t think that should matter here…

Im having an issue with wyse sense, running on Linux Mint, Hassio 97.2. I installed Wyze sense via Hacs. My sensors are working, but I cannot add addition sensors. I have no Wyze…scan or Wyze…remove in services. On boot I also receive an error unable to setup wyse sense.

Error while setting up platform wyzesense
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 149, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/wyzesense/binary_sensor.py", line 84, in setup_platform
    result = ws.List()
  File "/usr/local/lib/python3.7/site-packages/wyzesense/gateway.py", line 497, in List
    sensors = self._GetSensors()
  File "/usr/local/lib/python3.7/site-packages/wyzesense/gateway.py", line 469, in _GetSensors
    self._DoCommand(Packet.GetSensorList(count), cmd_handler, timeout=self._CMD_TIMEOUT * count)
  File "/usr/local/lib/python3.7/site-packages/wyzesense/gateway.py", line 374, in _DoCommand
    raise TimeoutError("_DoCommand")
TimeoutError: _DoCommand

However my motion sensor is discovered on boot and works perfectly. Contact sensors are discovered after activating them and are working flawlessly. I just don’t have wyse.scan or wyze.remove in services (or anything that says wyze) so I’m unable to add or remove additional sensors.

I’ve uninstalled, reinstalled, deleted, pulled hair, cussed, still no joy.

It shouldn’t matter - are you running a virtual machine on your Synology? If yes, did you make the USB device available to the machine?

I’m not running a VM - I’m using Synology’s native docker solution, which is likely the issue. It looks like DSM doesn’t support hidraw devices.

I am having issues getting Wyze sense up and running on Synology as well. I can see the WYZE sense unit but cannot figure out the appropriate mount path.

Running Home Assistant on Synology via Docker. Three USB devices - Alarm Decoder /dev/ttyUSB0, Aeotec Zwave /dev/ttyAMC0 (both on a USB hub attached to rear USB on 918+), and Wyze Sense (attached to front USB).

Wyze sense shows up on dmesg as the following:
[68046.954887] usb 1-3: new full-speed USB device number 7 using xhci_hcd
[68047.096354] Got empty serial number. Generate serial number from product.
[68047.105866] Get empty minor:104
[68047.116443] hid-generic 0003:1A86:E024.0002: hiddev0: USB HID v1.00 Device [USBDevice] on usb-0000:00:15.0-3/input0

lsusb -i shows the wyze sense not mounted.
|__1-3 1a86:e024:010c 00 1.10 12MBit/s 100mA 1IF ( ffffffd1ffffffb2ffffffdbffffffad)
1-3:1.0 (IF) 03:00:00 1EP () usbhid

Even when Wyze sense is the only USB device it never mounts. Based on past experience it feels like I have no driver installed and therefore it isn’t mounting. The following drivers were loaded some time ago:
sudo insmod /lib/modules/usbserial.ko
sudo insmod /lib/modules/ftdi_sio.ko

@getaroomaan - If you need any help with getting the USB into docker or anything else let me know.
@eBoon - any help to point me in the right direction would be appreciated!

Thanks!

I’m pretty much in the exact same situation - I have no problem passing on my Aetotec (or other USB) devices via Docker, but it doesn’t look like the Wyze device is mounting. I suspect Synology doesn’t have the necessary hidraw drivers.

Hi Kevin,

Thank you for wyze integration!
Is there a way to create a sensor for battery level? Also, would it be possible to use two hubs?? Say I will run a powered usb extension and connect another hub? Would that work?

Thanks!

Yeah! Take a look at this on how to create a sensor for the battery level: Wyze sense sensor integrations

If you want to use two hubs I’d recommend going with https://github.com/dariopb/ha-gosenseapp instead of/in addition to this component. You’ll need a second pi but it can publish sensor events over mqtt to your main HA instance. Two hubs on one device is an interesting feature request. I’ll add it to my list but chances are I’ll prioritize some of the stability fixes first.

1 Like

FYI, due to the way Wyze chose to sense whether the contact is open or closed, it is possible to use these as a dash button replacement, water sensor, or a touch sensor. It’s possible they want to reuse this board design for multiple devices.

Just de-solder the magnetic reed sensor and attach two wires like in the video you linked to. You can wire up a push button to make a super tiny wireless button. It can sense if the wires touch water if you want a leak sensor. It can also tell if you touch both wires with your fingers (It can even tell if you hold one wire in one hand and the other wire in your other hand). So you could turn anything conductive into a touch pad as long as it’s a split pad and your finger bridges the gap.

FYI Micro Center is carrying some Wyze cameras and some sensor kits. They price match the Wyze site also.

I had the exact issue as you. I moved all my yaml files from config, deleted all the previous docker containers and deploy new home-assistant containers in a new directory. Worked fine the first time, I can’t really explain it.

Did you have to do anything special to get the device recognized in unraid? Upon first boot, I did received an error message regarding hidraw0 and 1, but subsequent boots show no such error. I was about to give up and say unraid just doesnt support it yet. I am wondering if it could be the USB extension cord I am using.

would love to see support for more than one of these USB receivers. I have a 40x60 shop attached to my house. My server room is in the shop and on the shop side of the adjoining wall is metal sliding, it’s what’s on all the walls and ceiling in the shop. I am guessing that is going to kill the signal in the house, but if supported I could easily have one receiver on each side of the wall. Then I started thinking about USB over tcp ip and the ability to push these sensors way out on my property, have a very long driveway but have power and network out the 1/4 mile.

Look at the docker version.

1 Like

Not that I have anything valuable in our home but does Wyze sense suffer the same trick as outlined in this vid (using a 9xx Mhz transmitter?)

https://www.youtube.com/watch?v=UlNkQJzw4oA&feature=youtu.be&fbclid=IwAR0t6gLxd0rK2jF3sKjUU4BZtvQ4hkO8tegRacDT_O48Ytp5AfQdaWV5OgU

Has anybody had any luck creating low battery notifications for these Wyze sensors? I’m new to the automations side of Home Assistant, but everything looks OK to me. Would appreciate any help I can get with this.

sensor.yaml

- platform: template
  sensors:
    wy_back_door:
      friendly_name: 'Back Door'
      value_template: "{{ state_attr('binary_sensor.wyzesense_777ea166', 'battery_level') }}"
      unit_of_measurement: '%'
      device_class: battery

automations.yaml

  - alias: Back Door Battery Low
    trigger:
      platform: numeric_state
      entity_id: sensor.wy_back_door
      below: 98
    action:
      service: notify.ios_justiniphone
      data:
        title: "Back Door Battery Low"
        message: "Back Door Sensor has > 5% Battery"

Sensor Information

Is this possible on windows running home assistant in python venv? I assume not since driver will be needed.

Because they operate in the 9xx MHz band and your transmitter is making it so the Wyze receiver can’t detect the signal from the Wyze transmitter. This is a method of attack for any wireless sensor. The only “safe guard” against it would be to detect large transmission bursts and consider it an alarm condition. But then, a would-be burglar could simply trigger your alarm day and night until you got so tired of it you turned the feature off.

If someone wants to break in, they will. Even with an army of armed guards at your door, a bigger army will still be able to gain entry.

Lol Daniel…Thought I would bring it up so folks who might have forgotten could be aware of.