Achronite / mqtt-energenie-ener314rt

MQTT interface for Energenie ENER314-RT add-on board for the Raspberry Pi, designed for use by Home Assistant.
MIT License
13 stars 5 forks source link

Add board device and device hierarchy to HA device_registry #76

Closed Achronite closed 5 months ago

Achronite commented 5 months ago

For HA MQTT Discovery make use of the via_device entry to create a device / sub-device hierarchy within the device registry.

The device 'mqtt-energenie-ener314rt' should have:

Also remember to update the manually configured devices too in README

genestealer commented 5 months ago

@Achronite Don't we already have this?

var discoveryTopic = `${CONFIG.discovery_prefix}${parameter.component}/ener314rt/${object_id}/config`;
//          var dmsg = Object.assign({ uniq_id: `${unique_id}`, "~": `${CONFIG.topic_stub}`, name: `${name}`, mf: 'energenie', sw: 'mqtt-ener314rt' },
var dmsg = Object.assign({
    device: {
        name: `${device_name}`,
        ids: [`ener314rt-${device.deviceId}`],
        mdl: `${device_defaults.mdl} (${device_defaults.mdlpn}) [${device.deviceId}]`,
        mf: `Energenie`,
        sw: `mqtt-ener314rt ${APP_VERSION}`

    },
    uniq_id: `${unique_id}`,
    "~": `${CONFIG.topic_stub}${device.productId}/${device.deviceId}/`,
    name: `${entity_name}`,
    avty_t: `${CONFIG.topic_stub}availability/state`,
    o: {
        name: `mqtt-energenie-ener314rt`,
        sw: `${APP_VERSION}`,
        url: `https://github.com/Achronite/mqtt-energenie-ener314rt`
    }
}

But to be fair, have you seen the way Zigbee2MQTT do it? It's quite nice. image

Note how the name is null.

Topic: homeassistant/light/0x000b57fffebdce17/light/config

{
  "availability": [
    {
      "topic": "zigbee2mqtt/bridge/state",
      "value_template": "{{ value_json.state }}"
    },
    {
      "topic": "zigbee2mqtt/Dining Room 1/availability",
      "value_template": "{{ value_json.state }}"
    }
  ],
  "availability_mode": "all",
  "brightness": true,
  "brightness_scale": 254,
  "command_topic": "zigbee2mqtt/Dining Room 1/set",
  "device": {
    "identifiers": [
      "zigbee2mqtt_0x000b57fffebdce17"
    ],
    "manufacturer": "IKEA",
    "model": "TRADFRI LED bulb GU10 400 lumen, dimmable (LED1650R5)",
    "name": "Dining Room 1",
    "sw_version": "2.3.094",
    "via_device": "zigbee2mqtt_bridge_0x00124b00257cb246"
  },
  "effect": true,
  "effect_list": [
    "blink",
    "breathe",
    "okay",
    "channel_change",
    "finish_effect",
    "stop_effect"
  ],
  "name": null,
  "object_id": "dining_room_1",
  "origin": {
    "name": "Zigbee2MQTT",
    "sw": "1.35.2",
    "url": "https://www.zigbee2mqtt.io"
  },
  "schema": "json",
  "state_topic": "zigbee2mqtt/Dining Room 1",
  "unique_id": "0x000b57fffebdce17_light_zigbee2mqtt"
}

Bridge:

image

Achronite commented 5 months ago

@genestealer What do you think? image

genestealer commented 5 months ago

@Achronite Looks really great. A few things which may be worth considering:

  1. Add a Shutdown Pi button to controls - To command the Pi to shutdown before removing power, rather than having to remote into the Pi to shut it down.
  2. Add a Restart Pi button (same as above) but restart.
  3. Add Software Version as a Diagnostic sensor.
  4. I'm not sure why the logbook on the right is not hyperlinking to the device. (See image example) image

For ref the Zigbee2MQTT Bridge debug info:

Zigbee2MQTT Bridge Connection state (binary_sensor.zigbee2mqtt_bridge_connection_state) MQTT discovery data: Topic: homeassistant/binary_sensor/1221051039810110150109113116116_0x00124b00257cb246/connection_state/config

Payload

device:
  hw_version: zStack3x0 20221226
  identifiers:
    - zigbee2mqtt_bridge_0x00124b00257cb246
  manufacturer: Zigbee2MQTT
  model: Bridge
  name: Zigbee2MQTT Bridge
  sw_version: 1.35.3
device_class: connectivity
entity_category: diagnostic
name: Connection state
object_id: zigbee2mqtt_bridge_connection_state
origin:
  name: Zigbee2MQTT
  sw_version: 1.35.3
  support_url: https://www.zigbee2mqtt.io
payload_off: offline
payload_on: online
state_topic: zigbee2mqtt/bridge/state
unique_id: bridge_0x00124b00257cb246_connection_state_zigbee2mqtt
value_template: '{{ value_json.state }}'
platform: mqtt

FULL MQTT debug info for ref:

```xml Entities Zigbee2MQTT Bridge Connection state (binary_sensor.zigbee2mqtt_bridge_connection_state) MQTT discovery data: Topic: homeassistant/binary_sensor/1221051039810110150109113116116_0x00124b00257cb246/connection_state/config Payload device: hw_version: zStack3x0 20221226 identifiers: - zigbee2mqtt_bridge_0x00124b00257cb246 manufacturer: Zigbee2MQTT model: Bridge name: Zigbee2MQTT Bridge sw_version: 1.35.3 device_class: connectivity entity_category: diagnostic name: Connection state object_id: zigbee2mqtt_bridge_connection_state origin: name: Zigbee2MQTT sw_version: 1.35.3 support_url: https://www.zigbee2mqtt.io payload_off: offline payload_on: online state_topic: zigbee2mqtt/bridge/state unique_id: bridge_0x00124b00257cb246_connection_state_zigbee2mqtt value_template: '{{ value_json.state }}' platform: mqtt Subscribed topics: zigbee2mqtt/bridge/state 1 most recently received message(s) Received 21:30:16 QoS: 0, Retained Payload: state: online Transmitted messages: Zigbee2MQTT Bridge Restart (button.zigbee2mqtt_bridge_restart) MQTT discovery data: Topic: homeassistant/button/1221051039810110150109113116116_0x00124b00257cb246/restart/config Payload availability: - topic: zigbee2mqtt/bridge/state value_template: '{{ value_json.state }}' availability_mode: all command_topic: zigbee2mqtt/bridge/request/restart device: hw_version: zStack3x0 20221226 identifiers: - zigbee2mqtt_bridge_0x00124b00257cb246 manufacturer: Zigbee2MQTT model: Bridge name: Zigbee2MQTT Bridge sw_version: 1.35.3 device_class: restart name: Restart object_id: zigbee2mqtt_bridge_restart origin: name: Zigbee2MQTT sw_version: 1.35.3 support_url: https://www.zigbee2mqtt.io payload_press: '' unique_id: bridge_0x00124b00257cb246_restart_zigbee2mqtt platform: mqtt Subscribed topics: zigbee2mqtt/bridge/state 1 most recently received message(s) Transmitted messages: Zigbee2MQTT Bridge Log level (select.zigbee2mqtt_bridge_log_level) MQTT discovery data: Topic: homeassistant/select/1221051039810110150109113116116_0x00124b00257cb246/log_level/config Payload Subscribed topics: zigbee2mqtt/bridge/state 1 most recently received message(s) zigbee2mqtt/bridge/info 5 most recently received message(s) Transmitted messages: zigbee2mqtt/bridge/request/options 4 most recently transmitted message(s) Zigbee2MQTT Bridge Version (sensor.zigbee2mqtt_bridge_version) MQTT discovery data: Topic: homeassistant/sensor/1221051039810110150109113116116_0x00124b00257cb246/version/config Payload Subscribed topics: zigbee2mqtt/bridge/state 1 most recently received message(s) Received 21:30:16 QoS: 0, Retained Payload: state: online zigbee2mqtt/bridge/info 5 most recently received message(s) Received 21:30:17 QoS: 0, Retained Payload: commit: unknown config: advanced: adapter_concurrent: null adapter_delay: null availability_blacklist: [] availability_blocklist: [] availability_passlist: [] availability_whitelist: [] cache_state: true cache_state_persistent: true cache_state_send_on_startup: true channel: 15 elapsed: false ext_pan_id: - 221 - 221 - 221 - 221 - 221 - 221 - 221 - 221 homeassistant_legacy_entity_attributes: false last_seen: ISO_8601 legacy_api: false legacy_availability_payload: false log_directory: /config/zigbee2mqtt/log/%TIMESTAMP% log_file: log.txt log_level: info log_output: - console - file log_rotation: true log_symlink_current: false log_syslog: app_name: Zigbee2MQTT eol: /n host: localhost localhost: localhost path: /dev/log pid: process.pid port: 123 protocol: tcp4 type: '5424' output: json pan_id: 6754 report: false soft_reset_timeout: 0 timestamp_format: YYYY-MM-DD HH:mm:ss availability: {} blocklist: [] device_options: legacy: false devices: '0x000b57fffe13967e': friendly_name: '0x000b57fffe13967e' '0x000b57fffe27203b': friendly_name: Dining Room Lamp Right '0x000b57fffe38a445': friendly_name: Test Remote legacy: false '0x000b57fffe51eb27': friendly_name: Dining Room 2 state_action: false '0x000b57fffe520a0e': friendly_name: Outside 1 Up '0x000b57fffe8473b8': friendly_name: Outside 2 Up '0x000b57fffe8edae5': friendly_name: Kitchen Motion Sensor 2 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffe978d3f': friendly_name: Dining Room Lamp Left '0x000b57fffe9bad09': friendly_name: Kitchen Motion Sensor 1 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffeaffb7b': friendly_name: Outside 4 Up '0x000b57fffeb19864': friendly_name: Outside 4 Down '0x000b57fffeb829ec': friendly_name: Dining Room 3 '0x000b57fffebdce17': friendly_name: Dining Room 1 '0x000b57fffebed036': friendly_name: Outside 3 Down '0x000b57fffebefcf4': friendly_name: Outside 5 Down '0x000b57fffebf28bc': friendly_name: Outside 3 Up '0x000b57fffebfd68d': friendly_name: Dining Room 4 '0x000b57fffef3701e': friendly_name: Bedroom Remote legacy: false '0x000d6ffffe9c3ea8': friendly_name: '0x000d6ffffe9c3ea8' legacy: false '0x000d6ffffea20000': friendly_name: '0x000d6ffffea20000' legacy: false '0x000d6ffffec3aef6': friendly_name: Living Room Cabinets Inside '0x1c34f1fffe7b15b8': friendly_name: Office Wall Lamp state_action: true '0x588e81fffe6c99fd': friendly_name: Office Cabinets Front homeassistant: name: Office Cabinets Front legacy: false optimistic: true '0x588e81fffe76d0ad': friendly_name: Kitchen Cabinet '0x588e81fffe787201': friendly_name: Spare '0x60a423fffeadc632': friendly_name: 'Bedroom Bedside Remote ' legacy: true '0x60a423fffece99ad': friendly_name: Hallway Motion Sensor 99ad illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef24b3b': friendly_name: Motion 4b3b illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef26f3c': friendly_name: Kitchen Motion Sensor 3 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x6c5cb1fffe6730c8': friendly_name: '0x6c5cb1fffe6730c8' '0x70ac08fffeee86c6': friendly_name: Guest Bedroom Lamp Left '0x804b50fffeef7a46': friendly_name: Kitchen Lights Remote legacy: false '0x842e14fffe422e7a': friendly_name: Living Room Remote Control legacy: false '0x842e14fffe605be8': friendly_name: Outside 2 Down '0x842e14fffe7f1823': friendly_name: Kitchen Counter '0x943469fffe5fb1a8': friendly_name: Outside 1 Down state_action: true '0xa4c1382cc73f5d09': friendly_name: Parcel Box '0xa4c1383ed970356b': friendly_name: 'Garage Door Sensor ' '0xa4c1387ab3af9d49': friendly_name: Back Door Sensor '0xa4c138fdb6272825': friendly_name: 'Front Door Sensor ' '0xb4e3f9fffef34402': friendly_name: Office Remote Control legacy: false '0xbc33acfffe3025ec': friendly_name: Kitchen Under Counter '0xbc33acfffe98c391': friendly_name: Bedroom Lamp Right '0xbc33acfffe9e1f16': friendly_name: Living Room Sofa Right state_action: true '0xbc33acfffea1daa2': friendly_name: Guest Bedroom Lamp Right '0xbc33acfffea1e1c6': friendly_name: Living Room Sofa Left state_action: true '0xbc33acfffebcb527': friendly_name: Bedroom Lamp Left '0xbc33acfffebd4750': friendly_name: Office Lamp state_action: true transition: 0 '0xccccccfffe924b3c': friendly_name: Guest Bedroom Remote legacy: false '0xd0cf5efffec7e1fb': friendly_name: Office Cabinets Inside '0xd0cf5efffed992d0': friendly_name: Repeater '0xec1bbdfffe9eed51': friendly_name: Dining Room Remote legacy: false '0xec1bbdfffedfbba3': friendly_name: Living Room Cabinets Front external_converters: [] frontend: port: 8099 groups: {} homeassistant: discovery_topic: homeassistant legacy_entity_attributes: false legacy_triggers: true status_topic: hass/status map_options: graphviz: colors: fill: coordinator: '#e04e5d' enddevice: '#fff8ce' router: '#4ea3e0' font: coordinator: '#ffffff' enddevice: '#000000' router: '#ffffff' line: active: '#009900' inactive: '#994444' mqtt: base_topic: zigbee2mqtt force_disable_retain: false include_device_information: false server: mqtt://core-mosquitto:1883 user: addons ota: disable_automatic_update_check: false update_check_interval: 1440 passlist: [] permit_join: false serial: disable_led: false port: tcp://192.168.10.35:8080 config_schema: definitions: device: properties: debounce: description: Debounces messages of this device title: Debounce type: number debounce_ignore: description: >- Protects unique payload values of specified payload properties from overriding within debounce time examples: - action items: type: string title: Ignore debounce type: array disabled: description: >- Disables the device (excludes device from network scans, availability and group state updates) requiresRestart: true title: Disabled type: boolean filtered_attributes: description: Filter attributes with regex from published payload. examples: - ^temperature$ - ^battery$ - ^action$ items: type: string title: Filtered publish attributes type: array filtered_cache: description: >- Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change. examples: - ^input_actions$ items: type: string title: Filtered attributes from cache type: array filtered_optimistic: description: >- Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false). examples: - ^color_(mode|temp)$ - color items: type: string title: Filtered optimistic attributes type: array friendly_name: description: Used in the MQTT topic of a device. By default this is the device ID readOnly: true title: Friendly name type: string homeassistant: properties: name: description: Name of the device in Home Assistant title: Home Assistant name type: string title: Home Assistant type: - object - 'null' icon: description: >- The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) (you cannot use a path to a local file) or base64 encoded data URL (e.g. image/svg+xml;base64,PHN2ZyB3aW....R0aD) title: Icon type: string optimistic: default: true description: Publish optimistic state after set title: Optimistic type: boolean qos: description: QoS level for MQTT messages of this device title: QoS type: number retain: description: Retain MQTT messages of this device title: Retain type: boolean retention: description: >- Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5 title: Retention type: number required: - friendly_name type: object group: properties: devices: items: type: string type: array filtered_attributes: items: type: string type: array friendly_name: type: string off_state: default: auto description: >- Control when to publish state OFF for a group. 'all_members_off': only publish state OFF when all group members are in state OFF, 'last_member_state': publish state OFF whenever one of its members changes to OFF enum: - all_members_off - last_member_state requiresRestart: true title: Group off state type: - string optimistic: type: boolean qos: type: number retain: type: boolean required: - friendly_name type: object properties: advanced: properties: adapter_concurrent: description: >- Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value) requiresRestart: true title: Adapter concurrency type: - number - 'null' adapter_delay: description: Adapter delay requiresRestart: true title: Adapter delay type: - number - 'null' cache_state: default: true description: >- MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant title: Cache state type: boolean cache_state_persistent: default: true description: 'Persist cached state, only used when cache_state: true' title: Persist cache state type: boolean cache_state_send_on_startup: default: true description: 'Send cached state on startup, only used when cache_state: true' title: Send cached state on startup type: boolean channel: default: 11 description: >- Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems) examples: - 15 - 20 - 25 maximum: 26 minimum: 11 requiresRestart: true title: ZigBee channel type: number elapsed: default: false description: >- Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg title: Elapsed type: boolean ext_pan_id: description: Zigbee extended pan ID, changing requires repairing all devices! oneOf: - title: Extended pan ID (string) type: string - items: type: number title: Extended pan ID (array) type: array requiresRestart: true title: Ext Pan ID last_seen: default: disable description: >- Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message enum: - disable - ISO_8601 - ISO_8601_local - epoch title: Last seen type: string legacy_api: default: true description: Disables the legacy api (false = disable) requiresRestart: true title: Legacy API type: boolean legacy_availability_payload: default: true description: >- Payload to be used for device availability and bridge/state topics. true = text, false = JSON requiresRestart: true title: Legacy availability payload type: boolean log_directory: description: Location of log directory examples: - data/log/%TIMESTAMP% requiresRestart: true title: Log directory type: string log_file: default: log.txt description: Log file name, can also contain timestamp examples: - zigbee2mqtt_%TIMESTAMP%.log requiresRestart: true title: Log file type: string log_level: default: info description: Logging level enum: - info - warn - error - debug title: Log level type: string log_output: description: Output location of the log, leave empty to suppress logging items: enum: - console - file - syslog type: string requiresRestart: true title: Log output type: array log_rotation: default: true description: Log rotation requiresRestart: true title: Log rotation type: boolean log_symlink_current: default: false description: Create symlink to current logs in the log directory requiresRestart: true title: Log symlink current type: boolean log_syslog: properties: app_name: default: Zigbee2MQTT description: 'The name of the application (Default: Zigbee2MQTT).' title: Localhost type: string eol: default: /n description: >- The end of line character to be added to the end of the message (Default: Message without modifications). title: eol type: string host: default: localhost description: The host running syslogd, defaults to localhost. title: Host type: string localhost: default: localhost description: >- Host to indicate that log messages are coming from (Default: localhost). title: Localhost type: string path: default: /dev/log description: >- The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X). examples: - /var/run/syslog title: Path type: string pid: default: process.pid description: >- PID of the process that log messages are coming from (Default process.pid). title: PID type: string port: default: 514 description: >- The port on the host that syslog is running on, defaults to syslogd's default port. title: Port type: number protocol: default: udp4 description: >- The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc). examples: - udp4 - tls4 - unix - unix-connect title: Protocol type: string type: default: '5424' description: >- The type of the syslog protocol to use (Default: BSD, also valid: 5424). title: Type type: string title: syslog type: object network_key: description: Network encryption key, changing requires repairing all devices! oneOf: - title: Network key(string) type: string - items: type: number title: Network key(array) type: array requiresRestart: true title: Network key output: description: >- Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{"state": "ON"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above) enum: - attribute_and_json - attribute - json title: MQTT output type type: string pan_id: description: ZigBee pan ID, changing requires repairing all devices! oneOf: - title: Pan ID (string) type: string - title: Pan ID (number) type: number requiresRestart: true title: Pan ID timestamp_format: description: Log timestamp format examples: - YYYY-MM-DD HH:mm:ss requiresRestart: true title: Timestamp format type: string transmit_power: description: >- Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default) requiresRestart: true title: Transmit power type: - number - 'null' title: Advanced type: object availability: description: Checks whether devices are online/offline oneOf: - title: Availability (simple) type: boolean - properties: active: description: Options for active devices (routers/mains powered) properties: timeout: default: 10 description: >- Time after which an active device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Active type: object passive: description: Options for passive devices (mostly battery powered) properties: timeout: default: 1500 description: >- Time after which an passive device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Passive type: object title: Availability (advanced) type: object requiresRestart: true title: Availability ban: items: type: string readOnly: true requiresRestart: true title: Ban (deprecated, use blocklist) type: array blocklist: description: Block devices from the network (by ieeeAddr) items: type: string requiresRestart: true title: Blocklist type: array device_options: title: Options that are applied to all devices type: object devices: patternProperties: ^.*$: $ref: '#/definitions/device' propertyNames: pattern: ^0x[\d\w]{16}$ type: object external_converters: description: You can define external converters to e.g. add support for a DiY device examples: - DIYRuZ_FreePad.js items: type: string requiresRestart: true title: External converters type: array frontend: oneOf: - title: Frontend (simple) type: boolean - properties: auth_token: description: Enables authentication, disabled by default requiresRestart: true title: Auth token type: - string - 'null' host: description: >- Frontend binding host. Binds to a unix socket when an absolute path is given instead. examples: - 127.0.0.1 - '::1' - /run/zigbee2mqtt/zigbee2mqtt.sock requiresRestart: true title: Bind host type: - string - 'null' port: default: 8080 description: Frontend binding port. Ignored when using a unix domain socket requiresRestart: true title: Port type: number ssl_cert: description: >- SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated. requiresRestart: true title: Certificate file path type: - string - 'null' ssl_key: description: >- SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated. requiresRestart: true title: key file path type: - string - 'null' url: description: >- URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page requiresRestart: true title: URL type: - string - 'null' title: Frontend (advanced) type: object requiresRestart: true title: Frontend groups: patternProperties: ^.*$: $ref: '#/definitions/group' propertyNames: pattern: ^[\w].*$ type: object homeassistant: default: false description: Home Assistant integration (MQTT discovery) oneOf: - title: Home Assistant (simple) type: boolean - properties: discovery_topic: description: Home Assistant discovery topic examples: - homeassistant requiresRestart: true title: Homeassistant discovery topic type: string legacy_entity_attributes: default: true description: >- Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates title: Home Assistant legacy entity attributes type: boolean legacy_triggers: default: true description: >- Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd title: Home Assistant legacy triggers type: boolean status_topic: description: Home Assistant status topic examples: - homeassistant/status requiresRestart: true title: Home Assistant status topic type: string title: Home Assistant (advanced) type: object requiresRestart: true title: Home Assistant integration map_options: properties: graphviz: properties: colors: properties: fill: properties: coordinator: type: string enddevice: type: string router: type: string type: object font: properties: coordinator: type: string enddevice: type: string router: type: string type: object line: properties: active: type: string inactive: type: string type: object type: object type: object title: Networkmap type: object mqtt: properties: base_topic: default: zigbee2mqtt description: MQTT base topic for Zigbee2MQTT MQTT messages examples: - zigbee2mqtt requiresRestart: true title: Base topic type: string ca: description: >- Absolute path to SSL/TLS certificate of CA used to sign server and client certificates examples: - /etc/ssl/mqtt-ca.crt requiresRestart: true title: Certificate authority type: string cert: description: Absolute path to SSL/TLS certificate for client-authentication examples: - /etc/ssl/mqtt-client.crt requiresRestart: true title: SSL/TLS certificate type: string client_id: description: MQTT client ID examples: - MY_CLIENT_ID requiresRestart: true title: Client ID type: string force_disable_retain: default: false description: >- Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration requiresRestart: true title: Force disable retain type: boolean include_device_information: default: false description: Include device information to mqtt messages title: Include device information type: boolean keepalive: default: 60 description: MQTT keepalive in second requiresRestart: true title: Keepalive type: number key: description: Absolute path to SSL/TLS key for client-authentication examples: - /etc/ssl/mqtt-client.key requiresRestart: true title: SSL/TLS key type: string password: description: MQTT server authentication password examples: - ILOVEPELMENI requiresRestart: true title: Password type: string reject_unauthorized: default: true description: Disable self-signed SSL certificate requiresRestart: true title: Reject unauthorized type: boolean server: description: MQTT server URL (use mqtts:// for SSL/TLS connection) examples: - mqtt://localhost:1883 requiresRestart: true title: MQTT server type: string user: description: MQTT server authentication user examples: - johnnysilverhand requiresRestart: true title: User type: string version: default: 4 description: MQTT protocol version examples: - 5 requiresRestart: true title: Version type: - number - 'null' required: - server title: MQTT type: object ota: properties: disable_automatic_update_check: default: false description: >- Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually. title: Disable automatic update check type: boolean ikea_ota_use_test_url: default: false description: Use IKEA TRADFRI OTA test server, see OTA updates documentation requiresRestart: true title: IKEA TRADFRI OTA use test url type: boolean update_check_interval: default: 1440 description: >- Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day. title: Update check interval type: number zigbee_ota_override_index_location: description: Location of override OTA index file examples: - index.json requiresRestart: true title: OTA index override file name type: - string - 'null' title: OTA updates type: object passlist: description: >- Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network! items: type: string requiresRestart: true title: Passlist type: array permit_join: default: false description: Allow new devices to join (re-applied at restart) title: Permit join type: boolean serial: properties: adapter: default: auto description: Adapter type, not needed unless you are experiencing problems enum: - deconz - zstack - zigate - ezsp - auto requiresRestart: true title: Adapter type: - string baudrate: description: >- Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600 examples: - 38400 - 57600 - 115200 requiresRestart: true title: Baudrate type: number disable_led: default: false description: Disable LED of the adapter if supported requiresRestart: true title: Disable led type: boolean port: description: Location of the adapter. To autodetect the port, set null examples: - /dev/ttyACM0 requiresRestart: true title: Port type: - string - 'null' rtscts: description: RTS / CTS Hardware Flow Control for serial port requiresRestart: true title: RTS / CTS type: boolean title: Serial type: object whitelist: items: type: string readOnly: true requiresRestart: true title: Whitelist (deprecated, use passlist) type: array required: - mqtt type: object coordinator: ieee_address: '0x00124b00257cb246' meta: maintrel: 1 majorrel: 2 minorrel: 7 product: 1 revision: 20221226 transportrev: 2 type: zStack3x0 log_level: info network: channel: 15 extended_pan_id: '0x00124b0024c8d7bb' pan_id: 6754 permit_join: false restart_required: false version: 1.35.3 zigbee_herdsman: version: 0.33.8 zigbee_herdsman_converters: version: 18.28.3 Received 15:39:04 QoS: 0 Payload: commit: unknown config: advanced: adapter_concurrent: null adapter_delay: null availability_blacklist: [] availability_blocklist: [] availability_passlist: [] availability_whitelist: [] cache_state: true cache_state_persistent: true cache_state_send_on_startup: true channel: 15 elapsed: false ext_pan_id: - 221 - 221 - 221 - 221 - 221 - 221 - 221 - 221 homeassistant_legacy_entity_attributes: false last_seen: ISO_8601 legacy_api: false legacy_availability_payload: false log_directory: /config/zigbee2mqtt/log/%TIMESTAMP% log_file: log.txt log_level: debug log_output: - console - file log_rotation: true log_symlink_current: false log_syslog: app_name: Zigbee2MQTT eol: /n host: localhost localhost: localhost path: /dev/log pid: process.pid port: 123 protocol: tcp4 type: '5424' output: json pan_id: 6754 report: false soft_reset_timeout: 0 timestamp_format: YYYY-MM-DD HH:mm:ss availability: {} blocklist: [] device_options: legacy: false devices: '0x000b57fffe13967e': friendly_name: '0x000b57fffe13967e' '0x000b57fffe27203b': friendly_name: Dining Room Lamp Right '0x000b57fffe38a445': friendly_name: Test Remote legacy: false '0x000b57fffe51eb27': friendly_name: Dining Room 2 state_action: false '0x000b57fffe520a0e': friendly_name: Outside 1 Up '0x000b57fffe8473b8': friendly_name: Outside 2 Up '0x000b57fffe8edae5': friendly_name: Kitchen Motion Sensor 2 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffe978d3f': friendly_name: Dining Room Lamp Left '0x000b57fffe9bad09': friendly_name: Kitchen Motion Sensor 1 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffeaffb7b': friendly_name: Outside 4 Up '0x000b57fffeb19864': friendly_name: Outside 4 Down '0x000b57fffeb829ec': friendly_name: Dining Room 3 '0x000b57fffebdce17': friendly_name: Dining Room 1 '0x000b57fffebed036': friendly_name: Outside 3 Down '0x000b57fffebefcf4': friendly_name: Outside 5 Down '0x000b57fffebf28bc': friendly_name: Outside 3 Up '0x000b57fffebfd68d': friendly_name: Dining Room 4 '0x000b57fffef3701e': friendly_name: Bedroom Remote legacy: false '0x000d6ffffe9c3ea8': friendly_name: '0x000d6ffffe9c3ea8' legacy: false '0x000d6ffffea20000': friendly_name: '0x000d6ffffea20000' legacy: false '0x000d6ffffec3aef6': friendly_name: Living Room Cabinets Inside '0x1c34f1fffe7b15b8': friendly_name: Office Wall Lamp state_action: true '0x588e81fffe6c99fd': friendly_name: Office Cabinets Front homeassistant: name: Office Cabinets Front legacy: false optimistic: true '0x588e81fffe76d0ad': friendly_name: Kitchen Cabinet '0x588e81fffe787201': friendly_name: Spare '0x60a423fffeadc632': friendly_name: 'Bedroom Bedside Remote ' legacy: true '0x60a423fffece99ad': friendly_name: Hallway Motion Sensor 99ad illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef24b3b': friendly_name: Motion 4b3b illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef26f3c': friendly_name: Kitchen Motion Sensor 3 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x6c5cb1fffe6730c8': friendly_name: '0x6c5cb1fffe6730c8' '0x70ac08fffeee86c6': friendly_name: Guest Bedroom Lamp Left '0x804b50fffeef7a46': friendly_name: Kitchen Lights Remote legacy: false '0x842e14fffe422e7a': friendly_name: Living Room Remote Control legacy: false '0x842e14fffe605be8': friendly_name: Outside 2 Down '0x842e14fffe7f1823': friendly_name: Kitchen Counter '0x943469fffe5fb1a8': friendly_name: Outside 1 Down state_action: true '0xa4c1382cc73f5d09': friendly_name: Parcel Box '0xa4c1383ed970356b': friendly_name: 'Garage Door Sensor ' '0xa4c1387ab3af9d49': friendly_name: Back Door Sensor '0xa4c138fdb6272825': friendly_name: 'Front Door Sensor ' '0xb4e3f9fffef34402': friendly_name: Office Remote Control legacy: false '0xbc33acfffe3025ec': friendly_name: Kitchen Under Counter '0xbc33acfffe98c391': friendly_name: Bedroom Lamp Right '0xbc33acfffe9e1f16': friendly_name: Living Room Sofa Right state_action: true '0xbc33acfffea1daa2': friendly_name: Guest Bedroom Lamp Right '0xbc33acfffea1e1c6': friendly_name: Living Room Sofa Left state_action: true '0xbc33acfffebcb527': friendly_name: Bedroom Lamp Left '0xbc33acfffebd4750': friendly_name: Office Lamp state_action: true transition: 0 '0xccccccfffe924b3c': friendly_name: Guest Bedroom Remote legacy: false '0xd0cf5efffec7e1fb': friendly_name: Office Cabinets Inside '0xd0cf5efffed992d0': friendly_name: Repeater '0xec1bbdfffe9eed51': friendly_name: Dining Room Remote legacy: false '0xec1bbdfffedfbba3': friendly_name: Living Room Cabinets Front external_converters: [] frontend: port: 8099 groups: {} homeassistant: discovery_topic: homeassistant legacy_entity_attributes: false legacy_triggers: true status_topic: hass/status map_options: graphviz: colors: fill: coordinator: '#e04e5d' enddevice: '#fff8ce' router: '#4ea3e0' font: coordinator: '#ffffff' enddevice: '#000000' router: '#ffffff' line: active: '#009900' inactive: '#994444' mqtt: base_topic: zigbee2mqtt force_disable_retain: false include_device_information: false server: mqtt://core-mosquitto:1883 user: addons ota: disable_automatic_update_check: false update_check_interval: 1440 passlist: [] permit_join: false serial: disable_led: false port: tcp://192.168.10.35:8080 config_schema: definitions: device: properties: debounce: description: Debounces messages of this device title: Debounce type: number debounce_ignore: description: >- Protects unique payload values of specified payload properties from overriding within debounce time examples: - action items: type: string title: Ignore debounce type: array disabled: description: >- Disables the device (excludes device from network scans, availability and group state updates) requiresRestart: true title: Disabled type: boolean filtered_attributes: description: Filter attributes with regex from published payload. examples: - ^temperature$ - ^battery$ - ^action$ items: type: string title: Filtered publish attributes type: array filtered_cache: description: >- Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change. examples: - ^input_actions$ items: type: string title: Filtered attributes from cache type: array filtered_optimistic: description: >- Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false). examples: - ^color_(mode|temp)$ - color items: type: string title: Filtered optimistic attributes type: array friendly_name: description: Used in the MQTT topic of a device. By default this is the device ID readOnly: true title: Friendly name type: string homeassistant: properties: name: description: Name of the device in Home Assistant title: Home Assistant name type: string title: Home Assistant type: - object - 'null' icon: description: >- The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) (you cannot use a path to a local file) or base64 encoded data URL (e.g. image/svg+xml;base64,PHN2ZyB3aW....R0aD) title: Icon type: string optimistic: default: true description: Publish optimistic state after set title: Optimistic type: boolean qos: description: QoS level for MQTT messages of this device title: QoS type: number retain: description: Retain MQTT messages of this device title: Retain type: boolean retention: description: >- Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5 title: Retention type: number required: - friendly_name type: object group: properties: devices: items: type: string type: array filtered_attributes: items: type: string type: array friendly_name: type: string off_state: default: auto description: >- Control when to publish state OFF for a group. 'all_members_off': only publish state OFF when all group members are in state OFF, 'last_member_state': publish state OFF whenever one of its members changes to OFF enum: - all_members_off - last_member_state requiresRestart: true title: Group off state type: - string optimistic: type: boolean qos: type: number retain: type: boolean required: - friendly_name type: object properties: advanced: properties: adapter_concurrent: description: >- Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value) requiresRestart: true title: Adapter concurrency type: - number - 'null' adapter_delay: description: Adapter delay requiresRestart: true title: Adapter delay type: - number - 'null' cache_state: default: true description: >- MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant title: Cache state type: boolean cache_state_persistent: default: true description: 'Persist cached state, only used when cache_state: true' title: Persist cache state type: boolean cache_state_send_on_startup: default: true description: 'Send cached state on startup, only used when cache_state: true' title: Send cached state on startup type: boolean channel: default: 11 description: >- Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems) examples: - 15 - 20 - 25 maximum: 26 minimum: 11 requiresRestart: true title: ZigBee channel type: number elapsed: default: false description: >- Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg title: Elapsed type: boolean ext_pan_id: description: Zigbee extended pan ID, changing requires repairing all devices! oneOf: - title: Extended pan ID (string) type: string - items: type: number title: Extended pan ID (array) type: array requiresRestart: true title: Ext Pan ID last_seen: default: disable description: >- Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message enum: - disable - ISO_8601 - ISO_8601_local - epoch title: Last seen type: string legacy_api: default: true description: Disables the legacy api (false = disable) requiresRestart: true title: Legacy API type: boolean legacy_availability_payload: default: true description: >- Payload to be used for device availability and bridge/state topics. true = text, false = JSON requiresRestart: true title: Legacy availability payload type: boolean log_directory: description: Location of log directory examples: - data/log/%TIMESTAMP% requiresRestart: true title: Log directory type: string log_file: default: log.txt description: Log file name, can also contain timestamp examples: - zigbee2mqtt_%TIMESTAMP%.log requiresRestart: true title: Log file type: string log_level: default: info description: Logging level enum: - info - warn - error - debug title: Log level type: string log_output: description: Output location of the log, leave empty to suppress logging items: enum: - console - file - syslog type: string requiresRestart: true title: Log output type: array log_rotation: default: true description: Log rotation requiresRestart: true title: Log rotation type: boolean log_symlink_current: default: false description: Create symlink to current logs in the log directory requiresRestart: true title: Log symlink current type: boolean log_syslog: properties: app_name: default: Zigbee2MQTT description: 'The name of the application (Default: Zigbee2MQTT).' title: Localhost type: string eol: default: /n description: >- The end of line character to be added to the end of the message (Default: Message without modifications). title: eol type: string host: default: localhost description: The host running syslogd, defaults to localhost. title: Host type: string localhost: default: localhost description: >- Host to indicate that log messages are coming from (Default: localhost). title: Localhost type: string path: default: /dev/log description: >- The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X). examples: - /var/run/syslog title: Path type: string pid: default: process.pid description: >- PID of the process that log messages are coming from (Default process.pid). title: PID type: string port: default: 514 description: >- The port on the host that syslog is running on, defaults to syslogd's default port. title: Port type: number protocol: default: udp4 description: >- The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc). examples: - udp4 - tls4 - unix - unix-connect title: Protocol type: string type: default: '5424' description: >- The type of the syslog protocol to use (Default: BSD, also valid: 5424). title: Type type: string title: syslog type: object network_key: description: Network encryption key, changing requires repairing all devices! oneOf: - title: Network key(string) type: string - items: type: number title: Network key(array) type: array requiresRestart: true title: Network key output: description: >- Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{"state": "ON"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above) enum: - attribute_and_json - attribute - json title: MQTT output type type: string pan_id: description: ZigBee pan ID, changing requires repairing all devices! oneOf: - title: Pan ID (string) type: string - title: Pan ID (number) type: number requiresRestart: true title: Pan ID timestamp_format: description: Log timestamp format examples: - YYYY-MM-DD HH:mm:ss requiresRestart: true title: Timestamp format type: string transmit_power: description: >- Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default) requiresRestart: true title: Transmit power type: - number - 'null' title: Advanced type: object availability: description: Checks whether devices are online/offline oneOf: - title: Availability (simple) type: boolean - properties: active: description: Options for active devices (routers/mains powered) properties: timeout: default: 10 description: >- Time after which an active device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Active type: object passive: description: Options for passive devices (mostly battery powered) properties: timeout: default: 1500 description: >- Time after which an passive device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Passive type: object title: Availability (advanced) type: object requiresRestart: true title: Availability ban: items: type: string readOnly: true requiresRestart: true title: Ban (deprecated, use blocklist) type: array blocklist: description: Block devices from the network (by ieeeAddr) items: type: string requiresRestart: true title: Blocklist type: array device_options: title: Options that are applied to all devices type: object devices: patternProperties: ^.*$: $ref: '#/definitions/device' propertyNames: pattern: ^0x[\d\w]{16}$ type: object external_converters: description: You can define external converters to e.g. add support for a DiY device examples: - DIYRuZ_FreePad.js items: type: string requiresRestart: true title: External converters type: array frontend: oneOf: - title: Frontend (simple) type: boolean - properties: auth_token: description: Enables authentication, disabled by default requiresRestart: true title: Auth token type: - string - 'null' host: description: >- Frontend binding host. Binds to a unix socket when an absolute path is given instead. examples: - 127.0.0.1 - '::1' - /run/zigbee2mqtt/zigbee2mqtt.sock requiresRestart: true title: Bind host type: - string - 'null' port: default: 8080 description: Frontend binding port. Ignored when using a unix domain socket requiresRestart: true title: Port type: number ssl_cert: description: >- SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated. requiresRestart: true title: Certificate file path type: - string - 'null' ssl_key: description: >- SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated. requiresRestart: true title: key file path type: - string - 'null' url: description: >- URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page requiresRestart: true title: URL type: - string - 'null' title: Frontend (advanced) type: object requiresRestart: true title: Frontend groups: patternProperties: ^.*$: $ref: '#/definitions/group' propertyNames: pattern: ^[\w].*$ type: object homeassistant: default: false description: Home Assistant integration (MQTT discovery) oneOf: - title: Home Assistant (simple) type: boolean - properties: discovery_topic: description: Home Assistant discovery topic examples: - homeassistant requiresRestart: true title: Homeassistant discovery topic type: string legacy_entity_attributes: default: true description: >- Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates title: Home Assistant legacy entity attributes type: boolean legacy_triggers: default: true description: >- Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd title: Home Assistant legacy triggers type: boolean status_topic: description: Home Assistant status topic examples: - homeassistant/status requiresRestart: true title: Home Assistant status topic type: string title: Home Assistant (advanced) type: object requiresRestart: true title: Home Assistant integration map_options: properties: graphviz: properties: colors: properties: fill: properties: coordinator: type: string enddevice: type: string router: type: string type: object font: properties: coordinator: type: string enddevice: type: string router: type: string type: object line: properties: active: type: string inactive: type: string type: object type: object type: object title: Networkmap type: object mqtt: properties: base_topic: default: zigbee2mqtt description: MQTT base topic for Zigbee2MQTT MQTT messages examples: - zigbee2mqtt requiresRestart: true title: Base topic type: string ca: description: >- Absolute path to SSL/TLS certificate of CA used to sign server and client certificates examples: - /etc/ssl/mqtt-ca.crt requiresRestart: true title: Certificate authority type: string cert: description: Absolute path to SSL/TLS certificate for client-authentication examples: - /etc/ssl/mqtt-client.crt requiresRestart: true title: SSL/TLS certificate type: string client_id: description: MQTT client ID examples: - MY_CLIENT_ID requiresRestart: true title: Client ID type: string force_disable_retain: default: false description: >- Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration requiresRestart: true title: Force disable retain type: boolean include_device_information: default: false description: Include device information to mqtt messages title: Include device information type: boolean keepalive: default: 60 description: MQTT keepalive in second requiresRestart: true title: Keepalive type: number key: description: Absolute path to SSL/TLS key for client-authentication examples: - /etc/ssl/mqtt-client.key requiresRestart: true title: SSL/TLS key type: string password: description: MQTT server authentication password examples: - ILOVEPELMENI requiresRestart: true title: Password type: string reject_unauthorized: default: true description: Disable self-signed SSL certificate requiresRestart: true title: Reject unauthorized type: boolean server: description: MQTT server URL (use mqtts:// for SSL/TLS connection) examples: - mqtt://localhost:1883 requiresRestart: true title: MQTT server type: string user: description: MQTT server authentication user examples: - johnnysilverhand requiresRestart: true title: User type: string version: default: 4 description: MQTT protocol version examples: - 5 requiresRestart: true title: Version type: - number - 'null' required: - server title: MQTT type: object ota: properties: disable_automatic_update_check: default: false description: >- Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually. title: Disable automatic update check type: boolean ikea_ota_use_test_url: default: false description: Use IKEA TRADFRI OTA test server, see OTA updates documentation requiresRestart: true title: IKEA TRADFRI OTA use test url type: boolean update_check_interval: default: 1440 description: >- Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day. title: Update check interval type: number zigbee_ota_override_index_location: description: Location of override OTA index file examples: - index.json requiresRestart: true title: OTA index override file name type: - string - 'null' title: OTA updates type: object passlist: description: >- Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network! items: type: string requiresRestart: true title: Passlist type: array permit_join: default: false description: Allow new devices to join (re-applied at restart) title: Permit join type: boolean serial: properties: adapter: default: auto description: Adapter type, not needed unless you are experiencing problems enum: - deconz - zstack - zigate - ezsp - auto requiresRestart: true title: Adapter type: - string baudrate: description: >- Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600 examples: - 38400 - 57600 - 115200 requiresRestart: true title: Baudrate type: number disable_led: default: false description: Disable LED of the adapter if supported requiresRestart: true title: Disable led type: boolean port: description: Location of the adapter. To autodetect the port, set null examples: - /dev/ttyACM0 requiresRestart: true title: Port type: - string - 'null' rtscts: description: RTS / CTS Hardware Flow Control for serial port requiresRestart: true title: RTS / CTS type: boolean title: Serial type: object whitelist: items: type: string readOnly: true requiresRestart: true title: Whitelist (deprecated, use passlist) type: array required: - mqtt type: object coordinator: ieee_address: '0x00124b00257cb246' meta: maintrel: 1 majorrel: 2 minorrel: 7 product: 1 revision: 20221226 transportrev: 2 type: zStack3x0 log_level: debug network: channel: 15 extended_pan_id: '0x00124b0024c8d7bb' pan_id: 6754 permit_join: false restart_required: false version: 1.35.3 zigbee_herdsman: version: 0.33.8 zigbee_herdsman_converters: version: 18.28.3 Received 15:39:18 QoS: 0 Payload: commit: unknown config: advanced: adapter_concurrent: null adapter_delay: null availability_blacklist: [] availability_blocklist: [] availability_passlist: [] availability_whitelist: [] cache_state: true cache_state_persistent: true cache_state_send_on_startup: true channel: 15 elapsed: false ext_pan_id: - 221 - 221 - 221 - 221 - 221 - 221 - 221 - 221 homeassistant_legacy_entity_attributes: false last_seen: ISO_8601 legacy_api: false legacy_availability_payload: false log_directory: /config/zigbee2mqtt/log/%TIMESTAMP% log_file: log.txt log_level: error log_output: - console - file log_rotation: true log_symlink_current: false log_syslog: app_name: Zigbee2MQTT eol: /n host: localhost localhost: localhost path: /dev/log pid: process.pid port: 123 protocol: tcp4 type: '5424' output: json pan_id: 6754 report: false soft_reset_timeout: 0 timestamp_format: YYYY-MM-DD HH:mm:ss availability: {} blocklist: [] device_options: legacy: false devices: '0x000b57fffe13967e': friendly_name: '0x000b57fffe13967e' '0x000b57fffe27203b': friendly_name: Dining Room Lamp Right '0x000b57fffe38a445': friendly_name: Test Remote legacy: false '0x000b57fffe51eb27': friendly_name: Dining Room 2 state_action: false '0x000b57fffe520a0e': friendly_name: Outside 1 Up '0x000b57fffe8473b8': friendly_name: Outside 2 Up '0x000b57fffe8edae5': friendly_name: Kitchen Motion Sensor 2 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffe978d3f': friendly_name: Dining Room Lamp Left '0x000b57fffe9bad09': friendly_name: Kitchen Motion Sensor 1 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffeaffb7b': friendly_name: Outside 4 Up '0x000b57fffeb19864': friendly_name: Outside 4 Down '0x000b57fffeb829ec': friendly_name: Dining Room 3 '0x000b57fffebdce17': friendly_name: Dining Room 1 '0x000b57fffebed036': friendly_name: Outside 3 Down '0x000b57fffebefcf4': friendly_name: Outside 5 Down '0x000b57fffebf28bc': friendly_name: Outside 3 Up '0x000b57fffebfd68d': friendly_name: Dining Room 4 '0x000b57fffef3701e': friendly_name: Bedroom Remote legacy: false '0x000d6ffffe9c3ea8': friendly_name: '0x000d6ffffe9c3ea8' legacy: false '0x000d6ffffea20000': friendly_name: '0x000d6ffffea20000' legacy: false '0x000d6ffffec3aef6': friendly_name: Living Room Cabinets Inside '0x1c34f1fffe7b15b8': friendly_name: Office Wall Lamp state_action: true '0x588e81fffe6c99fd': friendly_name: Office Cabinets Front homeassistant: name: Office Cabinets Front legacy: false optimistic: true '0x588e81fffe76d0ad': friendly_name: Kitchen Cabinet '0x588e81fffe787201': friendly_name: Spare '0x60a423fffeadc632': friendly_name: 'Bedroom Bedside Remote ' legacy: true '0x60a423fffece99ad': friendly_name: Hallway Motion Sensor 99ad illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef24b3b': friendly_name: Motion 4b3b illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef26f3c': friendly_name: Kitchen Motion Sensor 3 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x6c5cb1fffe6730c8': friendly_name: '0x6c5cb1fffe6730c8' '0x70ac08fffeee86c6': friendly_name: Guest Bedroom Lamp Left '0x804b50fffeef7a46': friendly_name: Kitchen Lights Remote legacy: false '0x842e14fffe422e7a': friendly_name: Living Room Remote Control legacy: false '0x842e14fffe605be8': friendly_name: Outside 2 Down '0x842e14fffe7f1823': friendly_name: Kitchen Counter '0x943469fffe5fb1a8': friendly_name: Outside 1 Down state_action: true '0xa4c1382cc73f5d09': friendly_name: Parcel Box '0xa4c1383ed970356b': friendly_name: 'Garage Door Sensor ' '0xa4c1387ab3af9d49': friendly_name: Back Door Sensor '0xa4c138fdb6272825': friendly_name: 'Front Door Sensor ' '0xb4e3f9fffef34402': friendly_name: Office Remote Control legacy: false '0xbc33acfffe3025ec': friendly_name: Kitchen Under Counter '0xbc33acfffe98c391': friendly_name: Bedroom Lamp Right '0xbc33acfffe9e1f16': friendly_name: Living Room Sofa Right state_action: true '0xbc33acfffea1daa2': friendly_name: Guest Bedroom Lamp Right '0xbc33acfffea1e1c6': friendly_name: Living Room Sofa Left state_action: true '0xbc33acfffebcb527': friendly_name: Bedroom Lamp Left '0xbc33acfffebd4750': friendly_name: Office Lamp state_action: true transition: 0 '0xccccccfffe924b3c': friendly_name: Guest Bedroom Remote legacy: false '0xd0cf5efffec7e1fb': friendly_name: Office Cabinets Inside '0xd0cf5efffed992d0': friendly_name: Repeater '0xec1bbdfffe9eed51': friendly_name: Dining Room Remote legacy: false '0xec1bbdfffedfbba3': friendly_name: Living Room Cabinets Front external_converters: [] frontend: port: 8099 groups: {} homeassistant: discovery_topic: homeassistant legacy_entity_attributes: false legacy_triggers: true status_topic: hass/status map_options: graphviz: colors: fill: coordinator: '#e04e5d' enddevice: '#fff8ce' router: '#4ea3e0' font: coordinator: '#ffffff' enddevice: '#000000' router: '#ffffff' line: active: '#009900' inactive: '#994444' mqtt: base_topic: zigbee2mqtt force_disable_retain: false include_device_information: false server: mqtt://core-mosquitto:1883 user: addons ota: disable_automatic_update_check: false update_check_interval: 1440 passlist: [] permit_join: false serial: disable_led: false port: tcp://192.168.10.35:8080 config_schema: definitions: device: properties: debounce: description: Debounces messages of this device title: Debounce type: number debounce_ignore: description: >- Protects unique payload values of specified payload properties from overriding within debounce time examples: - action items: type: string title: Ignore debounce type: array disabled: description: >- Disables the device (excludes device from network scans, availability and group state updates) requiresRestart: true title: Disabled type: boolean filtered_attributes: description: Filter attributes with regex from published payload. examples: - ^temperature$ - ^battery$ - ^action$ items: type: string title: Filtered publish attributes type: array filtered_cache: description: >- Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change. examples: - ^input_actions$ items: type: string title: Filtered attributes from cache type: array filtered_optimistic: description: >- Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false). examples: - ^color_(mode|temp)$ - color items: type: string title: Filtered optimistic attributes type: array friendly_name: description: Used in the MQTT topic of a device. By default this is the device ID readOnly: true title: Friendly name type: string homeassistant: properties: name: description: Name of the device in Home Assistant title: Home Assistant name type: string title: Home Assistant type: - object - 'null' icon: description: >- The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) (you cannot use a path to a local file) or base64 encoded data URL (e.g. image/svg+xml;base64,PHN2ZyB3aW....R0aD) title: Icon type: string optimistic: default: true description: Publish optimistic state after set title: Optimistic type: boolean qos: description: QoS level for MQTT messages of this device title: QoS type: number retain: description: Retain MQTT messages of this device title: Retain type: boolean retention: description: >- Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5 title: Retention type: number required: - friendly_name type: object group: properties: devices: items: type: string type: array filtered_attributes: items: type: string type: array friendly_name: type: string off_state: default: auto description: >- Control when to publish state OFF for a group. 'all_members_off': only publish state OFF when all group members are in state OFF, 'last_member_state': publish state OFF whenever one of its members changes to OFF enum: - all_members_off - last_member_state requiresRestart: true title: Group off state type: - string optimistic: type: boolean qos: type: number retain: type: boolean required: - friendly_name type: object properties: advanced: properties: adapter_concurrent: description: >- Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value) requiresRestart: true title: Adapter concurrency type: - number - 'null' adapter_delay: description: Adapter delay requiresRestart: true title: Adapter delay type: - number - 'null' cache_state: default: true description: >- MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant title: Cache state type: boolean cache_state_persistent: default: true description: 'Persist cached state, only used when cache_state: true' title: Persist cache state type: boolean cache_state_send_on_startup: default: true description: 'Send cached state on startup, only used when cache_state: true' title: Send cached state on startup type: boolean channel: default: 11 description: >- Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems) examples: - 15 - 20 - 25 maximum: 26 minimum: 11 requiresRestart: true title: ZigBee channel type: number elapsed: default: false description: >- Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg title: Elapsed type: boolean ext_pan_id: description: Zigbee extended pan ID, changing requires repairing all devices! oneOf: - title: Extended pan ID (string) type: string - items: type: number title: Extended pan ID (array) type: array requiresRestart: true title: Ext Pan ID last_seen: default: disable description: >- Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message enum: - disable - ISO_8601 - ISO_8601_local - epoch title: Last seen type: string legacy_api: default: true description: Disables the legacy api (false = disable) requiresRestart: true title: Legacy API type: boolean legacy_availability_payload: default: true description: >- Payload to be used for device availability and bridge/state topics. true = text, false = JSON requiresRestart: true title: Legacy availability payload type: boolean log_directory: description: Location of log directory examples: - data/log/%TIMESTAMP% requiresRestart: true title: Log directory type: string log_file: default: log.txt description: Log file name, can also contain timestamp examples: - zigbee2mqtt_%TIMESTAMP%.log requiresRestart: true title: Log file type: string log_level: default: info description: Logging level enum: - info - warn - error - debug title: Log level type: string log_output: description: Output location of the log, leave empty to suppress logging items: enum: - console - file - syslog type: string requiresRestart: true title: Log output type: array log_rotation: default: true description: Log rotation requiresRestart: true title: Log rotation type: boolean log_symlink_current: default: false description: Create symlink to current logs in the log directory requiresRestart: true title: Log symlink current type: boolean log_syslog: properties: app_name: default: Zigbee2MQTT description: 'The name of the application (Default: Zigbee2MQTT).' title: Localhost type: string eol: default: /n description: >- The end of line character to be added to the end of the message (Default: Message without modifications). title: eol type: string host: default: localhost description: The host running syslogd, defaults to localhost. title: Host type: string localhost: default: localhost description: >- Host to indicate that log messages are coming from (Default: localhost). title: Localhost type: string path: default: /dev/log description: >- The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X). examples: - /var/run/syslog title: Path type: string pid: default: process.pid description: >- PID of the process that log messages are coming from (Default process.pid). title: PID type: string port: default: 514 description: >- The port on the host that syslog is running on, defaults to syslogd's default port. title: Port type: number protocol: default: udp4 description: >- The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc). examples: - udp4 - tls4 - unix - unix-connect title: Protocol type: string type: default: '5424' description: >- The type of the syslog protocol to use (Default: BSD, also valid: 5424). title: Type type: string title: syslog type: object network_key: description: Network encryption key, changing requires repairing all devices! oneOf: - title: Network key(string) type: string - items: type: number title: Network key(array) type: array requiresRestart: true title: Network key output: description: >- Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{"state": "ON"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above) enum: - attribute_and_json - attribute - json title: MQTT output type type: string pan_id: description: ZigBee pan ID, changing requires repairing all devices! oneOf: - title: Pan ID (string) type: string - title: Pan ID (number) type: number requiresRestart: true title: Pan ID timestamp_format: description: Log timestamp format examples: - YYYY-MM-DD HH:mm:ss requiresRestart: true title: Timestamp format type: string transmit_power: description: >- Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default) requiresRestart: true title: Transmit power type: - number - 'null' title: Advanced type: object availability: description: Checks whether devices are online/offline oneOf: - title: Availability (simple) type: boolean - properties: active: description: Options for active devices (routers/mains powered) properties: timeout: default: 10 description: >- Time after which an active device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Active type: object passive: description: Options for passive devices (mostly battery powered) properties: timeout: default: 1500 description: >- Time after which an passive device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Passive type: object title: Availability (advanced) type: object requiresRestart: true title: Availability ban: items: type: string readOnly: true requiresRestart: true title: Ban (deprecated, use blocklist) type: array blocklist: description: Block devices from the network (by ieeeAddr) items: type: string requiresRestart: true title: Blocklist type: array device_options: title: Options that are applied to all devices type: object devices: patternProperties: ^.*$: $ref: '#/definitions/device' propertyNames: pattern: ^0x[\d\w]{16}$ type: object external_converters: description: You can define external converters to e.g. add support for a DiY device examples: - DIYRuZ_FreePad.js items: type: string requiresRestart: true title: External converters type: array frontend: oneOf: - title: Frontend (simple) type: boolean - properties: auth_token: description: Enables authentication, disabled by default requiresRestart: true title: Auth token type: - string - 'null' host: description: >- Frontend binding host. Binds to a unix socket when an absolute path is given instead. examples: - 127.0.0.1 - '::1' - /run/zigbee2mqtt/zigbee2mqtt.sock requiresRestart: true title: Bind host type: - string - 'null' port: default: 8080 description: Frontend binding port. Ignored when using a unix domain socket requiresRestart: true title: Port type: number ssl_cert: description: >- SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated. requiresRestart: true title: Certificate file path type: - string - 'null' ssl_key: description: >- SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated. requiresRestart: true title: key file path type: - string - 'null' url: description: >- URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page requiresRestart: true title: URL type: - string - 'null' title: Frontend (advanced) type: object requiresRestart: true title: Frontend groups: patternProperties: ^.*$: $ref: '#/definitions/group' propertyNames: pattern: ^[\w].*$ type: object homeassistant: default: false description: Home Assistant integration (MQTT discovery) oneOf: - title: Home Assistant (simple) type: boolean - properties: discovery_topic: description: Home Assistant discovery topic examples: - homeassistant requiresRestart: true title: Homeassistant discovery topic type: string legacy_entity_attributes: default: true description: >- Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates title: Home Assistant legacy entity attributes type: boolean legacy_triggers: default: true description: >- Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd title: Home Assistant legacy triggers type: boolean status_topic: description: Home Assistant status topic examples: - homeassistant/status requiresRestart: true title: Home Assistant status topic type: string title: Home Assistant (advanced) type: object requiresRestart: true title: Home Assistant integration map_options: properties: graphviz: properties: colors: properties: fill: properties: coordinator: type: string enddevice: type: string router: type: string type: object font: properties: coordinator: type: string enddevice: type: string router: type: string type: object line: properties: active: type: string inactive: type: string type: object type: object type: object title: Networkmap type: object mqtt: properties: base_topic: default: zigbee2mqtt description: MQTT base topic for Zigbee2MQTT MQTT messages examples: - zigbee2mqtt requiresRestart: true title: Base topic type: string ca: description: >- Absolute path to SSL/TLS certificate of CA used to sign server and client certificates examples: - /etc/ssl/mqtt-ca.crt requiresRestart: true title: Certificate authority type: string cert: description: Absolute path to SSL/TLS certificate for client-authentication examples: - /etc/ssl/mqtt-client.crt requiresRestart: true title: SSL/TLS certificate type: string client_id: description: MQTT client ID examples: - MY_CLIENT_ID requiresRestart: true title: Client ID type: string force_disable_retain: default: false description: >- Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration requiresRestart: true title: Force disable retain type: boolean include_device_information: default: false description: Include device information to mqtt messages title: Include device information type: boolean keepalive: default: 60 description: MQTT keepalive in second requiresRestart: true title: Keepalive type: number key: description: Absolute path to SSL/TLS key for client-authentication examples: - /etc/ssl/mqtt-client.key requiresRestart: true title: SSL/TLS key type: string password: description: MQTT server authentication password examples: - ILOVEPELMENI requiresRestart: true title: Password type: string reject_unauthorized: default: true description: Disable self-signed SSL certificate requiresRestart: true title: Reject unauthorized type: boolean server: description: MQTT server URL (use mqtts:// for SSL/TLS connection) examples: - mqtt://localhost:1883 requiresRestart: true title: MQTT server type: string user: description: MQTT server authentication user examples: - johnnysilverhand requiresRestart: true title: User type: string version: default: 4 description: MQTT protocol version examples: - 5 requiresRestart: true title: Version type: - number - 'null' required: - server title: MQTT type: object ota: properties: disable_automatic_update_check: default: false description: >- Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually. title: Disable automatic update check type: boolean ikea_ota_use_test_url: default: false description: Use IKEA TRADFRI OTA test server, see OTA updates documentation requiresRestart: true title: IKEA TRADFRI OTA use test url type: boolean update_check_interval: default: 1440 description: >- Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day. title: Update check interval type: number zigbee_ota_override_index_location: description: Location of override OTA index file examples: - index.json requiresRestart: true title: OTA index override file name type: - string - 'null' title: OTA updates type: object passlist: description: >- Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network! items: type: string requiresRestart: true title: Passlist type: array permit_join: default: false description: Allow new devices to join (re-applied at restart) title: Permit join type: boolean serial: properties: adapter: default: auto description: Adapter type, not needed unless you are experiencing problems enum: - deconz - zstack - zigate - ezsp - auto requiresRestart: true title: Adapter type: - string baudrate: description: >- Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600 examples: - 38400 - 57600 - 115200 requiresRestart: true title: Baudrate type: number disable_led: default: false description: Disable LED of the adapter if supported requiresRestart: true title: Disable led type: boolean port: description: Location of the adapter. To autodetect the port, set null examples: - /dev/ttyACM0 requiresRestart: true title: Port type: - string - 'null' rtscts: description: RTS / CTS Hardware Flow Control for serial port requiresRestart: true title: RTS / CTS type: boolean title: Serial type: object whitelist: items: type: string readOnly: true requiresRestart: true title: Whitelist (deprecated, use passlist) type: array required: - mqtt type: object coordinator: ieee_address: '0x00124b00257cb246' meta: maintrel: 1 majorrel: 2 minorrel: 7 product: 1 revision: 20221226 transportrev: 2 type: zStack3x0 log_level: error network: channel: 15 extended_pan_id: '0x00124b0024c8d7bb' pan_id: 6754 permit_join: false restart_required: false version: 1.35.3 zigbee_herdsman: version: 0.33.8 zigbee_herdsman_converters: version: 18.28.3 Received 15:39:24 QoS: 0 Payload: commit: unknown config: advanced: adapter_concurrent: null adapter_delay: null availability_blacklist: [] availability_blocklist: [] availability_passlist: [] availability_whitelist: [] cache_state: true cache_state_persistent: true cache_state_send_on_startup: true channel: 15 elapsed: false ext_pan_id: - 221 - 221 - 221 - 221 - 221 - 221 - 221 - 221 homeassistant_legacy_entity_attributes: false last_seen: ISO_8601 legacy_api: false legacy_availability_payload: false log_directory: /config/zigbee2mqtt/log/%TIMESTAMP% log_file: log.txt log_level: warn log_output: - console - file log_rotation: true log_symlink_current: false log_syslog: app_name: Zigbee2MQTT eol: /n host: localhost localhost: localhost path: /dev/log pid: process.pid port: 123 protocol: tcp4 type: '5424' output: json pan_id: 6754 report: false soft_reset_timeout: 0 timestamp_format: YYYY-MM-DD HH:mm:ss availability: {} blocklist: [] device_options: legacy: false devices: '0x000b57fffe13967e': friendly_name: '0x000b57fffe13967e' '0x000b57fffe27203b': friendly_name: Dining Room Lamp Right '0x000b57fffe38a445': friendly_name: Test Remote legacy: false '0x000b57fffe51eb27': friendly_name: Dining Room 2 state_action: false '0x000b57fffe520a0e': friendly_name: Outside 1 Up '0x000b57fffe8473b8': friendly_name: Outside 2 Up '0x000b57fffe8edae5': friendly_name: Kitchen Motion Sensor 2 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffe978d3f': friendly_name: Dining Room Lamp Left '0x000b57fffe9bad09': friendly_name: Kitchen Motion Sensor 1 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffeaffb7b': friendly_name: Outside 4 Up '0x000b57fffeb19864': friendly_name: Outside 4 Down '0x000b57fffeb829ec': friendly_name: Dining Room 3 '0x000b57fffebdce17': friendly_name: Dining Room 1 '0x000b57fffebed036': friendly_name: Outside 3 Down '0x000b57fffebefcf4': friendly_name: Outside 5 Down '0x000b57fffebf28bc': friendly_name: Outside 3 Up '0x000b57fffebfd68d': friendly_name: Dining Room 4 '0x000b57fffef3701e': friendly_name: Bedroom Remote legacy: false '0x000d6ffffe9c3ea8': friendly_name: '0x000d6ffffe9c3ea8' legacy: false '0x000d6ffffea20000': friendly_name: '0x000d6ffffea20000' legacy: false '0x000d6ffffec3aef6': friendly_name: Living Room Cabinets Inside '0x1c34f1fffe7b15b8': friendly_name: Office Wall Lamp state_action: true '0x588e81fffe6c99fd': friendly_name: Office Cabinets Front homeassistant: name: Office Cabinets Front legacy: false optimistic: true '0x588e81fffe76d0ad': friendly_name: Kitchen Cabinet '0x588e81fffe787201': friendly_name: Spare '0x60a423fffeadc632': friendly_name: 'Bedroom Bedside Remote ' legacy: true '0x60a423fffece99ad': friendly_name: Hallway Motion Sensor 99ad illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef24b3b': friendly_name: Motion 4b3b illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef26f3c': friendly_name: Kitchen Motion Sensor 3 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x6c5cb1fffe6730c8': friendly_name: '0x6c5cb1fffe6730c8' '0x70ac08fffeee86c6': friendly_name: Guest Bedroom Lamp Left '0x804b50fffeef7a46': friendly_name: Kitchen Lights Remote legacy: false '0x842e14fffe422e7a': friendly_name: Living Room Remote Control legacy: false '0x842e14fffe605be8': friendly_name: Outside 2 Down '0x842e14fffe7f1823': friendly_name: Kitchen Counter '0x943469fffe5fb1a8': friendly_name: Outside 1 Down state_action: true '0xa4c1382cc73f5d09': friendly_name: Parcel Box '0xa4c1383ed970356b': friendly_name: 'Garage Door Sensor ' '0xa4c1387ab3af9d49': friendly_name: Back Door Sensor '0xa4c138fdb6272825': friendly_name: 'Front Door Sensor ' '0xb4e3f9fffef34402': friendly_name: Office Remote Control legacy: false '0xbc33acfffe3025ec': friendly_name: Kitchen Under Counter '0xbc33acfffe98c391': friendly_name: Bedroom Lamp Right '0xbc33acfffe9e1f16': friendly_name: Living Room Sofa Right state_action: true '0xbc33acfffea1daa2': friendly_name: Guest Bedroom Lamp Right '0xbc33acfffea1e1c6': friendly_name: Living Room Sofa Left state_action: true '0xbc33acfffebcb527': friendly_name: Bedroom Lamp Left '0xbc33acfffebd4750': friendly_name: Office Lamp state_action: true transition: 0 '0xccccccfffe924b3c': friendly_name: Guest Bedroom Remote legacy: false '0xd0cf5efffec7e1fb': friendly_name: Office Cabinets Inside '0xd0cf5efffed992d0': friendly_name: Repeater '0xec1bbdfffe9eed51': friendly_name: Dining Room Remote legacy: false '0xec1bbdfffedfbba3': friendly_name: Living Room Cabinets Front external_converters: [] frontend: port: 8099 groups: {} homeassistant: discovery_topic: homeassistant legacy_entity_attributes: false legacy_triggers: true status_topic: hass/status map_options: graphviz: colors: fill: coordinator: '#e04e5d' enddevice: '#fff8ce' router: '#4ea3e0' font: coordinator: '#ffffff' enddevice: '#000000' router: '#ffffff' line: active: '#009900' inactive: '#994444' mqtt: base_topic: zigbee2mqtt force_disable_retain: false include_device_information: false server: mqtt://core-mosquitto:1883 user: addons ota: disable_automatic_update_check: false update_check_interval: 1440 passlist: [] permit_join: false serial: disable_led: false port: tcp://192.168.10.35:8080 config_schema: definitions: device: properties: debounce: description: Debounces messages of this device title: Debounce type: number debounce_ignore: description: >- Protects unique payload values of specified payload properties from overriding within debounce time examples: - action items: type: string title: Ignore debounce type: array disabled: description: >- Disables the device (excludes device from network scans, availability and group state updates) requiresRestart: true title: Disabled type: boolean filtered_attributes: description: Filter attributes with regex from published payload. examples: - ^temperature$ - ^battery$ - ^action$ items: type: string title: Filtered publish attributes type: array filtered_cache: description: >- Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change. examples: - ^input_actions$ items: type: string title: Filtered attributes from cache type: array filtered_optimistic: description: >- Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false). examples: - ^color_(mode|temp)$ - color items: type: string title: Filtered optimistic attributes type: array friendly_name: description: Used in the MQTT topic of a device. By default this is the device ID readOnly: true title: Friendly name type: string homeassistant: properties: name: description: Name of the device in Home Assistant title: Home Assistant name type: string title: Home Assistant type: - object - 'null' icon: description: >- The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) (you cannot use a path to a local file) or base64 encoded data URL (e.g. image/svg+xml;base64,PHN2ZyB3aW....R0aD) title: Icon type: string optimistic: default: true description: Publish optimistic state after set title: Optimistic type: boolean qos: description: QoS level for MQTT messages of this device title: QoS type: number retain: description: Retain MQTT messages of this device title: Retain type: boolean retention: description: >- Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5 title: Retention type: number required: - friendly_name type: object group: properties: devices: items: type: string type: array filtered_attributes: items: type: string type: array friendly_name: type: string off_state: default: auto description: >- Control when to publish state OFF for a group. 'all_members_off': only publish state OFF when all group members are in state OFF, 'last_member_state': publish state OFF whenever one of its members changes to OFF enum: - all_members_off - last_member_state requiresRestart: true title: Group off state type: - string optimistic: type: boolean qos: type: number retain: type: boolean required: - friendly_name type: object properties: advanced: properties: adapter_concurrent: description: >- Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value) requiresRestart: true title: Adapter concurrency type: - number - 'null' adapter_delay: description: Adapter delay requiresRestart: true title: Adapter delay type: - number - 'null' cache_state: default: true description: >- MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant title: Cache state type: boolean cache_state_persistent: default: true description: 'Persist cached state, only used when cache_state: true' title: Persist cache state type: boolean cache_state_send_on_startup: default: true description: 'Send cached state on startup, only used when cache_state: true' title: Send cached state on startup type: boolean channel: default: 11 description: >- Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems) examples: - 15 - 20 - 25 maximum: 26 minimum: 11 requiresRestart: true title: ZigBee channel type: number elapsed: default: false description: >- Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg title: Elapsed type: boolean ext_pan_id: description: Zigbee extended pan ID, changing requires repairing all devices! oneOf: - title: Extended pan ID (string) type: string - items: type: number title: Extended pan ID (array) type: array requiresRestart: true title: Ext Pan ID last_seen: default: disable description: >- Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message enum: - disable - ISO_8601 - ISO_8601_local - epoch title: Last seen type: string legacy_api: default: true description: Disables the legacy api (false = disable) requiresRestart: true title: Legacy API type: boolean legacy_availability_payload: default: true description: >- Payload to be used for device availability and bridge/state topics. true = text, false = JSON requiresRestart: true title: Legacy availability payload type: boolean log_directory: description: Location of log directory examples: - data/log/%TIMESTAMP% requiresRestart: true title: Log directory type: string log_file: default: log.txt description: Log file name, can also contain timestamp examples: - zigbee2mqtt_%TIMESTAMP%.log requiresRestart: true title: Log file type: string log_level: default: info description: Logging level enum: - info - warn - error - debug title: Log level type: string log_output: description: Output location of the log, leave empty to suppress logging items: enum: - console - file - syslog type: string requiresRestart: true title: Log output type: array log_rotation: default: true description: Log rotation requiresRestart: true title: Log rotation type: boolean log_symlink_current: default: false description: Create symlink to current logs in the log directory requiresRestart: true title: Log symlink current type: boolean log_syslog: properties: app_name: default: Zigbee2MQTT description: 'The name of the application (Default: Zigbee2MQTT).' title: Localhost type: string eol: default: /n description: >- The end of line character to be added to the end of the message (Default: Message without modifications). title: eol type: string host: default: localhost description: The host running syslogd, defaults to localhost. title: Host type: string localhost: default: localhost description: >- Host to indicate that log messages are coming from (Default: localhost). title: Localhost type: string path: default: /dev/log description: >- The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X). examples: - /var/run/syslog title: Path type: string pid: default: process.pid description: >- PID of the process that log messages are coming from (Default process.pid). title: PID type: string port: default: 514 description: >- The port on the host that syslog is running on, defaults to syslogd's default port. title: Port type: number protocol: default: udp4 description: >- The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc). examples: - udp4 - tls4 - unix - unix-connect title: Protocol type: string type: default: '5424' description: >- The type of the syslog protocol to use (Default: BSD, also valid: 5424). title: Type type: string title: syslog type: object network_key: description: Network encryption key, changing requires repairing all devices! oneOf: - title: Network key(string) type: string - items: type: number title: Network key(array) type: array requiresRestart: true title: Network key output: description: >- Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{"state": "ON"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above) enum: - attribute_and_json - attribute - json title: MQTT output type type: string pan_id: description: ZigBee pan ID, changing requires repairing all devices! oneOf: - title: Pan ID (string) type: string - title: Pan ID (number) type: number requiresRestart: true title: Pan ID timestamp_format: description: Log timestamp format examples: - YYYY-MM-DD HH:mm:ss requiresRestart: true title: Timestamp format type: string transmit_power: description: >- Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default) requiresRestart: true title: Transmit power type: - number - 'null' title: Advanced type: object availability: description: Checks whether devices are online/offline oneOf: - title: Availability (simple) type: boolean - properties: active: description: Options for active devices (routers/mains powered) properties: timeout: default: 10 description: >- Time after which an active device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Active type: object passive: description: Options for passive devices (mostly battery powered) properties: timeout: default: 1500 description: >- Time after which an passive device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Passive type: object title: Availability (advanced) type: object requiresRestart: true title: Availability ban: items: type: string readOnly: true requiresRestart: true title: Ban (deprecated, use blocklist) type: array blocklist: description: Block devices from the network (by ieeeAddr) items: type: string requiresRestart: true title: Blocklist type: array device_options: title: Options that are applied to all devices type: object devices: patternProperties: ^.*$: $ref: '#/definitions/device' propertyNames: pattern: ^0x[\d\w]{16}$ type: object external_converters: description: You can define external converters to e.g. add support for a DiY device examples: - DIYRuZ_FreePad.js items: type: string requiresRestart: true title: External converters type: array frontend: oneOf: - title: Frontend (simple) type: boolean - properties: auth_token: description: Enables authentication, disabled by default requiresRestart: true title: Auth token type: - string - 'null' host: description: >- Frontend binding host. Binds to a unix socket when an absolute path is given instead. examples: - 127.0.0.1 - '::1' - /run/zigbee2mqtt/zigbee2mqtt.sock requiresRestart: true title: Bind host type: - string - 'null' port: default: 8080 description: Frontend binding port. Ignored when using a unix domain socket requiresRestart: true title: Port type: number ssl_cert: description: >- SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated. requiresRestart: true title: Certificate file path type: - string - 'null' ssl_key: description: >- SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated. requiresRestart: true title: key file path type: - string - 'null' url: description: >- URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page requiresRestart: true title: URL type: - string - 'null' title: Frontend (advanced) type: object requiresRestart: true title: Frontend groups: patternProperties: ^.*$: $ref: '#/definitions/group' propertyNames: pattern: ^[\w].*$ type: object homeassistant: default: false description: Home Assistant integration (MQTT discovery) oneOf: - title: Home Assistant (simple) type: boolean - properties: discovery_topic: description: Home Assistant discovery topic examples: - homeassistant requiresRestart: true title: Homeassistant discovery topic type: string legacy_entity_attributes: default: true description: >- Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates title: Home Assistant legacy entity attributes type: boolean legacy_triggers: default: true description: >- Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd title: Home Assistant legacy triggers type: boolean status_topic: description: Home Assistant status topic examples: - homeassistant/status requiresRestart: true title: Home Assistant status topic type: string title: Home Assistant (advanced) type: object requiresRestart: true title: Home Assistant integration map_options: properties: graphviz: properties: colors: properties: fill: properties: coordinator: type: string enddevice: type: string router: type: string type: object font: properties: coordinator: type: string enddevice: type: string router: type: string type: object line: properties: active: type: string inactive: type: string type: object type: object type: object title: Networkmap type: object mqtt: properties: base_topic: default: zigbee2mqtt description: MQTT base topic for Zigbee2MQTT MQTT messages examples: - zigbee2mqtt requiresRestart: true title: Base topic type: string ca: description: >- Absolute path to SSL/TLS certificate of CA used to sign server and client certificates examples: - /etc/ssl/mqtt-ca.crt requiresRestart: true title: Certificate authority type: string cert: description: Absolute path to SSL/TLS certificate for client-authentication examples: - /etc/ssl/mqtt-client.crt requiresRestart: true title: SSL/TLS certificate type: string client_id: description: MQTT client ID examples: - MY_CLIENT_ID requiresRestart: true title: Client ID type: string force_disable_retain: default: false description: >- Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration requiresRestart: true title: Force disable retain type: boolean include_device_information: default: false description: Include device information to mqtt messages title: Include device information type: boolean keepalive: default: 60 description: MQTT keepalive in second requiresRestart: true title: Keepalive type: number key: description: Absolute path to SSL/TLS key for client-authentication examples: - /etc/ssl/mqtt-client.key requiresRestart: true title: SSL/TLS key type: string password: description: MQTT server authentication password examples: - ILOVEPELMENI requiresRestart: true title: Password type: string reject_unauthorized: default: true description: Disable self-signed SSL certificate requiresRestart: true title: Reject unauthorized type: boolean server: description: MQTT server URL (use mqtts:// for SSL/TLS connection) examples: - mqtt://localhost:1883 requiresRestart: true title: MQTT server type: string user: description: MQTT server authentication user examples: - johnnysilverhand requiresRestart: true title: User type: string version: default: 4 description: MQTT protocol version examples: - 5 requiresRestart: true title: Version type: - number - 'null' required: - server title: MQTT type: object ota: properties: disable_automatic_update_check: default: false description: >- Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually. title: Disable automatic update check type: boolean ikea_ota_use_test_url: default: false description: Use IKEA TRADFRI OTA test server, see OTA updates documentation requiresRestart: true title: IKEA TRADFRI OTA use test url type: boolean update_check_interval: default: 1440 description: >- Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day. title: Update check interval type: number zigbee_ota_override_index_location: description: Location of override OTA index file examples: - index.json requiresRestart: true title: OTA index override file name type: - string - 'null' title: OTA updates type: object passlist: description: >- Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network! items: type: string requiresRestart: true title: Passlist type: array permit_join: default: false description: Allow new devices to join (re-applied at restart) title: Permit join type: boolean serial: properties: adapter: default: auto description: Adapter type, not needed unless you are experiencing problems enum: - deconz - zstack - zigate - ezsp - auto requiresRestart: true title: Adapter type: - string baudrate: description: >- Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600 examples: - 38400 - 57600 - 115200 requiresRestart: true title: Baudrate type: number disable_led: default: false description: Disable LED of the adapter if supported requiresRestart: true title: Disable led type: boolean port: description: Location of the adapter. To autodetect the port, set null examples: - /dev/ttyACM0 requiresRestart: true title: Port type: - string - 'null' rtscts: description: RTS / CTS Hardware Flow Control for serial port requiresRestart: true title: RTS / CTS type: boolean title: Serial type: object whitelist: items: type: string readOnly: true requiresRestart: true title: Whitelist (deprecated, use passlist) type: array required: - mqtt type: object coordinator: ieee_address: '0x00124b00257cb246' meta: maintrel: 1 majorrel: 2 minorrel: 7 product: 1 revision: 20221226 transportrev: 2 type: zStack3x0 log_level: warn network: channel: 15 extended_pan_id: '0x00124b0024c8d7bb' pan_id: 6754 permit_join: false restart_required: false version: 1.35.3 zigbee_herdsman: version: 0.33.8 zigbee_herdsman_converters: version: 18.28.3 Received 15:39:25 QoS: 0 Payload: commit: unknown config: advanced: adapter_concurrent: null adapter_delay: null availability_blacklist: [] availability_blocklist: [] availability_passlist: [] availability_whitelist: [] cache_state: true cache_state_persistent: true cache_state_send_on_startup: true channel: 15 elapsed: false ext_pan_id: - 221 - 221 - 221 - 221 - 221 - 221 - 221 - 221 homeassistant_legacy_entity_attributes: false last_seen: ISO_8601 legacy_api: false legacy_availability_payload: false log_directory: /config/zigbee2mqtt/log/%TIMESTAMP% log_file: log.txt log_level: info log_output: - console - file log_rotation: true log_symlink_current: false log_syslog: app_name: Zigbee2MQTT eol: /n host: localhost localhost: localhost path: /dev/log pid: process.pid port: 123 protocol: tcp4 type: '5424' output: json pan_id: 6754 report: false soft_reset_timeout: 0 timestamp_format: YYYY-MM-DD HH:mm:ss availability: {} blocklist: [] device_options: legacy: false devices: '0x000b57fffe13967e': friendly_name: '0x000b57fffe13967e' '0x000b57fffe27203b': friendly_name: Dining Room Lamp Right '0x000b57fffe38a445': friendly_name: Test Remote legacy: false '0x000b57fffe51eb27': friendly_name: Dining Room 2 state_action: false '0x000b57fffe520a0e': friendly_name: Outside 1 Up '0x000b57fffe8473b8': friendly_name: Outside 2 Up '0x000b57fffe8edae5': friendly_name: Kitchen Motion Sensor 2 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffe978d3f': friendly_name: Dining Room Lamp Left '0x000b57fffe9bad09': friendly_name: Kitchen Motion Sensor 1 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x000b57fffeaffb7b': friendly_name: Outside 4 Up '0x000b57fffeb19864': friendly_name: Outside 4 Down '0x000b57fffeb829ec': friendly_name: Dining Room 3 '0x000b57fffebdce17': friendly_name: Dining Room 1 '0x000b57fffebed036': friendly_name: Outside 3 Down '0x000b57fffebefcf4': friendly_name: Outside 5 Down '0x000b57fffebf28bc': friendly_name: Outside 3 Up '0x000b57fffebfd68d': friendly_name: Dining Room 4 '0x000b57fffef3701e': friendly_name: Bedroom Remote legacy: false '0x000d6ffffe9c3ea8': friendly_name: '0x000d6ffffe9c3ea8' legacy: false '0x000d6ffffea20000': friendly_name: '0x000d6ffffea20000' legacy: false '0x000d6ffffec3aef6': friendly_name: Living Room Cabinets Inside '0x1c34f1fffe7b15b8': friendly_name: Office Wall Lamp state_action: true '0x588e81fffe6c99fd': friendly_name: Office Cabinets Front homeassistant: name: Office Cabinets Front legacy: false optimistic: true '0x588e81fffe76d0ad': friendly_name: Kitchen Cabinet '0x588e81fffe787201': friendly_name: Spare '0x60a423fffeadc632': friendly_name: 'Bedroom Bedside Remote ' legacy: true '0x60a423fffece99ad': friendly_name: Hallway Motion Sensor 99ad illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef24b3b': friendly_name: Motion 4b3b illuminance_below_threshold_check: true occupancy_timeout: 90 '0x60a423fffef26f3c': friendly_name: Kitchen Motion Sensor 3 illuminance_below_threshold_check: true occupancy_timeout: 180 '0x6c5cb1fffe6730c8': friendly_name: '0x6c5cb1fffe6730c8' '0x70ac08fffeee86c6': friendly_name: Guest Bedroom Lamp Left '0x804b50fffeef7a46': friendly_name: Kitchen Lights Remote legacy: false '0x842e14fffe422e7a': friendly_name: Living Room Remote Control legacy: false '0x842e14fffe605be8': friendly_name: Outside 2 Down '0x842e14fffe7f1823': friendly_name: Kitchen Counter '0x943469fffe5fb1a8': friendly_name: Outside 1 Down state_action: true '0xa4c1382cc73f5d09': friendly_name: Parcel Box '0xa4c1383ed970356b': friendly_name: 'Garage Door Sensor ' '0xa4c1387ab3af9d49': friendly_name: Back Door Sensor '0xa4c138fdb6272825': friendly_name: 'Front Door Sensor ' '0xb4e3f9fffef34402': friendly_name: Office Remote Control legacy: false '0xbc33acfffe3025ec': friendly_name: Kitchen Under Counter '0xbc33acfffe98c391': friendly_name: Bedroom Lamp Right '0xbc33acfffe9e1f16': friendly_name: Living Room Sofa Right state_action: true '0xbc33acfffea1daa2': friendly_name: Guest Bedroom Lamp Right '0xbc33acfffea1e1c6': friendly_name: Living Room Sofa Left state_action: true '0xbc33acfffebcb527': friendly_name: Bedroom Lamp Left '0xbc33acfffebd4750': friendly_name: Office Lamp state_action: true transition: 0 '0xccccccfffe924b3c': friendly_name: Guest Bedroom Remote legacy: false '0xd0cf5efffec7e1fb': friendly_name: Office Cabinets Inside '0xd0cf5efffed992d0': friendly_name: Repeater '0xec1bbdfffe9eed51': friendly_name: Dining Room Remote legacy: false '0xec1bbdfffedfbba3': friendly_name: Living Room Cabinets Front external_converters: [] frontend: port: 8099 groups: {} homeassistant: discovery_topic: homeassistant legacy_entity_attributes: false legacy_triggers: true status_topic: hass/status map_options: graphviz: colors: fill: coordinator: '#e04e5d' enddevice: '#fff8ce' router: '#4ea3e0' font: coordinator: '#ffffff' enddevice: '#000000' router: '#ffffff' line: active: '#009900' inactive: '#994444' mqtt: base_topic: zigbee2mqtt force_disable_retain: false include_device_information: false server: mqtt://core-mosquitto:1883 user: addons ota: disable_automatic_update_check: false update_check_interval: 1440 passlist: [] permit_join: false serial: disable_led: false port: tcp://192.168.10.35:8080 config_schema: definitions: device: properties: debounce: description: Debounces messages of this device title: Debounce type: number debounce_ignore: description: >- Protects unique payload values of specified payload properties from overriding within debounce time examples: - action items: type: string title: Ignore debounce type: array disabled: description: >- Disables the device (excludes device from network scans, availability and group state updates) requiresRestart: true title: Disabled type: boolean filtered_attributes: description: Filter attributes with regex from published payload. examples: - ^temperature$ - ^battery$ - ^action$ items: type: string title: Filtered publish attributes type: array filtered_cache: description: >- Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change. examples: - ^input_actions$ items: type: string title: Filtered attributes from cache type: array filtered_optimistic: description: >- Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false). examples: - ^color_(mode|temp)$ - color items: type: string title: Filtered optimistic attributes type: array friendly_name: description: Used in the MQTT topic of a device. By default this is the device ID readOnly: true title: Friendly name type: string homeassistant: properties: name: description: Name of the device in Home Assistant title: Home Assistant name type: string title: Home Assistant type: - object - 'null' icon: description: >- The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) (you cannot use a path to a local file) or base64 encoded data URL (e.g. image/svg+xml;base64,PHN2ZyB3aW....R0aD) title: Icon type: string optimistic: default: true description: Publish optimistic state after set title: Optimistic type: boolean qos: description: QoS level for MQTT messages of this device title: QoS type: number retain: description: Retain MQTT messages of this device title: Retain type: boolean retention: description: >- Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5 title: Retention type: number required: - friendly_name type: object group: properties: devices: items: type: string type: array filtered_attributes: items: type: string type: array friendly_name: type: string off_state: default: auto description: >- Control when to publish state OFF for a group. 'all_members_off': only publish state OFF when all group members are in state OFF, 'last_member_state': publish state OFF whenever one of its members changes to OFF enum: - all_members_off - last_member_state requiresRestart: true title: Group off state type: - string optimistic: type: boolean qos: type: number retain: type: boolean required: - friendly_name type: object properties: advanced: properties: adapter_concurrent: description: >- Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value) requiresRestart: true title: Adapter concurrency type: - number - 'null' adapter_delay: description: Adapter delay requiresRestart: true title: Adapter delay type: - number - 'null' cache_state: default: true description: >- MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant title: Cache state type: boolean cache_state_persistent: default: true description: 'Persist cached state, only used when cache_state: true' title: Persist cache state type: boolean cache_state_send_on_startup: default: true description: 'Send cached state on startup, only used when cache_state: true' title: Send cached state on startup type: boolean channel: default: 11 description: >- Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems) examples: - 15 - 20 - 25 maximum: 26 minimum: 11 requiresRestart: true title: ZigBee channel type: number elapsed: default: false description: >- Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg title: Elapsed type: boolean ext_pan_id: description: Zigbee extended pan ID, changing requires repairing all devices! oneOf: - title: Extended pan ID (string) type: string - items: type: number title: Extended pan ID (array) type: array requiresRestart: true title: Ext Pan ID last_seen: default: disable description: >- Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message enum: - disable - ISO_8601 - ISO_8601_local - epoch title: Last seen type: string legacy_api: default: true description: Disables the legacy api (false = disable) requiresRestart: true title: Legacy API type: boolean legacy_availability_payload: default: true description: >- Payload to be used for device availability and bridge/state topics. true = text, false = JSON requiresRestart: true title: Legacy availability payload type: boolean log_directory: description: Location of log directory examples: - data/log/%TIMESTAMP% requiresRestart: true title: Log directory type: string log_file: default: log.txt description: Log file name, can also contain timestamp examples: - zigbee2mqtt_%TIMESTAMP%.log requiresRestart: true title: Log file type: string log_level: default: info description: Logging level enum: - info - warn - error - debug title: Log level type: string log_output: description: Output location of the log, leave empty to suppress logging items: enum: - console - file - syslog type: string requiresRestart: true title: Log output type: array log_rotation: default: true description: Log rotation requiresRestart: true title: Log rotation type: boolean log_symlink_current: default: false description: Create symlink to current logs in the log directory requiresRestart: true title: Log symlink current type: boolean log_syslog: properties: app_name: default: Zigbee2MQTT description: 'The name of the application (Default: Zigbee2MQTT).' title: Localhost type: string eol: default: /n description: >- The end of line character to be added to the end of the message (Default: Message without modifications). title: eol type: string host: default: localhost description: The host running syslogd, defaults to localhost. title: Host type: string localhost: default: localhost description: >- Host to indicate that log messages are coming from (Default: localhost). title: Localhost type: string path: default: /dev/log description: >- The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X). examples: - /var/run/syslog title: Path type: string pid: default: process.pid description: >- PID of the process that log messages are coming from (Default process.pid). title: PID type: string port: default: 514 description: >- The port on the host that syslog is running on, defaults to syslogd's default port. title: Port type: number protocol: default: udp4 description: >- The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc). examples: - udp4 - tls4 - unix - unix-connect title: Protocol type: string type: default: '5424' description: >- The type of the syslog protocol to use (Default: BSD, also valid: 5424). title: Type type: string title: syslog type: object network_key: description: Network encryption key, changing requires repairing all devices! oneOf: - title: Network key(string) type: string - items: type: number title: Network key(array) type: array requiresRestart: true title: Network key output: description: >- Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{"state": "ON"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above) enum: - attribute_and_json - attribute - json title: MQTT output type type: string pan_id: description: ZigBee pan ID, changing requires repairing all devices! oneOf: - title: Pan ID (string) type: string - title: Pan ID (number) type: number requiresRestart: true title: Pan ID timestamp_format: description: Log timestamp format examples: - YYYY-MM-DD HH:mm:ss requiresRestart: true title: Timestamp format type: string transmit_power: description: >- Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default) requiresRestart: true title: Transmit power type: - number - 'null' title: Advanced type: object availability: description: Checks whether devices are online/offline oneOf: - title: Availability (simple) type: boolean - properties: active: description: Options for active devices (routers/mains powered) properties: timeout: default: 10 description: >- Time after which an active device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Active type: object passive: description: Options for passive devices (mostly battery powered) properties: timeout: default: 1500 description: >- Time after which an passive device will be marked as offline in minutes requiresRestart: true title: Timeout type: number requiresRestart: true title: Passive type: object title: Availability (advanced) type: object requiresRestart: true title: Availability ban: items: type: string readOnly: true requiresRestart: true title: Ban (deprecated, use blocklist) type: array blocklist: description: Block devices from the network (by ieeeAddr) items: type: string requiresRestart: true title: Blocklist type: array device_options: title: Options that are applied to all devices type: object devices: patternProperties: ^.*$: $ref: '#/definitions/device' propertyNames: pattern: ^0x[\d\w]{16}$ type: object external_converters: description: You can define external converters to e.g. add support for a DiY device examples: - DIYRuZ_FreePad.js items: type: string requiresRestart: true title: External converters type: array frontend: oneOf: - title: Frontend (simple) type: boolean - properties: auth_token: description: Enables authentication, disabled by default requiresRestart: true title: Auth token type: - string - 'null' host: description: >- Frontend binding host. Binds to a unix socket when an absolute path is given instead. examples: - 127.0.0.1 - '::1' - /run/zigbee2mqtt/zigbee2mqtt.sock requiresRestart: true title: Bind host type: - string - 'null' port: default: 8080 description: Frontend binding port. Ignored when using a unix domain socket requiresRestart: true title: Port type: number ssl_cert: description: >- SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated. requiresRestart: true title: Certificate file path type: - string - 'null' ssl_key: description: >- SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated. requiresRestart: true title: key file path type: - string - 'null' url: description: >- URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page requiresRestart: true title: URL type: - string - 'null' title: Frontend (advanced) type: object requiresRestart: true title: Frontend groups: patternProperties: ^.*$: $ref: '#/definitions/group' propertyNames: pattern: ^[\w].*$ type: object homeassistant: default: false description: Home Assistant integration (MQTT discovery) oneOf: - title: Home Assistant (simple) type: boolean - properties: discovery_topic: description: Home Assistant discovery topic examples: - homeassistant requiresRestart: true title: Homeassistant discovery topic type: string legacy_entity_attributes: default: true description: >- Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates title: Home Assistant legacy entity attributes type: boolean legacy_triggers: default: true description: >- Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd title: Home Assistant legacy triggers type: boolean status_topic: description: Home Assistant status topic examples: - homeassistant/status requiresRestart: true title: Home Assistant status topic type: string title: Home Assistant (advanced) type: object requiresRestart: true title: Home Assistant integration map_options: properties: graphviz: properties: colors: properties: fill: properties: coordinator: type: string enddevice: type: string router: type: string type: object font: properties: coordinator: type: string enddevice: type: string router: type: string type: object line: properties: active: type: string inactive: type: string type: object type: object type: object title: Networkmap type: object mqtt: properties: base_topic: default: zigbee2mqtt description: MQTT base topic for Zigbee2MQTT MQTT messages examples: - zigbee2mqtt requiresRestart: true title: Base topic type: string ca: description: >- Absolute path to SSL/TLS certificate of CA used to sign server and client certificates examples: - /etc/ssl/mqtt-ca.crt requiresRestart: true title: Certificate authority type: string cert: description: Absolute path to SSL/TLS certificate for client-authentication examples: - /etc/ssl/mqtt-client.crt requiresRestart: true title: SSL/TLS certificate type: string client_id: description: MQTT client ID examples: - MY_CLIENT_ID requiresRestart: true title: Client ID type: string force_disable_retain: default: false description: >- Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration requiresRestart: true title: Force disable retain type: boolean include_device_information: default: false description: Include device information to mqtt messages title: Include device information type: boolean keepalive: default: 60 description: MQTT keepalive in second requiresRestart: true title: Keepalive type: number key: description: Absolute path to SSL/TLS key for client-authentication examples: - /etc/ssl/mqtt-client.key requiresRestart: true title: SSL/TLS key type: string password: description: MQTT server authentication password examples: - ILOVEPELMENI requiresRestart: true title: Password type: string reject_unauthorized: default: true description: Disable self-signed SSL certificate requiresRestart: true title: Reject unauthorized type: boolean server: description: MQTT server URL (use mqtts:// for SSL/TLS connection) examples: - mqtt://localhost:1883 requiresRestart: true title: MQTT server type: string user: description: MQTT server authentication user examples: - johnnysilverhand requiresRestart: true title: User type: string version: default: 4 description: MQTT protocol version examples: - 5 requiresRestart: true title: Version type: - number - 'null' required: - server title: MQTT type: object ota: properties: disable_automatic_update_check: default: false description: >- Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually. title: Disable automatic update check type: boolean ikea_ota_use_test_url: default: false description: Use IKEA TRADFRI OTA test server, see OTA updates documentation requiresRestart: true title: IKEA TRADFRI OTA use test url type: boolean update_check_interval: default: 1440 description: >- Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day. title: Update check interval type: number zigbee_ota_override_index_location: description: Location of override OTA index file examples: - index.json requiresRestart: true title: OTA index override file name type: - string - 'null' title: OTA updates type: object passlist: description: >- Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network! items: type: string requiresRestart: true title: Passlist type: array permit_join: default: false description: Allow new devices to join (re-applied at restart) title: Permit join type: boolean serial: properties: adapter: default: auto description: Adapter type, not needed unless you are experiencing problems enum: - deconz - zstack - zigate - ezsp - auto requiresRestart: true title: Adapter type: - string baudrate: description: >- Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600 examples: - 38400 - 57600 - 115200 requiresRestart: true title: Baudrate type: number disable_led: default: false description: Disable LED of the adapter if supported requiresRestart: true title: Disable led type: boolean port: description: Location of the adapter. To autodetect the port, set null examples: - /dev/ttyACM0 requiresRestart: true title: Port type: - string - 'null' rtscts: description: RTS / CTS Hardware Flow Control for serial port requiresRestart: true title: RTS / CTS type: boolean title: Serial type: object whitelist: items: type: string readOnly: true requiresRestart: true title: Whitelist (deprecated, use passlist) type: array required: - mqtt type: object coordinator: ieee_address: '0x00124b00257cb246' meta: maintrel: 1 majorrel: 2 minorrel: 7 product: 1 revision: 20221226 transportrev: 2 type: zStack3x0 log_level: info network: channel: 15 extended_pan_id: '0x00124b0024c8d7bb' pan_id: 6754 permit_join: false restart_required: false version: 1.35.3 zigbee_herdsman: version: 0.33.8 zigbee_herdsman_converters: version: 18.28.3 Transmitted messages: Zigbee2MQTT Bridge Permit join timeout (sensor.zigbee2mqtt_bridge_permit_join_timeout) MQTT discovery data: Topic: homeassistant/sensor/1221051039810110150109113116116_0x00124b00257cb246/permit_join_timeout/config Payload Subscribed topics: zigbee2mqtt/bridge/state 1 most recently received message(s) zigbee2mqtt/bridge/info 5 most recently received message(s) Transmitted messages: Zigbee2MQTT Bridge Permit join (switch.zigbee2mqtt_bridge_permit_join) MQTT discovery data: Topic: homeassistant/switch/1221051039810110150109113116116_0x00124b00257cb246/permit_join/config Payload Subscribed topics: zigbee2mqtt/bridge/state 1 most recently received message(s) zigbee2mqtt/bridge/info 5 most recently received message(s) Transmitted messages: ```
Achronite commented 5 months ago
1. Add a `Shutdown Pi` button to controls - To command the Pi to shutdown before removing power, rather than having to remote into the Pi to shut it down.

I don't think it is a good idea, even if possible, to shutdown the O/S safely from within a running application.

2. Add a `Restart Pi` button (same as above) but restart.

(see above) + Maybe a restart of the application could be possible, by exiting it. The systemctrl service could restart it.

3. Add `Software Version` as a Diagnostic sensor.

Backlog; it is already shown in the device entry.

4. I'm not sure why the logbook on the right is not hyperlinking to the device. (See image example)

No idea how they did this; it has limited value anyway?

Anyways; I've just released this code for you to try. It doesn't need a newer energenie-ener314rt C code version.

genestealer commented 5 months ago

@Achronite Control Pi Power: Ah, yes it may have issues if it lacks sudo powers, I will have to create something else to do it. I used to have the option when I used the node-red version, which was handy to shutdown the Pi from my phone before unplugging the power cable.

Hyperlinking: No idea, I hoped the text I copied in the last comment may have helped shed some light on it. But the text may still be handy for referencing to as zigbee2mqtt is a huge project which uses MQTT discovery, so can pull on their examples.

New version to try, I assume this is the https://github.com/Achronite/mqtt-energenie-ener314rt/tree/develop

Achronite commented 5 months ago

New version to try, I assume this is the https://github.com/Achronite/mqtt-energenie-ener314rt/tree/develop

Yep

Updated the examples too, I decided on still grouping the ENER002s under 'ook' these can also be added. I kept the devices with multiple controls together, hence the '4 gang': image

genestealer commented 5 months ago

New version to try, I assume this is the https://github.com/Achronite/mqtt-energenie-ener314rt/tree/develop

Yep

Updated the examples too, I decided on still grouping the ENER002s under 'ook' these can also be added. I kept the devices with multiple controls together, hence the '4 gang': image

@Achronite can we set this OOK/4-gang naming/grouping convection via a boolean value in the config to avoid me having to keep a fork with the "vanilla style" home assistant architecture?

Achronite commented 5 months ago

Huh? It's only whats listed in the README and your own HA yaml files

genestealer commented 5 months ago

@Achronite Ops, sorry ignore me, I forgot we set the OOK/4-gang naming/grouping convection via manual YAML code and not via auto-discovery! No need for me to keep a fork.

So it's working great! Great work 😁 I can see the ENER314-RT Bridge on the MQTT Device list in Home Assistant

image

Achronite commented 5 months ago

It's hyper-linking on that screenshot... Did you restart HA?

genestealer commented 5 months ago

@Achronite No restart, but I am running the latest HA version. image image

Should the eTRV's show up at some point on the connected devices,

genestealer commented 5 months ago

@Achronite I was impatient, eTRV's are showing

image