SynTexDZN / homebridge-syntex-magichome

A plugin to control MagicHome Devices with the Home App.
4 stars 2 forks source link
color control fade home homebridge homekit http led lightbulb lights magic magichome plugin preset scene siri smarthome strips syntex wifi

Homebridge SynTex MagicHome

NPM Recommended Version NPM Beta Version NPM Downloads GitHub Commits GitHub Code Size

A simple plugin to control MagicHome devices.
This plugin is made to cooperate with Homebridge: https://github.com/nfarina/homebridge
It also offers some tweaks and improvements to the original devices.

Core Features

Troubleshooting

GitHub Issues


Installation

  1. Install homebridge using: sudo npm install -g homebridge
  2. Install this plugin using: sudo npm install -g homebridge-syntex-magichome
  3. Update your config.json file. See snippet below.
  4. Restart the Homebridge Service with: sudo systemctl restart homebridge; sudo journalctl -fau homebridge

Example Config

Info: If the baseDirectory for the storage can't be created you have to do it by yourself and give it full write permissions!

"platforms": [
    {
        "platform": "SynTexMagicHome",
        "baseDirectory": "/var/homebridge/SynTex",
        "options": {
            "port": 1712,
            "language": "us",
            "pollingInterval": 10
        },
        "log": {
            "debug": false
        },
        "accessories": [
            {
                "id": "light1",
                "name": "Kitchen LED Strip",
                "services": [
                    {
                        "type": "rgb",
                        "pins": "rgb",
                        "function": "light",
                        "ip": "DC4F22C5D4E1"
                    }
                ]
            },
            {
                "id": "light2",
                "name": "Living Room LED Strip",
                "services": [
                    {
                        "type": "rgbw",
                        "pins": "grb",
                        "function": "light",
                        "ip": "192.168.1.100"
                    }
                ]
            },
            {
                "id": "pswitch1",
                "name": "Kitchen Color Strobe Flash (Party)",
                "services": [
                    {
                        "type": "switch",
                        "function": "preset-switch",
                        "ips": {
                            "192.168.1.100": "255,255,255"
                        },
                        "preset": "seven_color_strobe_flash",
                        "speed": 60
                    }
                ]
            },
            {
                "id": "pswitch2",
                "name": "All Lights Cross Fade (Soothing)",
                "services": [
                    {
                        "type": "switch",
                        "function": "preset-switch",
                        "ips": {
                            "DC4F22C5D4E1": "0,150,255",
                            "192.168.1.100": "102,255,102"
                        },
                        "preset": "seven_color_cross_fade",
                        "speed": 40,
                        "shouldTurnOff": true
                    }
                ]
            },
            {
                "id": "rswitch1",
                "name": "Reset All Switches to Default",
                "services": [
                    {
                        "type": "switch",
                        "function": "scene-switch",
                        "ips": {
                            "192.168.1.100": "255,255,255"
                        }
                    }
                ]
            },
            {
                "id": "multi1",
                "name": "Multi Accessory",
                "services": [
                    {
                        "type": "rgbw",
                        "function": "light",
                        "name": "Single Color",
                        "ip": "192.168.1.100"
                    },
                    {
                        "type": "switch",
                        "function": "preset-switch",
                        "name": "Color Fade",
                        "ips": {
                            "192.168.1.100": "255,255,255"
                        },
                        "preset": "seven_color_strobe_flash",
                        "speed": 60
                    }
                ]
            }
        ]
    }
]

Required Parameters

Optional Parameters

Log Parameters

Accessory Config

Light Config

Preset Switch Config

Scene Switch Config

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


SynTex UI

Control and set up your devices by installing homebridge-syntex
This plugin is made for plugin management, automation system and device control.

Check out the GitHub page for more information:
https://github.com/SynTexDZN/homebridge-syntex

Update MagicHome Device

  1. Open http:// Bridge IP /devices?id= Device ID &value= New Value
  2. Insert the Bridge IP and Device ID
  3. For the New Value you can type this pattern:
    • For boolean devices: true / false ( colored light, preset switch, reset switch )
    • For colored lights add &hue= New Hue or &saturation= New Saturation or &brightness= New Brightness ( have to be numbers )
    • For accessories with multiple service types add &type= SERVICETYPE
    • For accessories with multiple services with more than one of the same service type add &counter= SERVICENUMBER\ ( First of that type = 0, second = 1 .. )

