I’m RyanE, and I write Control4 drivers. I also write Control4 4Store Apps from time to time, and have been known to write CGIs and Control4 tools. I’ve had an automated home for 15+ years, currently implemented with Control4. Why Untested Hacks? ( n.) A clever or elegant technical accomplishment, especially one with a playful or prankish bent.
A clever routine in a computer program, especially one which uses tools for purposes other than those for which they were intended, might be considered a hack. ( v.) To jury-rig or improvise something inelegant but effective, usually as a temporary solution to a problem. This website is just a hack; I’m going to go back and put some real code in later.
Well, I’m sure you can figure that part out. If you can’t, it means:. No warranty. No support. If it breaks, you get to keep all the pieces. If it messes up your Control4 system, that’s too bad. What’s included?
Hacks on this site do NOT include (and will NOT include):. How to obtain ComposerPro without becoming / working for a Control4 dealer.
How to ‘DIY’ your Control4 installation. How to obtain free licenses to Control4 services I don’t consider these hacks in the true sense of the word, so don’t ask. RyanE Disclaimer: The views expressed on UntestedHacks.com are NOT the views of Control4, and I do not speak for Control4 in any official capacity on this site. I’m considering putting a Control 4 system in a new house. I currently have a Vantage Q-Link system that I have written software (in c#) for that lets me monitor events and initiate commands through the serial port connected to my own web server. I want to understand if I can do something similar with Control 4.
Ideally I’d be able to do it all through HTTP Requests rather than a serial interface. I have been having a really hard time finding information on how access a Control 4 system at this level. Installers/dealers seem to have no clue what I’m even talking about. In your Web Events Driver I see you talk about control 4 “Commands”. Is there documentation on what these “Commands” look like? Is there anyway to have the control 4 system post to my web server when events happen like motions, light status changes, or buttons are pushed?
In general, is there an SDK or documentation that would discuss accessing the system as this level?
Hacks
A while back, I was asked by a partner to create a driver that would allow a user to change multiple Control4 light LEDs at one time. This ‘LED Wizard’ driver allows you to do that. With a single command, you can set the LED color for any LED on any number of Control4 dimmers, switches or keypads. To set LEDs using this driver, go to ‘Programming’, and select the LED Wizard driver in the ‘Actions’ section of the page. Select the Radio Button that says ‘Device Specific Command’, and choose ‘Set Light LED Color’. The parameters for Set Light LED Color include:. Lulu petite diario intimo.
Dimmer or Switch List: A list of dimmers or switches whose LED color you wish to change. This is a comma separated list of just Device IDs. You can get this list by using the ‘Lights List’ property on the Properties Page of the driver. NOTE: In 2.5 and later, the text in the ‘Lights List’ also shows the name of the devices, which must be removed to paste into the parameter. LED: On Lights, there are 4 LEDs that can be set: Top Button On, Top Button Off, Bottom Button On, Bottom Button Off.
These correspond to the LEDs that are lit on the dimmer / switch for each LED in On / Off state. Color: The color can either be a color name, or the RGB value (000000-ffffff), without quotes. Valid color names include: BLACK, RED, YELLOW, ORANGE, GREEN, BLUE, AQUA, FUCHSIA, GRAY, NAVY, PURPLE, SILVER, TEAL, WHITE, DARKRED, DARKYELLOW, DARKORANGE, DARKGREEN, DARKBLUE, PEACH, BUBBLEGUM.
An example of the programming to set the ‘Bottom LED Off’ LED to a teal-type color (RGB #00DDFF) for 4 dimmers is shown below: The driver can also set LEDs on Control4 keypads, although I haven’t provided an example here, it’s much the same as setting LEDs on dimmers and switches, and is left as an exercise to the reader. A link to the driver is here: Posted in. I’ve had a few requests for this driver lately, sorry I haven’t posted it before now.
This driver accepts connections on the main (master) controller on port 8080, and sets a variable with the sent command, and fires an event. If you do a URL Get to the following address: The Control4 ‘COMMAND’ variable will contain MYCOMMAND, and the ‘Command Received’ event will be fired. In Control4 programming, you can program against the command name received in the COMMAND variable. The driver can be found here: Posted in. By popular demand, here’s a driver that will fake a garage door hooked to a controller: Have fun with that. ETA: Commenter asked me to explain it a bit: Control4’s Garage Door Sensor / Relay is a combination driver, that uses a relay to toggle a garage door, but shows the.contact.’s door state.
One of our dealers wanted to show a garage door in his project that didn’t toggle immediately after you pressed it (like a relay would), so I created this driver. It shows a garage door on the UI, and when you press it, a (configurable) time later, the door opens or closes, as a physical door would.
Press, wait a few seconds, the door closes. Press again, wait a few seconds, the door opens. Pretty simple stuff, and not that useful for anyone other than someone demoing Control4 without all the hardware. Although I like Control4’s touchscreens, the Android app, and Control4’s SR-250 remote, sometimes when I want to adjust my office lights or turn on / off the office ceiling fan, I’d rather do that with a simple command-line application. Since I typically have a terminal window or two open, I can quickly type ‘lights 20’ or ‘fan off’, much faster than I can start up the Control4 Android App, or find my SR-250. To that end, a while back I created a small Lua script that does just that. One of my favorite features of the Control4 system is that you can have Control4 touchscreens display photos as a screen saver, after a user-configurable timeout.
The initial setup of Photo Screensaver requires that a Control4 installer setup the storage location (typically on a network attached drive, or a local USB drive). Once it’s setup, the homeowner or other user can use ComposerME or ComposerHE to add / remove photos from the screensaver. While Composer isn’t a bad tool for adding photos to the screensaver, it isn’t a great tool, either, as it’s not all that convenient, especially if you’re running OSX or Linux, like I do.