Giter Club home page Giter Club logo

homebridge-lc7001's Introduction

homebridge-lc7001

Homebridge plugin to communicate with Legrand LC7001. (RFLC, Adorne, and On-Q)

Currently, this plugin has only been written for light switches and dimmers.

About the Author:

This plugin was written by a lawyer. It was not written by a professional programmer. The original author was introduced to BASIC in the 1980s, took AP computer science in high school when they still taught it in Pascal, and took non-CS introductory courses in C and FORTRAN in college where he majored in economics. Before becoming a lawyer, he did work extensively in the computer world in networking and systems. That means he could cobble together a decent bash or DOS script, and even wrote some VBScript to fill a need. Along the way, he taught himself enough PHP and SQL to get things he needed done and make a real programmer queezy. This was his first attempt at writing anything in JavaScript and he had never heard of Node.js before embarking on this journey. He wrote this because he really, really wanted the expensive Adorne light switches he bought to work with HomeKit and years of waiting for the LC7001 to be updated to support HomeKit did not yield a result. He now makes his work available to the world, not because this is a great piece of software, but in hopes that he can connect with more experienced programmers who can help clean it up into a finished project. So far, this works for him at his house. He hopes it can make your non-Homekit light switches work with HomeKit, too. Please, participate and contribute and make this better!

Configuration:

This plugin requires the following addition to the Homebridge config.json:

{
  "platforms": [
    {
      "platform" : "LC7001",
      "name" : "LC7001"
    }
  ]
}

All other parameters are optional:

{
  "platforms": [
    {
      "platform" : "LC7001",
      "name" : "LC7001",
      "lc7001-password: : "********",
      "lc7001-hostname" : "LCM1.local",
      "lc7001-port" : 2112,
      "lc7001-localaddress" : undefined,
      "lc7001-localport" : undefined,
      "lc7001-family" : 0,
      "lc7001-delimiter" : "\0",
      "logBroadcastDiagnostics" : false,
      "logBroadcastMemory" : false,
      "logDebugMessages" : false,
      "logEliotErrors" : false,
      "useOldUUID" : false
    }
  ]
}
Parameter Description
platform This is coded into the plugin and must match PLATFORM_NAME in src/settings.ts; do not change one unless you change the other.
name This is whatever you would like it to be; it is what shows up in the Homebridge log.
lc7001-password If your LC7001 has authentication enabled, you will need to supply the password in this field.
lc7001-hostname If you do not specify the hostname/IP of the LC7001, the default of "LCM1.local" will be used. "LCM1.local" is a mDNS hostname that the LC7001 will answer. "LCM1.local" can be replaced with any hostname or IP address that can be resolved by the net.Socket Node.js object.
lc7001-port If you do not specify the TCP port number for the LC7001, the default of 2112 will be used.
lc7001-localaddress Allows you to specify which source IP address will be used to contact the LC7001.
lc7001-localport Allows you to specify the source TCP port that will be used to contact the LC7001.
lc7001-family Allows you to specify the IP version to use to contact the LC7001. 4:IPv4, 6:IPv6, and 0:Default IPv4 or IPv6.
lc7001-delimiter Allows you to specify the character the LC7001 uses to separate JSON objects. You should not need to change this unless the LC7001 firmware is changed.
logBroadcastDiagnostics The LC7001 regularly transmits diagnostic information. This logs those messages.
logBroadcastMemory The LC7001 regularly transmits memory usage information. This logs those messages.
logDebugMessages The LC7001 frequently transmits debug messages. This logs those messages. (Homebridge debugging is enabled by passing the -D switch to homebridge.)
logEliotErrors The LC7001 frequently transmits messages labeled "EliotErrors." This logs those messages.
useOldUUID Prior to version 1.0.0, this plugin used the name of an accessory on the LC7001 to generate the UUID. Staring with version 1.0.0, this plugin uses a mix of the name and the MAC address of the LC7001. This change was made to prevent UUID collisions. Setting this option to true will cause the plugin to use the old method.

Configure your LC7001 using the Legrand Lighting Control app, available here: https://www.legrand.us/home-automation/rflc/rflc-app.aspx The plugin should work as long as the LC7001 is attached to the same network. If not in the same broadcast domain (for mDNS), you will need to specify lc7001-hostname in config.json. The names you give your light switches and dimmers are treated as unique identifiers. If you rename any object in the Legrand Lighting Control app, the accessory will be removed from HomeKit and re-added under the new name. You can rename the lights as much as you want within HomeKit, just not within the Legrand Lighting Control app.

homebridge-lc7001's People

Contributors

sbozarth avatar cgjeffries avatar drsib avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.