MyCottage.cc

Энергомера CE301
Wiren Board и Power Analyzer

как превратить wb-mqtt-serial в Power Analyzer

Подключаем CE301 по RS-485 и расширяем шаблон: кроме энергии получаем мощность по фазам, напряжения, токи, PF, частоту и диагностические параметры.

К списку статей

Задача

Energomera CE301 часто подключают к Wiren Board “как обычный счётчик”: получают общий расход и, в лучшем случае, пару базовых значений. Но архитектура wb-mqtt-serial позволяет раскрыть CE301 почти до уровня анализатора сети: напряжения/токи по фазам, мощность по фазам, PF, частота и углы.

Что такое wb-mqtt-serial

wb-mqtt-serial — основной драйвер Wiren Board для последовательных устройств (RS-485/Modbus/IEC и т. д.). По сути это мост Serial ⇄ MQTT: устройства описываются JSON-шаблонами, и вы можете расширять их без переписывания драйвера.

Важно
Статья использует RS-485 как основной интерфейс: это стабильнее и проще для постоянной работы, чем оптопорт.

Подключение Энергомера CE301 по RS-485

1) Выбор интерфейса

  • RS-485 — рекомендуемый вариант для постоянной интеграции с Wiren Board.
  • Оптопорт — обычно используют для разовых операций/настройки.

2) Распиновка клемм RS-485 (CE301)

Клемма Назначение Комментарий
12Aлиния данных A (Data+)
13Bлиния данных B (Data−)
14Vccпитание интерфейса RS-485 (5–12 В), часто требуется для обмена
15GNDобщий провод (земля)
Про питание Vcc/GND
Интерфейс RS-485 у CE301 требует отдельное питание на клеммах Vcc/GND: обычно подходит диапазон 5–12 В. Это питание нужно именно для интерфейса связи, его нельзя путать с силовым питанием счётчика. Если счётчик не отвечает — проверьте Vcc/GND первым делом.

3) Схема подключения

Ниже — обновлённая схема подключения: питание Wiren Board и RS-485 интерфейса счётчика разведены через отдельные блоки питания; для интерфейса CE301 нужен отдельный источник 5–12 В, а линии A/B и GND показаны отдельными трассами.

4) Практические нюансы RS-485

  • Полярность: перепутали A/B — счётчик не отвечает.
  • Экран: подключайте экран только с одной стороны (обычно со стороны Wiren Board к GND).
  • Терминация 120 Ω: нужна при длинной линии (условно 10+ м) или при нескольких устройствах на шине.
  • Кабель: экранированная витая пара Cat5e/Cat6; общая длина RS-485 до ~1200 м (зависит от среды и топологии).

Параметры порта и адрес

ПараметрЗначение
Скорость9600
ParityEven
Data bits7
Stop bits1

Slave ID для CE301/CE303 — последние 9 цифр серийного номера. Пример: 8842104233842104233.

Проверка по документации
Для CE301/CE303 Wiren Board указывает клеммы RS-485: 12 = A, 13 = B, 14 = Vcc, 15 = GND; драйвер сам переводит порт в 9600 7E1 при опросе по МЭК 61107.

Добавление устройства в Wiren Board

Settings → Configs → Serial Device Driver Configuration

  1. Выберите нужный RS-485 порт и включите Enable Port.
  2. Добавьте устройство (шаблон Energomera CE301/CE303 или кастомный JSON).
  3. Укажите Slave ID.
  4. Сохраните и перезапустите драйвер.

Полный кастомный JSON-шаблон

Ниже — пример расширенного шаблона, который добавляет показатели “как у анализатора сети”.

{
  "device_type": "Energomera CE301/CE303",
  "title": "Energomera CE301",
  "group": "g-power-meter",
  "device": {
    "name": "Energomera CE301",
    "id": "energomera301",
    "protocol": "energomera_iec",
    "frame_timeout_ms": 1500,
    "response_timeout_ms": 1500,
    "channels": [
      { "name": "Total All", "reg_type": "group_single", "type": "power_consumption", "address": "0x100101" },
      { "name": "DAY", "reg_type": "group_single", "type": "power_consumption", "address": "0x100102" },
      { "name": "NIGHT", "reg_type": "group_single", "type": "power_consumption", "address": "0x100103" },

      { "name": "Total P", "reg_type": "group_single", "type": "power", "scale": 1000, "address": "0x400304" },
      { "name": "P L1", "reg_type": "group_single", "type": "power", "scale": 1000, "address": "0x400301" },
      { "name": "P L2", "reg_type": "group_single", "type": "power", "scale": 1000, "address": "0x400302" },
      { "name": "P L3", "reg_type": "group_single", "type": "power", "scale": 1000, "address": "0x400303" },

      { "name": "Urms L1", "reg_type": "group_single", "type": "voltage", "address": "0x400101" },
      { "name": "Urms L2", "reg_type": "group_single", "type": "voltage", "address": "0x400102" },
      { "name": "Urms L3", "reg_type": "group_single", "type": "voltage", "address": "0x400103" },

      { "name": "Irms L1", "reg_type": "group_single", "type": "current", "address": "0x400201" },
      { "name": "Irms L2", "reg_type": "group_single", "type": "current", "address": "0x400202" },
      { "name": "Irms L3", "reg_type": "group_single", "type": "current", "address": "0x400203" },

      { "name": "Frequency", "reg_type": "group_single", "type": "value", "address": "0x400D01" },
      { "name": "Voltage angle L1-L2", "reg_type": "group_single", "type": "value", "address": "0x400B01" },
      { "name": "Voltage angle L2-L3", "reg_type": "group_single", "type": "value", "address": "0x400B02" },
      { "name": "Voltage angle L3-L1", "reg_type": "group_single", "type": "value", "address": "0x400B03" },

      { "name": "PF L1", "reg_type": "group_single", "type": "value", "address": "0x400701" },
      { "name": "PF L2", "reg_type": "group_single", "type": "value", "address": "0x400702" },
      { "name": "PF L3", "reg_type": "group_single", "type": "value", "address": "0x400703" },
      { "name": "Total PF", "reg_type": "group_single", "type": "value", "address": "0x400704" },

      { "name": "Serial", "reg_type": "group_single", "type": "value", "address": "0x500301" }
    ]
  }
}

Как это выглядит в Wiren Board

После расширения шаблона устройство перестаёт быть просто “счётчиком кВт·ч” и становится похожим на компактный анализатор сети: видны энергия, мощность, напряжения, токи, частота, углы и коэффициент мощности.

Что получилось в итоге

  • Учёт: общая энергия + тарифы (день/ночь).
  • Анализ по фазам: мощность, напряжение, ток на L1/L2/L3.
  • Качество питания: частота, PF и углы фаз.
Если что-то не читается
Начните с физики: A/B, питание интерфейса 5–12 В, терминатор. Затем проверьте параметры порта и Slave ID. Только после этого имеет смысл “докручивать” JSON-шаблон.