sahilchaddha / homebridge-magichome-platform

Homebridge Plugin for MagicHome LED Strips with Preset Scene Automation Support (Cycle Color/Fade/Strobe)
MIT License
47 stars 12 forks source link
automation cycle-color fade homebridge homebridge-plugin led magichome preset scene strip strobe zengge

homebridge-magichome-platform

NPM

npm npm CircleCI

A Homebridge plugin for devices running fade/strobe effects on the Magic Home Wi-Fi system.

Description

This plugin will create LightBulbs in Homekit capable of turning on/off, change color, change hue, change saturation.

This plugin can also create preset patterns Switches (color cycle, fade, strobe).

Its a great utility tool to set house mood to party/soothing with custom music.

Can cycle through colors, sync all lights to strobe/fade.

Installation

    $ npm install -g --unsafe-perm homebridge
    $ npm install -g --unsafe-perm homebridge-magichome-platform

Edit config.json. Refer to config-sample.json.

Available Presets Scenes

    seven_color_cross_fade
    red_gradual_change
    green_gradual_change
    blue_gradual_change
    yellow_gradual_change
    cyan_gradual_change
    purple_gradual_change
    white_gradual_change
    red_green_cross_fade
    red_blue_cross_fade
    green_blue_cross_fade
    seven_color_strobe_flash
    red_strobe_flash
    green_strobe_flash
    blue_stobe_flash
    yellow_strobe_flash
    cyan_strobe_flash
    purple_strobe_flash
    white_strobe_flash
    seven_color_jumping

Demo

Demo

Compatible Devices

Any devices created by Zengge and running on the Magic Home Wi-Fi (or other apps by the same developer such as LED Magic Color) app should work with this plugin. Some examples of compatible devices are:

Sample Config :

{
    "platforms": [
        {
            "platform": "MagicHome-Platform",
            "debug": true,
            "lights": [
                {
                    "name": "Kitchen LED Strip",
                    "ip": "192.168.1.111",
                    "setup": "RGBW",
                    "purewhite": false,
                    "timeout": 10000
                },
                {
                    "name": "Living Room LED Strip",
                    "ip": "DC4F22C5XXXX",
                    "setup": "RGBWW",
                    "purewhite": true
                }
            ],
            "presetSwitches": [
                {
                    "name": "Kitchen Color Strobe Flash (Party)",
                    "ips": {
                        "192.168.1.111": "255,255,255"
                    },
                    "preset": "seven_color_strobe_flash",
                    "speed": 60
                },
                {
                    "name": "All Lights Cross Fade (Soothing)",
                    "ips": {
                        "192.168.1.111": "0,150,255",
                        "DC4F22C5XXXX": "102, 255, 102"

                    },
                    "preset": "seven_color_cross_fade",
                    "speed": 40,
                    "shouldTurnOff": true
                },
                {
                    "name": "Jungle Mood (Soothing)",
                    "ips": {
                        "192.168.1.111": "0,150,255",
                        "DC4F22C5XXXX": "102, 255, 102"
                    },
                    "preset": "green_gradual_change",
                    "speed": 40,
                }
            ]
        }
    ]
}

Preset Switch Configuration

ips must be a key-value object where key is MagicHome LED IP Address e.g. 192.168.1.11 or DC4F22C5XXXX MAC Address & value is default rgb color of the light. e.g. "255,255,255" (White). Turning off Preset Pattern Switch , all lights will be reset to this color.

You can use MAC Address instead of IP Address as well. Please note format of MAC Address. It should be in capital letters and : should not be present. e.g. DC4F22C5XXXX

Do note : While using MACS : This plugin auto discover connected lights on the network and map IP's to their corresponding MAC. Initially it can take time to discover all devices. All devices should be discovered and mapped in 60-120s. Once mapped IP & MACs are cached, and gets rediscovered every 30s to map new IP to the light. This feature is useful for people unable to assign Static IP to their lights.

Default Discovery Interval => 5 Minutes Default Device Status Update Interval => 1 Minute

Setting Device timeout to 0, will disable polling device for status update.

Lint

    $ npm run lint

Need Help ?

Get Slack Invite => https://slackin-znyruquwmv.now.sh/

Slack Channel => https://homebridgeteam.slack.com/messages/homebridge-magichome

Slack User => @sahilchaddha

Author

Sahil Chaddha

mail@sahilchaddha.com