Мониторинг электроэнергии через MQTT с модулем ZMAi-90

Недорогой счетчик электроэнергии на DIN рейку с esp8266 и возможностью передавать данные через MQTT

Наконец у меня дошли руки и до моего электрощита. В проекте автоматы и узо от одной французской фирмы, но их счетчик на дин рейку имеет только импульсный выход. 

Как альтернатива — использовать PZEM-004t, я уже писал о нем ранее, когда еще пользовался Domoticz. Но в таком случае нужно придумывать способ размещения в щитке. Самый простой способ — найти готовый модуль, с нормальной стоимостью и возможностью какой-либо интеграции в любой сервер автоматизаций.

Сейчас устройства с модулем ESP8266 становятся все доступнее и производители включают его во все более разношерстные устройства. Как итог — ZMAi-90. Модуль учета электроэнергии и сопутствующих ее характеристик с возможностью установки на стандартные din рейки и еспшкой внутри. Да еще и позволяющий управлять нагрузкой, так как в нем установлено реле.


Ссылка на ZMAi-90: https://aliexpress.ru/item/4000630131830.html
Ссылка на магазин Zemismart: https://aliexpress.ru/store/1848374


Поставляется ZMAi-90 в белой коробке без каких-либо надписей. 

В комплекте заглушки для контактов и фиксатор

На лицевой панели расположен экран, импульсный светодиод, кнопка и дополнительный светодиод, показывающий что реле выключено.

Характеристики ниже:

Контакты расположены стандартно для устройств подобного типа — вверху вход, внизу выход

Работает счетчик с приложением Tuya. Но останавливаться на сопряжении со стандартным приложением я не буду, на эту тему я уже неоднократно писал. Поэтому сразу решил его разобрать и перепрошить на альтернативную прошивку — Tasmota. 

Разборка

Разбирается модуль довольно просто — откручиваем с обратной стороны два шурупа и разъединяем две половинки корпуса.

За WiFi отвечает TYWE3S

Внутри ZMAi-90 расположены 2 платы. Одна, вверху, с экраном, esp8266 и с обратной стороны с MCU. На нижней плате, с реле, находится электрическая часть с импульсным источником питания для электроники. Соединены коннекторами, один из которых припаян.

В ZMAi-90 за управление нагрузкой отвечает довольно массивного размера бистабильное реле с маркировкой ZM888N на 80А. Судя по расположению медных пластин, сделанное, видимо, специально для данного устройства. 

Чтобы добраться до mcu придется отпаять припаянную часть соединения двух плат

Расположенный на данной плате MCU имеет маркировку V9821 HKW562.11617

 

Перепрошивка ZMAi-90

Вот тут мы дошли до самого интересного. Прошить TYWE3S проще простого, а вот считывать показания с MCU V9821 было бы проблематично без колоссального труда по реверс инжинирингу данного модуля от автора блога creationfactory.co


Все его труды по ZMAi-90 расположены по следующим ссылкам:
Attempting to reverse engineer a home automation oriented smart-meter — Part 1

Reverse engineering the ZMAi-90 DIN rail meter/switch and integrating with Hass.io using Tasmota — Part 2

ZMAi-90 (or SMTONOFF WDS688) DIN rail meter/switch — more details on GPIOs and configuration

Ghost switching can be a bitch if your switch is your main circuit breaker


Там очень много интересной информации по ZMAi-90, почитайте. Поэтому пойдем по его пути, чтобы интегрировать ZMAi-90 в Home Assistant, прошив Тасмотой и научив ее читать и отправлять данные по MQTT.

Прошивается TYWE3S стандартным способом. 

Подключаемся USB-UART адаптером к контактам TX RX GND VCC подав GPIO0 на землю. 

Но при подаче питания через uart адаптер запустится и MCU. Чтобы этого избежать нужно RST пин MCU так же подать на GND. Удобное место отмечено на фото ниже:

Что я и сделал. 

Дальше можно смело подключать uart адаптер к ПК и прошивать любимым способом. Я предварительно сделал бэкап родной прошивки.

Пару слов о Тасмоте. На версии v8.2.0 Elliot есть косяк с публикацией прочтенных данных по uart. Поэтому я залил версию v8.1.0, файл tasmota.bin

 

Настройка отправки данных в Home Assistant

После подаем питание на ZMAi-90, подключаемся к новой открытой точке доступа tasmota_xxxx и настраиваем wifi с mqtt брокером

Далее в Configuration > Configure Module ставим Module type Generic (0). Тасмота перезагрузится.

