Configure Ikea Zigbee Devices in Home Assistant

Part 1

Part 2

Part 3

In this series of videos I’ll show you all of the available IKEA Zigbee remotes plus the plugtop and a light bulb, with Home Assistant and Node Red. I’ll get them setup into Home Assistant using Zigbee2MQTT and an CC2531.

This removes the need to use the IKEA integration, and the TRADFRI Gateway. I’ll give you examples for the configuration.yaml and start to look at the use within Node Red.

Find within this page

Click the device below to find the relevant configuration.yaml :

Click the image below to see the example flow from Part 3:

Tradrfi Dimmer Flow

Configuration.yaml

Below, I’ll give you the examples used in the videos for setting up your own devices within your Home Assistant instance. You’ll need to update the name within your config. I’ll state the name used for each device so you can do a simple find and replace within the text.

Remember, if you have any devices within “sensor:” or “binary_sensor:” domains, already then you’ll just add the examples underneath.

TRÅDFRI Wireless dimmer

Name Used: Dim1

sensor:
  - platform: "mqtt"
    name: "Dim1 Action"
    state_topic: "zigbee2mqtt/dim1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:gesture-double-tap"
    value_template: "{{ value_json.action }}"
  - platform: "mqtt"
    name: "Dim1 Battery"
    state_topic: "zigbee2mqtt/dim1"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "%"
    device_class: "battery"
    value_template: "{{ value_json.battery }}"
  - platform: "mqtt"
    name: "Dim1 Signal"
    state_topic: "zigbee2mqtt/dim1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:signal"
    unit_of_measurement: "lqi"
    value_template: "{{ value_json.linkquality }}"

binary_sensor:
  - platform: "mqtt"
    name: "Dim1 Update Available"
    state_topic: "zigbee2mqtt/dim1"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_on: true
    payload_off: false
    value_template: "{{ value_json.update_available}}"

TRÅDFRI Remote Control

Name Used: Multi1

sensor:
  - platform: "mqtt"
    name: "Multi1 Action"
    state_topic: "zigbee2mqtt/multi1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:gesture-double-tap"
    value_template: "{{ value_json.action }}"
  - platform: "mqtt"
    name: "Multi1 Battery
    state_topic: "zigbee2mqtt/multi1"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "%"
    device_class: "battery"
    value_template: "{{ value_json.battery }}"
  - platform: "mqtt"
    name: "Multi1 Signal"
    state_topic: "zigbee2mqtt/multi1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:signal"
    unit_of_measurement: "lqi"
    value_template: "{{ value_json.linkquality }}"


binary_sensor:
  - platform: "mqtt"
    name: "Multi1 Update Available"
    state_topic: "zigbee2mqtt/multi1"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_on: true
    payload_off: false
    value_template: "{{ value_json.update_available}}"

SYMFONISK “Sound” Remote

Name Used: Rotary1


sensor:
  - platform: "mqtt"
    name: "Rotary1 Action"
    state_topic: "zigbee2mqtt/rotary1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:gesture-double-tap"
    value_template: "{{ value_json.action }}"
  - platform: "mqtt"
    name: "Rotary1 Battery"
    state_topic: "zigbee2mqtt/rotary1"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "%"
    device_class: "battery"
    value_template: "{{ value_json.battery }}"
  - platform: "mqtt"
    name: "Rotary1 Signal"
    state_topic: "zigbee2mqtt/rotary1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:signal"
    unit_of_measurement: "lqi"
    value_template: "{{ value_json.linkquality }}"
  - platform: "mqtt"
    name: "Rotary1 Brightness"
    state_topic: "zigbee2mqtt/rotary1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:brightness-5" 
    value_template: "{{ value_json.brightness }}"

binary_sensor:
  - platform: "mqtt"
    name: "Rotary1 Update Available"
    state_topic: "zigbee2mqtt/rotary1"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_on: true
    payload_off: false
    value_template: "{{ value_json.update_available}}"

TRÅDFRI LED bulb

Name Used: Bedroom1

