ISY994 Integration

For folks using ISY994.
Bond works with ISY994 automation controller using Network Resources., local control


The screenshot is showing as an example of a setup. Replace XXX with Bond Token. You can use a network name instead of the local IP address.

2 Likes

Yes indeed. Welcome, @etsvilik!

@etsvilik: By the way, please do not depend on the espressif name there. We intend to change that to the Bond serial number in a future release.

Hopefully you can reserve an IP address in your router, or use Bond’s configuration option to set a static IP.

Thanks for the note.
I can always set the custom DNS name in my router(Verizon FIOS Actiontec). I had it done for all of my automation gear, cameras and all IPs set to static.

Nice! I’ve never heard of anyone doing that within a home LAN. But I guess it still assumes an un-changing IP address of the Bond unit?

Setting it “Static” on the router side reserves the IP address on the local network. On Verizon router, it is buried in the menu under Advanced/ IP Address Distribution/Connection List. Another way is to set up a dedicated IP range outside DHCP. I was just too lazy to do it. I let the chips fall first - then make it static.

I did this to avoid changing programs in various controllers, software when I replaced the device. Replacement will get a new IP and I only update DNS record .

1 Like

Thanks etsvilik for pointing me in the right direction!

Turn Light On:
PUT /v2/devices/YOURBONDID/actions/TurnLightOn HTTP/1.1
Host: 192.168.1.178:80
User-Agent: Mozilla/4.0
Connection: Close
Content-Type: application/json
Content-Length: 14
BOND-Token: YOURBONDTOKEN
{
“Light”: 1
}

Turn Light Off:
PUT /v2/devices/YOURBONDID/actions/TurnLightOff HTTP/1.1
Host: 192.168.1.178:80
User-Agent: Mozilla/4.0
Connection: Close
Content-Type: application/json
Content-Length: 14
BOND-Token: YOURBONDTOKEN
{
“Light”: 0
}

Set Fan Speed:
PUT /v2/devices/YOURBONDID/actions/SetSpeed HTTP/1.1
Host: 192.168.1.178:80
User-Agent: Mozilla/4.0
Connection: Close
Content-Type: application/json
Content-Length: 17
BOND-Token: YOURBONDTOKEN
{
“argument”: 3
}

Turn Fan Off:
PUT /v2/devices/YOURBONDID/actions/TurnOff HTTP/1.1
Host: 192.168.1.178:80
User-Agent: Mozilla/4.0
Connection: Close
Content-Type: application/json
Content-Length: 14
BOND-Token: YOURBONDTOKEN
{
“Power”: 0
}

1 Like

FYI, the body with “Light” isn’t necessary, the action is fully specified by its name (“TurnLIghtOn”). Same for “TurnLightOff” and “TurnOff”. The “argument” for “SetSpeed” is correct.

I believe you still need those.
I found that Network Resource errors out without Body arguments.
Also body argument keeps the current status in sync across devices.
For example “TurnOn” with argument “0” will still work and will turn the fan On. However the status in Bond Bridge will show “Off”.

Sometime HTTP libraries don’t like PUT/PATCH/POST without bodies. You can try the body {} in that case. But I can assure you that actions/x APIs only look at argument field, and for TurnLightOn/TurnLightOff/TurnOn, they should actually return a 400 error if you provide an argument other than null.

I’ve been using an empty {} body for ISY for most of this year (see here).