New Insteon 2.5+ binding

Here’s an update in case anyone else is having the same issues:
I logged out and deleted my InsteonApp, no change in spotty updates from Motion Sensor II. I’m assuming it’s just the hub that’s the roadblock here. I haven’t looked at the underlying code, but I’m gonna take a wild guess and say the binding has to poll the hub, the hub probably doesn’t trigger events like a PLM would.

I eliminated the devices from my daily rules which I believed were causing issues due to being sometimes out of range of the insteon network due to power line “noise” and lack of radio band proximity and I haven’t had any issues with Openhab’s ability to communicate with my other insteon devices for at least 36 hours now. Again, don’t know how this is coded in the binding, but is it possible that the binding is sending a message through the insteon network and then polling for a response that never comes since the device is out of range/unplugged?

I think at some point I’m going to have to get a PLM to handle interfacing with my Openhab server. I’m curious if anyone else runs a dual PLM/Hub setup in their home and if they’ve encountered any gotchas.

You are correct in the case of the hub, the binding has to poll the device. It contains a PLM and writes the data to a circular buffer. The buffer is exposed via a port with http. by default, the poll interview is 1 second (see port at network configuration). The binding has nothing to do with how the devices communicate with each other, that is all done between the PLM and device via the Insteon mesh network.

As for having a PLM and hub, that won’t cause any issues. You’d just need to do the proper linking between the PLM and devices you’d like it to control.

For a while I had a hub and hated the lag that using it caused with openHAB, so I eventually switched to a PLM. For some time I had both on my Insteon Network. While @ranielsen is correct that it will not cause a technical issue in that they will play fine on the network, in reality in my experience I believe it causes bandwidth issues. The Insteon network bandwidth is VERY limited. If I’m commanding more than a few devices on/off I’ve found that I either need to put pauses in between my commands or use an Insteon scene, otherwise some devices won’t respond. If you have a PLM and an HUB then every device you have will (I assume) be linked to both. So everytime you turn on/off a device, it will be sending double the data. Also, know that the Hub will be doing its own device polling in addition to the PLM doing device polling for openHAB. I’d very much suggest you remove the Hub from the network as soon as possible after replacing it with the PLM. Frankly will serve no purpose at that point anyway.

1 Like

I’m wondering if this could potentially be my issue with devices not responding? My “problem” area was a night time rule that shut off a lot of different lights and turned on a few security lights as well. I trimmed it down thinking that the problem was in the devices being too far away, but perhaps I’m having better luck simply because I have less devices being triggered at once? Do you use Thread::Sleep or timers?

I use Thread:sleep(150) between commands in a few rules, but you could also set up group broadcasting. 150 works for me with a PLM but might need to be higher with a hub.

1 Like

Yeah, I have much more than @ranielsen at 1000ms. However I use that less and less as I’ve moved things to scenes. Using openHAB groups, where OH will command on/off all items in a group is almost useless and lots of missed commands wil happen. I HIGHLY suggest moving to Insteon Scenes, but there is some learning curve there as you need something to program your devices to respond to the scene (group broadcast) (I use insteon-terminal, but is it a pretty high learnign curve) and then setting up OH to send your scene trigger.

@Dennis_Pelham

Something else to check out on your hardware that isn’t working as you would like:

I have had a poorly communicating keypad switch for probably more than a year. Recently I decided to do something about it so I thought I was going to run new wire to it incase it was a wiring issue. Inspecting I realized I had already run a brand new circuit to it.

So, I went into to look at the configuration of the hardware. Using insteon-terminal, I read the configuration flag1 and flag2 settings in the device and realized somehow the RF radio had been switched off, so this device was using ONLY powerline for rx/tx. I turned it back on and suddenly the device operates perfectly!

That’s some good advice, I’ll look into getting the Insteon Terminal. I’ve been using the new Insteon App which is in open beta. It’s got very much improved interface for creating scenes, I’ll probably start creating some to replace Openhab groups. However I’ve had a bit of a breakthrough with my motion sensor. I was going over my configurations and realized I had too many zeros in the bridge poll settings, had it set to poll every 10 seconds instead of 1 second. It works much better now!

Yeah, that’s going to make a world of a difference.