После перезагрузки возвращаемся туда же и настраиваем все как на скриншоте:

Тасмота опять перезагрузится.

После переходим в консоль тасмоты и вводим поочередно две команды, устанавливающие верные настройки uart:

Baudrate 9600
SerialConfig 8E1

После введем четыре команды, настраивающие верное поведение реле после включения устройства:

PowerOnState 3
SwitchRetain 0
ButtonRetain 0
PowerRetain 0

И введем правило, публикующее через mqtt считанные данные с mcu:

Rule1 on System#Boot do RuleTimer1 5 endon on Rules#Timer=1 do backlog Baudrate 9600; SerialSend5 fe010f080000001c; RuleTimer1 5 endon

Правило взял из комментариев у автора creationfactory, которое решало определенные проблемы. Выполняется каждые 5 секунд, считывая и публикуя данные вида:

Теперь переходим к настройке на стороне Home Assistant. Добавляем переключатель реле в switches.yaml

- platform: mqtt
  name: zmai_90_general_switch
  state_topic: 'stat/zmai_90/RESULT'
  value_template: '{{ value_json["POWER"] }}'
  command_topic: 'cmnd/zmai_90/POWER'
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_on: 'ON'
  payload_off: 'OFF'
  payload_available: 'Online'
  payload_not_available: 'Offline'
  retain: false 

И добавляем датчики в sensors.yaml:

- platform: mqtt
  name: "zmai_90_consumed_energy"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[6:14] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
   
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 100 }}
  unit_of_measurement: 'kWh'
  icon: mdi:circle-slice-3

- platform: mqtt
  name: "zmai_90_voltage"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[14:22] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
    
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 10 }}
  unit_of_measurement: 'V'
  icon: mdi:flash-circle

- platform: mqtt
  name: "zmai_90_current"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[22:30] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
    
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 10000 }}
  unit_of_measurement: 'A'
  icon: mdi:flash-auto

- platform: mqtt
  name: "zmai_90_frequency"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[30:38] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
    
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 100 }}
  unit_of_measurement: 'Hz'
  icon: mdi:current-ac

- platform: mqtt
  name: "zmai_90_active_power"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[38:46] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
    
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 100 }}
  unit_of_measurement: 'W'    
  icon: mdi:flash-outline

- platform: mqtt
  name: "zmai_90_reactive_power"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[46:54] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
    
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 100 }}
  unit_of_measurement: 'W'
  icon: mdi:flash-outline

- platform: mqtt
  name: "zmai_90_apparent_power"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[54:62] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
    
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 100 }}
  unit_of_measurement: 'W'
  icon: mdi:flash-outline

- platform: mqtt
  name: "zmai_90_power_factor"
  state_topic: "tele/zmai_90/RESULT"
  availability_topic: 'tele/zmai_90/LWT'
  qos: 1
  payload_available: 'Online'
  payload_not_available: 'Offline'
  value_template: >- 
    {% set message = value_json.SerialReceived %}
    {% set payload = message[62:70] %}
    {% set payload_len = (payload | length) %}
    {% set result = namespace(value='') %}
    
    {% for i in range(0, payload_len + 1) | reverse -%}
      {%- if i is divisibleby 2 -%}
        {%- set result.value = result.value + payload[i:i+2] -%}
      {%- endif -%}
    {%- endfor -%}
    
    {{ (result.value|float) / 10 }}
  unit_of_measurement: '%'
  icon: mdi:percent-outline

Топик для публикации будет включать имя, которое вы дали модулю в настройках Тасмоты.

И после перезагрузки HA настраиваем карточку с датчиками:

Отличительные особенности альтернативной прошивки — возможность настроить отображение большего количества информации, чем в родной прошивке Tuya. Так же возможность настроить кнопку на корпусе, чтобы она отвечала за реле. На родной прошивке она выполняет только функцию сопряжения. 

Небольшое видео, демонстрирующее обновление информации на встроенном дисплее:

 

Заключение

За умеренную сумму можно поставить себе в щиток универсальный прибор, который отображает данные на встроенном экране и отправляет их в ваш сервер «умного дома». Возможность управление нагрузкой я так же считаю очень полезной функцией. Реле с очень большим запасом по мощности, так как 80А в частном доме/квартире явно не будет. Даже если грубо разделить на 2, то это 40, при том, что вводные автоматы сотрудники наших электросетей рекомендуют ставить на 25А. Итого по реле запас больше чем в три раза. Как поведет себя данный модуль покажет только время, пока что я им полностью доволен.

