Force a refresh of Insteon device state

Hi,

I wanted to know if there was a way to tell OpenHab to update the Insteon device state on demand (in place of using the pool_interval parameter)?

I ask because here is my issue :

My pool interval is every 5 minutes. The issue I have with this is OpenHab will probe the Insteon network every 5 minutes to make sure the states are consistent. However, every time OpenHab launch this pool, my LED light in my house flicker a little bit. This flicker issue is documented on the net and it also happen when I open the officiel Insteon Hub app and it start pooling the Insteon network.

What I want to accomplish is to have a way of manually telling OpenHab to launch a pool (and maybe set the pool_interval parameter to only every 24 hours)… This way, the flicker will only happen when I ask OpenHab to pool manually.

Is it possible?

Quick update, I tried playing around OpenHab console but I didn’t find anything to launch a refresh manually. I could gather devices states and stuff like that.

Anyone has an idea? This is the last missing puzzle pieces for my home automation to work correctly!

@Bernd_Pfrommer I didn’t want to ping you directly but I see that you did a lot of development around this bindging.

Do you think I could make a script to manually launch the pool of my device state and disable (or set to a large number) my pool interval?

Thanks and sorry for the direct ping

I mean, you can just restart OpenHAB and they will refresh. If for some reason you don’t want to do that, move the binding out of the binding dir, wait, and move it back in. It will reload and refresh all devices.

Thanks for the answer but I was hoping for something less drastic than this solution.

For example, a script that call the same pooling method that openhab already call, but I cannot find it anywhere…

Thanks again for your help!

As it is currently implemented, there is no way to poll outside the binding, or to trigger a poll.

One word of advice: polling is pretty tricky. You have to carefully space the polls, or else you overload the insteon network. There isn’t much bandwidth to go around. If you poll all devices back-to-back, most of them will not answer. That is why the binding spaces out the polling, and polls them in a round-robin fashion.

Thanks a lot for the reply, I appreciate.

Do you have anything to recommend for my case? Polling make my lights flicker so I cannot do it every couple of minutes, it’s unbearable!

I was thinking of setting the poll value to 24 hours just to keep thing in check in case something was out of sync. This is why I wanted to be able to initiate a manual poll in case I was needing it.

The major problem for me is Insteon Scene. Scene does not trigger the standalone device update, so after I trigger a scene, OpenHab still think my lights is off until the next poll. It seems to be a limitation in the Insteon protocol for scenes.

One idea would be to have a per-device min and max poll interval. Not sure how much work it would be, but would that be acceptable?

Not sure I understand your point on this?

For example, here is my case

Insteon Scene : Living Room Lights -> Turn on 3 lights in my living rooms

When I turn on this scene from OpenHab (or my Insteon app or Insteon keypad) everything work fine. The only thing is that the 3 individual lights still show as off in OpenHab for the next 5 minutes until the next poll.

It seems that even the original Insteon app on my phone need to repoll the devices to get the right state after a scene trigger, so it seems normal for Insteon to work this way.

My issue (and it seems to be somewhat common for user with LED light with Insteon switch) is that when the poll is launched, the LED flicker a little bit. More, it seems that ALL LED flicker, not just the one that is currently polled.

@djf_jeff, I don’t have my buttons linked to anything, and have rules set up for my buttons. The rules send on/off commands to the devices instead of the button itself. Is this an option for you?

It could be but I was hoping to use OpenHab more to complement my Insteon setup than to “replace” it. What I like about Insteon is that it works all the time (even with no Internet), every time I press the button.

I wanted to add OpenHab in the mix to maybe add zwave and other component and integrate them with Insteon.

Thanks!

@Bernd_Pfrommer just curious, I tried setting the poll interval for the Insteon PLM binding to 24 hours instead of 5 minutes but it seems to poll my device every hour and not once a day in the log. Is it a limitation in the polling?

