HAI Omnipro Driver Code

So this is my first attempt at writing a driver for Hubitat, since I could not find one for the HAI Omnipro. This uses MQTT for communications and requires you to run the OmniLinkBridge code to get the Omnipro data into MQTT as well.

It's separated into three drivers at the moment Area, Zone, and Unit. Each is independent so you can run one or all. So far it has been working really well for me.

Update 10/21/19:

Added a Garage Door driver for my garage door control that I use through HAI. To control the Garage Door use the Garage (control) template.

Update 11/18/19:

Updated unit and zone drivers to work in a parent child configuration to reduce the number of MQTT connections.


Hi Mike,
I'm trying to get your HAIMqttOmniBridge to work. I have the OmniLinkBridge (from excaliburpartners) running and can see area/zone status changes. However, I'm missing the connection between it and the HE driver you put together. The driver looks to be trying to connect to tcp://[mqttip]:1883. In settings I used the IP of the box running the OmniLinkBridge (where I can see the area/zone info), but that box doesn't show anything listening on port 1883 (nor does your driver appear to connect to anything). Is there something that needs to be configured in the OmniLinkBridge.ini file so that it listens for connections from your HE driver? I see mqtt_server settings in OmniLinkBridge.ini, but that looks to try to connect to some other MQTT server.

I feel like I'm really close, but missing something simple.

Thanks in advance for any advice you may have!

you need to have an mqtt server setup.

HAIMqttOmniBridge sends MQTT data to the MQTT server.
Then my driver connects to your MQTT and subscribes to MQTT to receive the messages.

HAIMqttOmniBridge --> MQTT server --> Omnilink driver

1 Like

Yup - that was it. Installed Mosquitto and it's communicating. Thanks for the tip!

1 Like

Hi Mike,
I have the HAIMqttOmniBridge-Area driver communicating. After adding the device I can run the commands "Arm Away", "Arm Night", etc. I'm having trouble using this device/executing these commands in a rule. Specifically, I'm trying to arm the alarm via the press of a button on one of my switches (and later integrate it into the night scene). However, I don't see the "HAI Area" device I created (that uses the HAI MqttOmniBridge-Area driver) anywhere in dropdowns when selecting the Actions to Run in a rule. Any suggestions?

I got it working by adding the capability Actuator to the driver. I can then execute a command on the actuator in the rule actions.

@mike10 this driver is quite useful. I'm now able to execute commands in rules as well as trigger rules based on zone status (contacts). The only piece I'm not sure is available in these drivers is getting area status updates so that they can be used in rule logic.

For example, I have a couple of rules where I'd like to add a condition that "if ZONE 1 was opened and if AREA 1 is set to AWAY, do this...". I have rules that are triggered on ZONE 1 being opened, but I'd like to combine the status of AREA 1 (if the alarm is armed) with that rule.

Is this something you'd be able to integrate with your driver (perhaps combined with the HAI Zone Status driver since that handles all of the MQTT subscriptions)? Or, do you have any tips moving forward?

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.