I know it's been a while...
I finally had a chance to get back into things a little more. Last night I ripped out the code for my server and started over with it. I went with an asynchronous method instead on this version of it and it can also handle up to 30,000 clients - of course, I haven't tested with that many yet, and I likely won't ever, but hey, at least it's an option :)
I made some excellent progress. I have the client talking to the server and am able to see a list of all my zWave devices as well as turn them on/off. I'm on a 1x network with my cell phone, so the response time isn't as fast as I'd like - it varies from 1-3 seconds. The speed feels about the same as my normal zwave controller at least...
As far as future updates, here's what I've got planned:
- View a specific device and allow the level to be set (instead of just toggled on/off)
- Auto-update the client when a switch's level event is fired
- Change the server so it'll optionally only show Switches (instead of sensors, outlets, etc.)
- Pretty it up with icons
- Show useless details such as how long the light's been on, etc.
All in all, things are going well.
I reminded myself of something else I want to add: Security.
ReplyDeleteI don't want to slow down the entire communication with encryption, so I figure I'll just secure who can connect to the server. Since the data being sent from the phone to the server is not sensitive, it's not important to encrypt
I'll set it up as a type of 'pairing' -- similar to what you'd do with a blue tooth device. The paired phone will get a special password/key that'll be sent to the server to allow a connection. Without the right key, the connection will be refused.