Page 1 of 1

Keeping State between devices

Posted: Mon Dec 31, 2012 3:06 am
by bob3695
Hello,

I was wondering/hoping there was this little gem hidden in a place I have not found yet... so if it is, can someone direct me to it? If not, consider this a feature request!

I am in the development process of my first remote with DemoPad and realized that there will be a slight issue with multiple device use... So I wrote up this little use case to try and make sense to what I am trying to accomplish.

In my home there are 4 iOS devices (iPhone 4S, iPhone 5, iPad 2nd Gen, iPad Mini) and I am going to be designing an interface for each one for multi-room control in the new house I am getting ready to move into. In different rooms there will be different 'activities' that could be done in each, for example in the living room I will have TV (Roku + TV + AV Receiver) and games (PS3/Wii U + TV + AV Receiver). The PS3 and Wii U are on a HDMI switch so that has no baring on the setup. Now lets say I walk in and decide that I am going to do a bit of gaming and have my iPhone 4S handy. I whip out the iPhone, open DemoPad and hit a toggle button for gaming and as if by magic everything turns on and switches accordingly. I game and have a great time. I then decide to walk away for a few seconds, during this time my wife gets home and decides she wants to watch tv from the Roku. She pulls out her iPhone 5 (or grabs her iPad mini, doesn't really matter) and it has no knowledge of the fact that I have it set to gaming. So when she hits the Roku toggle the device sends a bunch of un-needed turn on commands which as long as all devices have discrete (is that the right word) commands for 'Power On' that is not a big deal. The issue comes in when a device doesn't support that...now that device is getting shut off.

Now that I have defined the problem (hopefully in terms that everyone understands) I would like to define a few solutions I have come up with, but again, if the system is already able to handle this then please just tell me how.

Solutions:
1. A 'State' server (This would be a solution I could design as a separate product from DemoPad). The idea would be have a simple web server setup with some type of database or storage backend. When the DemoPad system updates a flag, number, or dynamic label that the end user wants sync'd across their devices they add an action to send that info to this server. The server simply stores it and serves it up to devices that ask for an update to that flag, number, or dynamic label. Now this will work, just adds more un-needed complexity to the remote setup because now the remote needs to check the state server for updated values for all values that the user wants sync'd. Granted this could be a small task for simple remotes (like in the example I gave above) but this could make it very difficult in complex remotes. As such this solution is possible but not ideal

2. Ability to turn on sync on flags, numbers, dynamic labels in the DemoPad system. Now this should be an option as obviously you don't always want the variables sync'd. This would sync the data down to icloud, dropbox, or similar which all other devices would be setup to pickup updates and update accordingly. This would also have to give the ability to trigger actions based on when something is updated from a sync or not trigger an action based off a sync (for example if you have actions to take place automatically when a number changes...if a device updates the number and the actions trigger you will want to be able to keep those same actions from being trigged by the second, third, fourth, etc device that the number syncs to). This obviously would require some coding on DempPad but would be a more integrated system then solution 1 above.

I think that there needs to be a solution to this problem as it would allow for much more complex remotes to be designed for multi-device homes which would be great! Without a solution for this issue multi-device homes would be almost forced into a system that is not always aware of what is on and not unless every single device in the setup supports two-way feedback (which might eventually be the norm but I know for a fact that my house does not currently support two-way feedback throughout all devices)

If in all my mess of typing anything is not understood please let me know and I will try and clarify as I would love to see this feature implemented.

Re: Keeping State between devices

Posted: Mon Dec 31, 2012 10:41 am
by DemoPad
Yep - problem understood. Some installers have implemented a web server based solution already, setting flags on the server using simple HTTP requests, and reading them in on the devices using the generic feedback routine. The webserver could either be online, or more likely, local to the solution running on a computer.

We are in the process of implementing a solution for state variables across multiple devices, and should have something available in the coming months, but for now I'm afraid you are stuck with having to implement your own solution.

Another option is to buy hardware equipment to monitor the state of your devices - for example a video sensor connected to an iTach which the app can query to find out if a device is outputting a video signal - and send appropriate commands.

Re: Keeping State between devices

Posted: Tue Jan 01, 2013 5:59 pm
by tytherman
I am trying to achieve this also, perhaps a pointer to where I can find info on the web server option.

Re: Keeping State between devices

Posted: Tue Jan 01, 2013 7:02 pm
by bob3695
Hey tyherman,

I don't think there is a public web server option for this as of right now (at least not what I could find). There is a good chance I will be writing a general purpose server utilizing NodeJS, AngularJS, and Mongo (so it can run on any platform) that I will make public when it is ready. Until then I don't think their is a public solution to this problem

Re: Keeping State between devices

Posted: Wed Jul 30, 2014 8:20 am
by DemoPad
Update: our Centro 8 processor deals with keeping state between devices, by centralizing certain flags/labels/numbers on the processor, which are then synced across all devices.

Re: Keeping State between devices

Posted: Wed Jul 30, 2014 6:32 pm
by cv27
DemoPad wrote:Update: our Centro 8 processor deals with keeping state between devices, by centralizing certain flags/labels/numbers on the processor, which are then synced across all devices.
... but is only available to pro installers, right?

Re: Keeping State between devices

Posted: Fri Aug 01, 2014 5:54 am
by Idealhomes
cv27 wrote:
DemoPad wrote:Update: our Centro 8 processor deals with keeping state between devices, by centralizing certain flags/labels/numbers on the processor, which are then synced across all devices.
... but is only available to pro installers, right?
I believe it is at present. What would be an awesome companion for the Centro 8 processor, would be a Centro 4...a smaller one, more single room operation type of deal with the full processor working in the background (Like what Bitwise, Command Fusion etc have....).