npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-dooya-dt360e

v0.1.3

Published

Homebridge plugin for Dooya DT360E Wi-Fi curtain motors

Readme

homebridge-dooya-dt360e

Homebridge plugin for Dooya DT360E curtain motors controlled directly over Wi-Fi.

What this does

  • Exposes each curtain as a HomeKit WindowCovering
  • Talks to the Dooya controller over local BroadLink UDP
  • Reads the real DT360E motor position every 15 seconds by default
  • Supports BroadLink DT360E devices such as type 20334 (0x4f6e)

Installation

Homebridge UI

Open the Homebridge UI, go to Plugins, search for:

homebridge-dooya-dt360e

Install the plugin, add the platform config, then restart Homebridge.

npm

Install the package in the same environment where Homebridge runs:

npm install -g homebridge-dooya-dt360e

Then restart Homebridge.

Docker

If your Homebridge container stores plugins in a persistent /homebridge data folder, install the package inside that environment:

cd /homebridge
npm install homebridge-dooya-dt360e

Then restart the Homebridge container.

Example config

{
  "platform": "DooyaDT360E",
  "name": "Dooya DT360E",
  "devices": [
    {
      "name": "Living Room Curtain",
      "host": "192.168.1.50",
      "mac": "aa:bb:cc:dd:ee:ff",
      "invertPosition": false
    }
  ]
}

Config fields

  • name: accessory name
  • host: device IP address
  • mac: device MAC address
  • invertPosition: optional, set to true when the motor reports open/closed backwards
  • pollIntervalSeconds: optional, how often to read the real motor position. Defaults to 15 seconds for DT360E local mode.
  • protocol: optional override. Normally omit it; defaults to dt360e.
  • type: optional override. Normally omit it; the plugin discovers the BroadLink type automatically and falls back to DT360E type 20334 (0x4f6e).

Notes

  • This plugin is for direct Wi-Fi control of the Dooya controller.
  • The BroadLink mobile app is only needed to pair the curtain motor to Wi-Fi. After that, the Homebridge plugin connects to the device locally.
  • Local DT360E mode reads real status with 010b frames and sends target position with 020b frames.
  • HomeKit position is resynchronized from the motor automatically every 15 seconds, so manual movement or missed state changes are corrected without extra config.
  • DT360E type 20334 (0x4f6e) expects the encrypted BroadLink 0x6a payload to be prefixed with the little-endian inner frame length, for example 0c00 + a5a55a5a... for status.
  • If BroadLink returns 65529 (-7), check that the curtain is paired on the same WLAN and that device lock is disabled in the BroadLink mobile app, then restart Homebridge.