MagicHome Wifi Driver for Hubitat
For anyone with lights that use the MagicHome App, MagicHue, Zombber, Flux, Wi-Fi MyLED, Hera, MagicLight, Illume, Merlin, DALS, LEDeNET, SuperNight, SuperLight... you name it!
This driver—unlike MagicHome for SmartThings, requires no soldering, man-in-the-middle, or firmware flashing. The Hubitat team has been incredibly accommodating and helpful in getting these to work as they are designed to work with the app.
MagicHome Manager App:
Use this app to create custom effects for your Pixel Controller!
Devices & Drivers:
Click on your device to get more info & download links.
Controllers:
Smart Plug (Switch)
- Where to buy:
- Driver:
Single-Channel (Dimmable)
- Where to buy:
- Driver:
- Usage Notes > This driver should work really well.
- If you find one of these with an IR remote ... I'd love to know.
RGB
- Where to buy:
- Driver:
- Usage Notes > This driver should work really well.
RGB + W
- Where to buy:
- Driver:
- Usage Notes > Set hue to 100 to control the white channel. Currently, you can't use both RGB and White at the same time.
RGB + WW/CW (CCT)
- Where to buy:
- Driver:
- Usage Notes:
- Set hue to 100 to control the warm white channel individually.
- Set hue to 101 to control the cold white channel individually.
- Currently, you can't use both RGB and White at the same time.
- CCT uses the white channels, Color uses the RGB channels
Pixel Effect Controller
- Where to buy:
- Driver:
- Usage Notes:
- Use the MagicHome Manager App to build custom functions
Bulbs:
RGB
- Where to buy:
- RGB bulb - I don't have one (yet)
- Driver:
- Doesn't exist yet
- Usage Notes:
- If you find one of these, send me a URL. I think I've found one.
RGB + W
- Where to buy:
- Driver:
- Usage Notes:
- Set the hue to 100 use the white channel.
RGB + W (Legacy - Firmware < 3.0)
- Where to buy:
- Nowhere. If you have bulbs that use the REALLY old firmware, you're in luck.
- Driver:
- Contact Me
- Usage Notes:
- Set the hue to 100 use the white channel.
- I bought one of these for like $7 3 years ago and I added support for it because I thought it was ... ethical? I don't know. This is the only way you'll even be able to control those bulbs, now, so I guess it's kind of ethical.
White (Dimmable)
- Where to buy:
- Driver:
- Usage Notes:
- This one is super boring. I'm going to put it in a closet or something.
WW/CW (CCT)
- Where to buy:
- Driver:
- Usage Notes:
- Goes from warm white to cold white.
- I REALLY like this bulb.
RGB + WW/CW (CCT)
- Where to buy:
- Driver:
- Usage Notes:
- Use color temperature to assign CT
- Use RGB to assign colors.
To set up devices:
Changes
0.89 (Current)
- Checks if too many initialize loops are being called at one time.
- Removed RGB <> HSV methods (in most drivers)
- Add recoverable HS option - not in all drivers yet.
- Removes unused state value (only state.noResponse is necessary)
- Removed telnet
- Added hue-in-degrees - Testing still. Not in all drivers yet.
- Add CT parse back in
- Fixed powerOnWithChanges
- Added null 2nd option to setLevel for duration
Previous Versions
0.88
- Added option for failed pings threshold
- Resolved issue with recursive loops and initializing devices
0.87
-
- Added an option for telnet/socket
- If you are on firmware before 2.1, use TELNET (does not support parse)
- ---> Otherwise, use SOCKET (if you're on beta. It might not be stable.) (supports parse) <----
- Greatly improved scheduling
- Started adding some features back in. Fully tested before release. Yay.
- Changed powerOnWithChanges to enablePreStaging — this matches Hubitat's vernacular
0.84, 0.85 & 0.86
- Simplified most of the code
- Eliminated Telnet method
- Removed most of parse() while I simplify it further. Only power reports.
- Continued to enhance self-healing. Devices that are physically powered off report as off.
- Reworked powerOnWithChanges.
- Corrected all function parameters except for setColorTemperature() which is mostly corrected
- Added import URL
- Added checking to the parse(...) method to avoid recursion issues.
0.83
- Added a time-to-refresh option.
- Re-enabled and edited parse() to check if a variable needs to be set
- Fixed small consistencies across devices
0.82
- Disabled parse() as I believe it's responsible for the slowdowns people have been experiencing.
- Added a device: Dimmable Controller
- Reflected on how much I appreciate everyone's patience.
0.81
- Added try/catch, closeTelnet() to initialize() method. This should fix the slowdow
- Removed extraneous code and fixed a lot of little bugs
- Made powerOnWithChanges a little faster for some devices
- Added and hastily removed the option to power off device after 20 seconds automatically @HeyRCL
- Added proper colorMode for RGB + CCT devices.
0.80
- Completely re-written. The code is a lot more modular, and hubs should no longer lock up.
- Removed the ability to simultaneously use WW (or WW+CW) and RGB
- Added parsing
- Added two new devices
- When you hover over the presets in the backend, they'll animate the text in CSS as a preview. I don't think any of the staff support this, but I think it's fun.
Roadmap:
- Fix Parsing
- Add setEffect
- Add Refresh Adjustment back into code
- Fix inconsistencies in devices (logDescriptionText, pausing...)
- Add Parsing of functions
- Add On-device scheduling
- Add hue in degrees option
- Add On-device time syncing
- Add custom functions (I'll add this if there's enough demand. I'd have to make a UI for this and it would take some time.)
- Create App with auto-discovery
- Re-implement high-brightness mode with Hue Grab
- Add HSL grab for easy WW/CW adjustment
- Clean up the UI some more
- Add settings for device sync rate
- Add more devices!
- Add an option to create a dimming-only child device for EACH channel individually.
I'm not affiliated (in any way) with any of these companies. I like these lights because they're inexpensive and reliable—they were my first step into Home Automation. I started this project in 2015, and recently, after a very bad experience with a name-brand of lights, I went all-in to find a different brand that won't set me back $50 if a light goes bad.
If you want to help with this project:
Outside of debugging, branching and adding to the codebase, you can DM me to help purchase more of these devices to add to the system. Or, you can capture packets and help me investigate device protocols.
Or, you can help with another project! Send a message
I develop for fun and certainly don't require payment, but if you want to buy me a coffee or something, you can use the button below