Example: http://homebridge.local:1712/devices?id=ABCDEF1234567890&type=rgb&counter=0&value=true&hue=4&saturation=100&brightness=100\ ( Updates the value, hue, saturation and brightness of ABCDEF1234567890 to turned on, orange color, 100% saturation, 100% brightness for example )

Read MagicHome Device

  1. Open http:// Bridge IP /devices?id= Device ID
  2. Insert the Bridge IP and Device ID
    • For accessories with multiple service types add &type= SERVICETYPE
    • For accessories with multiple services with more than one of the same service type add &counter= SERVICENUMBER\ ( First of that type = 0, second = 1 .. )

Example: http://homebridge.local:1712/devices?id=ABCDEF1234567890\ ( Reads the state of ABCDEF1234567890 for example )

Remove MagicHome Device

  1. Open http:// Bridge IP /devices?id= Device ID &remove=CONFIRM
  2. Insert the Bridge IP and Device ID
    • To remove a specific service add &type= SERVICETYPE
    • To remove a specific service from an accessory with more than one of the same service type add &counter= SERVICENUMBER\ ( First of that type = 0, second = 1 .. )

Example: http://homebridge.local:1712/devices?id=ABCDEF1234567890&remove=CONFIRM\ ( Removes ABCDEF1234567890 from the Config and Home App )


Automation

To enable the automation module you have to create a file named automation.json in your baseDirectory >> automation or install the homebridge-syntex plugin to create them via UI ( only between SynTex plugins )

Example: For manual configuration update your automation.json file. See snippet below.

{
    "automation": [
        {
            "id": 0,
            "name": "Demo Automation",
            "active": true,
            "trigger": {
                "logic": "AND",
                "groups": [
                    {
                        "logic": "OR",
                        "blocks": [
                            {
                                "id": "multi2",
                                "name": "Multi Device",
                                "letters": "F0",
                                "plugin": "SynTexWebHooks",
                                "operation": "<",
                                "state": {
                                    "value": 1000
                                }
                            },
                            {
                                "operation": "=",
                                "time": "16:00",
                                "options": {
                                    "stateLock": true
                                }
                            }
                        ]
                    },
                    {
                        "logic": "AND",
                        "blocks": [
                            {
                                "id": "multi1",
                                "name": "Multi Switch",
                                "letters": "41",
                                "plugin": "SynTexWebHooks",
                                "operation": "=",
                                "state": {
                                    "value": false
                                },
                                "options": {
                                    "stateLock": true
                                }
                            },
                            {
                                "operation": "=",
                                "days": [
                                    1,
                                    2,
                                    3,
                                    4,
                                    5
                                ]
                            }
                        ]
                    }
                ]
            },
            "result": [
                {
                    "id": "light1",
                    "name": "Kitchen LED Strip",
                    "letters": "30",
                    "plugin": "SynTexMagicHome",
                    "operation": "=",
                    "state": {
                        "value": true,
                        "hue": 4,
                        "saturation": 100,
                        "brightness": 100
                    }
                },
                {
                    "id": "extern1",
                    "name": "Extern Accessory",
                    "letters": "40",
                    "bridge": "192.168.1.100",
                    "plugin": "SynTexWebHooks",
                    "operation": "=",
                    "state": {
                        "value": false
                    },
                    "options": {
                        "stateLock": false
                    }
                },
                {
                    "operation": "=",
                    "delay": 1000
                },
                {
                    "url": "http://192.168.1.100:1712/devices?id=ABCDEF1234567890&value=true&brightness=100"
                }
            ]
        }
    ]
}

Required Parameters

Block Configuration

Service Block ( Trigger, Result )

Time Block ( Trigger )

Weekday Block ( Trigger )

Delay Block ( Result )

URL Block ( Result )

Letter Configuration

The letters are split into two parts ( characters )

1. Service Type

2. Duplicate Counter

Example: The first switch in your config has the letters 40, the second 41 and so on ..

Supported Plugins


Compatible Devices

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

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

Available Custom Presets Scenes

gradual_color_fade
dark_gradual_color_fade
strobe_lights
police_lights