light:
  - platform: "mqtt"
    name: "Bedroom 1 Light"
    state_topic: "zigbee2mqtt/bedroom1"
    availability_topic: "zigbee2mqtt/bridge/state"
    brightness: true
    schema: "json"
    command_topic: "zigbee2mqtt/bedroom1/set"
    brightness_scale: 254

sensor:
  - platform: "mqtt"
    name: "Bedroom 1 Signal"
    state_topic: "zigbee2mqtt/bedroom1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:signal"
    unit_of_measurement: "lqi"
    value_template: "{{ value_json.linkquality }}"
  - platform: "mqtt"
    name: "Bedroom 1 Brightness"
    state_topic: "zigbee2mqtt/bedroom1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:signal"
    unit_of_measurement: "lqi"
    value_template: "{{ value_json.brightness }}"

binary_sensor:
  - platform: "mqtt"
    name: "Bedroom 1 Update Available" 
    state_topic: "zigbee2mqtt/bedroom1"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_on: true
    payload_off: false
    value_template: "{{ value_json.update_available}}"

TRÅDFRI Wireless Control Outlet

Name Used: Plug1

switch:
  - platform: "mqtt"
    name: "Plug 1 Switch" 
    state_topic: "zigbee2mqtt/plug1"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_off: "OFF"
    payload_on: "ON"
    value_template: "{{ value_json.state }}"
    command_topic: "zigbee2mqtt/plug1/set"

sensor:
  - platform: "mqtt"

    name: "Plug 1 Signal" 
    state_topic: "zigbee2mqtt/plug1"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:signal"
    unit_of_measurement: "lqi"
    value_template: "{{ value_json.linkquality }}"

binary_sensor:
  - platform: "mqtt"
    name: "Plug 1 Update Available" 
    state_topic: "zigbee2mqtt/plug1"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_on: true
    payload_off: false
    value_template: "{{ value_json.update_available}}"

Node Red Sequence from Part 3

[{"id":"f8b5c285.ae481","type":"inject","z":"ca13c281.83306","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":400,"y":360,"wires":[["d7401159.5cab2"]]},{"id":"d7401159.5cab2","type":"api-call-service","z":"ca13c281.83306","name":"Light Toggle","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.bedroom_1_light","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":570,"y":360,"wires":[[]]},{"id":"8cc59717.2f0ba8","type":"inject","z":"ca13c281.83306","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":400,"y":400,"wires":[["2abcbfdd.cb343"]]},{"id":"2abcbfdd.cb343","type":"api-call-service","z":"ca13c281.83306","name":"Switch Toggle","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"switch","service":"toggle","entityId":"switch.plug_1_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":570,"y":400,"wires":[[]]},{"id":"f94f4c58.3b617","type":"server-state-changed","z":"ca13c281.83306","name":"Dim1 Action","server":"22f5da40.d3e236","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.dim1_action","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":230,"y":200,"wires":[["c42757e2.220b88"]]},{"id":"c42757e2.220b88","type":"switch","z":"ca13c281.83306","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"},{"t":"eq","v":"brightness_move_up","vt":"str"},{"t":"eq","v":"brightness_move_down","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":5,"x":530,"y":200,"wires":[["4b55db24.00d1c4"],["b5de43a4.30e4c"],["2d858add.5251c6"],["8213b76.4b1db48"],[]]},{"id":"4b55db24.00d1c4","type":"api-call-service","z":"ca13c281.83306","name":"Light on","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bedroom_1_light","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":720,"y":100,"wires":[[]]},{"id":"b5de43a4.30e4c","type":"api-call-service","z":"ca13c281.83306","name":"Light Off","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.bedroom_1_light","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":720,"y":160,"wires":[[]]},{"id":"2d858add.5251c6","type":"api-call-service","z":"ca13c281.83306","name":"Plug On","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.plug_1_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":720,"y":220,"wires":[[]]},{"id":"8213b76.4b1db48","type":"api-call-service","z":"ca13c281.83306","name":"Plug Off","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.plug_1_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":720,"y":280,"wires":[[]]},{"id":"22f5da40.d3e236","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Music: https://www.bensound.com

Video: Free Stock Video Footage by Videezy!