New bOS's RPC API + Tasker | Tutorial
Hello!
Here we have a short tutorial on how to integrate bOS and TASKER using new bOS’ RPC service.
bOS offers a JSON RPC Service for integration with Tasker, IFTTT and other services.
This tutorial will show bOS RPC service interacting with TASKER on Android in a simple task, but the important thing here is to understand how to set-up the RPC service so you can do more complex integrations.
RPC service on the new bOS offers HTTP basic authentication with username and password.
In this example, we'll be using Tasker to turn a Z-Wave Socket off.
Of course, this can be done easily within bOS Client app, but this is just for demo purposes. You can change and adapt the task to your needs, for example, "If my phone battery is lower than 80%, turn the socket on", or "If I’ve reached my house, turn front door light on". The possibilities are endless.
Step 1: Configure your RPC service
- In bOS Configurator, under API, enable RPC and define your Username and Password:
Step 2: Find your Device Path
- In this example, the Info tab from the Z-Wave socket device will show us the path: Devices\Z-Wave\Socket\Basic
Now we need to form the JSON body to POST on TASKER.
The Path we have is: Devices\Z-Wave\Socket\Basic
We need to double the backslashes on the Path to form the JSON body to POST on TASKER service, so now we have: Devices\\Z-Wave\\Socket\\Basic
The simple SetValue body post looks something like this:
{"objectName":"INSERT PATH HERE","valueName":"Value","value":"true"} where "value":"true" is to turn the value to true or 1. You can change to false or 0 or look for other RPC examples.
For our valueName, we have “State”:
To turn the Socket off, our body post is:
{"objectName":"Devices\\Z-Wave\\Socket\\Basic","valueName":"State","value":"false"}
Step 3: Tasker
- Create a new task and include the “HTTP Post” action:
- In your HTTP Post:
Server:Port
https://RPCUserName:RPCPassword@your_ip_address_or_dynamic_dns_address/API/RPC/SetValue
in our example: https://RPC:RPCCOLIBRI@ip_address_or_dynamic_dns_address/API/RPC/SetValue
Data / File (here we include our body post)
{"objectName":"Devices\\Z-Wave\\Socket\\Basic","valueName":"State","value":"false"}
Content Type
application/json; charset=utf-8
Trust Any Certificate:
Yes
Done! Now every time we run this task our Socket will turn off.
This is a simple example for demo purposes, but with more complex commands you can do whatever you want... call scenes, set other values, etc.
To call a RPC Service a HTTP POST call must be preformed with data content-type = "application/json";
Service offers the following commands
POST data example (Turn ON a light): {"objectName":"Devices\\EIB\\Light 1","valueName":"Value","value":"true"}
POST data example (Get light status): {"objectName":"Devices\\EIB\\Light 1","valueName":"Value"}
http://localhost:81/CallFunction
POST data example (Send alert to user):
{"objectName":"Building\\General\\Users\\User","functionName":"SendAlert","value":["'Hello'"]}
I hope you’ve enjoyed the tutorial and please post here the examples and ideas you have using the new bOS’ RPC API.
Customer support service by UserEcho
Thank you!!
Hey
Any way to get the mobile device battery status or gps values without using tasker? I know that HA does it somehow, so if a new device is paired it will show its battery status too that can be used in automation. I get 96 entities for android and 18 for iPhone... so a lot of options.
I would like to track people to trigger automations better, but the Online status or On local network status/function is not updating correctly if the user does not logout and login again.