tk,
There are a lot of variables at play here. Let me start by saying that in Home Assistant, I could see both entities of the ceiling fan. I could set different speeds on the fan and also change the direction of flow. For the light, I could only see it on or off. My first suspicion was that there could be an update to the Bond integration, but that is not the issue. Bond replies back with what “states” report back from the fan. If brightness is not a valid state, then it is unaware of the setting.
This opens up the problem of coding for a value that you don’t know what you are starting with or ending with. My fan can only see the command to increase brightness, stop brightness change, and decrease brightness. The work around concept is using known values of time to approximate the results that you want. For example, if you want to make sure that your light is dim… it is possible that it may have been turned off while brighter than the lowest setting. The fan light will turn on to the last value, but Bond doesn’t know what it was. To ensure lowest dim, you could command the light to turn on, then follow up with a dim for a duration of time to ensure the lowest value.
Ok, that was a little background to the problem. Here is the cliff notes. I tested out commands individually on my windows laptop until I got the results that I wanted. Once I knew the command, I needed to put it into home assistant as a service. I have 2 ceiling fans, so I needed 6 separate services added to my configuration.yaml.
Here is a reddit link where I documented what I did.
Bond integration for functions not readily available (like light dimming) : homeassistant (reddit.com)
I hope this answers your question. You are correct, your light may not be reporting the state. If you want to confirm, here is the command that I ran. Note that my token will be redacted and the device ID will be redacted as well. you can see the response only includes light:0, because it is off. If turned on, it will be 1.
curl -H “BOND-Token: 5d8eXXXXXXXXc570” -i http://192.168.1.47/v2/devices/4XXXXXX9/state
HTTP/1.1 200 OK
Content-Length: 62
Content-Type: application/json; charset=utf-8
{“power”:1,“speed”:1,“direction”:1,“light”:0,"_":“8d3d411c”}