Zigbee2mqtt как настроить отображение?

Ссылка скопирована
1 ответ

Разрабатываю чисто для себя кастомное устройство-поливалку с zigbee-подключением.
Прошивка пишется на ESP-IDF, подлючается к zigbee2mqtt, дальше у к homeassistant.

Собственно в чем затык. Устройство в z2m видно, определяется, конечно после написания экстеншна. Через дев-консоль z2m я могу получить параметры устройства (пока только температура). Однако в Exposes температура все время N/A (а значит и в HA она тоже не определена). ЧЯДНТ?

Код экстеншна для z2m:

const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const extend = require('zigbee-herdsman-converters/lib/extend'); const e = exposes.presets; const ea = exposes.access;  const yourTemperatureConverter = {     // This will be the key in the 'fromZigbee' and 'toZigbee' converters     cluster: 'msTemperatureMeasurement',     type: ['attributeReport', 'readResponse'],     convert: (model, msg, publish, options, meta) => {         const temperature = msg.data['measuredValue'];         // Convert temperature to Celsius if it's not already         const temperatureC = temperature / 100;                  // Return an object with the temperature property         return {temperature: temperatureC};     }, };  // Add your converter to the 'fromZigbee' converters fz.yourTemperatureConverter = yourTemperatureConverter.convert;  const definition = {     zigbeeModel: ['m1'],     model: 'm1',     vendor: 'm1',     description: 'My super switch!', 	supports: 'temperature,genBasic',  	fromZigbee: [fz.yourTemperatureConverter],                                                                                            toZigbee: [], 	exposes: [e.temperature()] };  module.exports = definition;

const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const extend = require('zigbee-herdsman-converters/lib/extend'); const e = exposes.presets; const ea = exposes.access; const yourTemperatureConverter = { // This will be the key in the 'fromZigbee' and 'toZigbee' converters cluster: 'msTemperatureMeasurement', type: ['attributeReport', 'readResponse'], convert: (model, msg, publish, options, meta) => { const temperature = msg.data['measuredValue']; // Convert temperature to Celsius if it's not already const temperatureC = temperature / 100; // Return an object with the temperature property return {temperature: temperatureC}; }, }; // Add your converter to the 'fromZigbee' converters fz.yourTemperatureConverter = yourTemperatureConverter.convert; const definition = { zigbeeModel: ['m1'], model: 'm1', vendor: 'm1', description: 'My super switch!', supports: 'temperature,genBasic', fromZigbee: [fz.yourTemperatureConverter], toZigbee: [], exposes: [e.temperature()] }; module.exports = definition;

Дополнительно:

configure: async (device, coordinatorEndpoint, logger) => {         const first_endpoint = device.getEndpoint(1);         await reporting.bind(first_endpoint, coordinatorEndpoint, ['genBasic', 'msTemperatureMeasurement']);          await reporting.temperature(first_endpoint);          },

configure: async (device, coordinatorEndpoint, logger) => { const first_endpoint = device.getEndpoint(1); await reporting.bind(first_endpoint, coordinatorEndpoint, ['genBasic', 'msTemperatureMeasurement']); await reporting.temperature(first_endpoint); },

Добавив вот этот код +пересоздав устройство - все заработало )

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Виктор Sys Ответ

Для настройки отображения Zigbee2mqtt необходимо внести изменения в конфигурационный файл. В основном, отображение управляется с помощью файла configuration.yaml. Вот пример того, как можно настроить отображение в Zigbee2mqtt:

1. Откройте файл configuration.yaml с помощью текстового редактора.
2. Найдите раздел "frontend" в файле и добавьте следующий код:

frontend:
  devices: true
  groups: true

frontend: devices: true groups: true

3. Сохраните изменения в файле и перезапустите сервис Zigbee2mqtt.

После этого вы увидите отображение устройств и групп в интерфейсе Zigbee2mqtt. Если вам нужно настроить отображение более детально, вы также можете использовать другие параметры в разделе "frontend" файла configuration.yaml.

Надеюсь, это поможет вам настроить отображение в Zigbee2mqtt. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно