Как стать автором
Обновить

Комментарии 62

Проблема в вашей схеме в том, что без интернета весь ваш умный дом превратится в тыкву

Никто не запрещает mqtt в домашней сети поселить.

Я понимаю, но автором предлагается использовать WQTT.ru

Я к тому, что это не фундаментальная проблема, для первых шагов вполне вариант.

С одной стороны да, с другой — «нет ничего более постоянного, чем временное» и не лучше ли сделать сразу и правильно?
Я бы с вами согласился, если бы человек что-то другим людям за деньги делал, а так, его решения, ему же расхлёбывать возможные последствия. Потом, речь о хобби, хобби проекты не обязаны быть… да вообще ничем не обязаны. Разве что укладываться в рамки закона, даже соответствие здравому смыслу не обязательно.

Автор попробует и, быть может, сам придёт к выводу, что брокер MQTT лучше свой использовать. При этом не придётся переделывать всё, достаточно будет параметры соединения поменять.

Требования к умному дому читайте в первой статье.

Вижу метеостанцию на Node-Red. Умный дом не вижу…

Во-первых, к системе легко подключить новые устройства. Основной упор именно на это, чтобы была база для создания своей логики и своей сети устройств. Во-вторых… это цикл статей.

Подскажите, а не рассматривали другие прошивки? Например, ESPHome (может напрямую работать с HomeAssistant и MQTT не нужен) или Tasmota (есть функции прямого взаимодействия устройств без Интернета — device groups и KNX)?
Странно, мне показалось что из всех вариантов именно ESPHome будет оптимальным — он активно обновляется, может ставиться как адд-он в HomeAssistant и поддерживает расширения/дополнения на С++ (как и требовалось). Кроме того, в HomeAssistant Add-On Store есть как Mosquito MQTT, так и NodeRED. Т.е.получается единая точка управления/конфигурации системы. Если Вы говорите о Малине, то все даже останется внутри домашней сети.

Я ищу путь более понятный для фронт-разработчика. ESP Easy более понятная система. И она дает нужный результат.

Непонятен выбор wqtt. В NodeRED это несколько кликов — установка палитры брокера, размещение ноды брокера в потоке и его банальная настройка.

Я даже и не знал что в Node Red есть такая возможность. Вообще к Node Red еще надо привыкнуть. Такого класса ПО я еще не использовал.

К сожалению ESP_easy не поддерживает шифрование MQTT, тоесть все данные, включая mqtt пассворд передаются открытым текстом.

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

А не смотрели в cторону ZigBee? на modkam ребята много чего интересного делают и схемы можно посмотреть и прошивки.
Профит зигби в том, что он не требует интернета. То есть если РКН забанит вас и все ваши wqtt,hodered,homebridge, А шлюз взорвется или упадет с 27 этажа на асфальт… то внезапно, большая часть функций будет работать. Так как в протоколе есть такое понятие как binding. это когда можно напрямую подключать устройства друг к другу, и они будут работать даже если координатор сети отвалится.

ZigBee менее понятный для фронт-разработчика. Я так и не нашел простого мануала как быстро запустить пример типа Hello World. Поэтому пишу такой мануал самостоятельно и в конце цикла его тоже опубликую. Но реально долго это делаю, т.к. Wi-Fi намного проще в понимании, чем ZigBee.

А можно вопрос не очень в тему?
Для чего вы говорите за всех "форнт-разработчиков"?
И для чего вы про себя говорите от лица всех "форнт-разработчиков"?


Это шаблоны и ярлыки в которых может затеряться личность.

Я про себя говорю. И про тех, кто ищет подобное руководство.

Автор же сказал, ума не хватает фронтенд-разработчикам, всем. Что вы пристали?)
«Hello World» в случае ZigBee это послушать события и включить/выключить чего-нибудь в соответствии с ними. В сами устройства ни паяльником, ни с программатором лезть нет необходимости.
Не используйте DHT11 у него стабильность плохая. Лучше возьмите
BME280. Он и температуру и влажность и давление меряет, и очень точно.

Кроме того, подумайте о том, чтобы заменить ESP8266 на ESP32. Если нужно будет делать автономное питание то у 8266 есть архитектурные проблемы.
— Он не может долго спать. по-моему макс 40 минут.
— Нельзя запоминать некий стейт в RTC памяти
— нет ULP процессора.
— официальный SDK уже фактически не развивается. А в том что есть — там черт ногу сломит.

