# Не удается прочитать mqtt топики через симулятор панели weintek

**URL:** <https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111>\
**Category:** Без категории\
**Created:** [March 17, 2026, 5:45am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111 "2026-03-17T05:45:35Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![anna](https://avatars.discourse-cdn.com/v2/letter/a/779978/32.png) [@anna](https://support.wirenboard.com/u/anna)\
**Post date:** [March 17, 2026, 5:45am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/1 "2026-03-17T05:45:35Z")

</div>

Здравствуйте. Никак не получается получить значения топиков в панель wientek. Причем сопряжение работает. После привязки топика, при симуляции на панели нули.

 ![2026-03-17_08-43-59](https://support.wirenboard.com/uploads/default/original/3X/e/9/e97c59e3e0c5097a4c6a0026ee5f3b744aded2c4.png)

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [March 17, 2026, 6:13am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/3 "2026-03-17T06:13:19Z")

</div>

Добрый день.  
Если я понял правильно - то хотите подписаться на какой-то топик.  
Покажите пожалуйста результат подписки на этот топик, с компьютера, [например](https://wiki.wirenboard.com/wiki/MQTT#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B8_%D0%BD%D0%B0_MQTT-%D1%82%D0%BE%D0%BF%D0%B8%D0%BA%D0%B8).

---

<div class="post-metadata">

**Author:** ![anna](https://avatars.discourse-cdn.com/v2/letter/a/779978/32.png) [@anna](https://support.wirenboard.com/u/anna)\
**Post date:** [March 17, 2026, 6:56am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/4 "2026-03-17T06:56:56Z")

</div>

Вот на другой, тот уже изменила. Данный топик тоже не работает

mosquitto\_sub -t /devices/hwmon/controls/CPU\ Temperature -v  
/devices/hwmon/controls/CPU Temperature 60.342

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [March 17, 2026, 7:05am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/5 "2026-03-17T07:05:16Z")

</div>

> [@anna](#):
>
> Данный топик тоже не работает

Так, я вижу что на топик вы подписываетесь успешно, получаете результаты? Что не работает?

---

<div class="post-metadata">

**Author:** ![anna](https://avatars.discourse-cdn.com/v2/letter/a/779978/32.png) [@anna](https://support.wirenboard.com/u/anna)\
**Post date:** [March 17, 2026, 7:08am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/6 "2026-03-17T07:08:33Z")

</div>

Эти данные не приходят на панель wientek. Вмсто данных приходят нули

---

<div class="post-metadata">

**Author:** ![anna](https://avatars.discourse-cdn.com/v2/letter/a/779978/32.png) [@anna](https://support.wirenboard.com/u/anna)\
**Post date:** [March 17, 2026, 7:30am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/7 "2026-03-17T07:30:44Z")

</div>

Где то читала в обсуждениях, что сырые данные wientek у wirenboard не принимает. Как конвертировать данные в json? Читала такую стать [Особенности реализации JSON-editor в Wirenboard — Wiren Board](https://wiki.wirenboard.com/wiki/JSON-editor-Wirenboard-Implementation-Features) , но в GUI отменили такую возможность. Глубоко в код в консоли лезть не хочется

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [March 17, 2026, 7:34am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/8 "2026-03-17T07:34:11Z")

</div>

Хм, довольно интересно. А посмотрите, для проверки, что публикует сама “панель” в топик.  
То есть создайте топик предполагаемого формата и опубликуйте в него значение - что фактически будет публиковаться? То есть предлагаю проверить гипотезу о том что нужен какой-то специфический формат значения.  
Ну и полезно глянуть в лог mosquitto, сама “панель” подключается как клиент?

---

<div class="post-metadata">

**Author:** ![bmurat](https://avatars.discourse-cdn.com/v2/letter/b/7ea924/32.png) [@bmurat](https://support.wirenboard.com/u/bmurat)\
**Post date:** [March 17, 2026, 7:56am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/9 "2026-03-17T07:56:57Z")

</div>

> [@BrainRoot](#):
>
> Хм, довольно интересно. А посмотрите, для проверки, что публикует сама “панель” в топик.

Тоже задался этим вопрос. Получается на сегодня только через wb-lules можно работать с MQTT weintek.

Weintek не принимает сырые данные, только JSON. Причем с JSON он работает как хочешь, вплоть до сложных вложений. Почему WB не умеет MQTT JSON из коробки?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [March 17, 2026, 9:17am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/10 "2026-03-17T09:17:17Z")

</div>

> [@bmurat](#):
>
> Почему WB не умеет MQTT JSON из коробки?

Почему это не умеет? Вполне, вот так, например:

```auto
log.info("Light2HA: запуск");

var HA_BASE = "homeassistant";

/**
 * Регистрирует источник света в Home Assistant через MQTT Discovery.
 *
 * Маршруты синхронизации:
 * HA → Контроллер:
 * HA публикует "1"/"0" в command_topic (/devices/.../controls/.../on).
 * WirenBoard обрабатывает это нативно и обновляет состояние устройства.
 * Правило ha2wb_* перехватывает смену состояния и позволяет добавить логику.
 *
 * Контроллер → HA:
 * Правило wb2ha_* следит за топиком WB и публикует состояние в state_topic.
 * HA читает state_topic и отображает актуальное состояние.
 *
 * @param {string} lightName - Отображаемое имя в Home Assistant
 * @param {string} wbTopic - Топик WB в формате "устройство/контрол"
 * Например: "wb-gpio/EXT1_R3A"
 * @param {string} uniqueId - Уникальный ID (только латиница, цифры, _)
 * @param {string} [suggestedArea] - Рекомендуемая зона/помещение в HA (опционально)
 */
function registerLight(lightName, wbTopic, uniqueId, suggestedArea) {
  var parts = wbTopic.split("/");
  var device = parts[0];
  var control = parts[1];

  // MQTT-пути WirenBoard
  var wbStatePath = "/devices/" + device + "/controls/" + control;
  var wbCommandPath = wbStatePath + "/on";
  var wbErrorCell = wbTopic + "#error";

  // Топики Home Assistant
  var haAvailTopic = HA_BASE + "/light/" + uniqueId + "/availability";
  var haConfigTopic = HA_BASE + "/light/" + uniqueId + "/config";

  // --- 1. MQTT Discovery ---
  // Используем нативные пути WB: HA читает и пишет напрямую в MQTT-брокер контроллера.
  var config = {
    name: lightName,
    command_topic: wbCommandPath, // HA пишет "1" или "0" сюда
    state_topic: wbStatePath, // HA читает актуальное состояние отсюда
    payload_on: "1",
    payload_off: "0",
    state_on: "1",
    state_off: "0",
    availability_topic: haAvailTopic,
    unique_id: uniqueId,
    device: {
      identifiers: [uniqueId],
      name: lightName,
      manufacturer: "WirenBoard",
      model: "MQTT Light"
    }
  };

  // suggested_area добавляем только если параметр задан и не пустой
  if (typeof suggestedArea === "string" && suggestedArea.trim() !== "") {
    config.device.suggested_area = suggestedArea.trim();
  }

  // Публикует availability по содержимому meta/error:
  // пусто -> online, непусто -> offline
  function publishAvailability(errorValue) {
    var hasError = (errorValue !== undefined &&
                    errorValue !== null &&
                    String(errorValue).trim() !== "");
    publish(haAvailTopic, hasError ? "offline" : "online", 1, true);
  }

  // retain=true гарантирует, что HA получит конфиг и доступность при переподключении
  publish(haConfigTopic, JSON.stringify(config), 1, true);
  publishAvailability(dev[wbErrorCell]);

  log.info("Light2HA: зарегистрирован [" + lightName + "]" +
           " | WB: " + wbTopic +
           " | HA id: " + uniqueId);

  // --- 2. Контроллер → HA: availability по meta/error ---
  defineRule("wb2ha_avail_" + uniqueId, {
    whenChanged: wbErrorCell,
    then: function (newError) {
      publishAvailability(newError);
      if (newError !== undefined && newError !== null && String(newError).trim() !== "") {
        log.warning("Light2HA: [availability] " + lightName + " -> offline | error: " + newError);
      } else {
        log.info("Light2HA: [availability] " + lightName + " -> online");
      }
    }
  });

  // --- 3. Контроллер → HA: при изменении состояния на WB ---
  // Срабатывает при любом изменении: физический выключатель, автоматизация WB,
  // а также как результат команды от HA (после обработки WB).
  defineRule("wb2ha_light_" + uniqueId, {
    whenChanged: wbTopic,
    then: function (newValue, devName, cellName) {
      var state = newValue ? "1" : "0";
      log.debug("Light2HA [wb→ha] " + lightName + " = " + state);
      // Публикуем явно — на случай, если HA потерял retain-сообщение
      publish(wbStatePath, state, 0, true);
    }
  });

  // --- 4. HA → Контроллер: при получении команды от HA ---
  // HA пишет в wbCommandPath (/on), WB обрабатывает нативно.
  // Правило добавляем для кастомной логики (логирование, сцены и т.п.).
  defineRule("ha2wb_light_" + uniqueId, {
    whenChanged: wbTopic,
    then: function (newValue, devName, cellName) {
      log.debug("Light2HA [ha→wb] " + lightName +
                " | устройство: " + devName +
                " | канал: " + cellName +
                " | значение: " + newValue);
      // Место для дополнительной логики: сцены, уведомления, зависимые устройства
    }
  });

  // Публикуем текущее состояние сразу при запуске скрипта
  publish(wbStatePath, dev[wbTopic] ? "1" : "0", 0, true);
}

// ============================================================
// Регистрация источников света
// Формат: registerLight("Название в HA", "устройство/канал", "уникальный_id", "помещение")
// "устройство/канал" — как в топике /devices/{устройство}/controls/{канал}
// ============================================================

// registerLight("Свет в коридоре", "wb-gpio/EXT1_R3A", "light_corridor");
// registerLight("Свет на кухне", "wb-gpio/EXT1_R3B", "light_kitchen");
// registerLight("Подсветка", "wb-gpio/EXT2_R1A", "light_backlight");
registerLight("свет", "2fl_light_0/K5", "WorkChamber", "Кабинет");
registerLight("свет", "2fl_light_0/K6", "Bedroom_light", "Спальня");
registerLight("свет", "2fl_light_0/K6", "Storage_light", "Кладовка");

```

Тут интересно `publish(haConfigTopic, JSON.stringify(config), 1, true);` - как раз публикация json в указанный топик.  
То есть все необходимые инструменты, включая методы объект-\>json ну и json-\>объект есть.

---

<div class="post-metadata">

**Author:** ![bmurat](https://avatars.discourse-cdn.com/v2/letter/b/7ea924/32.png) [@bmurat](https://support.wirenboard.com/u/bmurat)\
**Post date:** [March 17, 2026, 9:18am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/11 "2026-03-17T09:18:22Z")

</div>

> [@BrainRoot](#):
>
> То есть создайте топик предполагаемого формата и опубликуйте в него значение - что фактически будет публиковаться? То есть предлагаю проверить гипотезу о том что нужен какой-то специфический формат значения.

Проходили уже. Weintek в сырых данных публикует непонятно что:

~# mosquitto\_sub -v -t ‘cMT3072x/test’ -C 5  
cMT3072x/test

cMT3072x/test  
cMT3072x/test ▒  
cMT3072x/test ▒  
cMT3072x/test ▒

Для чего производитель сделал работу с сырыми данными я так и не понял.

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [March 17, 2026, 9:36am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/12 "2026-03-17T09:36:38Z")

</div>

А, то есть при настройке не стоит использовать “сырые”?  
Насколько я понимаю - публикует просто байт в этом случае?  
Никогда не щупал такие панели. Как по мне проще и лучше копеечные на OpenHasp.  
А если не “сырые” - то json нужен?

---

<div class="post-metadata">

**Author:** ![bmurat](https://avatars.discourse-cdn.com/v2/letter/b/7ea924/32.png) [@bmurat](https://support.wirenboard.com/u/bmurat)\
**Post date:** [March 17, 2026, 9:39am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/13 "2026-03-17T09:39:28Z")

</div>

> [@BrainRoot](#):
>
> Почему это не умеет? Вполне, вот так, например:

Из коробки имелось ввиду через GUI и конфигурационные файлы. По типу того что бы добавить modbus регистр. На сегодняшний день Weintek можно считать одним из лучших в работе IOT по MQTT.

---

<div class="post-metadata">

**Author:** ![bmurat](https://avatars.discourse-cdn.com/v2/letter/b/7ea924/32.png) [@bmurat](https://support.wirenboard.com/u/bmurat)\
**Post date:** [March 17, 2026, 9:45am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/14 "2026-03-17T09:45:40Z")

</div>

> [@BrainRoot](#):
>
> А если не “сырые” - то json нужен?

Да JSON. Причем он умеет как и сложный JSON с кучей вложений, скобок ,массивов, метки времени, и т.д. Так и простой JSON:

~# mosquitto\_sub -v -t ‘SVR-100/PR200\_2/poliv\_1’ -C 5  
SVR-100/PR200\_2/poliv\_1 {  
“poliv\_1”: {  
“day”: {  
“pn”: false,  
“vt”: true,  
“sr”: false,  
“cht”: false,  
“pt”: false,  
“sb”: false,  
“vs”: false  
},  
“on\_off”: {  
“value”: 0  
},  
“one\_run”: {  
“value”: false  
},  
“status”: {  
“poliv\_run”: false  
},  
“time”: {  
“ones”: {  
“minut”: 20  
},  
“start”: {  
“hour”: 7,  
“minut”: 0  
},  
“stop”: {  
“hour”: 7,  
“minut”: 15  
}  
}  
}  
}

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [March 17, 2026, 9:51am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/15 "2026-03-17T09:51:01Z")

</div>

> [@bmurat](#):
>
> Из коробки имелось ввиду через GUI и конфигурационные файлы. По типу того что бы добавить modbus регистр.

Json разных компаний отличается, причем часто кардинально. Если для Modbus - протокол стандартен и не допускает разночтений - то для формирования строки проще набросать конвертор.

---

<div class="post-metadata">

**Author:** ![bmurat](https://avatars.discourse-cdn.com/v2/letter/b/7ea924/32.png) [@bmurat](https://support.wirenboard.com/u/bmurat)\
**Post date:** [March 17, 2026, 9:52am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/16 "2026-03-17T09:52:27Z")

</div>

> [@BrainRoot](#):
>
> Никогда не щупал такие панели

Попробуйте, не пожалеете. Weintek HMI одни из лучших панелей как для промышленности, так и для IOT. Некоторые модели Weintek умеют JavaScript версии ECMAScript 2017

---

<div class="post-metadata">

**Author:** ![bmurat](https://avatars.discourse-cdn.com/v2/letter/b/7ea924/32.png) [@bmurat](https://support.wirenboard.com/u/bmurat)\
**Post date:** [March 17, 2026, 10:07am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/17 "2026-03-17T10:07:18Z")

</div>

Для автора, поверьте мне как матерому вейнтеководу, не умеет он сырые данные, только JSON. Подружить Weintek по MQTT с WB на сегодня получается можно только через движок правил. Передать 150 и более регистров через правила wb-rules мне не понравилось. Поэтому старый добрый modbus.

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [March 17, 2026, 10:57am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/18 "2026-03-17T10:57:01Z")

</div>

> [@bmurat](#):
>
> Попробуйте, не пожалеете. Weintek HMI одни из лучших панелей как для промышленности, так и для IOT.

Что-то дорогие они

 ![Снимок экрана_20260317_135313](https://support.wirenboard.com/uploads/default/original/3X/a/3/a37c55737bb3e1e7b3334f478ad581ac60b68fe7.jpeg)  
Ну, понятно что для промышленного оборудования - цена нормальная. Но для дома несколько перебор, обычная китайская сенсорная панель 7’ на ESP ~$50  
Закажу на компанию, наверно.

> [@bmurat](#):
>
> Передать 150 и более регистров через правила wb-rules мне не понравилось.

Так, а что не получилось? Я с таким количесвом довольно регулярно работаю.  
Одна функция преобразования и описание вида топикИсточник - топикПриемник.

---

<div class="post-metadata">

**Author:** ![anna](https://avatars.discourse-cdn.com/v2/letter/a/779978/32.png) [@anna](https://support.wirenboard.com/u/anna)\
**Post date:** [March 17, 2026, 11:32am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/19 "2026-03-17T11:32:55Z")

</div>

А если много топиков как мне их массово публиковать в JSONе?

---

<div class="post-metadata">

**Author:** ![bmurat](https://avatars.discourse-cdn.com/v2/letter/b/7ea924/32.png) [@bmurat](https://support.wirenboard.com/u/bmurat)\
**Post date:** [March 17, 2026, 11:37am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/20 "2026-03-17T11:37:34Z")

</div>

публиковать через Weintek?

---

<div class="post-metadata">

**Author:** ![anna](https://avatars.discourse-cdn.com/v2/letter/a/779978/32.png) [@anna](https://support.wirenboard.com/u/anna)\
**Post date:** [March 17, 2026, 11:48am UTC](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111/21 "2026-03-17T11:48:38Z")

</div>

Не, чтоб wb публиковал в json

[Next page](https://support.wirenboard.com/t/ne-udaetsya-prochitat-mqtt-topiki-cherez-simulyator-paneli-weintek/35111.md?page=2)
