HAI OmniLink Bindings HELP

BTW … a click and hold will always send the correct INCREASE or DECREASE but again the ICON state doesn’t change

I just checked the HAI docs, and dim/brighten commands works on all dimmable lights, have no idea why I named it CMD_UNIT_UPB_DIM_STEP_X

I would have to see the log entry when it is not dimming to know whats going on. So what items are not responding to commands? And are you still not getting UI updates for your items at all ?

Using just unit 1, I used SnapLink on iPhone (really dislike this btw) … and Classic UI on Mac to capture logs …

Boiled down, it looks to me like the core issue is that the % ON/OFF is either HAI is not returning the %ON /OFF or it is not being interpreted by the binding properly ?

On a similar note, how should I attempt to test “Scenes” in the UIs? Again using Snaplink to select the Scene it appears that the unit state changes to a=2, b=3, c=4. d=5,1=ON,0=OFF

Here is the snippet from the logs:

17:31:58.447 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 0
17:31:58.447 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 0
17:32:01.806 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:32:20.545 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:32:36.484 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:32:36.494 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 1
17:32:36.495 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 100
17:32:40.218 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:32:40.220 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 0
17:32:40.222 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 0
17:32:40.391 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:32:50.007 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:32:50.581 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:33:20.566 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:33:28.536 [DEBUG] [o.b.o.internal.OmniLinkBinding:162 ] - internalReceiveCommand() is called!!! Lights_Kitchen_Switch INCREASE
17:33:28.538 [DEBUG] [.o.b.o.i.OmniLinkCommandMapper:56 ] - Trying to match command to object type UNIT
17:33:28.541 [DEBUG] [o.b.o.internal.OmniLinkBinding:174 ] - Sending command 33/0/1
17:33:28.711 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:33:28.713 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 33
17:33:28.715 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 0
17:33:39.011 [DEBUG] [o.b.o.internal.OmniLinkBinding:162 ] - internalReceiveCommand() is called!!! Lights_Kitchen_Switch DECREASE
17:33:39.016 [DEBUG] [.o.b.o.i.OmniLinkCommandMapper:56 ] - Trying to match command to object type UNIT
17:33:39.020 [DEBUG] [o.b.o.internal.OmniLinkBinding:174 ] - Sending command 17/0/1
17:33:39.112 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:33:39.113 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 17
17:33:39.115 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 0
17:33:44.499 [DEBUG] [o.b.o.internal.OmniLinkBinding:162 ] - internalReceiveCommand() is called!!! Lights_Kitchen_Switch ON
17:33:44.500 [DEBUG] [.o.b.o.i.OmniLinkCommandMapper:56 ] - Trying to match command to object type UNIT
17:33:44.508 [DEBUG] [o.b.o.internal.OmniLinkBinding:174 ] - Sending command 1/0/1
17:33:44.677 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:33:44.678 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 1
17:33:44.679 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 100
17:33:50.485 [DEBUG] [o.b.o.internal.OmniLinkBinding:162 ] - internalReceiveCommand() is called!!! Lights_Kitchen_Switch DECREASE
17:33:50.487 [DEBUG] [.o.b.o.i.OmniLinkCommandMapper:56 ] - Trying to match command to object type UNIT
17:33:50.489 [DEBUG] [o.b.o.internal.OmniLinkBinding:174 ] - Sending command 17/0/1
17:33:50.592 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:33:54.395 [DEBUG] [o.b.o.internal.OmniLinkBinding:162 ] - internalReceiveCommand() is called!!! Lights_Kitchen_Switch OFF
17:33:54.397 [DEBUG] [.o.b.o.i.OmniLinkCommandMapper:56 ] - Trying to match command to object type UNIT
17:33:54.399 [DEBUG] [o.b.o.internal.OmniLinkBinding:174 ] - Sending command 0/0/1
17:33:54.548 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:33:54.549 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 0
17:33:54.551 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 0
17:34:20.585 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:34:46.353 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:34:50.563 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:35:00.384 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:35:20.594 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:35:50.615 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:36:20.588 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:36:24.926 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:36:34.539 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:36:50.719 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:37:20.550 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:37:28.844 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:37:38.464 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 5 class com.digitaldan.jomnilinkII.MessageTypes.statuses.ExtendedThermostatStatus
17:38:02.150 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:38:02.152 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 2
17:38:02.153 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 100
17:38:10.332 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:38:10.334 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 3
17:38:10.337 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 100
17:38:14.016 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:38:14.018 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 4
17:38:14.019 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 100
17:38:16.822 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:38:16.823 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 5
17:38:16.824 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 100
17:38:20.553 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 16 class com.digitaldan.jomnilinkII.MessageTypes.statuses.AuxSensorStatus
17:38:23.058 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:38:23.059 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 1
17:38:23.060 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 100
17:38:27.374 [DEBUG] [o.b.o.internal.OmniLinkBinding:875 ] - updateDeviceStatus 1 class com.digitaldan.jomnilinkII.MessageTypes.statuses.UnitStatus
17:38:27.376 [DEBUG] [b.omnilink.internal.model.Unit:65 ] - Unit state 0
17:38:27.378 [DEBUG] [b.omnilink.internal.model.Unit:86 ] - updating percent type 0

