Jump to content
C4 Forums | Control4

Siri and HomeKit for Control4


niall

Recommended Posts

I've got a feeling this is going to be of some interest to people here.

 

I spent a couple of hours this morning getting this integrated with my system and now I feel like my apple watch is amazing.

 

Its fairly simple to setup, all you need is a computer of some sort (raspberry pi is perfect) to run a bridge between the HomeKit and Control4.

 

If anyone is interested I documented the whole process here:

 

https://c4drivers.wordpress.com/2015/10/28/homekit-for-control4/

Link to comment
Share on other sites


  • Replies 102
  • Created
  • Last Reply

Just tried it!  Pretty sweet!  Running the bridge on an OS X server I have.  Even works remotely, so I can be out of the house and say "arm the alarm", and it goes on.  Little concerned about how its doing this, and how encrypted it is.  So disabling it for the moment.  But a lot of potential!  Reminds me of SiriProxy, but a little bit more responsive than I remember!

Link to comment
Share on other sites

Just tried it!  Pretty sweet!  Running the bridge on an OS X server I have.  Even works remotely, so I can be out of the house and say "arm the alarm", and it goes on.  Little concerned about how its doing this, and how encrypted it is.  So disabling it for the moment.  But a lot of potential!  Reminds me of SiriProxy, but a little bit more responsive than I remember!

 

Thats awesome!  I can't wait to try it...thinking of repurposing a shuttle I have to run it...now just need time to do it...  From the instructions it doesn't seem like it will take that long.  I think like anything, if your network is secure, it should be fine in your house but if your not connecting securely remotely, thats an issue...hopefully someone will modify the driver so its atleast ssl.  But atleast a start since SiriProxy has been dead for over a year.

Link to comment
Share on other sites

What's the setup your having trouble with?

 

Trying to install on a windows machine. 

 

I've installed Node and GIT for windows, edited the Config.json file.

 

Fairly sure I'm getting errors on the NPM Install command and I am running as administrator

 

When I do:  NODE APP.JS I get the following error:

 

module.js:339

    throw err;

    ^

Error: Cannot find module 'hap-nodejs'

    at Function.Module._resolveFilename (module.js:337:15)

    at Function.Module._load (module.js:287:25)

    at Module.require (module.js:366:17)

    at require (module.js:385:17)

    at Object.<anonymous> (C:\Users\Chris\Documents\homebridge\app.js:4:11)

    at Module._compile (module.js:435:26)

    at Object.Module._extensions..js (module.js:442:10)

    at Module.load (module.js:356:32)

    at Function.Module._load (module.js:311:12)

    at Function.Module.runMain (module.js:467:10)

Link to comment
Share on other sites

Just tried it!  Pretty sweet!  Running the bridge on an OS X server I have.  Even works remotely, so I can be out of the house and say "arm the alarm", and it goes on.  Little concerned about how its doing this, and how encrypted it is.  So disabling it for the moment.  But a lot of potential!  Reminds me of SiriProxy, but a little bit more responsive than I remember!

 

Can I ask if you have an Apple TV?

 

If so thats the reason you can run it remotely. If you haven't then I'm unsure why it works remotely.

 

For remote access this is all taken care of by Apple HomeKit, so it will be protected by the encryption and authentication it is using.

 

Its only the local access between the HomeBridge software and the C4 Driver that is unencrypted.

 

To me the issues are that someone would need to be:

1) Connected to your network (you allowed them access via wifi or they connected via a cable)

2) Break into your network (they gained access via some other method, at which point you are in more trouble than them doing what your C4 script allows)

For both of these all they would be able to do would be to run the commands you had allowed via your C4 Script. So if its things like turning on and off lights etc, then to me its not the end of the world. If you added scripts to turn off your house alarm or change the heating to a massive level or disable power to your house, then thats asking for trouble.

 

At the end of the day its what level of risk you are happy with. To be honest I'd like to see someone do a full security assessment of C4 devices on their own. Or to have some knowledge that C4 are doing their own pen testing.

Link to comment
Share on other sites

Trying to install on a windows machine. 

 

I've installed Node and GIT for windows, edited the Config.json file.

 

Fairly sure I'm getting errors on the NPM Install command and I am running as administrator

 

When I do:  NODE APP.JS I get the following error:

 

module.js:339

    throw err;

    ^

Error: Cannot find module 'hap-nodejs'

    at Function.Module._resolveFilename (module.js:337:15)

    at Function.Module._load (module.js:287:25)

    at Module.require (module.js:366:17)

    at require (module.js:385:17)

    at Object.<anonymous> (C:\Users\Chris\Documents\homebridge\app.js:4:11)

    at Module._compile (module.js:435:26)

    at Object.Module._extensions..js (module.js:442:10)

    at Module.load (module.js:356:32)

    at Function.Module._load (module.js:311:12)

    at Function.Module.runMain (module.js:467:10)

 

I'm thinking that the npm install didn't work.

What this should do is install all of the packages listed in package.json in the node_modules directory.

If you look in the node_modules directory you should see if they are there.

 

One problem that could have occurred with this is that after you installed git it wasn't in the system path on your computer. You can check this by just entering git from the command prompt and see if you get an error. If you get an error you will need to modify the path to include where git is installed (or just re-install git and check the option where it adds itself to the path)

