Max
Tasmota + Алиса = любовь. Протокол Matter в самодельных и перепрошитых устройствах умного дома
Не секрет, что многие пользователи умного дома используют облачные сервисы для управления устройствами и интеграции их в другие экосистемы умного дома (далее - УД). Так, например, для того чтобы использовать устройства разных брендов в Умном Доме Яндекса (далее - УДЯ), необходимо привязать учетную запись приложения бренда (SmartLife, Sibling, Tuya Smart и т.д.), и далее УДЯ будет работать с этими устройствами через облачные сервера. Пара нажатий и готово.
И зачастую это выглядит абсолютно оправданно - минимум телодвижений и гарантированный результат. Но есть и существенные минусы, один из которых - зависимость работы УД от наличия интернета. Да и скорость работы через облачные сервисы оставляет иногда желать лучшего. Сам иногда наблюдаю такую картину - с момента произнесения фразы "Алиса, включи свет" до непосредственно включения света может пройти пара секунд. Да и лампочки в люстре включиться могут не все. Одна бывает совсем не слушается. Редко, но бывает.
Поэтому многие продвинутые пользователи УД держат у себя сервер HomeAssistant, который благодаря наличию множества интеграций позволяет управлять умным домом с помощью локальных протоколов, что качественно влияет на работу всевозможных автоматизаций - для них больше не нужен интернет и китайские облака. А некоторые пользователи отвязывают от облаков свои устройства и вовсе кардинальными методами - прошивая их на альтернативные прошивки типа esphome или Tasmota. Естественно, управление перепрошитыми на альтернативные прошивки устройствами через интернет с помощью родных приложений перестает работать, да и добавить такое устройство в Умный Дом Яндекса без дополнительных танцев с бубнами не представляется возможным. Точнее не представлялось, пока не появился Matter!
Тем кому интересно как без использования сторонних "навыков", локальных серверов УД и интеграций добавить практически любое устройство, прошитое Tasmota и openBeken, добро пожаловать под кат.
Читать далее
https://habr.com/ru/articles/891502/?utm_campaign=891502&utm_source=habrahabr&utm_medium=rss
Vlad
Пишут, что к1921вг015 это перемаркированный GD32F427ZGT6
ㅤ
ㅤ
Скажи ему чтоб завязывал с тяжелыми препаратами
ok-home
ㅤ
C
а кто мешает сделать это на стороне приемника ?
лень мешает. вместо написания костылей разумнее заюзать сторонний терминал, в котором это дефолтная фича. но хотелось бы уточнить, друг такая возможность есть и у встроенного в идф терминала, было бы удобнее юзать его.
ㅤ
ㅤ
В данном случае тебе нужно дождаться терминирующего символа \n и только тогда принять "данные" к исполнению
ㅤ
Или по таймауту
ㅤ
Терминал так или иначе отправлять будет побайтово. Даже если оно строку целиком пошлет без задержек. Но вероятность того что твой код решит что он получит её всю (а по факту половину) из-за паузы в несколько микросекунд - большая
C
да понятно, что байты будут передаваться друг за другом, а не сразу все.
я может не корректно мысль выразил: мне нужно отправить руками например left=100\r\n; так вот этот терминал отправляет сразу же символ l, как только я нажал букву l на клаве, т.е. он не ждет, пока я нажму условную "отправку". мне это не нравится, хочу как в любом другом терминале кнопку send или реакцию на клавишу энтер.
Sergey
Sergey
да понятно, что байты будут передаваться друг за другом, а не сразу все.
я может не корректно мысль выразил: мне нужно отправить руками например left=100\r\n; так вот этот терминал отправляет сразу же символ l, как только я нажал букву l на клаве, т.е. он не ждет, пока я нажму условную "отправку". мне это не нравится, хочу как в любом другом терминале кнопку send или реакцию на клавишу энтер.
Кроме варианта привязки парсинга к символу \n, единственный ещё вариант сделать тайм-аут ожидания символов, равный твоей скорости нажатия кнопок на клавиатуре, или пробовать вставлять готовые команды через shift Ctrl v (но это не точно, не проверял)
C
C
работает
ㅤ
ㅤ
А, уже предложили. Ну я собственно это сразу и хотел предложить, но думал это настолько очевидно что такие очевидные вещи даже предлагать не хотелось
Диванный Оракул
Доброго времени! Вопросец есть. Наткнулся в одном исходнике на такое
WiFi.begin(ssid, password, 6);
Вопрос - Что за параметр "6"?
Сергей
Доброго времени! Вопросец есть. Наткнулся в одном исходнике на такое
WiFi.begin(ssid, password, 6);
Вопрос - Что за параметр "6"?
WiFi.begin()
Описание
Функция инициализирует сетевые настройки библиотеки WiFi и возвращает текущий статус соединения.
Синтаксис
WiFi.begin();
WiFi.begin(ssid);
WiFi.begin(ssid, pass);
WiFi.begin(ssid, keyIndex, key);
Параметры
ssid: SSID - имя WiFi-сети, к которой необходимо подсоединиться.
keyIndex: сети, использующие алгоритм шифрования WEP, могут содержать до 4 различных ключей. Данный параметр позволяет задать, какой из ключей необходимо использовать.
key: шестнадатеричная строка, используемая в качестве ключа безопасности WEP-сети.
pass: сети, использующие алгоритм шифрования WPA, используют пароль в виде строки.
Нашел такую штуку
Сергей
по идее такой вид приемлем
WiFi.begin(ssid, password);
Диванный Оракул
WiFi.begin()
Описание
Функция инициализирует сетевые настройки библиотеки WiFi и возвращает текущий статус соединения.
Синтаксис
WiFi.begin();
WiFi.begin(ssid);
WiFi.begin(ssid, pass);
WiFi.begin(ssid, keyIndex, key);
Параметры
ssid: SSID - имя WiFi-сети, к которой необходимо подсоединиться.
keyIndex: сети, использующие алгоритм шифрования WEP, могут содержать до 4 различных ключей. Данный параметр позволяет задать, какой из ключей необходимо использовать.
key: шестнадатеричная строка, используемая в качестве ключа безопасности WEP-сети.
pass: сети, использующие алгоритм шифрования WPA, используют пароль в виде строки.
Нашел такую штуку
Не похоже. WiFi.begin(ssid, password, 6); норм коннектися к обычной WPA.
Диванный Оракул
Вопрос снят. Полезу копаться в либе.
Диванный Оракул
Залез. Если кому то интересно - 6 - это номер канала.
В описании к либе ошибка.
Ilia M
Так вроде, если убрать "6", то канал будет выбран автоматически? (2года не открывал IDE вообще)
Ilia M
ㅤ
А IDE то тут причем? Если речь идет про wifi?
ㅤ
ㅤ
Vector
Денис
Vector
Но как быть с cat /dev/ttyACM0?
Ivan
Поясните ардуинобыдлу, как эти пины на wroom 32 найти?
Ivan
Арсений
Арсений
Следовательно 25 это gpio 25
Ivan
Нашел-это 14, 13, 12. Но в чем смысол. Это i2s пины?
Ivan
Все понял, простите за вопрос, мне правда стыдно. Почитал документацию наконец.
ㅤ
Vladimir
Здесь есть полезная табличка, правда иногда только через VPN открывается. https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
Vlad
привет
а кто-нибудь пробовал уже ESP32C6 для именно Zigbee ?
как оно там вообще, тикает ?
на дальность проверяли? с какими антеннами ?
потребление реальное от батареи ?
Sergey
Самая полезная табличка - табличка от производителя, все остальное - возможно чьи то фантазии и придумки
Vladimir
Voin
Voin
вот такой пользуюсь... тут понятно что со служебными выводами и как их можно или нельзя использовать
Voin
Voin
стырил где-то в интернете
Vladimir
Vladimir
Vladimir
Vlad
Vlad
Vladimir
Глянул, вполне возможно под твою задачу хватит.
ㅤ
Vladimir
Max
https://vkvideo.ru/video-229052399_456239234
https://rutube.ru/video/6e6ab200d95436c8ddcbb07d6c8b8094/
https://dzen.ru/video/watch/67dbfed41909dc7103481e19
Vlad
Тут вопрос зачем нужен промежуточный этап в виде Zigbee?
в промышленных условиях цеха WiFi-датчики запихнутые между железяками 5-10 метровыми на дистанциях до 20 метров - таки недоступны, изредка пакеты пробиваются.
частота, конечно, тут таже 2.4ГГц, но вот попробовать надо бы Zigbee
Vladimir
ㅤ
https://docs.espressif.com/projects/esp-idf/en/stable/esp32c6/api-guides/coexist.html
Тут много внизу че написано. Конкретно и про вифи