Another datapoint … when I use the OpenHAB Mobile App “sliders” the lights will adjust to the correct percentage, AND, the ClassicUI updates accordingly.

It looks like we are receiving commands, but I don’t know if we process the Dim/Brighten commands properly, if I remember these do not actually send the current value to us, just that they have been dimmed or brightened, and since we don’t cache the previous state value (or re-request it), don’t know what to set the current state to.
Can you try using our mobile apps? I want to make sure this is not an issue with the INC/DEC commands. Our mobile clients use sliders and set real percentage values.

Yes, using the mobile app updates the percentage on the ClassicUI and in the logs correctly.

@digitaldan, any chance of pulling other data from the omnipro such as flag status, access controls (door locks), and alarm codes used (for arming and disarming)?

@swamiller I no longer use the HAI hardware so I’m not adding anything new to the binding, if someone else wants to pick up development I would be happy to assist.

Is anyone using a script to update switch/dimmer states/status to reflect when UPB switches have been adjusted manually (as it appears that the binding does not poll these or am I missing something)?

EDIT: Nevermind, I see that I may have some bad configs in my UPstart file and did not have transmit after rocker is pressed for my SA switches…now to look into the HAI ones for issues.

@digitaldan is there an item setting that would show the current climate control state, such as “Cooling”, “Heating”, and “Idle” or any suggested work arounds that I could capture that information from the omnipro?

Take a look at https://github.com/openhab/openhab/wiki/OmniLink-Binding
it looks like “thermo_system_mode” is what you want.

Looks like “thermo_system_mode” only tells me what setting I set on the thermostat but not the current running state of the system. It appears to get/set the user selected mode only.

Looks like a binding enhancement opportunity.

Is there a way to send (or set) a cool setpoint on a Leviton thermostat?
I can see the temps on my sitemap, so I assume get works.
My hope is to change the thermostat setpoint with Echo.

@mikeyv

You can set your cool setpoint using a sitemap item like this:

Setpoint item=Thermostats_Downstairs_CoolPoint label="Downstairs Cool Setpoint:" icon="temperature" minValue=65 maxValue=85 step=1

Setpoint item=Thermostats_Upstairs_CoolPoint   label="Upstairs Cool Setpoint"    icon="temperature" minValue=65 maxValue=85 step=1

Which will look like this on your sitemap:

Using your item names, of course. I don’t have any experience with integrating the Echo but I would assume that since you would use the standard OpenHAB “Setpoint item” that is would work with the omnilink binding as it would with any other.

Adding a vote to port Omnipro binding to V2.

1 Like

+1 from me as well

Quite a while ago I started the migration of the omnilink binding to Openhab 2, specifically adding discovery. The rest of the code was the existing 1.8 functionality.

Here is the link to my fork. Give it a try and maybe we can move this along.

cheers,
craig

I have taken clone of craigh’s binding port to openhab2 and have been working with it… So far I have the dimmer capability working and have added the area type to the discovery process… I notice this morning that my zones where not updating when the doors where open and closed so I am tracking that down now as well… If someone else is going to start working this binding please let me know which areas you plan to address so that we don’t duplicate the work… And of course if you find an issue please let me know and I will look at it…

There is now a version 2.0 cut at the omnilink binding available via the marketplace.

If you would like to download it directly, here:
https://s3-us-west-2.amazonaws.com/craigham-pub/org.openhab.binding.omnilink-2.1.0-SNAPSHOT.jar

Here is a link to the source:

If anyone is using omnilink with Openhab 2, would like to hear some ideas on how the rooms/units should be modeled. Currently I have the binding just adding separate units (i.e. lights) as individual things. However, within omnilink they are part of a room, and there are some scene buttons which can control the room, as well as room status which reflects the group of lights.

Anyone have suggestions on how this relationship should be mapped within openhab 2?

thanks,
craig