2018-03-06 03:59:14.406 [INFO ] [onplm.internal.device.MessageHandler] - DimmerRequestReplyHandler: set device 42.6F.XX to level 0
2018-03-06 04:01:38.405 [INFO ] [onplm.internal.device.MessageHandler] - DimmerRequestReplyHandler: set device 42.7E.XX to level 0
2018-03-06 04:59:14.401 [INFO ] [onplm.internal.device.MessageHandler] - DimmerRequestReplyHandler: set device 42.6F.XX to level 0
2018-03-06 05:01:38.406 [INFO ] [onplm.internal.device.MessageHandler] - DimmerRequestReplyHandler: set device 42.7E.XX to level 0

Did you use the “related” keyword in the binding as outlined in the documentation? I have the same type of setup and the related keyword handles it just fine. I could turn polling off completely on my network if I wanted to and it would still stay in sync.

Hi,

Effectively, I need to try that, it might solve the out of state for Insteon scene.

But right now, the issue I have is I try to “disable” the polling by setting it to 24 hours but it still poll all my devices every hour. Do you know how I could completely disable the polling?

Thanks for the suggestion!

I don’t know that there is a way to completely disable polling on the binding. I haven’t tried yet. I do notice my lights flicker sometimes when polled as well. I think I’ve just learned to ignore it for the most part since it seems on my devices it only happens every now and then and not every time. The frequency with which each device gets polled is just equal to the overall polling time / number of items attached. So the longer you set that overall polling time the longer between individual polls. That’s all I know. Other than that I’d have to dig into the source code of the binding to see exactly how everything works together.

@mladams922

Can you post an example of your items with the “related” keyword? I don’t think I’ve ever gotten this to work quite right.

Dimmer mHallwayLights  "Main Hallway Lights"   (main, lights) ["Lighting"] {insteonplm="23.9D.AC:F00.00.11#dimmer,related=23.9E.7B+23.9D.94"}
Dimmer mHallwayLights2 "Main Hallway Lights 2"                             {insteonplm="23.9E.7B:F00.00.11#dimmer,related=23.9D.AC+23.9D.94"}
Dimmer mHallwayLights3 "Main Hallway Lights 3"                             {insteonplm="23.9D.94:F00.00.11#dimmer,related=23.9D.AC+23.9E.7B"}

I’m not sure how the “related” keyword would help here, since the lights are triggered from an outside app. None of the switches involved will send a status update.

Thanks @ranielsen,

I think @mladams922 seemed to be saying he has items that were related to scenes (group broadcasts). That’s what I’m looking for: How to relate a regular item to a group broadcast item.

Example:

From the wiki, we can send a group broadcast to trigger a scene like this (I have many of these in my setup):

Switch broadcastOnOff “group on/off” { insteonplm=“xx.xx.xx:0x000045#broadcastonoff,group=2”}

However, OH won’t know the new status of those scene members until the next poll. If you SEVERELY limit polling like is being looked at in this thread, OH will remain out of sync with the actual status of these members for up to 24 hours.

So, is there a way to use “related” to trigger a poll of specific items when a group broadcast is sent via OH?

I haven’t tried it but you could try adding the “related” keyword to the broadcast switch you have above:

Switch broadcastOnOff “group on/off” { insteonplm=“xx.xx.xx:0x000045#broadcastonoff,group=2, related=xx.xx.xx”}

I don’t know if that would work, I haven’t looked that far into the binding. My setup is a little unique since I don’t use many scenes. I only use scenes or groups to control main loads. I.E. I have two switches to control the ceiling lights in my living room. And the Ceiling lights are ceiling fans, so I group the load on the switches to the load on the ceiling fans. But the rest of the buttons on the keypad are linked back to OH and if I push one of the buttons OH gets the notice and I trigger scenes or events from OH.

The reason I do it that way is because I want to be able to adjust scene levels in OH and not have to pre-program them into the Insteon devices. Just adds more flexibility.

However, if you could send a level to a group I would probably do it differently.