HAI omnilink binding for Openhab 2.0

I figured out how to establish the initial comms between the binding and my Omni; it’s simple if you know where to look. I got a hint reading a post from Craig dated May 2017.
I clicked on the Omnilink Binding in the Inbox to initiate a search for Things (Inbox > Omnilink Binding > Search). When the search failed, I clicked on the option to Manually Add Thing. That brings up a list of unit and source Things which didn’t look promising initially. However, about halfway down the list is an Omnilink controller Thing. Clicking on that shows the entries for Host Name and Keys; the port number is prepopulated. That’s all I needed. I filled in my info and clicking the blue checkbox to save the data. Then the Omnilink binding found all my units and zones.
Now, I have to figure out how to configure my units, zones, etc so my Echo dots can control my system.

that’s easy. in each ting, activate the channel properties you need to control. click on the thing itself, and not the icon to the right of it. that tells you what channels you can activate. then, these channels to that thing have different states/strings that you can change/edit/read in rules or via sitemap to control… make sense??

does anyone have an example of commands to arm and disarm the system either in rules or sitemaps?

I used this:

Switch item=Areas_Main_Mode label="" mappings=["Off"=Off,"Day"=Day,"Night"=Night, "Away"=Away,"Vacation"=Vaca]

This works great in the sitemap, but how does the alarm actually activate? switch changes color, and mode selects, but wall unit doesn’t turn red?

thanks

@Spacecoast, from my reading, which is still in progress, I think the answer to my question about configuration is to learn textual configuration and only use Paper UI for installing bindings. I’m attempting to use Visual Studio Code to edit sitemaps, things, items, and rules. After completing text configurations, I believe the next step would be to setup my own openhab-cloud and then build a custom Alexa skill.


 rule "Set Alarm"
when
    Item AlarmStatusSelect received command
then
    if (AlarmStatusSelect.state==0) 
    AlarmModeDisarm.sendCommand(0000)
    if (AlarmStatusSelect.state==1)
    AlarmModeDay.sendCommand(0000)
    if (AlarmStatusSelect.state==2)
    AlarmModeNight.sendCommand(0000)
    if (AlarmStatusSelect.state==3)
    AlarmModeAway.sendCommand(0000)
    if (AlarmStatusSelect.state==4)
    AlarmModeVacation.sendCommand(0000)
end

