A simple demo that demonstrates the control of several actuators (running ot-cli-actuator), by a central controller (also running ot-cli-actuator). This demo provides a CLI for interaction, which can be used with the
serial-adapter posix application. The controller can individually set and request two variables owned by each actuator, and those are
1- Connect the Chili to a Windows or Linux machine and run the executable
serial-adapter. This will open up the CLI.
2- Type the command
actuatordemo actuator or
actuatordemo controller depending on which role you want the Chili to take.
Connect the Chili configured as a controller to a Windows or Linux machine and run the CLI.
Once the controller and actuators are powered, the controller will automatically try to connect to any actuators within its range (note: this will happen even if
serial-adapter is not running). It does this by sending a discovery message every 30 seconds, which means that it can take up to 30 seconds for the controller to connect to an actuator. However, it is possible to prompt the controller to immediately send a discovery message by typing the command
actuatordemo discover. If there are actuators nearby, it will immediately connect to them. When the controller successfully connects to an actuator, it internally assigns an ID number to that actuator, and the message
Actuator ID <ID number> connected. is displayed on the CLI.
To display a list of all the currently connected actuators, as well as their ID number and IPv6 address, enter the command
If a currently connected actuator is no longer able to communicate with the controller for more than 60 seconds (e.g. it is powered off, out of range, no longer working…), then the controller will consider the actuator to be disconnected. When that happens, the controller removes the actuator from its list of children, and the message
Actuator ID <ID number> has disconnected is displayed on the CLI.
The actuators have a “brightness” and “colour_mix” of 0 by default. When the controller is connected to one or more actuators, enter the command
actuatordemo <actuator ID> brightness <0-255> colour_mix <0-255> to send a message that prompts the targeted actuator to set its “brightness” and “colour_mix” variables to the values provided (other variants of this command are available for convenience, see the table at the end of this document). If a value outside the bounds of 0-255 is provided, the command will be ignored.
When the actuator receives the message, it sets its internal “brightness” and “colour_mix” variables to the values requested, and stores them until they are either changed or the actuator disconnects. The actuator also immediately sends the “brightness” and “colour_mix” values as UART data.
Because the actuators store the values of “brightness” and “colour_mix”, the controller can request those values at any time to display them on the CLI. To do that, type the command
actuatordemo <actuator ID> actuator_info.
Enter the command
actuatordemo help on the CLI to get a similar list of all possible commands.
|actuatordemo||Shows the current configuration of the
|actuatordemo help||Displays a list of all possible commands.|
|actuatordemo actuator||Configures the device as an actuator.|
|actuatordemo controller||Configures the device as a controller.|
|actuatordemo stop||Stops the device’s operation.|
|actuatordemo discover||Immediately sends a discover for
|actuatordemo children||Displays a list of all connected
actuators, their ID and their IPv6
|actuatordemo <actuator ID> actuator_info
actuatordemo <actuator ID> i
|Requests the "brightness" and "colour_mix"
values from the actuator with the given ID
and displays them.
|actuatordemo <actuator ID> brightness <0-255>
actuatordemo <actuator ID> b <0- 255>
|Sends a message to set the "brightness" of
the actuator with the given ID to the
|actuatordemo <actuator ID> colour_mix <0-255>
actuatordemo <actuator ID> c <0- 255>
|Sends a message to set the "colour_mix" of
the actuator with the given ID to the
|actuatordemo <actuator ID> brightness <0-255> colour_mix <0-255>
actuatordemo <actuator ID> b <0-255> c <0-255>
|This is a combination of the two previous commands.|