Поделитесь с друзьями
Подписаться
Уведомить о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

109 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Sem2000
Sem2000
4 лет назад

Edit

ViktorSWA
ViktorSWA
4 лет назад

Добрый день.
Спасибо за помощь в обсуждениях на сайте Creation Factory.
Все получилось.
У вас в карточке есть переключатель «Восстановление состояния». Я так понимаю, это какой-то скрипт для того чтобы НА считал состояние реле при перезагрузке сервера или при реконнекте девайса?

ViktorSWA
ViktorSWA
4 лет назад
Ответить на  kvv

Добрый день.
Состояние реле, при перезагрузке счетчика, запоминается. Т.е. все работает как надо.
Но есть одно «но». Если перегрузить сервер HA в тот момент, когда реле включено, то положение ползунка general-meter-switch находится в положении OFF. Его надо переключить «руками». Не очень как то… как это победить?

ViktorSWA
ViktorSWA
4 лет назад
Ответить на  kvv

Спасибо! Все работает как надо.
П.С. Это была моя первая автоматизация 🙂

evgrs
evgrs
4 лет назад

Скажите, пожалуйста. Возможно ли прошить данное устройство при помощи tuya-convert?

Smoky13
Smoky13
4 лет назад

Правильно я понимаю, что без перепрошивки не завести в HA?

Smoky13
Smoky13
4 лет назад
Ответить на  kvv

Те вариант как у сяоми вайфай девайсов не получится, у сяоми получаешь токен устройства и вперед) Я просто паять не умею и скорей всего только испорчу, как я понимаю есть вариант с tuya-convert, но это не точно что получится.

Sem2000
Sem2000
4 лет назад
Ответить на  kvv

Вот бы такую штуку, только 3-х фазную. Ну не 3 же рядом ставить, не элегантно.
И почему не в esphome прошивали ? Почему тасмота и mqtt ,

Sem2000
Sem2000
4 лет назад
Ответить на  kvv

Думал, много места все занимает. Придется еще модули esp? блоки питания… В общем не элегантно.

meandes
meandes
4 лет назад

Спасибо. Реализовал аналогичное решение все работает. Есть одно замечание у вас отсутствует команда по активации правила тасмота которое есть в оригинальной статье. Без него mqtt пакеты не шлются, enable the rule by typing:
Rule1 1 и еще я бы добавил скриншот с приемром конфигурации mqtt с корректным значением topic zmai_90


motorkk7
motorkk7
4 лет назад

Привет, будьте добры, сделайте скриншот настроек MQTT в Тасмоте. И еще вопрос в настройках модуля у первоисточника RX GPIO3 — Serial RX(149), а у Вас на скриншоте нет. Как правильно? Благодарю!

motorkk7
motorkk7
4 лет назад

Не понимаю, делаю вроде все по Вашему описанию, модуль прошил, пытаюсь прописать правила в Тасмоту, но постоянно сбрасываются настройки и модуль уходит в ребут, становится точкой доступа. Прошу помогите!

motorkk7
motorkk7
4 лет назад
Ответить на  kvv

Прошивал утилитой flash_download_tools_v3.6.8. Попробовал прошить платку Wemos D1, такая же история. Засада. Можно все же сделать скриншот настроек MQTT в Тасмоте?

Последний раз редактировалось 4 лет назад motorkk7 ем
motorkk7
motorkk7
4 лет назад
Ответить на  kvv

Спасибо, я прошу скрин настроек MQTT

motorkk7
motorkk7
4 лет назад
Ответить на  kvv

Благодарю! Буду пытаться дальше

motorkk7
motorkk7
4 лет назад
Ответить на  kvv

Добрый день. Вроде домучал модуль, но не конца. В консоли получается так

Скрин 1.PNG
motorkk7
motorkk7
4 лет назад
Ответить на  motorkk7

Там нет строчки, как у Вас
02:59:15 MQT: tele/general-meter-switch/RESULT = {«SerialReceived»:»FE01083002000076230000808404000050000028431100000000007253110000100000A6″}
Соответственно результаты с сенсоров не приходят — «unknown» . Может что посоветуете, куда копать?

Алексей
Алексей
3 лет назад
Ответить на  motorkk7

У меня тоже проблема с постоянным ребутом. Подскажите пжл, как победили эту проблему?

Alex
Alex
4 лет назад
Ответить на  kvv

А куда конфигурацию Serial RX потеряли? В исходном материале она есть.

tastra
tastra
4 лет назад
Ответить на  motorkk7

