Devices

Devices in reYmote are used to remember the states of your devices and to let reYmote know how to switch it on and off. A device can be on, off or pending between those states.

Creation
A Device configuration consists of:  ON and OFF Commands  Lets reYmote know which commands shall be used to turn the device on/off.  Other Commmands  These commands will also executed in the Device specific thread (see Command Queueing).  Channels  Commands that switch inputs on the Device, as typically seen on TVs, AVs and lots of other devices. This information is used by reYmote to switch to the correct channel when starting Activities.  Boot- and shutdown-delay This delay blocks execution of other commands belonging to this Device. E.g. my AV starts accepting other IR-Signals 3 seconds after boot. Defining a delay of 3000ms will make reYmote send the next IR Signal 3 seconds after turning it on.
 * ON Command
 * OFF Command
 * Other Commands
 * Channels (optional)
 * Boot- and shutdown-delay

Item Submenu
// TODO

Background
Until recently, commands in reYmote were always executed sequentially in 1 thread. Commands which take long to execute blocked all other commands until they finished. E.g. I have motorized canvas which takes exactly 40 seconds to move until it reaches it's ideal position. To raise and lower it, I created Compound Commands with a delay of 40000ms. During this delay the execution thread sleeps and blocks. While executing this command, any later queuedcommands had to wait.

Implementation
Commands for device x will be executed in parallel with commands for device y. Commands which are not assigned to any device will be executed in a common thread.

Activity-Switch Command are always queued in the common thread and therefore will block the common thread until all of its resulting commands are executed/processed.