Skip to content

Homebridge Plugin for MagicHome LED Strips with Preset Scene Automation Support (Cycle Color/Fade/Strobe)

License

Notifications You must be signed in to change notification settings

sahilchaddha/homebridge-magichome-platform

Repository files navigation

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

[email protected]