Meanwhile I have changed to a docker setup. Here as example my docker-compose.yaml
:
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
depends_on:
- mqtt
volumes:
- /home/hajo/docker-volumes/zigbee2mqtt/data:/app/data
devices:
- /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B00193648CA-if00
restart: unless-stopped
network_mode: host
environment:
- TZ=Europe/Berlin
#- DEBUG=zigbee-herdsman*
My zigbee2mqtt configuration.yaml
looks like this:
homeassistant: true
permit_join: true
mqtt:
base_topic: zigbee2mqtt
server: 'mqtt://192.168.178.3'
serial:
port: >-
/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B00193648CA-if00
devices:
'0x00158d0002b51ffff':
friendly_name: XiaomiAqara-1
retain: true
'0x00158d00025effff':
friendly_name: XiaomiAqara-2
retain: true
'0x00158d0002e2ffff':
friendly_name: XiaomiSmart-1
retain: true
With this my sensors are detected. But I want to correct some measured values and round the results. Therefore I still have defined the sensors in the sensors.yaml
file; I haven’t found another way to correct or round. But unfortunately this creates new sensors and I’ve asked, if this is the best way.
# Xiaomi Temperatur-, Luftfeuchtigkeits und Luftdruck-Sensor #1
# Terrassse
- platform: mqtt
name: "XiaomiAqara-1 Temperature"
state_topic: "zigbee2mqtt/XiaomiAqara-1"
unit_of_measurement: '°C'
value_template: "{{ value_json.temperature | round(1) }}"
availability_topic: "zigbee2mqtt/bridge/state"
device_class: "temperature"
- platform: mqtt
name: "XiaomiAqara-1 Humidity"
state_topic: "zigbee2mqtt/XiaomiAqara-1"
unit_of_measurement: '%'
value_template: "{{ (value_json.humidity - 0.2) | round(0) }}"
availability_topic: "zigbee2mqtt/bridge/state"
device_class: "humidity"
- platform: mqtt
name: "XiaomiAqara-1 Pressure"
state_topic: "zigbee2mqtt/XiaomiAqara-1"
unit_of_measurement: 'hPa'
value_template: "{{ (value_json.pressure + 9.0) | round(0) }}"
availability_topic: "zigbee2mqtt/bridge/state"
device_class: "pressure"
- platform: mqtt
name: "XiaomiAqara-1 Battery"
state_topic: "zigbee2mqtt/XiaomiAqara-1"
unit_of_measurement: '%'
value_template: "{{ value_json.battery }}"
availability_topic: "zigbee2mqtt/bridge/state"
device_class: "battery"
- platform: mqtt
name: "XiaomiAqara-1 Voltage"
state_topic: "zigbee2mqtt/XiaomiAqara-1"
unit_of_measurement: 'V'
value_template: "{{ value_json.voltage | multiply(0.001) | round(2) }}"
availability_topic: "zigbee2mqtt/bridge/state"
- platform: mqtt
name: "XiaomiAqara-1 Linkquality"
state_topic: "zigbee2mqtt/XiaomiAqara-1"
unit_of_measurement: '%'
value_template: "{{ value_json.linkquality }}"
availability_topic: "zigbee2mqtt/bridge/state"
- platform: template
sensors:
xiaomiaqara_1_last_changed:
value_template: >
{% set values = [
states.sensor.xiaomiaqara_1_temperature.last_changed,
states.sensor.xiaomiaqara_1_humidity.last_changed,
states.sensor.xiaomiaqara_1_pressure.last_changed,
states.sensor.xiaomiaqara_1_linkquality.last_changed,
states.sensor.xiaomiaqara_1_voltage.last_changed,
states.sensor.xiaomiaqara_1_battery.last_changed, ] %}
{{ values | max }}
device_class: timestamp