Проблему решили?
У меня тоже сбрасывается

tastra
tastra
4 лет назад
Ответить на  kvv

А вы чем шили?

tastra
tastra
4 лет назад
Ответить на  tastra

tasmotizer-1.1

motorkk7
motorkk7
4 лет назад
Ответить на  tastra

Привет, пока нет. Честно говоря, пока отложил это дело.

motorkk7
motorkk7
4 лет назад
Ответить на  motorkk7

Попробовал настроить модуль без кнопки и реле, пока работает уже 3 часа, данные в MQTT гонит. Может так и оставлю, не критично пользоваться без реле. Пока так

Oleg
Oleg
4 лет назад
Ответить на  motorkk7

У меня такая же ситуация.

Nsys
Nsys
4 лет назад

А можно ли данный девайс ставить сразу после вводного автомата, чтобы мерить потребление всей квартиры?

Последний раз редактировалось 4 лет назад Nsys ем
Nsys
Nsys
4 лет назад
Ответить на  kvv

Ну, судя по тому, что на меркурии в подъезде стоит маркировка 5 (50) А — думаю что все-таки можно. Заказал, буду ставить.

tastra
tastra
4 лет назад
Ответить на  Nsys

tasmotizer-1.1

motorkk7
motorkk7
4 лет назад
Ответить на  tastra

Для новой версии ZMAI 90 все по другому. Вот, что говорят на странице разработчика в обсуждении
Have configured both with below steps:
1) Flashed Tasmota 8.4 by serial cable
2) Set module as Tuya MCU (54)
3) run:
a)Backlog SetOption66 1; TuyaMCU 32,17; TuyaMCU 31,19; TuyaMCU 33,20; SetOption59 1
b)Rule1 on System#Boot do RuleTimer1 10 endon on Rules#Timer=1 do backlog SerialSend5 55aa0001000000; RuleTimer1 10 endon
c)Rule1 1
Еще обещают прошивку ESPHome

tastra
tastra
4 лет назад
Ответить на  motorkk7

Спасибо попробую

tastra
tastra
4 лет назад
Ответить на  tastra

Home Assistant тоже самое прописываем

tastra
tastra
4 лет назад
Ответить на  motorkk7

Не подскажите как вывести данные в HA

motorkk7
motorkk7
4 лет назад
Ответить на  tastra

Привет, нет не получается

Alex
Alex
4 лет назад
Ответить на  motorkk7

Сработало. Версия ZMAi-90 дейтсвительно другая, даже плата отличается местами. Теперь надо где-то читать чего оно вываливает в ответ, и как это парсить, ибо гораздо больше вываливает.

tastra
tastra
4 лет назад
Ответить на  Alex

как вывели в НА

Alex
Alex
4 лет назад
Ответить на  motorkk7

Скорее всего так:

Backlog SetOption66 1; TuyaMCU 32,19; TuyaMCU 31,18; TuyaMCU 33,20; SetOption59 1

Иначе показывает бред.

Alex
Alex
4 лет назад
Ответить на  Alex

Так правильно:

Backlog SetOption66 1; TuyaMCU 32,18; TuyaMCU 31,19; TuyaMCU 33,20; SetOption59 1

Nsys
Nsys
4 лет назад
Ответить на  Alex

Прошился PyFlasher’ом на 8.5.0, постоянно отваливается после настройки вайфая, ничего не могу толком поменять, не успеваю. У всех так?

Nsys
Nsys
4 лет назад
Ответить на  Nsys

А нет, пропаял все выводы еще раз, там на каком-то пине сопля на кожух чипа повисла, видимо это и было причиной перезагрузок. Сейчас уже 40 мин аптайм, без перезагрузок.

motorkk7
motorkk7
4 лет назад
Ответить на  Alex

Привет, получилось данные пробросить в НА? У меня в морде тасмоты все отображается, а в НА все сенсоры —
unknown. Только switch работает

Морда тасмоты.PNG
motorkk7
motorkk7
4 лет назад
Ответить на  motorkk7

НА

Морда НА.PNG
motorkk7
motorkk7
4 лет назад
Ответить на  motorkk7

В MQTT информация отправляется

морда MQTT.PNG
Алексей
Алексей
3 лет назад
Ответить на  motorkk7

У меня тоже самое. Подскажите пжл, как связали с ХА

tastra
tastra
4 лет назад
Ответить на  motorkk7

У меня тоже в НА не отображаются

Nsys
Nsys
4 лет назад
Ответить на  tastra

Настроил сенсор в HA:

