Composite Child Devices and Dashboards (HBFC)

Looking for feedback and suggestions on the best way to deal with an issue I'm having.

I have two Hampton Bay Fan Controllers - each with fan and light child composite devices.

There were bad storms yesterday and my power blinked rapidly. Both fan controllers lost their connection to Hubitat. I had to reset the devices and rejoin them to HE. No problem doing that. However, when the devices rejoined the fans, were recognized as previously joined devices, but were given a new Device Network ID's. The previously existing Child Composite Devices have the old DNI. I tried changing the the rejoined parents DNI to be what the DNI used to be, this did not work and made the child composite devices that had the old DNI no longer work. I changed the rejoined parents back to the new DNI.

The Child Devices with the old parent DNI are controllable via the web interface without issue and show proper state changes. However, via the dashboard the child devices are controllable but the state will not update in the dashboard. I tried to make sure it wasn't a cache issue and closed the dashboard and reopened it. I deleted the dashboard tiles and recreated them and the issue is the same. The device page won't let me reassign the child DNI to mirror the parent's new DNI.

In an effort to fix this I deleted the child devices from one of the fans and created new ones. This of course fixed the DNI issue and the dashboard reflects the states of the child devices without issue. However, this a pain because I had to go into a bunch of apps and add the "new" child devices into their old automations. I'm probably going to do the same thing for the second fan but thought I would ask if anyone else had better ideas.

So my questions are:

  1. has anyone else had this happen with child composite devices when a parent has to be rejoined, and if so what did you do to fix it?
  2. If not, can anyone think of a better way to fix the issue than deleting the the child devices and recreating them. (I thought editing the DNI to match the new parent would be an option but it doesn't seem to allow me to edit the composite child DNI)

Thanks!

Sorry, I don't know how to help with the Device Network ID, I've always wondered how we would do that in the future, SmartThings had a replace option on most devices to all you to replace an existing device to take over its automation connections.

I have one of these still on SmartThings and another not connected to either platform anymore, did you have to turn it off/on 5 times within a second or something like that to re-pair it?

Sorry I should have mentioned that the device is zigbee. The replacement option in ST that you mentioned was for Zwave.

I've had mixed results with 5, so I always just do 10 and they re pair just fine. It doesn't have to be within a second. I just count out the breaker flips and turn it on 10 times, approximately once per second.

This has been discussed in previous threads. Unfortunately what you did is the only "fix". We have asked @mike.maxwell to see if we could get the rejoin of the parent controller to keep the original DNI. I forgot his exact response but it's a no-go..at least for the time being.

There are a couple of other threads but this is the original

1 Like

Here's an idea that might work around the problem (for us): create a virtual "proxy" device for each of the child devices, then use that virtual/proxy device in any app/automation/dashboard/etc. where you want the "real" device. Then, use an app or a rule to "sync" the two. I think the Hampton Bay Fan Controller driver is still the "old school" dimmer-style driver, so something like the [RELEASE] Switch Bindings app might work; otherwise, I think Rule Machine (and/or maybe WATO?) can do something similar, as could a simple custom app if desired instead. Pretty sure this would work for the lights (just a dimmer or on/off if that's all you have set) as-is.

If the Fan Controller ever changes its DNI and messes up the child devices again, you can just go into the Switch Bindings app (or your rule, other custom app, or however you have this set up) and switch out the real "bound" device with the new/correct one. Since you'd be using the "proxy"/virtual device in all your automations, you'd only have to worry about it in this one place.

Hopefully we can get something better for child devices in the future, but if you want a workaround for now this seems like something that should work. :slight_smile: I'm doing something similar but for totally different reasons: I have a few smart plugs that get different uses depending on time of year (and my whims), so I'm using the Switch Bindings app above to tie a virtual "proxy" device to a "real" smart plug, avoiding the need for me to re-name the smart plug device and re-work my automations every time I change my mind about something.

Thanks for the link.

Thanks for the idea. I might give this a shot.

But to be clear, the child devices are working fine (even with the old parent DNI) - via the hub interface and automations. They even work via the dashboard. The only issue I'm having is that the dashboard won't update states for the children at all.

Maybe I will reverse your idea a little bit and leave all my automations in place and use a virtual/bound switch in the dashboard so the correct state is shown. If that works.

I also had this issue. I gave more detail in the linked thread above. [Errors generated by Hampton Fan Controller]

Thanks to @bertabcd1234 for telling me about the switch binding app. This solution worked for me.

I bound the child devices to virtual devices and put the virtual devices in the dashboard. I left all the automations on the actual child devices since they work just fine.

I'm hoping that the author of switch bindings may be able to add the ability to work with the HE Driver for Fan controller to allow use of the fan template in a dashboard. But that is the only issue I see with this so far.

As Bert mentioned, if the parent gets new DNI's in the future - this solution will still work.

Be aware that the child devices work but will generate errors if you try to use the parent to control the fan speeds. My OCD won't allow this as I try to minimize any logging and especially so for errors.

Great workaround in any case @bertabcd1234

1 Like

I would also prefer a more elegant solution. But this will work for me for now.

Could you comment on why you use the parent to control fan speeds? I always just pointed all my automations to the child. What is the benefit of using the parent?

I don't anymore...I actually don't remember why I did in the past but it lead to the errors I received in the linked thread. Just thought you should know just in case.

1 Like