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 🙏

© 2024 – Pkg Stats / Ryan Hefner

homebridge-mox

v0.0.1

Published

MOX Platform plugin for homebridge

Downloads

8

Readme

MOX for Homebridge

Make your home MOX accessories controllable using Apple's HomeKit with your Homebridge server.

This projects provides a bridge between your MOX local server and HomeKit. Thus, once you setup your homebridge server, poof - all of your supported accessories will be instantly controllable via HomeKit.

What does that means? You'll be able to:

  • Control your home using each app in the App Store which supports the HomeKit protocol.
  • Control your home using voice commands via Siri.
  • Use the built-in Home app (iOS 10+) to control your home.

Device Support

MOX Group already provides a fully supported home automation platform. Hence, this project that provides a bridge which "expose' your devices in a way that you can control then using HomeKit.

Since MOX only released thier LT (Lighting control) protocol, you'll only be able to control:

  • Lightblubs.
  • Dimmers.
  • Switches.
  • Curtain.

Installation

After installing and setting up Homebridge, you can install the Home Assistant plugin with:

npm install -g homebridge-mox

Once installed, update your Homebridge's config.json.

Configuration

As with other Homebridge plugins, you configure the Home Assistant plugin by adding it to your config.json.

  "platforms": [
    {
      "platform": "homebridge-mox.Mox",
      "name": "Mox",
      "server_ip_address": "172.16.254.254",
      "server_port_number": 6670,
      "client_ip_address": "172.16.1.XX",
      "client_port_number": 6666,
      "accessories": [ ... ]
     }
]

Configuration Platform fields:

  • platform and name: The platform name, you may leave these values.
  • server_ip_address: Your MOX local server IP address.
  • server_port_number: Your MOX local server port number.
  • client_ip_address: The homebridge client IP address (the IP address of the device in which your homebridge server will be executed from).
  • client_port_number: The homebridge client port number.
  • accessories: List of accessories which you'd like to expose to the homebridge server.

Registering accessories

Since MOX doesn't provide an endpoint for feching the available accessories, we have to register them by hand. The platform definition in the config.json file contains an accessories array, which constitudes from objects with the following keys:

  • type: The type of the accessory. The valid values are "light", "switch", "dimmer" and "window" (which controls a curtain).
  • name: The name of the accessory (e.g. "Living room light", "Beedroom light", "Living Room curtain" etc.).
  • module_id: The module id of the accessory. Each accessory in MOX environment constitudes from 3 numbers: oid_h, oid_m and oid_l. The module id is a string which contains these values, combined. For instance, a valid of "0x0000cc" will be valid for oid_h: 0x00, oid_m: 0x00 and oid_l: 0xcc.
  • channel_id: The channel id of the accessory. Each accessory in MOX environment is mapped to a specific channel, which value is from 0x11 to 0x18.

** For more information on the module id and channel id, see MOX LT protocol specification **

Fully functional example config.json:

{
  "bridge": {
    "name": "My Home",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "031-45-154"
  },

  "description": "This is the My home HomeKit API configuration file.",

  "platforms": [
    {
      "platform": "homebridge-mox.Mox",
      "name": "Mox",
      "server_ip_address": "172.16.254.254",
      "server_port_number": 6670,
      "client_ip_address": "172.16.1.87",
      "client_port_number": 6666,
      "accessories":
      [
        { "type": "light", "module_id": "0x0000cb", "channel_id": "0x14", "name": "Living room hidden light" },
        { "type": "light", "module_id": "0x0000cb", "channel_id": "0x13", "name": "Kitchen line-style light" },
        { "type": "light", "module_id": "0x0000cb", "channel_id": "0x12", "name": "Living room line-style light" },
        { "type": "light", "module_id": "0x0000cf", "channel_id": "0x11", "name": "Kitchen main light" },
        { "type": "dimmer", "module_id": "0x0000cc", "channel_id": "0x11", "name": "Bedroom Dimmer" },
        { "type": "switch", "module_id": "0x0000cb", "channel_id": "0x15", "name": "Water Heater" }
      ]
    }
  ],
  "accessories": [ ]
}

Contributions

  • fork
  • create a feature branch
  • open a Pull Request

Contributions are surely welcome!! Especially, if you can discover the IRIS (Access Control) protocol, it'll be awesome!