sensor:
 - platform: mqtt
  state_topic: 'tele/zmai90/SENSOR'
  name: 'Power'
  unit_of_measurement: 'W'
  value_template: '{{ value_json.ENERGY.Power }}'

Но проблема следующая, пока не понял как победить. Utility Meter просто складывает показания, в итоге получается что за сутки расходуется по 100 квт/ч, что не есть верно)

motorkk7
motorkk7
4 лет назад
Ответить на  Nsys

привет, а какие параметры закидываешь в консоль тасмоты?

Nsys
Nsys
4 лет назад
Ответить на  motorkk7

Backlog SetOption66 1; TuyaMCU 32,18; TuyaMCU 31,19; TuyaMCU 33,20; SetOption59 1

вот эти

motorkk7
motorkk7
4 лет назад
Ответить на  Nsys

Rule1 on System#Boot do RuleTimer1 5 endon on Rules#Timer=1 do backlog SerialSend5 55aa0001000000; RuleTimer1 5 endon
А это тоже надо? Если можно, скинь все параметры, которые загружаешь в консоли построчно.

Nsys
Nsys
4 лет назад
Ответить на  motorkk7

Нет, правило не обязательно. Достаточно той строки. Вроде разобрался с utility meter, если применить riemann sum, то начинает считать более или менее нормально.
Добавил еще в консоли TelePeriod 10, чтобы данные отправлялись каждые 10 сек.
Кстати, SetOption59 1 судя по всему не работает, т.к. по документации эта опция дублирует показания в топик stat, но там ничего не появляется.

Nsys
Nsys
4 лет назад
Ответить на  Nsys

И кстати, SetOption19 1 включает HA Autodiscovery на устройстве. Головняк с прописыванием счетчиков вручную пропадает))

Nsys
Nsys
4 лет назад
Ответить на  Nsys

Вот

Снимок экрана 2020-09-12 в 22.34.49.png
motorkk7
motorkk7
4 лет назад
Ответить на  Nsys

Супер, все работает! Теперь можно в щиток ставить

Алексей
Алексей
3 лет назад
Ответить на  Nsys

Скажите пжл как в ХА интегрировали?

tastra
tastra
4 лет назад
Ответить на  Nsys

Спасибо теперь все работает

AlexGavs
AlexGavs
4 лет назад
Ответить на  Nsys

Привет, покажи, как прикрутил реймана к utility.meter.
второй день не могу счетчик настроить, можно конечно разделить счетчики daily, montly, yearly на 3600 Тогда нор получается. но как то не по феншую

tastra
tastra
4 лет назад
Ответить на  motorkk7

Да это тоже надо

tastra
tastra
4 лет назад
Ответить на  Nsys

а ток и напряжение не выводил

star0s
star0s
4 лет назад
Ответить на  motorkk7

У меня сработало

Backlog SetOption66 1; TuyaMCU 0,17; TuyaMCU 32,18; TuyaMCU 31,19; TuyaMCU 33,20; SetOption59 1

Похоже что еще надо для обновления при перезагрузки :
Rule2 on System#Boot do Power 1 endon

Последний раз редактировалось 4 лет назад star0s ем
Вячеслав
Вячеслав
4 лет назад
Ответить на  kvv

по кнопке отключения он отключит сам себя и уже не включит, т.к. вифи подключено после него

Вячеслав
Вячеслав
4 лет назад
Ответить на  Nsys

Приветствую всех. На днях приехал сей девайс. Вот сижу, кумекаю. Тоже предполагал поставить для возможности дистанционного контроля электро потребления всей квартиры. У меня возникает два вопроса: 1- при установке на входе питания квартиры (после автомата или имеющегося счетчика) существует весьма большая вероятность случайного отключения всей квартиры включая и сам роутер. Кнопка вкл\выкл в приложении слишком уж приоритетная по интерфейсу. Последующее включение получается невозможным ввиду отсутствия сети вифи. Как этого избежать? Я уже разобрал счетчик, думал тупо отключить управляющие провода на реле, но не уверен чего отключать и можно ли.. 2- хотелось бы установить начальные показатели счетчика равными крайним показателям имеющегося… Подробнее »

Oleg
Oleg
4 лет назад

Сбрасываются настройки после настройки wi-fi и конфигурации пинов.. иногда удается в консоли ввести пару команд… и все сбрасывается. Пробовал на прошивке автора и на последней с сайта . Почитал и понял что не у одного меня эта проблема.У кого-нибудь получилось решить?

