mitchelludwig Posted January 24, 2009 Posted January 24, 2009 Everyone:Recently, I've been working on a RUI (rich user interface) application for my C4 system. It's gone through a number of incarnations, but it's finally something I'm comfortable showing to others. By way of explanation, it's an application written in JavaFX 1.0 that takes advantage of the XML protocol used by the C4 system for controller to UI communication. I've had to "figure out" pretty much the entire communication protocol, XML format, and message structure on my own, and I think I've done a pretty good job. Also, this is in no way an application endorsed by or supported by Control4, or my employer (which isn't C4). It's simply something I've done on my own because I enjoy my system, wanted to push some boundaries, and needed a real-world application to learn JavaFX around .Right now, available functionality is pretty basic, mainly because I've been re-writing the darn thing over and over to get it right. The only devices I can control currently are lighting devices. The other thing it does, however, is support the ability to monitor and graph variables in the C4 system. So for example, I can tell the software to monitor the "temperature" values from the three thermostats in my system, and graphically chart the temperature in my house over the course of the day.Here are some screen shots. First, the lighting control interface:Second, the monitoring interface:Anyway, I'm interesting in knowing whether this is something the community at large would be interested in. If so, I'd certainly consider making the executable available (most likely as donationware) from my website, letting the rest of you help me find bugs, suggest features, etc. Let me know what you all think, and if there is enough interest I'll package the thing up and make it available next week.Oh, and if "the powers that be" at Control4 are in any way interested, let me know and I'll be happy to talk to you guys as well .Me.
TheOracle Posted January 24, 2009 Posted January 24, 2009 Looks pretty nice. I'd be interested but it will depend on the Java stack you are using. I work for a tech company and I have to utilize standard Java stacks in my work. So, if you are using the standards, I'm game.
akg4y Posted January 25, 2009 Posted January 25, 2009 I would be interested, as soon as I have my system in about a month
danlevine Posted January 25, 2009 Posted January 25, 2009 This is awesome. I would like to speak with you about some other projects (if your interested). They don't necessarily fall within this category but since you have reverse engineered the protocol without documentation. I'm sure with the proper documentation you could do some pretty impressive things.Shoot me an email dan@cytexone.comDan
sjj31a Posted January 26, 2009 Posted January 26, 2009 SIgn me up also. This type of approach has far reaching application beyond the temp monitoring (ie bug control etc). Would this integrate with Card Access Motion sensors also, I could envision monitoring light levels in the house to determine green functionality etc.
mitchelludwig Posted January 26, 2009 Author Posted January 26, 2009 c4soap indeed Alan. c4soap indeed . Only wish that it was closer to a true web services model so that it supported some type of discovery functionality. I'd have more hair left on my head Oh, and sjj31a, if there are things you can think of that would be interesting additions, let me know. Mostly, since I'm learning on the go with respect to what I can/can't figure out around the command structure, it's not like I have a set plan in mind for what I'm doing. The variable tracking, for example, came out of my just getting bombarded by variable change messages when I started things up, and deciding to do something with all the incoming variable changes. Right now I'm working on cleaning up the variable tracking so it looks cleaner and offers more flexibility, and also allowing for the management of all the lights together, rather than by forcing a room selection. Beyond that, I dunno Mitch
pablor Posted January 27, 2009 Posted January 27, 2009 that is unbelievable! 2 way control from a PC is exactly what C4 is missing. I suggest a 2 way driver for Homeseer (or Girder) and then we could be doing a whole bunch of cool things with non-C4 hardware integration...
alanchow Posted January 27, 2009 Posted January 27, 2009 It doesn't work the way you think it does. mitch will only ever be able to control devices already integrated to that particular control4 system. Also non c4 hardware can easily be integrated. thats the whole point of a home automation system. i've integrated lots of 3rd party devices and services. The issue is at the end of the day who absorbs the cost of integrating 3rd party devices? do you want to pay?
pablor Posted January 27, 2009 Posted January 27, 2009 Alanchowyou are looking at it as C4 being the controller and controlling all devices, third party or not. That is not what I am talking about. With a 2 way driver for Homeseer, C4 could be controlled from a PC and devices could be controlled by the PC and initiate a C4 action. Then it would not matter whether C4 has a driver for a device as long as the PC does... Plug and Play in both directions. You could do things like:1. receive an email, aim message or sms on the PC and fire off actions in C4.2. an event scheduled on outlook would generate a C4 action3. with a sound card on a pc, C4 could play songs in formats that C4 does not play today4. integrate C4 with lighting systems from other manufacturers and have both coexist5. create a sexy gui using Mainlobby to run on Iphone etc...5. etc etc etc...
mitchelludwig Posted January 27, 2009 Author Posted January 27, 2009 What Alan is saying here, and it's true, is that all I can really do *to* C4 is affect changes to existing variables, switch states, etc. So yes, I could have some action "on the PC" cause my thermostat to go on, or to change the state of a light. What I can't do (without someone writing an actual driver or add stuff to the system) is extend beyond what's already available to me. The C4 "universe" defined to me in a particular system is bound by the programming done to it when I see it.Now that doesn't mean that some of what you're saying isn't true. For example, I could easily have my PC play music when the house reaches a certain temperature. The UI I'm building is already (in my opinion) more flexible than that provided by C4 because I can control all the items in a "device group" at the same time, etc.
alanchow Posted January 27, 2009 Posted January 27, 2009 1. receive an email, aim message or sms on the PC and fire off actions in C4.sms gateways are a cheap nowadays. I would use this method. Pop3 drivers can also be written at the control4 end (my proof of concept driver changes all led's in my system to red when its > 0 emails)2. an event scheduled on outlook would generate a C4 actionComposer Home Edition3. with a sound card on a pc, C4 could play songs in formats that C4 does not play todayDriverworks also allows you to integrate 3rd party media players along with their media database on the control4 system. I was looking at expanding my xbmc driver to add this funtionality but have decided that the amount of work needed to develop this outweighed the benefits i personally would receive.4. integrate C4 with lighting systems from other manufacturers and have both coexistDriverworks allows this. In Australia we have developed a 2 way lighting driver for clipsal cbus. A 1 way lighting driver for HPM icontrol and a generic lighting driver to integrate any rs232/IP/IR based lighting systems.5. create a sexy gui using Mainlobby to run on Iphone etc...you could. but at the time and effort involved in creating it why not use the iphone nav. 5. etc etc etc...There are pro's and con's for creating a win navigator. Mitchel i suggest that you contact control4 and go the controlui route. if you're going to do it. make it official.
pablor Posted January 27, 2009 Posted January 27, 2009 1. receive an email, aim message or sms on the PC and fire off actions in C4.sms gateways are a cheap nowadays. I would use this method. Pop3 drivers can also be written at the control4 end (my proof of concept driver changes all led's in my system to red when its > 0 emails)2. an event scheduled on outlook would generate a C4 actionComposer Home Edition3. with a sound card on a pc, C4 could play songs in formats that C4 does not play todayDriverworks also allows you to integrate 3rd party media players along with their media database on the control4 system. I was looking at expanding my xbmc driver to add this funtionality but have decided that the amount of work needed to develop this outweighed the benefits i personally would receive.4. integrate C4 with lighting systems from other manufacturers and have both coexistDriverworks allows this. In Australia we have developed a 2 way lighting driver for clipsal cbus. A 1 way lighting driver for HPM icontrol and a generic lighting driver to integrate any rs232/IP/IR based lighting systems.5. create a sexy gui using Mainlobby to run on Iphone etc...you could. but at the time and effort involved in creating it why not use the iphone nav. 5. etc etc etc...There are pro's and con's for creating a win navigator. Mitchel i suggest that you contact control4 and go the controlui route. if you're going to do it. make it official.I think that was my pont, all of this is trivial through Homeseer and all of the heavy lifting is done already. all of this could be done in under 2 hours including the new UI with the PC...In the past I have integrated all of the functions of MS media center into my mainlobby system in under one hour using homeseer and tcp communications...I do agree that going the official route is better as the amount of reverse engineering that was done, while a feat for sure, would preclude this from being a supported product...
pablor Posted January 27, 2009 Posted January 27, 2009 What Alan is saying here, and it's true, is that all I can really do *to* C4 is affect changes to existing variables, switch states, etc. So yes, I could have some action "on the PC" cause my thermostat to go on, or to change the state of a light. What I can't do (without someone writing an actual driver or add stuff to the system) is extend beyond what's already available to me. The C4 "universe" defined to me in a particular system is bound by the programming done to it when I see it.Now that doesn't mean that some of what you're saying isn't true. For example, I could easily have my PC play music when the house reaches a certain temperature. The UI I'm building is already (in my opinion) more flexible than that provided by C4 because I can control all the items in a "device group" at the same time, etc.I see what you are saying and I still say that what you have done is excellent! being able to have C4 events triggered by a PC and a way to get status of the system back to the PC would be a great addition to C4!Doing is as a driver for Homeseer, girder or any other well documented PC package would be even better...
alanchow Posted January 27, 2009 Posted January 27, 2009 1. receive an email' date=' aim message or sms on the PC and fire off actions in C4.sms gateways are a cheap nowadays. I would use this method. Pop3 drivers can also be written at the control4 end (my proof of concept driver changes all led's in my system to red when its > 0 emails)2. an event scheduled on outlook would generate a C4 actionComposer Home Edition3. with a sound card on a pc, C4 could play songs in formats that C4 does not play todayDriverworks also allows you to integrate 3rd party media players along with their media database on the control4 system. I was looking at expanding my xbmc driver to add this funtionality but have decided that the amount of work needed to develop this outweighed the benefits i personally would receive.4. integrate C4 with lighting systems from other manufacturers and have both coexistDriverworks allows this. In Australia we have developed a 2 way lighting driver for clipsal cbus. A 1 way lighting driver for HPM icontrol and a generic lighting driver to integrate any rs232/IP/IR based lighting systems.5. create a sexy gui using Mainlobby to run on Iphone etc...you could. but at the time and effort involved in creating it why not use the iphone nav. 5. etc etc etc...There are pro's and con's for creating a win navigator. Mitchel i suggest that you contact control4 and go the controlui route. if you're going to do it. make it official.[/quote']I think that was my pont, all of this is trivial through Homeseer and all of the heavy lifting is done already. all of this could be done in under 2 hours including the new UI with the PC...In the past I have integrated all of the functions of MS media center into my mainlobby system in under one hour using homeseer and tcp communications...I do agree that going the official route is better as the amount of reverse engineering that was done, while a feat for sure, would preclude this from being a supported product...So to reinterrate. What you essentially want to do is have homesear manage control4. this is possible however the issue is that you will never have a complete home automation system. Control4's user interfaces through this reverse engineering will have no new functions. Essentially you will have a one way system.There are ways to integrate 3rd party equipment and easily (results may vary dependant on programming skill level). That is through Control4's driverworks software development kit. Note that i have already done a universal rs232 driver that allows integrate to pretty much anything. your dealer can add this to the system and by utilising composer HE you will be able to do everything that you have mentioned.
BriPink Posted January 28, 2009 Posted January 28, 2009 I'd be interesting in playing around with it too. I've just started my own effort along these lines, targeted at a free app running on the iPhone. At the very least we could collaborate on some documentation of the SOAP "API".
mitchelludwig Posted January 28, 2009 Author Posted January 28, 2009 Ok:- This weekend, I'll put up the system as it exists today. I'd be interested in getting feedback from people.- In terms of "sharing", I'm more than happy to share the details on the c4soap messages I've managed to figure out.- Dan, I sent you mail earlier this week, if you want to talk about anything specific, feel free to reach out to me.Mitch
DerekWPE Posted January 29, 2009 Posted January 29, 2009 http://gpsobsessed.com/should-mike-arrington-mass-produce-the-crunchpad-web-tablet/this could be just he system to run the app on
wingzz Posted January 29, 2009 Posted January 29, 2009 I am very interested in this, please keep us informed as to your progress
ILoveC4 Posted January 29, 2009 Posted January 29, 2009 http://gpsobsessed.com/should-mike-arrington-mass-produce-the-crunchpad-web-tablet/this could be just he system to run the app onI'd buy one of those in a heartbeat.
mitchelludwig Posted February 1, 2009 Author Posted February 1, 2009 This weekend has been a busy one, haven't had time to put this up online. Since it's the first time I'll be running it against a C4 configuration other than my own, I've also felt the need to put some trace debugging in so that if there are problems, I can diagnose them via log file. I'll have it there in the next day or two.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.