-
-
Notifications
You must be signed in to change notification settings - Fork 26
Tested configurations
Sample config.json
, noting that you need to replace 1.2.3.4
with your Bond IP address, <deviceId>
with your deviceId, and <BondToken>
with your Bond token.
These values can be obtained from the Bond app, under Device settings
for any individual shades.
{
"accessory": "BlindsHTTP",
"name": "Dining Room Shades",
"up_url": {
"url": "http://1.2.3.4/v2/devices/<deviceId>/actions/Open",
"body": "{}",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "PUT"
},
"down_url": {
"url": "http://1.2.3.4/v2/devices/<deviceId>/actions/Close",
"body": "{}",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "PUT"
},
"stop_url": {
"url": "http://1.2.3.4/v2/devices/<deviceId>/actions/Hold",
"body": "{}",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "PUT"
},
"http_success_codes": [200, 204],
"motion_time": 11000,
"response_lag_ms": 1000,
"trigger_stop_at_boundaries": false
}
Bond Bridge Pro supports the SetPosition
command, which allows for finer-tuned control. Note that Bond's convention for 0-100% is exactly opposite of HomeKit's convention, so JSONata was used to remap the values.
{
"accessory": "BlindsHTTP",
"name": "Dining Room Shades",
"up_url": {
"url": "http://1.2.3.4/v2/devices/36ecfde3/actions/SetPosition",
"body": "{\"argument\": %%POS%%}",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "PUT"
},
"down_url": {
"url": "http://1.2.3.4/v2/devices/36ecfde3/actions/SetPosition",
"body": "{\"argument\": %%POS%%}",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "PUT"
},
"pos_url": {
"url": "http://1.2.3.4/v2/devices/36ecfde3/state",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "GET"
},
"pos_poll_ms": 15000,
"pos_jsonata": "$round( 100 - $number(position) )",
"send_pos_jsonata": "$round( 100 - $number($) )",
"stop_url": {
"url": "http://1.2.3.4/v2/devices/36ecfde3/actions/Hold",
"body": "{}",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "PUT"
},
"motion_time": 24000,
"response_lag_ms": 1000,
"http_success_codes": [200, 204]
}
If you prefer instead, you can trigger Groups instead of individual devices. The groups need to be configured within the Bond app itself. To use a group, just replace the devices/<deviceId>
in all of the URLs with groups/<groupId>
.
E.g.,
"up_url": {
"url": "http://1.2.3.4/v2/groups/<groupId>/actions/Open",
"body": "{}",
"headers": {
"BOND-Token": "<BondToken>"
},
"method": "PUT"
},
This applies for the Pro
configuration as well.
If you are having difficulty finding the settings, you can test your Bond device from the command line directly first (substituting your IP address, BOND-Token, and deviceId, e.g.:
curl -H "BOND-Token: f074b61f628018fd" -i http://1.2.3.4/v2/devices/79135791/actions/Open -X PUT -d "{}"
Alternatively, sample shell script to retrieve the list of Bond deviceId's using the local API, replacing 1.2.3.4
with your Bond IP address, and <BondToken>
with your Bond token:
#!/bin/sh
# CONFIGURE BOND_IP AND BOND_TOKEN TO MATCH YOUR CONFIGURATION
BOND_IP="1.2.3.4"
BOND_TOKEN="<BondToken>"
if ! [ -x "$(command -v jq)" ]; then
echo 'Error: jq is not installed.' >&2
exit 1
fi
BOND_DEVICES=$( curl -s "http://${BOND_IP}/v2/devices" -X GET -d "{\"_token\": \"${BOND_TOKEN}\"}" | jq -r 'keys[]' | grep -v '_' )
while read -r line; do
DEVICE_DETAILS=$( curl -sH "BOND-Token: ${BOND_TOKEN}" "http://${BOND_IP}/v2/devices/${line}" | jq '.name' )
echo "${DEVICE_DETAILS} ${line}"
done <<< "${BOND_DEVICES}"
Sample config.json
, noting that you need to replace 1.2.3.4
with your Tasmota IP address. As described above, %%POS%%
is used to supply the target position (0-100) to the plugin.
{
"accessory": "BlindsHTTP",
"name": "Window",
"up_url": {
"url": "http://1.2.3.4/cm?cmnd=ShutterPosition%20%%POS%%",
"method": "GET"
},
"down_url": {
"url": "http://1.2.3.4/cm?cmnd=ShutterPosition%20%%POS%%",
"method": "GET"
},
"stop_url": {
"url": "http://1.2.3.4/cm?cmnd=Power3%20ON",
"method": "GET"
},
"http_success_codes": [200],
"show_stop_button": true,
"motion_time": 20000,
"trigger_stop_at_boundaries": false
}
Louvolite's smart home system seems to be build on top of Neo Smart Blinds platform, so this configuration is likely to work with other manufacturers utilising Neo. You will need the following values for the config:
-
<controller_ip>
is the IP address of Louvolite's One Touch (or other Neo-based hub), e.g. 1.2.3.4; -
<controller_id>
is the controller identifier, which you can find in the Neo app on the controller page, this is a long alphanumeric identifier; -
<blind_code>
you can also find in the Neo app at the bottom of the blind page — it looks something like 123.456-01.
{
"accessory": "BlindsHTTP",
"name": "Louvolite Blind",
"up_url": {
"url": "http://<controller_ip>:8838/neo/v1/transmit?id=<controller_id>&command=<blind_code>-up",
"method": "GET"
},
"down_url": {
"url": "http://<controller_ip>:8838/neo/v1/transmit?id=<controller_id>&command=<blind_code>-dn",
"method": "GET"
},
"stop_url": {
"url": "http://<controller_ip>:8838/neo/v1/transmit?id=<controller_id>&command=<blind_code>-sp",
"method": "GET"
}
}