Jump to content
C4 Forums | Control4

C4 Application for the PC - Any interest?


mitchelludwig

Recommended Posts

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:

c4main.jpg

Second, the monitoring interface:

c4var.jpg

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.

Link to comment
Share on other sites


  • Replies 58
  • Created
  • Last Reply

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.com

Dan

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

Alanchow

you 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 action

3. with a sound card on a pc, C4 could play songs in formats that C4 does not play today

4. integrate C4 with lighting systems from other manufacturers and have both coexist

5. create a sexy gui using Mainlobby to run on Iphone etc...

5. etc etc etc...

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 action

Composer Home Edition

3. with a sound card on a pc, C4 could play songs in formats that C4 does not play today

Driverworks 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 coexist

Driverworks 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.

Link to comment
Share on other sites

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 action

Composer Home Edition

3. with a sound card on a pc, C4 could play songs in formats that C4 does not play today

Driverworks 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 coexist

Driverworks 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...

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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 action

Composer Home Edition

3. with a sound card on a pc, C4 could play songs in formats that C4 does not play today

Driverworks 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 coexist

Driverworks 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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...