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.
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 .
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 realize that this is an old post but, I just wanted to say THANK YOU! for the comment about adding the empty {} in the body. I had been banging my head on my computer for an hour before I found this. This fixed it.