Devastator_alex
Devastator_alex
4 лет назад
Ответить на  Oleg

На новых устройствах, что бы не сбрасывались настройки:
Поставить устройство Tuya MCU (54) а не Generic(0)

ввести в консоли:
1)Backlog SetOption66 1; TuyaMCU 32,17; TuyaMCU 31,19; TuyaMCU 33,20; SetOption59 1
2)Rule1 on System#Boot do RuleTimer1 10 endon on Rules#Timer=1 do backlog SerialSend5 55aa0001000000; RuleTimer1 10 endon
3)Rule1 1

всё

AlexBraun
AlexBraun
4 лет назад
Ответить на  Devastator_alex

Заметил такую неприятную штуку.
Специально отрубил питание и потом опять включил. На индикаторе суммарно потраченные кВч остались, т. е. в самом модуле эта информация остается, но по MQTT данные приходят опять с нуля. То есть при пропадании напряжения сети, накопленная информация о потреблении в HASS перезатирается. Как то можно вытягивать из счетчика накопленные данные потребления? Или вообще, где то есть полное описание всех команд и опций которые можно отсылать в счетчик и получать данные с него?

Владимир Ростовский
Владимир Ростовский
4 лет назад

я так и не понял каким образом можно назначить кнопке спаринга физическое включение/отключение реле ? нерационально ставить такое устройство без физ. включателя.

AlexBraun
AlexBraun
4 лет назад

В новой версии устройства, никак. Китайцы изменили топологию схемы. И теперь кнопка подключена не к ESP-шке, а к главному контроллеру V9821. Раньше, через Tasmota прошивку, можно было переназначить кнопку и выход реле (реле тоже управлялось ESP). Теперь ESP-шка, это просто шлюз для связи с внешним миром. Всем остальным занимается V9821
Разве что поискать у китайских продавцов эти «счетчики» выпуска конца 2019, начала 2020 года.

Владимир Ростовский
Владимир Ростовский
4 лет назад
Ответить на  AlexBraun

да мне уже пришла, походу новая версия. попадос аднака. 🙁 прошил на 9.1.0 все бы хорошо но глюкаво работает. если нагрузки нет — после ребута через web интерфейс показания в НОЛЬ, даже вольтаж не показывает (хотя замеры показывает потребление менее 10Вт, реакция на такую нагрузку нет). Надо включать и отключать (Toggle) либо подавать нагрузку — тогда данные начинают ползти и передаваться в MQTT. в какой то прекрасный момент счетчик за целый день показывает значение 2234кВт. это просто абзадц.

Последний раз редактировалось 4 лет назад Владимир Ростовский ем
AlexBraun
AlexBraun
4 лет назад

Очень странно. Меняли время опроса показаний и отправки по MQTT?
По умолчанию там 5 минут. Я установил раз в 10 сек. Так вполне нормально и не напряжно для сети.
Плюс вчера я таки раскурил протокол обмена и теперь вывожу не только текущие показания, но и вывел суммарно потребленную электроэнергию, которую хранит счетчик за весь период и который не пропадает после сброса питания.

Screenshot_Home Assistant.png
Константин Магнитов
Константин Магнитов
4 лет назад
Ответить на  AlexBraun

Как суммарную получить, какой строчкой? Вижу на скрине десятые доли напряжения — у меня почему-то показывает только целые. И еще вопрос — на дисплее счетчика показвает напряжение верное, а вот силу тока, потребляемую мощность — слишком маленькие цифры, хотя в mqtt и в интерфейсе тасмоты показывает нормальные значения.

AlexBraun
AlexBraun
4 лет назад

Как суммарную получить, какой строчкой? Вижу на скрине десятые доли напряжения — у меня почему-то показывает только целые Из счетчика прошивка Тасмота по MQTT публикует в несколько топиков на брокере: tele/tasmota_XXXXXX/STATE tele/tasmota_XXXXXX/SENSOR tele/tasmota_XXXXXX/HASS_STATE tele/tasmota_XXXXXX/RESULT Первые три HASS парсит и создает несколько объектов для сбора данных. Телеметрия, данные о версии прошивки, время включения, сигнал RSSI и т. д. Из топика tele/tasmota_XXXXXX/SENSOR { "Time":"2020-11-25T09:35:29", "ENERGY": { "TotalStartTime":"2020-11-12T13:50:15", "Total":0.145, "Yesterday":0.000, "Today":0.000, "Period":0, "Power":0, "ApparentPower":0, "ReactivePower":0, "Factor":0.00, "Voltage":217, "Current":0.000 } } Этот топик и разбирается в HASS и можно использовать в карточках Lovelase. Но как видно из JSON строки, Напряжение приходит округленное до целого.… Подробнее »

Последний раз редактировалось 4 лет назад AlexBraun ем
Константин Магнитов
Константин Магнитов
4 лет назад
Ответить на  AlexBraun

Отлично! спасибо, все получилось

Антон Копцев
Антон Копцев
4 лет назад
Ответить на  AlexBraun

Добрый день, а можно у вас попросить конфиг этот для отображения в lovelace? Очень у вас понравился)

Андрей
Андрей
4 лет назад

удерживайте кнопку больше 5 секунд

Denver
Denver
4 лет назад

Для любителей domoticz ,а так же для внутреннего подсчета день\ночь добавил 2 правила НО требуется билд tasmota-fullrules.bin тк не работает +-*\ в рулах обычных релизов качать тут https://github.com/tasmota/binaries правило 3 постоянно работает правило 2 включается для правки текущих показаний со счетчика rule2 1 после ребута правило отключается в нем mem1 дневные показания текущие mem2 ночные показания текущие !еще надо выставить таймзону в моем случае Timezone +3 (команда в консоле) в правиле еще условие с 7:00 до 23:00 дневной тариф т.е. 420 минут и 1380 минут, но если надо с поправкой, ибо у моего счетчика время отстает на 10 минут (то… Подробнее »

Olegs
Olegs
4 лет назад
Ответить на  Denver

Хочу использовать это устройство для приоритезации нагрузки.
Надо при превышении определенного порога мощьности выдавать команды на отключение определенных потребителей нагрузки через Home Assistant.
Это устройство отлично работает, но неустраивает время реакции. Опрос с частотой 10 секунд — это очень много. Мне надо ~1сек. Похоже на то, что меньше сделать нельзя.
Смотрю в сторону того, что можно создать тригер типа sensor.power. Читал документацию — не смог до конца разобраться.
Может кто-то это уже делал? и есть готовое решение?

Алексей
Алексей
4 лет назад

Добрый день
25.01.2021 получил устройство с модулем wb3s tuya вместо TYWЕ3S.
Кто нибудь знает как прошить wb3s?

Skill23
Skill23
4 лет назад
Ответить на  Алексей

никак пока еще никак. я сейчас перепаял его на esp12. возможно настрою.

Алексей
Алексей
4 лет назад
Ответить на  Skill23

очень ждем

Skill23
Skill23
4 лет назад
Ответить на  Алексей

В общем все пока непонятно. Модуль успешно пересажен на ESP-12 и прошит тасмотой 9.2 через программатор.
Поставил устройство Tuya MCU (54)в консоли:
1)Backlog SetOption66 1; TuyaMCU 0,17; TuyaMCU 32,18; TuyaMCU 31,19; TuyaMCU 33,20; SetOption59 1
2)Backlog Rule1 1; Rule1 on System#Boot do RuleTimer1 5 endon on Rules#Timer=1 do backlog SerialSend5 55aa0001000000; RuleTimer1 5 endon
И никакие показания морда тасмоты не выводит все по нулям. В логах вроде сумел найти ответ на опрос общую мощность и напряжение и все. Дальше не знаю куда двигать.

Последний раз редактировалось 4 лет назад Skill23 ем
Audis
Audis
3 лет назад
Ответить на  Skill23

Я тоже перепаял модуль на ESP-12 с прошивкой тасмоты. Но к сожалению тоже в морде тасмоты все по 0. Хотя в логе видать что есть информация. Как ее забирать? может вам уже получилось чтото получить?

Skill23
Skill23
3 лет назад
Ответить на  Audis

Получилось только вкл-выкл реле. В логах вроде проскакивает напряжение и общая мощность при установке максимального вывода деталей, параметр weblog4 (кажется). Но в тасмоту его втащить не могу и в MQTT тоже. Все я в тупике.

Audis
Audis
3 лет назад
Ответить на  Skill23

Я тоже изучаю логи. И похоже по MQTT отправляется весь ответ в бинарной форме. Сколько видно в одной посылке есть общее потребление а вдругой посылке напряжение. Как забрать эти в данные в НА пока не знаю (в темплейтах не очень силен).
Я уже и логический анализатор повытаскивал и подсмотрел что отправляется и принимается с WB3S и с ESP-12. У обеих все одинаково. Значит вопрос только с обработкой полученых данных.
А как вам удалось управлять реле?