в ESP32
— можно спать сколь угодно времени до наступления события
— можно при просыпании по-быстрому обработать причину в ULP и решить нужно ли будить основное ядро.
— есть RTC память. которая не сбрасываетя в deep-sleep.
— есть bluetooth. То есть можно делать BLE маяки, которые будут сильно энергоэффективнее wifi.
— официальный SDK (ESP-IDF) очень активно развивается. есть много документации и примеров.
— 2 ядра на 240mhz!!! я как-то телеграм бота делал на esp32 который по https ходил. все работало довольно быстро.
Со многим согласен, но:
— Продолжительность сна 8266 (если верить Тасмота) — 71 мин tasmota.github.io/docs/DeepSleep. Они обходят это ограничение кратковременным (0.3 сек) просыпанием и засыпанием снова. Т.е. некритично.
— Для ULP процессора нужно писать на Ассемблере, насколько я понял. Не каждый возьмется. А если ставить прошивки типа ESPEasy, ESPHome, Tasmota так наверное и не получится?

Согласен. Но не все сразу. Главное взлететь. А там разберемся)

Где тут умный дом то? Дом станет умным только при появлении сценариев взаимодействия, логики работы устроцств без вмешательства в эту систему. А так просто датчики в интернет данными срут.

Вообеще-то я написал об этом. Node RED же будет. Плюс rules в прошивке ESP Easy. В следущих статьях будут подробнее разобраны.

сейчас у всех телефоны, они могут выступать не только в качестве монитора и органов управления, но и как раз устройством для формирования индивидуальных сценарив, таскер рулит, и без Алисы работает голосовое управление… и все работает и без внешнего интернета, хотя конечно с ним дальность действия весьма расширяется)) часть логики лежит на самих есп… по мне так это оптимально, mqtt брокер поднимается на роутере и больше ничего не требуется для работы, максимум голосовое управление всё же требует наличие интернета, чтоб Гугл разбирал сказанное и переводил в текстовый формат

Хозяин ушёл на работу и «умный дом» превратился в тыкву. Это ещё интересней, чем использование облачного mqtt-брокера.

а если хозяев несколько… да и основная автоматизация и логика выполнена на самих контроллерах, на которых присутствуют исполнительные устройства и датчики. просто сценарии которые необходимы пользователю и триггеры находятся на телефоне. да и ни кто не мешает пробросить порт на пример с шифрованием с того же Москито на внешку. суть в том что данные все же хранятся локально и все работает так же без инета. а устройство пользователя на пример отслеживает свое местоположение, или другие триггеры и отправляет команды в нужные топики, плюс на каждом устройстве можно реализовать свою логику и по выходным данным отправлять данные так сказать индивидуально то, что нужно пользователю именно этого устройства. на пример сработал ваш будильник и включилась кофеварка. будильник жены тоже что нить запускает своё. так же телефон может отслеживать свое нахождение, и на пример попадая в нужную геолокационную зону отправлять команды на включение того же кондиционера… а вот алгоритм запуска, отслеживания температуры, уже реализован локально самим контроллером.

Не вижу связи между "ушел на работу" и "УД выключился". Поясните, пожалуйста, свою мысль.


У меня тестовая система работает. Я уже много раз уходил, но она как работала так и продолжает работать. С чего ей вдруг ломаться?

НЛО прилетело и опубликовало эту надпись здесь

У нас так можно охарактеризовать весь технический прогресс. За все это время было столько всего сделано с кучей ошибок и поломок. Но нас не остановить!

