Started as a project to support OTA for MySensors and proxy for all other requests. Now exposes WebOfThings APIs for MySensors (supporting very few sensors at the moment) and on it's way to be a fully functional API based controller for MySensors. Contributions to support other sensors are welcome.
All the APIs are available as postman collection and the docs can be found here.
There is also a pending task to add Swagger UI as part of the server .
Integration with Things Gateway
This server also acts as a proxy between Gateway and the Controller. Both might be either connected through a serial port or a TCP connection.
Before running the server, set the correct connection type and connection port for Gateway and Controller in conf.toml file.
WoT api's are exposed at https://{host}:8888
git clone https://github.com/tsathishkumar/MySController-rs.git
cd MySController-rs
sudo cargo run
If you notice any errors, make sure you have the latest rust toolchain:
rustup default beta
Beta version of toolchain is necessary for features like cargo edition
field.
echo "deb http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid main" | sudo tee -a /etc/apt/sources.list
apt-get update
apt install myscontroller-rs
The configuration of the server can be found at the below location.
/etc/myscontroller-rs/conf.toml
Example settings:
encoding=utf-8
[Gateway]
type=TCP
port="10.11.12.13:5003"
[Controller]
type=TCP
port="0.0.0.0:5003"
[Server]
database_url="/var/lib/myscontroller-rs/sqlite.db"
systemctl restart myscontroller-rs.service
Note: If you are using TCP for controller - the port value will be used to create TCP server listening on the specified port. (So it shoud be the address of the machine running MySController, 0.0.0.0 always)
Settings -> Add-ons -> Add -> Web Thing
http://localhost:8888
Things
page and click on +
and you should be able to see all the sensors that are available through my-sensors network.Check out the TODO list, and pick whichever you are interested or raise issues if you have encountered any.