![]() | ![]() | |
| Make/Model | Device Version | Connection Type |
| HAI/Omni Pro II and IIe | 2.16 Firmware or greater | Ethernet |
Note that this driver is only for Pro II and IIe panels that have been upgraded to use the newest 2.16 firmware, which supports a TCP/IP based connection, as apposed to the previous versions that used a UDP based connection. The original Omni driver supports that older protocol and if you haven't upgraded your Omni, then you should use the other driver.
At this time, there is a bug in the 2.16 firmware, which prevents it from responding to queries for external enclosure status. So those fields will, until this problem is fixed, not have valid contents.
The HAI Omni line of smart panels from HAI are very popular hardware based home control and automation panels, which come in a family from the Omni LT up to the full bore Omni II Pro. The functionality that they provide includes X-10 control, hardwired controllers, thermometers, security, zone/area configuration, among other things. This driver only supports the Omni Pro II and IIe models, via the Ethernet connection.
During installation you will be required to provide the AES encryption key from the Omni, and to indicate whether you want to see Celsius or Fahrenheit temperatures. The Omni does tell us what the currently set temperature format is, but the driver still lets you separately select a format, in case you should want something different.
The Omni supports many zones, PLC units, and so forth. You don't want the driver to try to keep up with all these since you will usually only actually be utilizing some of them. So this driver provides a client side driver interface that allows you to configure what you want the driver to actually provide control of/feedback from. The interface is simple and just provides a set of lists of configurable items that you can select from.
Each of the configurable lists displays the available items of that type. To add or remove an item, double click that item. If you add one, a right arrow will appear beside it (indicating insert this item into the list of monitored items.) If you remove one, a left arrow will appear, indicating remove this item from the list. For those items that are currently configured, a red check box will appear. For each checked item, one or more driver fields will be created to allow you to control and/or monitor that item. See the field list table below for the names of those fields.
For some lists, the double click toggles between not configured and the available settings for that type of item. The PLC Units list will toggle between the types of units supported (binary or dimmer), and the zones will toggle between a standard alarm zone, a humidity zone, or a temp zone. In each case, the setting controls what kinds of driver fields are created for that unit or zone.
The field names for these items will all start with standard prefixes. For areas it will be Area1 to Area8. For thermostats it will be Thermo01 to Thermo64, using a leading zero if needed to make it a 2 digit number. For zones and units, it will be Zone001 to Zone176 and Unit001 to Unit511, using one or two leading zeros if needed to make it a 3 digit number.
This driver will send 'user action' events in response to Omni user macro buttons being invoked, X10 codes received, UBP links being invoked and potentially other incoming events going forward. So you can use these external stimuli to cause CQC actions to occur. User action events provide event type and event data values that you can use to react more specifically. The information sent for each event type is:
Buttons: The event types is "Button" and the event data is the number of the button that was pressed.
UPB Link: The event type is "UPBLink" and the event data is in the form "type, linknum", where type is Off, On, Set or FStop and linknum is the number of the link.
X-10 Code: The event type is "X10Code" and the event data is in the form "state,hc,uc", where state is On or Off and hc and uc are the house and unit codes.
If you choose to see Fahrenheit temperatures, you will sometimes not get exactly the temperature you set. The Omni is based on Celsius temperatures, and a conversion must be done, which might create a 1 degree rounding difference by the time you see the temperature back again from the driver, since it goes from your F, to the Omni's C, and then gets read back from the Omni as C which is converted to F.
This driver will only provide reliable feedback on lighting units that provide two way control, e.g. ALC or UPB units.
You must provide the CQC driver with the encryption key from the Omni, so that the driver can communicate with the Omni. Enter this without all the dashes, so it's just 32 characters, for example "12345678901234567890123456789012". Unlike the previous version, CQC does not have to provide the login code. The encryption key is all that is needed.
You must also provide the IP address of the Omni. You should either give the Omni a fixed IP address, so that it will not change, or make sure that it is available in your local DNS server in which case you can give the CQC driver that DNS name instead of the numerical address. Fixed addresses are always more reliable though, so go that way if possible.
This section lists the fields that the driver makes available, their types, minimum and maximum values, etc...
Name Type R/W Description/Limits AreaX_Status String R For each configured area, indicates the status of that area, where X is 1 through 8. This is an enumerated field with the values: Off, Day, Night, Away, Vacation, DayInstant, NightDelay, Unknown. It also will indicate when it is in the process of arming or disarming (during the countdown), so there are addition values of ArmingDay, ArmingNight, etc..., i.e. all of the above statuses except Off and Unknown with an 'Arming' prefix. Note that, if you are in the 'single area' mode, then there is only an Area1.
AreaX_Alarmed Bool R For each configured area, this indicates whether the area is in alarm state or not. EnclXACPowerOff Bool R Indicates the AC Power Low state for expansion enclosure X, where is the enclosure number (1 to 8 for the Pro II.) EnclXBatteryLow Bool R Indicates the Battery Low state for expansion enclosure X, where is the enclosure number (1 to 8 for the Pro II.) EnclXBatteryLevel Bool R Indicates the battery level for expansion enclosure X, where is the enclosure number (1 to 8 for the Pro II.) EnclXCommFailure Bool R Indicates the communications failure status for expansion enclosure X, where is the enclosure number (1 to 8 for the Pro II.) InvokeCmd String W This single field is used to invoke all commands on the Omni. The format will be covered below. MainBattery Card R Indicates the main battery level value. SoftwareVersion String R Indicates the software being run by the connected Omni. TimeValid Bool R Indicates whether the Omni time has been set in its configuration or not. ThermoXX_Hold Bool R/W Indicates the hold status for thermostat XX. Write to the field to set/clear the hold state. ThermoXX_CurTemp Int R Indicates the current temperature for thermostat XX. It will be in the selected temperature scale. ThermoXX_CoolSP Int R/W Indicates the cooling setpoint for thermostat XX. It will be in the selected temperature scale. Write to it in order to set the cooling set point (using the same scale.) ThermoXX_HeatSP Int R/W Indicates the heating setpoint for thermostat XX. It will be in the selected temperature scale. Write to it in order to set the heating set point (using the same scale.) ThermoXX_FanMode String R/W Indicates the fan mode for thermostat XX. This is an enumerated field with the values: Auto, On, Unknown. Write to this field to set the fan mode (Unknown is not a valid outgoing value.) ThermoXX_Mode String R/W Indicates the thermostat mode for thermostat XX. This is an enumerated field with the values: Off, Heat, Cool, Auto, Emergency Heat, Unknown. Write to this field to set the mode (Unknown is not a valid outgoing value.) UnitXXX_Level Card R/W Indicates the level of dimmer unit XXX. The value is always 0 to 100. Write to the field to set the level. For non-dimming units, any non-zero value will result in full on. See the Caveats/Limits section above. UnitXXX_Value Boolean R/W Indicates the state of binary unit XXX. Write to the field to set the on/off state. See the Caveats/Limits section above. ZoneXXX_Analog Card R For each named zone, indicates the analog loop reading for zone XXX. ZoneXXX_Arming String R For each named alarm zone, indicates the arming status for zone XXX. This is an enumerated field with the values: Disarmed, Armed, Bypassed by User, Bypassed by System. ZoneXXX_CurVal Int R For each named temp/humidity zone, indicates the current temperature or humidity. For humidity zones the values are 0 to 100. For temp zones it will be the temperature in the selected temp format. ZoneXXX_Latched String R For each named alarm zone, indicates the latched alarm status for the zone named XXX. This is an enumerated field with the values: Secure, Tripped, Reset. ZoneXXX_HighSP Int R/W For each named temp/humidity zone, gets or sets the high set point for that that zone. For humidity the value is from 0 to 100. For temp zones, it is in the current temp format. ZoneXXX_LowSP Int R/W For each named temp/humidity zone, gets or sets the low set point for that that zone. For humidity the value is from 0 to 100. For temp zones, it is in the current temp format. ZoneXXX_Status String R For each named zone, indicates the security status for the zone named XXX. This is an enumerated field with the values: Secure, Not Ready, Trouble. Command Format
The InvokeCmd field is used to invoke commands on the Omni. It is a string into which the command information is formatted. The Omni driver will parse this information and invoke the indicated command.
In the list below, the configured items are referred to by name, e.g. Area3, Zone043, Unit002, Thermo93. Other values are either immediate values, like a login code, or the number of an item, such as message 4 or button 10 since those types of items are not named.
Command
Description AreaAllOf=aaa Turn off the units in the area. If aaa=$All$, then all units in all areas, else indicate the area name you want. AreaAllOn=aaa Turn on all units in the indicated area. If aaa=$All$, then all units in all areas, else indicate the area name you want. ArmArea=aaa,mmm,ccc Arm the named area with the named mode, using code ccc. If aaa=$All$, then all areas, else indicate the area name you want. The modes are: Off, Day, Night, Away, Vacation, DayInstant, NightDelayed. BypassZone=aaa,zzz,ccc Bypass zone named zzz, using code ccc from area aaa. ccc is a 4 digit login code. ClearAllMsgs=aaa Clears all messages in the indicated area. If aaa=$All$, then for all areas, else indicate the area name you want. ClearMsg=mmm Clears the indicated message in all areas. ExecButton=bbb Invoke the button with number bbb. PhoneMsg=nnn,mmm Phones the indicated number nnn (the item number of the configured phone number, not the literal one) and says the message number indicated by mmm. RawCmd=ccc,111,222 This is a pass-through command which lets you send any command you want. You provide the command number and values for parameter 1 and 2. You are responsible for insuring that the values are valid. RestoreZone=aaa,zzz,ccc Restore zone with name zzz, using code ccc from area aaa. ccc is a 4 digit login code. SayMsg=mmm Say the message with number mmm SendAudioKC=zzz,ccc Sends the indicates audio code ccc to zone zzz. SetZoneSrc=zzz,sss Set's the audio source for zone zzz to input sss. SetZoneVol=zzz,ppp Sets the audio volume for zone zzz to percent value ppp (0 to 100.) ShowMsg=mmm Show the message with number mmm UnitPercent=uuu,ppp Sets dimmer unit uuu to level ppp percent (0 to 100.) UnitOff/UnitOn=uuu,ttt Turn off/on the unit named uuu for time ttt. ttt is interpreted as:
0 : Off or on unconditionally
1..99 : For 1 to 99 seconds
101..199 : For 1 to 99 minutes
201..218 : For 1 to 18 hoursUnitDim/UnitBri=uuu,iii,sss Increases or decreases the brightness of unit uuu by the increment iii (from 1 to 9) over sss seconds. The seconds are clipped to 99 if a larger value is passed. Each increment/decrement value represents a 10% change. UPBLink=lll,sss Activates or deactivates UPB link with the number lll. The state is in sss and 1 indicate activate and 0 indicates deactivate. UPBLEDOn/UPBLEDOff=uuu,lll Turns on or off the LED on UPB unit uuu. lll is the LED number, from 1 to 8.