Zigbee2mqtt как настроить отображение?
Разрабатываю чисто для себя кастомное устройство-поливалку с 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); },
Добавив вот этот код +пересоздав устройство - все заработало )
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для настройки отображения Zigbee2mqtt необходимо внести изменения в конфигурационный файл. В основном, отображение управляется с помощью файла configuration.yaml. Вот пример того, как можно настроить отображение в Zigbee2mqtt:
1. Откройте файл configuration.yaml с помощью текстового редактора.
2. Найдите раздел "frontend" в файле и добавьте следующий код:
frontend: devices: true groups: true
3. Сохраните изменения в файле и перезапустите сервис Zigbee2mqtt.
После этого вы увидите отображение устройств и групп в интерфейсе Zigbee2mqtt. Если вам нужно настроить отображение более детально, вы также можете использовать другие параметры в разделе "frontend" файла configuration.yaml.
Надеюсь, это поможет вам настроить отображение в Zigbee2mqtt. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.