NEWS
Драйвер MQTT
-
на всякий случай выкладываю скетч,может подскажите что не так?
есть подозрениие,что именно он косячит.
Cам слабо понимаю. скетч создавал в Flprog.
1648_pr4.7z -
Собрал монитор энергии на pzem-004t и esp (прошивка Wifi-iot). Драйвер MQTT настроен как сервер. Вначале все работало, потом началась какая-то ерунда - часть объектов отображается некорректно, в т.ч. и на веб-интерфейсе esp(при этом он ещё заметно подвисает). В логе ошибки:
! mqtt.0 2017-02-19 20:03:55.369 error mqtt.0 Closed because of error
! mqtt.0 2017-02-19 20:03:55.368 warn mqtt.0 Client error [ESP82660006940a]: Error: read ECONNRESET
! mqtt.0 2017-02-19 20:03:54.377 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.377 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 publishOnSubscribe
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 Client [ESP82660006940a] subscribes on "mqtt.0.timestamp"
! mqtt.0 2017-02-19 20:03:54.375 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.370 info mqtt.0 Client [ESP82660006940a] subscribes on "testtopic.#" with regex /^mqtt.0.testtopic../
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 Client [ESP82660006940a] subscribes on "testtopic.#" with regex /^testtopic../
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.368 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.205 info mqtt.0 Client [ESP82660006940a] connected
! mqtt.0 2017-02-19 20:03:49.765 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:49.765 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:49.764 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:47.397 info mqtt.0 Client [ESP82660006940a] closed
! mqtt.0 2017-02-19 20:03:47.396 error mqtt.0 Closed because of error
! mqtt.0 2017-02-19 20:03:47.396 warn mqtt.0 Client error [ESP82660006940a]: Error: read ECONNRESET -
Собрал монитор энергии на pzem-004t и esp (прошивка Wifi-iot). Драйвер MQTT настроен как сервер. Вначале все работало, потом началась какая-то ерунда - часть объектов отображается некорректно, в т.ч. и на веб-интерфейсе esp(при этом он ещё заметно подвисает). `
Если и в интерфейсе ESP проблемы - то тут MQTT совсем не при чем. Думаю, Вы это понимаете сами. Зря Вы эту поделку (pzem) купили… Я сначала тоже на нее поглядывал, все прикидывал как подключать, куда и как прикручивать. В итоге просто взял маленький (1DIN) счетчик за 20$ (SDM120). Как индикатор - не очень из-за размеров, зато места не занимает много в щитке и проблем с подключением (modbus) никаких. Да и разных параметров отдает побольше (реактивная составляющая и частота). Была бы возможность подключиться к счетчику мосэнерго - сделал бы так, но увы, не дают, поэтому такой вот мониторинг через второй счетчик...
-
Проблема исчезает при отключении драйвера, так что железяка скорей всего исправно работает. Через облако все работало очень долго и без сбоев. Кстати через несколько часов проблема пропала сама собой :shock: .
-
Проблема исчезает при отключении драйвера, так что железяка скорей всего исправно работает. Через облако все работало очень долго и без сбоев. Кстати через несколько часов проблема пропала сама собой :shock: . `
Опять сбой. В логе ошибок нет. -
Собрал монитор энергии на pzem-004t и esp (прошивка Wifi-iot). Драйвер MQTT настроен как сервер. Вначале все работало, потом началась какая-то ерунда - часть объектов отображается некорректно, в т.ч. и на веб-интерфейсе esp(при этом он ещё заметно подвисает). `
Если и в интерфейсе ESP проблемы - то тут MQTT совсем не при чем. Думаю, Вы это понимаете сами. Зря Вы эту поделку (pzem) купили… Я сначала тоже на нее поглядывал, все прикидывал как подключать, куда и как прикручивать. В итоге просто взял маленький (1DIN) счетчик за 20$ (SDM120). Как индикатор - не очень из-за размеров, зато места не занимает много в щитке и проблем с подключением (modbus) никаких. Да и разных параметров отдает побольше (реактивная составляющая и частота). Была бы возможность подключиться к счетчику мосэнерго - сделал бы так, но увы, не дают, поэтому такой вот мониторинг через второй счетчик... `
sdm120 - это хорошо. но все не совсем тривиально при передаче rs485 на сервер. конечно если есть медный кабель прямиком в сервер - не проблема. Но если нет - то пляски с бубном.
У меня HLK-RM04 прокидывает serial через TCP , потом эмулятор tty под linux (socat), потом mdbusd (Mudbus RTU -> Modbus TCP).
с учетом стоимости HLK-RM04 и sdm120 - выходит под $50 уже.
а что касаемо героя pzem-004t и esp - тут надо смотреть на коммуникации esp и pzem-004t. если на esp плате есть чип usb-uart , его надо отключить. об этом кстати вот https://wifi-iot.com/p/wiki/15/ сказано. он может серьезно мешать.
-
sdm120 - это хорошо. но все не совсем тривиально при передаче rs485 на сервер. конечно если есть медный кабель прямиком в сервер - не проблема. Но если нет - то пляски с бубном.
У меня HLK-RM04 прокидывает serial через TCP , потом эмулятор tty под linux (socat), потом mdbusd (Mudbus RTU -> Modbus TCP).
с учетом стоимости HLK-RM04 и sdm120 - выходит под $50 уже.
а что касаемо героя pzem-004t и esp - тут надо смотреть на коммуникации esp и pzem-004t. если на esp плате есть чип usb-uart , его надо отключить. об этом кстати вот https://wifi-iot.com/p/wiki/15/ сказано. он может серьезно мешать. `
Как у Вас все заморочено… Не, у меня проще, в качестве сервера WB контроллер (который фактически является ядром) c RS-485, а уж с него MQTT на ioBroker. Может когда-нибудь прикручу к Orange Pi, где также стоит ioBroker, RS-485 - UART и отправлю прямо туда modbus RTU. Но пока нужды нет.
-
а что касаемо героя pzem-004t и esp - тут надо смотреть на коммуникации esp и pzem-004t. если на esp плате есть чип usb-uart , его надо отключить. об этом кстати вот https://wifi-iot.com/p/wiki/15/ сказано. он может серьезно мешать. `
Я читал это предупреждение, и собирал из того, что было под рукой (кстати, именно NodeMCU). <u>НО!!!</u> Физическое отключение pzem-004t (совсем-совсем) не улучшило ситуацию! Оказалось, что ESP8266, при подключении к драйверу MQTT (в режиме Сервер/брокер), начинает циклически перезагружаться! Отсюда и странные тормоза интерфейса - устройство просто недоступно N секунд. Причина перезагрузки непонятна… -
Собрал монитор энергии на pzem-004t и esp (прошивка Wifi-iot). Драйвер MQTT настроен как сервер. Вначале все работало, потом началась какая-то ерунда - часть объектов отображается некорректно, в т.ч. и на веб-интерфейсе esp(при этом он ещё заметно подвисает). В логе ошибки:
! mqtt.0 2017-02-19 20:03:55.369 error mqtt.0 Closed because of error
! mqtt.0 2017-02-19 20:03:55.368 warn mqtt.0 Client error [ESP82660006940a]: Error: read ECONNRESET
! mqtt.0 2017-02-19 20:03:54.377 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.377 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 publishOnSubscribe
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 Client [ESP82660006940a] subscribes on "mqtt.0.timestamp"
! mqtt.0 2017-02-19 20:03:54.375 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.370 info mqtt.0 Client [ESP82660006940a] subscribes on "testtopic.#" with regex /^mqtt.0.testtopic../
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 Client [ESP82660006940a] subscribes on "testtopic.#" with regex /^testtopic../
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.368 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.205 info mqtt.0 Client [ESP82660006940a] connected
! mqtt.0 2017-02-19 20:03:49.765 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:49.765 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:49.764 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:47.397 info mqtt.0 Client [ESP82660006940a] closed
! mqtt.0 2017-02-19 20:03:47.396 error mqtt.0 Closed because of error
! mqtt.0 2017-02-19 20:03:47.396 warn mqtt.0 Client error [ESP82660006940a]: Error: read ECONNRESET `
Боролся с такими же симптомами, постоянно обрывы и запись в логи.На более низкой версии драйвера ошибок гараздо меньше но они есть.
В итоге сменил настройки драйвера на свои и всё стало отлично. Я не знаю может сейчас после этого поста мне скажут что эти настройки неправильные или ещё чего то, но такая настройка заработала так как нужно!
Пробуйте сменить у себя. (в ESP время опроса датчиков pzem-004t 5-6 сек, отправка mqtt 5сек.)
Ну а настройка драйвера ниже в скринах.
PS никаких usb-uart на плате нет!
1795_1.jpg
1795_2.jpg -
а что касаемо героя pzem-004t и esp - тут надо смотреть на коммуникации esp и pzem-004t. если на esp плате есть чип usb-uart , его надо отключить. об этом кстати вот https://wifi-iot.com/p/wiki/15/ сказано. он может серьезно мешать.
Я читал это предупреждение, и собирал из того, что было под рукой (кстати, именно NodeMCU). ****<u>НО!!!</u>**** Физическое отключение pzem-004t (совсем-совсем) не улучшило ситуацию! Оказалось, что ESP8266, при подключении к драйверу MQTT (в режиме Сервер/брокер), начинает циклически перезагружаться! Отсюда и странные тормоза интерфейса - устройство просто недоступно N секунд. Причина перезагрузки непонятна…
Когда у Вас сейчас на стандартных настройках есть связка (ESP+pzem-004t+Iobroker), возьмите например Android устройство и подключитесь к iobroker по MQTT посмотрите сколько держится конект (макс 5 сек и обрыв, потом опять конект и обрыв) Проверьте ради интереса.PS в телефоне введите ip устройства где установлен iobroker, а не ip адрес ESP.
А потом поменяйте настройки как у меня и проверьте заново.
-
В итоге сменил настройки драйвера на свои и всё стало отлично.! `
Помогло! -
Когда у Вас сейчас на стандартных настройках есть связка (ESP+pzem-004t+Iobroker), возьмите например Android устройство и подключитесь к iobroker по MQTT посмотрите сколько держится конект (макс 5 сек и обрыв, потом опять конект и обрыв) Проверьте ради интереса.
PS в телефоне введите ip устройства где установлен iobroker, а не ip адрес ESP.
А потом поменяйте настройки как у меня и проверьте заново. `
Обрывы были. -
В итоге сменил настройки драйвера на свои и всё стало отлично.!
Помогло!а какая версия драйвера MQTT ? `
Последняя. -
Помогло! `
а какая версия драйвера MQTT ?
Последняя.а не можешь попробовать откатить на 1.2.5 ? она у меня стабильно работает со стандартными настройками без плясок с бубном.
а на последней сплошные зависания.
-
а какая версия драйвера MQTT ?
Последняя.а не можешь попробовать откатить на 1.2.5 ? она у меня стабильно работает со стандартными настройками без плясок с бубном.
а на последней сплошные зависания. `
С настройками от v965 пока работает стабильно. -
а какая версия драйвера MQTT ?
Последняя.а не можешь попробовать откатить на 1.2.5 ? она у меня стабильно работает со стандартными настройками без плясок с бубном.
а на последней сплошные зависания. `
Вроде де бы писали уже, что обрывы из за 2х галочек:-
отсылать состояния при старте
-
использовать chunking заплатку.
Первое: MQTT клиент не может переварить обрушивающийся на него поток данных при старте.
А второе - криворукие и ленивые программисты esp библиотеки, которые думают, что TCP это пакетная передача.
Тоже используешь wifi-iot?
-
-
Последняя. `
а не можешь попробовать откатить на 1.2.5 ? она у меня стабильно работает со стандартными настройками без плясок с бубном.
а на последней сплошные зависания. `
Вроде де бы писали уже, что обрывы из за 2х галочек:-
отсылать состояния при старте
-
использовать chunking заплатку.
Первое: MQTT клиент не может переварить обрушивающийся на него поток данных при старте.
А второе - криворукие и ленивые программисты esp библиотеки, которые думают, что TCP это пакетная передача.
Тоже используешь wifi-iot? `
так точно, использую. виноват :)
но другого работающего решения из коробки для ESP нет.
ты имеешь ввиду
Publish own states on connect: оно должно быть выключено?
и chunking заплатку тоже отключить?
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login