Пробовал когда то строить на esp, но… беда в том что wifi не потерпит много клиентов, особенно если некоторые в подрозетниках, гле сигнал плохой :( выходит полунерабочая, тормозная поделка...

Поэтому я предложил гибридную сеть. Сервер, wi-fi до ESP, от ESP до датчиков и исполнительных устройство провода на 1-Wire и I2C. А потом, когда я допишу мануал по ZigBee, то будет еще лучше.

НЛО прилетело и опубликовало эту надпись здесь

Мне это предложили профи в электронике. И не просто предложили, а обосновали и показали что I2C действительно работает на довольно больших расстояниях. И ничего не глючит.


А провода довольно надежный вариант. У меня всегда было куча проводов в квартире и ничего, все работало надежно. Так что не совсем понятно о какой надежности вы пишите.

НЛО прилетело и опубликовало эту надпись здесь

Ничего. Разберемся. Главное стартануть.

датчик находится в полутра мерах от контроллера, подбирал подтягиваюшин резисторы. так вот стоит включить освещение в соседней комнате, такая дичь оттуда начинает сыпаться… единственное что уменьшило этот шум(но не исключило) это использование экранированных витых пар..

В I2C есть моменты завязанные на фронты двух сигналов, оно может и работает на большее расстояние нежели плата но только по чистой случайности или об этом надо постоянно помнить и выравнивать электрические длины для двух сигналов… это не очень хорошо для надёжности. Тот же RS-232 которому уже лет 50 и то лучше…
Никто не разворачивал умный дом на ESP-Mesh? Вроде в для Arduino IDE создали специальную библиотеку painlessMesh.
Очень заманчиво, чтобы не городить дома кучу WiFi точек доступа, чтобы обеспечить дохлым ESP нормальное покрытие.
Тоже думал в этом направлении, но… это требует постоянной работы ЕСПешэк (никакого сна, но в плюсе быстрая/мгновенная реакция на датчики, и наверное в чем-то проще в подключении/настройке). Еще минус — дистанция между точками ограничена (другие точки, помехи, стены).
Похожее/лучшее решение, по-моему (если важна энергоэффективность) будет на модулях JDY-40 или nRF24L01 — дистанция от 100 м до 1-2 км, более энергоэффективные, дешевле ЕСПэшки (даже 8266, не говоря о ESP32 NodeMCU). В этом варианте в дальних точках будут именно датчики с модулем передачи (а не роутер/ретранслятор) — и это все на батарейках (т.е. получается небольшой автономный модуль который легко переместить/закрепить).
Если важна простота — то да, пары-тройки ЕСП должно хватить на всю квартиру.
Кстати, некоторые модули идут со штатным штекером для внешней антенны, т.е вопрос охвата/силы сигнала можно решить и так (взять антенну на 2.4 от старого раутера или ноутбука).
Тоже думал в этом направлении, но… это требует постоянной работы ЕСПешэк (никакого сна, но в плюсе быстрая/мгновенная реакция на датчики, и наверное в чем-то проще в подключении/настройке). Еще минус — дистанция между точками ограничена (другие точки, помехи, стены).

ESP8266 и сон — как то не очень совмещаются.
Жрут много даже во сне, выход из сна через перезагрузку, а значит и переподключение к WiFi. В этом отношении лучше Zigbee я пока не видел ничего.

Похожее/лучшее решение, по-моему (если важна энергоэффективность) будет на модулях JDY-40 или nRF24L01 — дистанция от 100 м до 1-2 км

Ни разу не удалось получить на nRF24L01 хорошее покрытие. Мощность передатчика там меньше чем у WiFi и те же 2.4ГГц
NRF52 немного получше — у них радиотракт помощнее. Из них NRF52840 самые мощные.
Тут принцип работы, как и в Zigbee — самоорганизовывающая сеть, где любое устройство может стать роутером/ретранслятором

Если верить diyi0t.com/how-to-reduce-the-esp8266-power-consumption то 8266 ест в глубоком сне 10/20 мА, без модема — 20/30, на полном ходу — до 200.
Zigbee, бесспорно хорош в энергоэффективности, но цена всего набора (хаб плюс пару-тройку датчиков, плюс реле) выходит высоковата (как по мне).
А вот о Вашем опыте с nRF был бы рад услышать, т.к. пока моя мысль движется именно в этом направлении (особенно интересна связка ESP32 на внутреннем Bluetooth modeme и nRF Bluetooth на датчике).
10мА в режиме глубокого сна это жуткие токи при работе на батарейках. NRF52 получается 2-3мкА с прерыванием по таймеру. И около 20мА в режиме передачи на максимальной мощности. Сейчас тестирую устройства на CR2450 — несколько месяцев уже полет нормальный

NRF c Bluetooth я не запускал. Не нашел примера реализации нормального.

А вот NRF24, NRF51, NRF52 c Mysensors использую уже несколько лет.
Пока самые интересные модули получаются E73 на NRF52832 при цене менее $2.5

ESP32 активно использую в коммерческих задачах. Там FreeRTOS — песня!

А где вы используете ESP32 в коммерческих задачах?

из последних:
Умные теплицы
Контроллер для пивоварни
Контроллер уличного освещения (c GSM)

По моему пока статьи автора ещё очень сильно не дотягивает до уровня хабра. Понимание в теме, в выбираемой архитектуре решения, вопросы надежности, автономности работы и т.д. и т.п. отсутствуют.
Для начала замените "светодиод" на полноценную индуктивную нагрузку. Возможно после этого поймёте, что просто как front-end разработчику без паяльника, в теме умного дома Вам делать нечего.
А далее подумайте про автономность работы Дома (это не ups), на что косвенно и напрямую на протяжении двух статей обращают ваше внимание.

полноценную индуктивную нагрузку

Пока не планировал такую нагрузку ставить… Это же вроде как двигатели всякие. А у меня пока что только лампы и обогреватели.

Во-во. "вроде как двигатели всякие". Вы ещё мыслите на уровне светодиода. Реле под нагрузкой это нечто другое. Вот тут отдельные статьи можно писать — обычные реле, твердотельные, и т.п. Как вы собираетесь коммутировать нагрузку? Подключите лампу 220В, свой обогреватель. Реальную кнопку подвесте на ESP. Схему питания, приближенную к реали. Хоть лампу себе на рабочий стол запитайте. Активно попользуйтесь пару недель. Я тему ЭМИ после этого вспоминал, вспоминал RC цепи, про которые как программист давно забыл. Десяток вариантов переделал. И код перелопачивал для обеспечения восстановления работоспособности и большей стабильности.
Никто не утверждает, что на 8266 нельзя собрать адекватное управление. Ещё как можно, но с учётом большого количества "НО" и опыта. У меня работает несколько самоделок стабильнее, чем промышленные zigbee выключатели. Как раз на esp8266.
А в ваших статьях нет главного — понимания необходимости стабильной работы. Нет опыта. Вы молодец, что делаете, изучаете тему. С темы "светодиодов и датчиков температуры" начинал каждый, кто этим интересовался. Но сразу писать об этом серию статей…

Не могли бы посоветовать где почитать на данную тему? Именно с точки зрения прикладывания ЕСП к «силовым» задачам со стабильным результатом?
Книгу или определенный ресурс посоветовать не смогу. Когда столкнулся с проблемой разбирался по разным статьям. Конкретно к ESP были только вопросы и предложения по выбору способа коммутации и применению искрогасящих цепей (чаще всего использую RC-цепи). У себя сохранил вот эту ссылку ldsound.ru/relay-without-spark Теория вопроса и Рис.3 для подбора параметров RC. Очень рекомендую.
Так же для себя выработал ряд правил, которые соблюдаю (возможно со мной будут не согласны):
  • Хороший блок питания для ESP (как говорил начальник лаборатории в НИИ: «Правильный блок питаний 90% работоспособности изделия» ))).
  • Подтягивать GPIO к шине питания резистором 10К.
  • Электролит по питанию как можно ближе к ESP (где позволяют габариты) – спорная рекомендация, но привычка.
  • Где необходимо использую RC-цепь (описание выше).
  • Программно. Восстановление состояния устройства после рестарта/сбоя (без загрузки данных из сети. Вообще устройство должно работать без подключения к WiFi, облаку, MQTT и т.п.)
  • Программно. Никогда сразу после отключения нагрузки (реле) не проводить сохранение данных во flash. Без RC-цепи в 50% случаях с реальными устройствами получал рестарт ESP. Рискую получить негатив, но это практическая наработка, которую не могу объяснить, т.к. в тестах не помогал ни блок питания, ни емкости, ни экранирование.