0000 is the master code you assign to your alarm unit (either yours, or one you create for the omnilink/openhab client…

you must also have these items defined…

some of my items did not work with the '‘home’ designation but required the actual omnilink address in some cases… i think this may be a flaw…


String  Areas_Main_Alarm  "Alarm: [%s]" (Areas_Main)  {omnilink="area_status_alarm:1"}
Number  Areas_Main_ExitDelay  "Exit Delay: [%d]"  (Areas_Main)  {omnilink="area_status_exit_delay:1"}
Number  Areas_Main_EntryDelay "Exit Delay: [%d]"  (Areas_Main)  {omnilink="area_status_entry_delay:1"}
Number  Areas_Main_ExitTimer  "Exit Delay: [%d]"  (Areas_Main)  {omnilink="area_status_exit_timer:1"}
Number  Areas_Main_EntryTimer "Exit Delay: [%d]"  (Areas_Main)  {omnilink="area_status_entry_timer:1"}
String  Areas_Main_Mode "Mode: [%s]"  (Areas_Main)  {omnilink="area_status_mode:1"}
String  Areas_Main_Alarm  "Alarm: [%s]" (Areas_Main)  {omnilink="area_status_alarm:1"}

Switch    AlarmAuxiliary            "Auxiliary Alarm [%s]"              (Areas_Main)            {channel="omnilink:area:home:1:alarm_auxiliary"}
Switch    AlarmFreeze               "Freeze Alarm [%s]"                 (Areas_Main)            {channel="omnilink:area:home:1:alarm_freeze"}
Switch    AlarmWater                "Water Alarm [%s]"                  (Areas_Main)            {channel="omnilink:area:home:1:alarm_water"}
Switch    AlarmDuress               "Duress Alarm [%s]"                 (Areas_Main)            {channel="omnilink:area:home:1:alarm_duress"}
Switch    AlarmTemperature          "Temperature Alarm [%s]"            (Areas_Main)            {channel="omnilink:area:home:1:alarm_temperature"}

String    AlarmModeDisarm           "Disarm [%s]"                (Areas_Main)       {channel="omnilink:area:4515ad84:1:disarm"} 
String    AlarmModeDay              "Day [%s]"                   (Areas_Main)       {channel="omnilink:area:4515ad84:1:day"} 
String    AlarmModeNight            "Night [%s]"                 (Areas_Main)       {channel="omnilink:area:4515ad84:1:night"} 
String    AlarmModeAway             "Away [%s]"                  (Areas_Main)       {channel="omnilink:area:4515ad84:1:away"} 
String    AlarmModeVacation         "Vacation [%s]"              (Areas_Main)       {channel="omnilink:area:4515ad84:1:vacation"} 
String    AlarmModeDayInstant       "Day Instant [%s]"           (Areas_Main)       {channel="omnilink:area:4515ad84:1:day_instant"} 
String    AlarmModeNightDelayed     "Night Delayed [%s]"         (Areas_Main)       {channel="omnilink:area:4515ad84:1:night_delayed"} 

Group:Contact:OR(OPEN, CLOSED) Zones "All Zones [%s]"
Group:Switch:OR(ON, OFF) Alarms      "All Alarms [%s]"

Number    AlarmStatusSelect
Number    AlarmMode                 "Alarm [MAP(area-modes.map):%s]"    (Areas_Main)              {channel="omnilink:area:4515ad84:1:mode"} 
Number    ConsoleBeep                                                   (Areas_Main)            {channel="omnilink:controller:home:beep"}
//Contact   ZoneFrontDoor             "Front Door [%s]"                  (Zones)                   {channel="omnilink:zone:home:1:contact"}
String    ZoneFrontDoorBypass                                                                    {channel="omnilink:zone:home:1:bypass"}
String    ZoneFrontDoorRestore                                                        

Number    AlarmStatusSelect

many thanks to steve miller (swamiller)

1 Like

I created Flags on my Omni and code so when they are turned on or off it will set the Alarm on or off. Then run a search from the binding to import the flag. With a switch in OpenHAB and it linked to the channel I use it to turn the flags on and off so I don’t need to add master alarm codes to my rules.

I will look into that.

I have the PC Access 3 softare and will check it out.

Thanks for the 411!

-drex

Thanks to the information provided here, the Omni binding worked great for me. I’m now trying to get this to work with the homekit binding and when I install omni I get “unsupported accessory”. Has anyone else been able to get this working with homekit?

what exactly are you trying to get it to do with homekit??

I want to be able to control my Omni system from the home app. I currently use Haiku on my iPhone but that app is no longer being supported and will likely stop working in the not too distant future.

OK, so i had to blow away my initial install, and have been redoing this from scratch.

What I still can’t fathom is why my devices/contacts don’t show up as :home: in the thing description, and how to make my item file match it.

i also can’t figure out how I got them them from things and items to display in control of the paper UI (no reason other than to verify all contacts toggling)… can’t seem to figure that out.

why doesn’t this ‘thing’ show the appropriate address, ‘:home:’, in its description?

omnilink:zone:8eace120:11:contact

I have sent an omniarea equal to 1 called home. that doesn’t seem to make it work.

any help/advice is appreciated.

using latest build openhab2

so out of desperation (which OH sometimes drives me to) i set the THING ID to home and VIOLA.

(DAMN IT THAT WAS TOOO EASY).

shoot me in the head some more.

some differences between set Theups just 2 months apart has shown me what to do…

i promise i will make a write up for newbies like me.

-d

1 Like

Hi!

I have the Omni Pro II controller working with it on RS-232 Centralite Elegance XL as Units. With omnilink 1.9, everything worked more or less correctly. I realized that the version of omnilink 2.2.0 does not support Units (altogether surprisingly, this is one of the basic needs), but you are proposing to bypass it through a bridge with UPB. I do not understand how Omni Pro II should accept Omnilink UPB commands if it is configured to work with CentraLite? Similarly, openhab must be somehow configured to work on the UPB protocol. Very frustrating is the lack of understandable documentation in openhab.
I will be grateful for any help!

I use the Omnilink binding to connect to my panel through the network. Once you add the configuration in the binding like the IP address and encryption keys you can do a search and it will pull in all your zones, flags and devices into OpenHAB. As far as I know you cannot connect to the panel through a device or protocol like UPB or Z-Wave and it must be though the network.

You are right - about the UPB protocol, but question is different. I connect to the controller and read the entire configuration, except the units. It was explained that this binding does not support work with Units and offered a solution variant through the bridge and upb. I can not understand how this can work and the description can not be found.

Overall binding is working great. Thank you. I am seeing the error below.

08:29:25.166 [ERROR] [home.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: 2018-5-22T8:28:31 is not in a valid format.
java.lang.IllegalArgumentException: 2018-5-22T8:28:31 is not in a valid format.
at org.eclipse.smarthome.core.library.types.DateTimeType.(DateTimeType.java:96) ~[?:?]
at org.openhab.binding.omnilink.handler.OmnilinkBridgeHandler.getSystemStatus(OmnilinkBridgeHandler.java:422) ~[?:?]
at org.openhab.binding.omnilink.handler.OmnilinkBridgeHandler.channelLinked(OmnilinkBridgeHandler.java:469) ~[?:?]
at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:290) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.time.format.DateTimeParseException: Text ‘2018-5-22T8:28:31’ could not be parsed at index 5
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) ~[?:?]
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[?:?]
at java.time.LocalDateTime.parse(LocalDateTime.java:492) ~[?:?]
at org.eclipse.smarthome.core.library.types.DateTimeType.(DateTimeType.java:89) ~[?:?]

Does this binding supports Somfy ILT shades (Up/Down/Stop)?

Vismart did you get this to work with Centralite?

Yes, I did…)

Is there a simple trick to getting dimmers and scenes working (especially thru PaperUI) you might be able to share?

I have OPII with dozens of Compose lights – I believe they follow the same basic structure as UPB, Switch/Dimmer = individual (string of) light(s), a room/group = a gang of switches/dimmers having the same “code,” and a scene = a dimming set point of each of the switches in the room. They operate over Power Line using extended (modified) x-10 codes and return status.

Although each physical switch can be setup with a housecode and room code, OPII I believe limited to a single house code per panel.

I’ve gone back and forth between changing all lights (expense), using Homeseer (unreliable plugin w/r/t scenes and Compose [but does discover them]), and OpenHAB(ian) (steep learning curve but more robust). So far Leviton Snaplink App is only thing that works, since another app iOS App was discontinued. I’m fine with the figuring it out, but, it’s confusing where to start the process.

At present I have the binding talking to my panel, but no units (lights) discovered.

Cheers!
Scott