kuestess / homebridge-platform-insteonlocal

Homebridge platform plugin for local Insteon control
Other
76 stars 26 forks source link

Failure To Report State #309

Open OspreyBoat opened 5 months ago

OspreyBoat commented 5 months ago

Good day all! Running Platform Insteon 0.5.11 on a Hoobs HSLF-2. Insteon is using a Hub 2 with the bin version Hub2-V04-20140904. Using Apple Home to manage the system. I also have other devices such as Resideo on the Apple Home system.

The state of the Insteon devices are not being reported correctly on the Apple Home. Completely wrong. They are all controllable however and once they are controlled from Home, they report correctly. However, all my schedules run on the Hub which is the way I want it to be. Hoobs is not robust enough to control any schedules (you can ask me why if you want).

I don't know if Hub 2 operates differently with the existing bridge which has last been updated Sep 2023. Insteon has gotten its act together and may have changed something in its most recent updates. In fact, they recommend I run a EISY to tie the home together.

Thank you for your help. I know this is a labor of love for the developers.

kuestess commented 5 months ago

@OspreyBoat There are a couple things that the plugin does to get state - on startup, it polls all of the defined devices and sets their state. From there, the event listener watches for Insteon traffic related to device state and updates accordingly. Do you see that initial polling when you start the plugin and events in the log related to state changes? Can you run homebridge in debug mode homebridge -D and post the output when the plugin is started?

OspreyBoat commented 5 months ago

Kuestess, Do you see that initial polling when you start the plugin and events in the log related to state changes? :

Yes, the log records the state on startup. The log also records the state change when I make the change from the Apple interface (say my watch). However, the log does not record any change in state when the device, say a lamp, is changed from the Insteon Director manually or from the Hub scheduler. Therefore, when the Hub schedule runs, say at sunset, and turns on lights, there is no event log and therefore the Apple Home app does not record the light as being on even though the light is on. Its state is not unknown. It is just off, as an example.

Can you run homebridge in debug mode homebridge -D and post the output when the plugin is started?

I don't know how to do that. However, when I start the bridge I can watch the log recording state of the devices.

OspreyBoat commented 5 months ago

As an additional follow up (more testing) for the bridge awareness:

  1. when controlling a device from the local switch, the event is captured (see below)
  2. when controlling the device from the "Director", the event is not captured
  3. when controlling the device from the old Insteon app, the event is not captured
  4. and as said before, when the device is commended by a scheduled scene, the event is not captured.

1/30/2024, 10:28:54 AMPlatform Insteonlocal BridgeInsteonLocalGot on event for Courtyard Lights 1/30/2024, 10:28:54 AMPlatform Insteonlocal BridgeInsteonLocalGot on event for Courtyard Lights

kuestess commented 5 months ago

@OspreyBoat Is what you describe above repeatable, ie it captures the commands from a local operation? Scenes are a bit of a crapshoot just due to the way the Insteon protocol works. One way to deal with that is to define groupMembers in your config file for your scenes (see the readme). The plugin will check the status of those devices automatically after you turn a scene on or off.

sabresoftware2021 commented 4 months ago

I too find similar issues. Eventually HomeKit will show the correct status, but it can take a while. I also sometimes get dimmer switches showing as on at some partial percentage, even though they have not been activated.

I find that Director sometimes also lags compared to the older Insteon app, so suspect that Insteon hub updating is the issue. I have been working with Insteon to see if we can determine what is going on. Actually I owe them a reply to one of their messages, but have just been too busy.

I also find that if I control via HomeBridge, the leds on one of the Insteon switches in a 3-way circuit doesn’t update properly i.e. one switch shows as still being on when the light has actually been turned off.

kuestess commented 4 months ago

@sabresoftware2021 My guess would be that the partially dimmed state has to do with timing - ie, status was reported as the device was turning off and with no other activity it reports the last known state. You can add the refresh key to your config, either at the device or platform level and the plugin will poll for status on whatever frequency you specify. I am trying to minimize Insteon traffic with the plugin, so it doesn't do this bye default but it is available if you want. For the issue with the 3-way switch, I would recommend setting it up as a scene and using the groupMembers functionality. When you turn the scene on/off, it will poll the device IDs that you specify as group members for status. The eventListener function that I use to monitor status is tacky at best, so it doesn't always catch everything. The refresh/groupMembers capabilities are meant to improve status indication where some messages may be missed.