Is it possible to get the temperature in Celsius? Because everytime the hub returns a value, it’s in fahrenheit. Also, can I send the heatpoint in celsius?
My items is:
Number thermostat2_5 “temperature [%.1f °C]” {channel=“insteon:device:bc9b23d3:2561BC:tempCelsius”}
but sometime, it returns a value in Celsius but soon after, it came back in fahrenheit as you can see in the log here:
2020-10-29 21:27:58.816 [.ItemChannelLinkAddedEvent] - Link ‘thermostat2_5-insteon:device:bc9b23d3:2561BC:tempCelsius’ has been added.
2020-10-29 22:49:26.026 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 68.9 to 20.0
2020-10-29 22:53:00.252 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 20.0 to 68.0
2020-10-30 01:16:18.041 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 68.0 to 19.5
2020-10-30 01:17:59.667 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 19.5 to 67.1
2020-10-30 02:32:21.821 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 67.1 to 19.0
2020-10-30 02:32:59.779 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 19.0 to 66.19999999999999
2020-10-30 05:15:11.273 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 66.19999999999999 to 18.5
2020-10-30 05:18:00.597 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 18.5 to 65.3
2020-10-30 06:30:56.174 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 65.3 to 19.0
2020-10-30 06:31:22.712 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 19.0 to 66.19999999999999
2020-10-30 06:44:04.096 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 66.19999999999999 to 19.5
2020-10-30 06:48:00.274 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 19.5 to 67.1
2020-10-30 06:56:56.125 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 67.1 to 20.0
2020-10-30 06:58:00.057 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 20.0 to 68.0
2020-10-30 07:13:59.161 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 68.0 to 20.5
2020-10-30 07:14:07.488 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 20.5 to 68.9
2020-10-30 11:59:23.741 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 68.9 to 20.0
2020-10-30 11:59:29.655 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 20.0 to 68.0
2020-10-30 12:25:25.078 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 68.0 to 20.5
2020-10-30 12:28:00.353 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 20.5 to 68.9
2020-10-30 13:44:42.606 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 68.9 to 68.0
2020-10-30 15:30:54.406 [vent.ItemStateChangedEvent] - thermostat2_5 changed from 68.0 to 68.9

Thank you

By the way, InsteonPLM v1 works well

There is only a single channel called temperature that returns Number:Temperature. An earlier version of the binding had both Fahrenheit and Celsius but that was removed before the binding was merged into the codebase. You should set your default unit of measure for OH to Metric if you want values in Celsius.

I fixed the documentation, here’s how the item should be configured:

Number:Temperature  thermostatTemperature  "temperature [%.1f %unit%]" { channel="insteon:device:home:AABBCC:temperature" }

You can also replace %unit% with °C or °F.

I think it doesn’t work, it still gaves me the temperature in F as you can see here:

17:14:22.593 [INFO ] [smarthome.event.ItemStateChangedEvent] - thermostatTemperature changed from NULL to 68.9 °C

Are you using UoM?

Can you post your item?

Excuse me, what is UoM? here is my item:
`

Number:Temperature  thermostatTemperature  "temperature [%.1f %unit%]" { channel="insteon:device:bc9b23d3:2561BC:temperature" }

`

What happens if you change [%.1f %unit%] to [%.1f °C]?

didn’t change, still in Fahrenheit.

When I asked about if you used UoM I was referring to openHAB’s Units of Measurements system.

In your original post your item was just a plain Number item. That is not part of the UoM system. I see now that you have changed to the Number:Temperature item type so this should be using UoM and you should be able to covert to the units you desire.

Have you defined the units you want to use in PaperUI?

Under Configuration->Settings->Regional Settings->More you can choose Imperial or Metric units.

One other thing, do you only check this number in your log? Does it also show as Fahrenheit in your site map? I’m unsure, but I think this conversion only shows in the site map since it is defined in the site map label portion of your item definition.

yes Units of Mesurements was set to metric but I still receive value as Fahrenheit. Thank you tommycw10.

Can you turn on debug logging and see what is getting published. Specifically:

log:set DEBUG org.openhab.binding.insteon.internal.device.DeviceFeature

If you need help with logging, check out logging in openHAB.

Here’s a sample for a power meter:

2020-11-02 06:41:33.526 [DEBUG] [nsteon.internal.device.DeviceFeature] - 19.8B.65:PowerMeter publishing: 26.1861 kWh
2020-11-02 06:41:33.538 [DEBUG] [nsteon.internal.device.DeviceFeature] - 19.8B.65:PowerMeter publishing: 0 W
2020-11-02 06:41:33.546 [DEBUG] [nsteon.internal.device.DeviceFeature] - 19.8B.65:GenericLastTime publishing: 2020-11-02T06:41:33.544712-0600

It looks like Celcius temperature is never published.

08:17:59.027 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:GenericLastTime publishing: 2020-11-02T08:17:59.026-0500
08:17:59.036 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatSystemMode publishing: 3.0
08:17:59.040 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatIsHeating publishing: 0.0
08:17:59.043 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatFanMode publishing: 0.0
08:17:59.046 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatIsCooling publishing: 0.0
08:17:59.049 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatHeatSetPoint publishing: 21.0
08:17:59.052 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatCoolSetPoint publishing: 30.0
08:17:59.056 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatTemperatureFahrenheit publishing: 68.9
08:17:59.065 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:ThermostatHumidity publishing: 55.0
08:17:59.068 [DEBUG] [insteon.internal.device.DeviceFeature] - 25.61.BC:GenericLastTime publishing: 2020-11-02T08:17:59.068-0500