Alternatively if you had the command prompt open before you installed git, the path for that session won't be updated (so just close the command prompt and open a new one)

 

Hope one of these helps you.

Link to comment
Share on other sites

Thats awesome!  I can't wait to try it...thinking of repurposing a shuttle I have to run it...now just need time to do it...  From the instructions it doesn't seem like it will take that long.  I think like anything, if your network is secure, it should be fine in your house but if your not connecting securely remotely, thats an issue...hopefully someone will modify the driver so its atleast ssl.  But atleast a start since SiriProxy has been dead for over a year.

 

I looked what was needed to run it in ssl. From the HomeBridge side its trivial, infact you just change the url to be https, but unfortunately there is no support in the lua functions on the director to do this for the driver (unless someone knows different).

Link to comment
Share on other sites

I was thinking of porting the code into a driver so that everything would be automatic but reading more about HAP-NodeJS leads me to decide i don't want a lawsuit from apple:)

 

Notes

Special thanks to Alex Skalozub, who reverse engineered the server side HAP. You can find his research at here. (Sadly, on Nov 4, Apple sent the DMCA request to Github to remove the research.)

There is a video demo running this project on Intel Edison.

If you are interested in HAP over BTLE, you might want to check this.

Link to comment
Share on other sites

Can I ask if you have an Apple TV?

 

If so thats the reason you can run it remotely. If you haven't then I'm unsure why it works remotely.

 

For remote access this is all taken care of by Apple HomeKit, so it will be protected by the encryption and authentication it is using.

 

Its only the local access between the HomeBridge software and the C4 Driver that is unencrypted.

 

To me the issues are that someone would need to be:

1) Connected to your network (you allowed them access via wifi or they connected via a cable)

2) Break into your network (they gained access via some other method, at which point you are in more trouble than them doing what your C4 script allows)

For both of these all they would be able to do would be to run the commands you had allowed via your C4 Script. So if its things like turning on and off lights etc, then to me its not the end of the world. If you added scripts to turn off your house alarm or change the heating to a massive level or disable power to your house, then thats asking for trouble.

 

At the end of the day its what level of risk you are happy with. To be honest I'd like to see someone do a full security assessment of C4 devices on their own. Or to have some knowledge that C4 are doing their own pen testing.

Yes I do have an Apple TV (5 actually, all 3rd gens - and not upgrading to 4th gen).  Thanks for clearing that up - I think ill put it back up, although it would be nice to have it encrypted with SSL even on the local network.

 

Do you think this can be setup to run on a master controller?  E.G. run all of those install scripts that were outlined in the instructions above, and have it autostart at boot.  Would this have a negative impact as far as performance or create other issues that people can think of?

Link to comment
Share on other sites

 

Do you think this can be setup to run on a master controller?  E.G. run all of those install scripts that were outlined in the instructions above, and have it autostart at boot.  Would this have a negative impact as far as performance or create other issues that people can think of?

 

 

Do you mean could you install the HomeBridge software on the C4 Controller?

I suppose technically you could if you could get to the linux cli and then install node etc. I don't think it would be a good idea though, as it probably wouldn't survive upgrades, would stop C4 supporting you and might cause performance problems.

I've put mine on a raspberry pi, very cheap and keeps everything separate.

Link to comment
Share on other sites

I was thinking of porting the code into a driver so that everything would be automatic but reading more about HAP-NodeJS leads me to decide i don't want a lawsuit from apple:)

 

Notes

Special thanks to Alex Skalozub, who reverse engineered the server side HAP. You can find his research at here. (Sadly, on Nov 4, Apple sent the DMCA request to Github to remove the research.)

There is a video demo running this project on Intel Edison.

If you are interested in HAP over BTLE, you might want to check this.

 

I've got a better idea for you, if you want to make the perfect driver you should make a driver that gives out an API to C4. Something that does the following

- Allows getting a list of all the different rooms and devices in a system in json or xml

- Allows running commands on a device, switch light on, send key etc

That way anyone who wanted to build something would be able to interface with C4 without having to know anything about writing lua on it.

 

It would make it simple for someone to write an accessory for home bridge to interface with C4.

 

Something this generic would be used by everyone who wanted to build something.

 

Why C4 have never done this is probably down to their closed shop system, which is going to be the death of them. They should embrace an open world and offer an API, it will only increase their market.

Link to comment
Share on other sites

I'm have trouble figuring out how to install the homebridge on my OSX server.  I've never messed with command line and JSON.  Anybody have a tutorial for the OSX install portion?

 

This is where I installed it first.

You need to install node, which has an installer from their web site.

 

Then you just open a command prompt and follow the instructions here on getting it with git and running npm install

https://github.com/nfarina/homebridge

Link to comment
Share on other sites

Yep c4soap does just that. It's an internal API but it is how navigator communicates to director.

 

Thanks, but as I said that means it doesn't exist outside of Control4 Inc. 

 

They seriously need to create an API for outside devices to use before its too late for them.

Link to comment
Share on other sites

Thanks, but as I said that means it doesn't exist outside of Control4 Inc.

They seriously need to create an API for outside devices to use before its too late for them.

Nothing prevents you from using c4 soap. You just have to figure it all out and expect no c4 support

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

Archived

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


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.