---
title: IHC Controller
description: Instructions on how to integrate the IHC integrations with Home Assistant
ha_category:
  - Hub
  - Binary Sensor
  - Sensor
  - Light
  - Switch
ha_release: 0.62
ha_iot_class: Local Push
ha_domain: ihc
---

IHC Controller integration for Home Assistant allows you to connect the LK IHC controller to Home Assistant. The controller is sold under other names in different countries - "ELKO Living system" in Sweden and Norway.

There is currently support for the following device types within Home Assistant:

- [Binary Sensor](#binary-sensor)
- [Sensor](#sensor)
- [Light](#light)
- [Switch](#switch)

An `ihc` section must be present in the `configuration.yaml` file and contain the following options:

```yaml
# Example configuration.yaml entry for two IHC controllers
ihc:
  - url: 'http://192.168.1.3'
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
  - url: 'http://192.168.1.4'
    username: YOUR_USERNAME2
    password: YOUR_PASSWORD2
```

{% configuration %}
url:
  description: The URL of the IHC Controller.
  required: true
  type: string
username:
  description: The username for the IHC Controller.
  required: true
  type: string
password:
  description: The password for the IHC Controller.
  required: true
  type: string
auto_setup:
  description: Automatic setup of IHC products.
  required: false
  type: boolean
  default: true
info:
  description: Shows the IHC "name", "note" and "position" attributes of each component. This will make it easier to identify the IHC products within Home Assistant.
  required: false
  type: boolean
  default: true
{% endconfiguration %}

## Auto setup of IHC products

If the auto setup is enabled, the `ihc` integration will automatically find IHC products and insert these as devices in Home Assistant. To disable this set auto_setup to false. See the individual device types for a list of IHC products to be recognized automatically.

Components will get a default name that is a combination of the IHC group and IHC resource id. If you want to change the display names use the [Customizing entities](/docs/configuration/customizing-devices/).

## Manual setup

Each device is associated with an IHC resource id. To manually setup integrations you specify resource ids from the IHC project. The IHC project is the file you edit/upload to the IHC Controller using LK IHC Visual - or similar program if your controller is not the LK brand.

The project file is an XML file and you can view it with any text/XML editor. You can rename it to have the XML extension and use a browser like Chrome or Internet Explorer. The resources are the \<airlink_xxx> or \<dataline_xxx> elements. Shown as inputs or outputs of products in the IHC application. You can also use inputs and outputs from function blocks. These are the \<resource_input> and \<resource_output> elements from the project file.

The IHC resource id should be specified as an integer value. In the project file the id will be specified as a hex number.

If you want an easier way to get the IHC resource ids, you can download the [Alternative Service View application](https://www.dingus.dk/updated-ihc-alternative-service-view/). The application will show the product tree. You can expand it, select inputs and outputs and when selected you can see the resource id.

See the manual of each device type for configuration options.

## Binary Sensor

Before you can use the IHC Binary Sensor platform, you must setup the IHC Component.

When auto setup is enabled the following products will be found in the IHC project and setup as binary sensors:

- Dataline magnet contacts
- Dataline Pir sensors
- Dataline Pir sensors with twilight detection
- Dataline Pir alarm sensor
- Dataline smoke detector
- Dataline gas detector
- Dataline light sensor

## Manual configuration

To manually configure IHC Binary Sensors insert the "binary_sensor" section in your IHC configuration:

```yaml
# Example configuration.yaml entry
ihc:
  - url: 'http://192.168.1.3'
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    info: true
    binary_sensor:
      - id: 12345
        name: switch_front_door
        inverting: false
        note: Magnet contact
        position: Switch in door
        type: door
```

{% configuration %}
binary_sensor:
  description: List of binary sensors to setup manually.
  required: false
  type: map
  keys:
    id:
      description: The IHC resource id.
      required: true
      type: integer
    inverting:
      description: If True the sensor will be inverted.
      required: false
      type: boolean
      default: false
    name:
      description: The name of the sensor.
      required: false
      type: string
    type:
      description: The binary sensor type. See [Home Assistant binary sensor](/integrations/binary_sensor/) for available types.
      required: false
      type: string
    note:
      description: Descriptive note
      required: false
      type: string
    position:
      description: Where is it placed
      required: false
      type: string
{% endconfiguration %}

The resource id should be an id of a boolean IHC resource. For more information about IHC resource ids see [Manual Setup](#manual-setup).

## Sensor

Before you can use the IHC Sensor platform, you must setup the IHC Component.

When auto setup is enabled the following products will be found in the IHC project and setup as sensors:

- Dataline temperature sensor - Will insert 2 temperature sensors
- Dataline Humidity - Will insert 1 humidity and 2 temperature sensors (calculated dewpoint)
- Dataline Lux - will insert 1 light and 1 temperature sensor

To manually configure IHC sensors insert the "sensor" section in your IHC configuration:

```yaml
ihc:
  - url: 'http://192.168.1.3'
    username: YOUR_USERNAME2
    password: YOUR_PASSWORD2
    info: true
    sensor:
      - id: 12345
        name: Temperatur_living_room
        unit_of_measurement: '°C'
        note: Floor and wall temp.
        position: On wall between windows
      - id: 23456
        ...
```

{% configuration %}
sensor:
  description: List of sensors to setup manually.
  required: false
  type: map
  keys:
    id:
      description: The IHC resource id.
      required: true
      type: integer
    name:
      description: The name of the sensor.
      required: false
      type: string
    unit_of_measurement:
      description: Defines the unit of measurement of the sensor, if any.
      required: false
      type: string
    note:
      description: Descriptive note.
      required: false
      type: string
    position:
      description: Where it is placed.
      required: false
      type: string
{% endconfiguration %}

The resource id should be a IHC float resource. For more information about IHC resource ids see [Manual Setup](#manual-setup).

## Light

Before you can use the IHC Light platform, you must setup the IHC Component.

When auto setup is enabled the following products will be found in the IHC project and setup as light devices:

- Wireless lamp outlet dimmer
- Wireless dimmer
- Wireless combi dimmer 4 buttons
- Wireless lamp outlet relay
- Wireless combi relay 4 buttons
- Wireless mobile dimmer
- Dataline lamp outlet

To manually configure IHC lights insert the "light" section in your IHC configuration:

```yaml
ihc:
  - url: 'http://192.168.1.3'
    username: YOUR_USERNAME2
    password: YOUR_PASSWORD2
    info: true
    light:
      - id: 12345
        name: tablelight
      - id: 23432
```

{% configuration %}
light:
  description: List of lights to setup manually
  required: false
  type: map
  keys:
    dimmable:
      description: Set to True if the IHC resource is a light level.
      required: false
      type: boolean
      default: false
    id:
      description: The IHC resource id.
      required: true
      type: integer
    on_id:
      description: Optional IHC resource id that will be pulsed to turn ON this light.
      required: false
      type: integer
    off_id:
      description: Optional IHC resource id that will be pulsed to turn OFF this light.
      required: false
      type: integer
    name:
      description: The name of the component
      required: false
      type: string
    note:
      description: Descriptive note.
      required: false
      type: string
    position:
      description: Where it is placed.
      required: false
      type: string
{% endconfiguration %}

In the example above 12345 is ihc resource id and "tablelight" is the name. The IHC resource id can be a light level for dimmers or a boolean output of a relay. For more information about IHC resource ids see [Manual Setup](#manual-setup).

## Switch

Before you can use the IHC Switch platform, you must setup the IHC Component.

When auto setup is enabled the following products will be found in the ihc project and setup as switch devices:

- Wireless plug outlet
- Wireless relay
- Mobile wireless relay
- Dataline plug outlet

To manually configure IHC switches insert the "switch" section in yourIHC configuration:

```yaml
ihc:
  - url: 'http://192.168.1.3'
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    info: true
    switch:
      - id: 12345
      - id: 12346
```

{% configuration %}
switch:
  description: List of switches to setup manually
  required: false
  type: map
  keys:
    id:
      description: The IHC resource id.
      required: true
      type: integer
    on_id:
      description: Optional IHC resource id that will be pulsed to turn ON this switch.
      required: false
      type: integer
    off_id:
      description: Optional IHC resource id that will be pulsed to turn OFF this switch.
      required: false
      type: integer
    name:
      description: The name of the component
      required: false
      type: string
    note:
      description: Descriptive note.
      required: false
      type: string
    position:
      description: Where it is placed.
      required: false
      type: string
{% endconfiguration %}

The resource id should be a boolean resource (On/Off). For more information about IHC resource ids see [Manual Setup](#manual-setup).