Из консоли можно реле управлять так:
Вкл.: SerialSend5 55aa0006000510010001011d;
Выкл.: SerialSend5 55aa0006000510010001001c;

Последний раз редактировалось 3 лет назад Audis ем
Skill23
Skill23
3 лет назад
Ответить на  Audis

Вечером гляну как настроил точнее. Однако не думаю, что вывод одинаков у этих модулей. Вот здесь много полезного про обмен и его настройку.
https://tasmota.github.io/docs/TuyaMCU/#tuyareceived
И судя по всему у меня не отвечает чип измерений модулю туевскому по всем указанным dpId.
Я для исследования использовал букмарклет https://github.com/sillyfrog/Tasmota-Tuya-Helper
Вот с помощь. его и сопоставил реле fnId.

Skill23
Skill23
3 лет назад
Ответить на  Audis

TuyaMCU 11,16 Это установит выключатель реле и сделает его в морде тасмоты доступным

Последний раз редактировалось 3 лет назад Skill23 ем
Алексей Быков
Алексей Быков
3 лет назад

Приветики пистолетики! Клевая статья! Вопрос — а можно как то передать чипу отправные показания с которых начать отсчет (перенести с текущего счетчика электроэнергии, чтобы потом квитанции заполнять не выходя на лестничную клетку? Спасибо

Skill23
Skill23
3 лет назад
Ответить на  Алексей Быков

нет

Максим
Максим
3 лет назад
Ответить на  Алексей Быков

Можно. Через EnergyReset3 (см тут https://tasmota.github.io/docs/Commands/)
Правда, у меня они в итоге расходятся с счетчиком обычным (обычный больше насчитывает). Корректирую раз в месяц

Алексей Быков
Алексей Быков
3 лет назад
Ответить на  Максим

Братиш, я так понял, что они инициализирует «отложенную» смену показаний, которая происходит в полночь, а не единомоментную смену показаний? Ввел EnergyReset3 15553 а ничего не поменялось… Ждать полуночи?

Алексей Быков
Алексей Быков
3 лет назад
Ответить на  Алексей Быков

сам спросил сам ответил, надо приписывать в ватчасах а не в киловатчасах, и нужно писать значение за вычетом значения «today», потому что ты меняешь показания посчитанные на 00:00 сегодня…

Marius
Marius
3 лет назад

Hello guys,

I have a ZMAI-90 with WB3S WiFi module and today I found a way and now the zmai-90 module provides all the informations to Home Assistant via MQTT and Tasmota.
The WB3S module I replaced with a ESP12F module, and I flashed on it a Tasmota 9.3.1.2 firmware.
I don’t know how can i upload here the firmware, but any of you if need the firmware and the commands we have to provide in console, just write me a mail to «mariuss_suciu@yahoo.com» and I will support you.

Vit
Vit
3 лет назад
Ответить на  Marius

Thanks a lot ! Everything works perfectly.

Маргарита
Маргарита
3 лет назад

Всем привет, ребят, разобрала такой счетчик, и вырвала соединение (место спайки двух ног и платы), если может кто подсказать, куда идет контакт (соединение) с платы, которая с реле. Вырвала с мясом точку пайки с другой стороны ? Хотя счетчик работает, но хотелось удостовериться, что там нет ничего важного…

Последний раз редактировалось 3 лет назад Маргарита ем
Алексей Быков
Алексей Быков
3 лет назад

Кстати посоны, кто сюда зашел в поиске решения для этого реле, на вики тасмоты появилась отличная статья: https://templates.blakadder.com/ZMAi-90.html

Nsys
Nsys
3 лет назад

Итак, подобьем бабки. Прошиваем tasmota.bin Настраиваем Wi-Fi и MQTT Заходим на девайс, в консоли пишем: Backlog SetOption66 1; TuyaMCU 32,18; TuyaMCU 31,19; TuyaMCU 33,20; SetOption59 1 После этого начнет отображаться правильная статистика Активируем Autodiscovery, и устройство само появится в Home Assistant. SetOption19 1 Меняем период отправки данных каждые 10 сек. TelePeriod 10 Для возможности добавить устройство в новый раздел «Энергия», добавляем сенсор: template:   - sensor:       - name: "Потребление в квт/ч"         unit_of_measurement: "kWh"         state_class: measurement         device_class: energy         state: >           {{ states('sensor.tasmota_energy_total') | float }}         attributes:                    last_reset: '1970-01-01T00:00:00+00:00' и далее сенсор «Потребление… Подробнее »

Последний раз редактировалось 3 лет назад Nsys ем