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 brightness
and colour_mix
.
1- Connect the Chili to a Windows or Linux machine and run the executable serial-adapter.exe
, or 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 actuatordemo children
.
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.
Commands | Description |
---|---|
General commands | |
actuatordemo | Shows the current configuration of the device (actuator/controller/stopped). |
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. |
Controller-only commands | |
actuatordemo discover | Immediately sends a discover for actuators. |
actuatordemo children | Displays a list of all connected actuators, their ID and their IPv6 address. |
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 provided value. |
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 provided value. |
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. |