![]() | ![]() | |
| Make/Model | Device Version | Connection Type |
| HAI/Omni Pro II | 2.9 Firmware or greater | Ethernet |
Note that this driver has been superseded by the HAI Omni TCP/IP driver. For all IIe and ProII device with the latest firmware, the Omni supports a TCP/IP based connection and more exposed functionality. The new driver supports this new protocol. This driver is being kept around in order to
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 model, via the Ethernet connection. The serial connection is far to slow for the amount of data involved, so it is not supported.
During installation you will be required to provide the AES encryption key from the Omni, a login id for the driver to log into the Omni, and to indicate whether you want to see Celsius or Fahrenheit temperatures.
The Omni Pro II 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. The driver sees the button presses and will send out an event that you can invoke a triggered event off of. So you can use Omni macro buttons to cause CQC actions to occur. User action events provide event type and event data values that you can use to react more specifically. For these button press events from the Omni the event type is "Button" and the event data is the number of the button that was pressed.
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.
The Omni Pro II supports both serial and Ethernet connections, but only the Ethernet connection is supported at this time. 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". You must also provide CQC with a login code that it can use to log into the Omni. Be sure to get this right or the driver will not be able to log in even if it can connect to the device.
BE SURE to get the key and login id correct, because if you don't the driver will continue to try to connect and the Omni, being very paranoid, will lock you out because it thinks someone is trying to break in (someone obviously very dumb because he keeps trying to use the same information over and over again.)
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.
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. Note that, if you are in the 'single area' mode, then there is only an Area1.
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. 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 the zone named XXX. ZoneXXX_Arming String R For each named alarm zone, indicates the arming status for the zone named 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. 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 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.