И последнее — при макетировании как можно ближе к реальной нагрузке, к реальной ситуации.

Наконец-то, свет в конце тоннеля))))
Вы невозможны!


Мне тут карму плинтуса опустили только за то, что я хочу строить сеть на одних ESP-шках)))


И кстати, сеть на ZigBee получается дороже, чем на ESP-модулях. Это правда пока первая прикидка, но уже модуль ESP стоит от 80 рублей, а ZigBee — от 300 рублей.

Никаких проблем, жаль только что Espressif поддерживает частоту 2.4 Ghz.

А вы какие модули используете? ESP-01, ESP-12, Wemos, NodeMCU, ...?

Пока в проекте 11шт wemos D1R2 (ESP-12E) и 3шт D1R32 (ESP32). Участок большой, расстояния приличные, поэтому так много :)image

А вы от батареек или от сети питаете ESP?

Импульсные бп для лид, с алиэкспресс…

Основная проблема MQTT это отстутствие шифрования (а данные гуляют по воздуху).
Его можно поднять с сертификатами (сертификат в скетче — это изящно и удобно, да).
Второй момент — отстутствие нормальной (работающей) ОТА библиотеки.
У меня напрямую не вышло.
Только через загрузку скомпилированного бинарника по https с NodeRed.
А ведь потенциальный "мамкин хакер" может попросту долбить "дропами" WiFi (библиотеки на которой можно поднять mesh сеть и чтобы в ней работало все что описано выше я не нашел).
Короче дело было год назад и может что то и поменялось.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации