The openHAB Documentation Has Moved

The documentation has moved to and

Please use the link below to be redirected to the new version of this article, and update your bookmarks.

HAI/Leviton Omni and Lumina Binding

The HAI/Leviton Omni is a popular home automation system in the US. At its core, the Omni is a hardware board that provides security and access features. It connects to many other devices through serial ports or relays and exposes them through a single TCP based API.

The binding is fairly complete and supports the following functionality.

  • Auto item discovery and site map generation
    • if enabled, upon connect the binding will discover all devices on a system and print out to the log a complete items list as well as a crude site map file.
  • Items
    • Security
      • Alarm status monitoring (burglary, fire, police, etc..)
      • Alarm mode activation (Off/Day/Night/Away/Vacation)
      • Door, Window, Fire and CO2 contacts
    • Lights
      • On, Off and Dimming commands
      • UPB and HLC rooms
      • UPB Scenes
    • Thermostats
      • Cool and heat set points
      • System modes (off, cool, heat, auto)
      • Fan modes
      • Celsius and Fahrenheit support
      • Auxiliary temperature and humidity sensors.
    • Audio Controls
      • Track and Artist info
      • Key commands (play, pause, etc..)
      • source inputs
    • Buttons/Macros
    • Supported Hardware (connected directly through a Omni or Lumina Panel)
      • Z-Wave (lighting and thermostats)
      • X10
      • Lightolier Compose PLC
      • UPB (lighting)
      • NuVo (AudioVideo)
      • Russound (AudioVideo)
      • HAI HiFI (AudioVideo)
      • Xantech (AudioVideo)
      • Speakercraft (AudioVideo)
      • Proficient(AudioVideo)
      • HAI Sensors and Thermostats

More information about the Leviton line of controllers can be found at their site.

Binding Configuration

The binding can be configured in the file services/omnilink.cfg.

Property Default Required Description
port 4369 No TCP/IP port number of the Omni panel
host   Yes IP address or host name of the Omni panel
key1   Yes crypto key 1 for your omni panel. The key may be found in the installer menu on a HAI keypad or touchscreen. Each key is 16 hex characters in pairs separated by colons (aa:bb:cc)
key2   Yes crypto key 2 for your omni panel. The key may be found in the installer menu on a HAI keypad or touchscreen. Each key is 16 hex characters in pairs separated by colons (aa:bb:cc)
generateItems true No if set to true, the binding will print all known items and a sample sitemap to the log file (INFO). Useful when setting up for the first time. Adds a little time to the binding startup.

Item Configuration

The format is


where <type> is from the list below.

Types and Supported Items

Some types can be read (get) or read and set (get/set).

  • unit (get/set)
    • Dimmer
    • Switch
    • String (will display on,off,level or scene, can be sent a scene command like ‘scene a’)
  • thermo_heat_point (get/set)
    • Number
  • thermo_cool_point (get/set)
    • Number
  • thermo_system_mode (get/set)
    • Number ([0”=Off, “1”=Heat, “2”=Cool,”3”=Auto,”4”=Emergency)
  • thermo_fan_mode (get/set)
    • Number (“0”=Auto, “1”=On, “2”=Cycle)
    • Switch
  • thermo_hold_mode (get/set)
    • Number (“0”=Off, “1”=On)
    • Switch
  • thermo_temp (get)
    • Number
  • zone_status_current (get)
    • Contact
  • zone_status_latched (get)
    • String
  • zone_status_arming (get)
    • String
  • zone_status_all (get)
    • String
  • area_status_mode (get/set)
    • String ( “Day”=”Day”,”Night”=”Night”, “Away”=”Away”,”Vacation”=”Vacation”)
  • area_status_alarm (get)
    • String
  • area_status_exit_delay (get)
    • Number
  • area_status_entry_delay (get)
    • Number
  • area_status_exit_timer (get)
    • Number
  • area_status_entry_timer (get)
    • Number
  • aux_status (get)
    • Number
  • aux_current (get)
    • Number
  • aux_low (get)
    • Number
  • aux_hi (get)
    • Number
  • audiozone_power (get/set)
    • Switch
    • Number
  • audiozone_source (get/set)
    • Number
  • audiozone_volume (get/set)
    • Number
  • audiozone_mute (get/set)
    • Switch
    • Number
  • audiozone_key (get/set)
    • Number
  • audiozone_text (get)
    • String
  • audiozone_field1 (get)
    • String
  • audiozone_field2 (get)
    • String
  • audiozone_field3 (get)
    • String
  • audiosource_text (get)
    • String
  • audiosource_field1 (get)
    • String
  • audiosource_field2 (get)
    • String
  • audiosource_field3 (get)
    • String
  • button (set)
    • String (send any non empty string to push)


Dimmer for unit 2

Dimmer  Lights_Kitchen_Lights_Switch  "Lights [%d%%]" (Lights_Kitchen)  {omnilink="unit:2"}

Thermostat 1

Number  Thermostats_MasterBed_Temp  "Temperature [%d °F]" (Thermostats_MasterBed) {omnilink="thermo_temp:1"}
Number  Thermostats_MasterBed_CoolPoint "Cool Point [%d°F]" (Thermostats_MasterBed) {omnilink="thermo_cool_point:1"}
Number  Thermostats_MasterBed_HeatPoint "Heat Point [%d°F]" (Thermostats_MasterBed) {omnilink="thermo_heat_point:1"}
Number  Thermostats_MasterBed_System  "System Mode [%d]"  (Thermostats_MasterBed) {omnilink="thermo_system_mode:1"}
Number  Thermostats_MasterBed_Fan "System Fan [%d]" (Thermostats_MasterBed) {omnilink="thermo_fan_mode:1"}
Number  Thermostats_MasterBed_Hold  "System Hold [%d]"  (Thermostats_MasterBed) {omnilink="thermo_hold_mode:1"}

Audio Zone 1

Switch  AudioZones_Basement_Power "Power" (AudioZones_Basement) {omnilink="audiozone_power:1"}
Switch  AudioZones_Basement_Mute  "Mute"  (AudioZones_Basement) {omnilink="audiozone_mute:1"}
Number  AudioZones_Basement_Source  "Source: [%d]"  (AudioZones_Basement) {omnilink="audiozone_source:1"}
Dimmer  AudioZones_Basement_Volume  "Voulme: [%d %%]" (AudioZones_Basement) {omnilink="audiozone_volume:1"}
String  AudioZones_Basement_Text  "Now Playing: [%s]" (AudioZones_Basement) {omnilink="audiozone_text:1"}
String  AudioZones_Basement_Field1  "Field 1 [%s]"  (AudioZones_Basement) {omnilink="audiozone_field1:1"}
String  AudioZones_Basement_Field2  "Field 2 [%s]"  (AudioZones_Basement) {omnilink="audiozone_field2:1"}
String  AudioZones_Basement_Field3  "Field 3 [%s]"  (AudioZones_Basement) {omnilink="audiozone_field3:1"}
Number  AudioZones_Basement_Key "Key [%d]"  (AudioZones_Basement) {omnilink="audiozone_key:1",autoupdate="false"}

Audio Source 1

String  AudioSources_XM_Text  "Now Playeing: [%s]"  (AudioSources_XM) {omnilink="audiosource_text:1"}
String  AudioSources_XM_Field1  "Field 1 [%s]"  (AudioSources_XM) {omnilink="audiosource_field1:1"}
String  AudioSources_XM_Field2  "Field 2 [%s]"  (AudioSources_XM) {omnilink="audiosource_field2:1"}
String  AudioSources_XM_Field3  "Field 3 [%s]"  (AudioSources_XM) {omnilink="audiosource_field3:1"}

Area (security) 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"}

Contact zone number 17

Contact Zones_FrontDoor_Current "Current: [%s]" (Zones_FrontDoor) {omnilink="zone_status_current:17"}
String  Zones_FrontDoor_Latched "Latched [%s]"  (Zones_FrontDoor) {omnilink="zone_status_latched:17"}
String  Zones_FrontDoor_Arming  "Arming [%s]" (Zones_FrontDoor) {omnilink="zone_status_arming:17"}
String  Zones_FrontDoor_All "Status  [%s]"  (Zones_FrontDoor) {omnilink="zone_status_all:17"}

Button 1

String Buttons_MusicOn "Music On"  (Buttons) {omnilink="button:1",autoupdate="false"}