RSS блога
Подписка
WiFi модуль ESP8266. tthRelay - делаем полоумное WiFi реле ч.2
- Цена: $4
- Перейти в магазин
Полгода назад я писал о полоумном WiFi реле с богатым функционалом. Текущая версия превалила за 4.0.0 и научилась управлять реле из любой точки мира с помощью Telegram messenger по HTTPS. Хотите узнать как? Тогда прошу под cut…
О схеме, прошивки и базовой настройке повторяться не буду, об этом читайте в первой части. Здесь только пошаговая инструкция настройки Telegram messenger.
В Telegram найдите @BotFather и создайте своего бота с помощью команды /newbot.
Скопируйте username бота (в нашем примре это Relay_01bot) в Username и token в поле Token вебморды.
В Telegram найдите своего бота по name (в нашем случае Relay_01), добавьте его в контакты, затем откройте чат бота и отправьте команду /start
Чтобы несколько пользователей могли управлять реле, создайте групповой чат и добавьте всех кому положен доступ. Так же добавьте бота в качестве администратора чата.
Чтобы бот не бузил, рихтуем ему права.
Открываем групповой чат и отправлем любое сообщение в группу. Например — Hello world.
Открываем интернет-браузер и в поле адреса вводим api.telegram.org/botYOUR_BOT_TOKEN/getUpdates. Ищем идентификатор группового чата (он всегда отрицательный, например id:-12345678901234).
Копируем число в поле Chat ID вебморды.
Если многопользовательское управление не нужно, то пропускаем шаги создания группового чата и вместо идентификатора группового чата ищем id чат бота (он всегда положительный, например id:123456789). Копируем число в поле Chat ID.
В веб морде щелкаем на Save и Reboot. Если все сделали правильно, то в течении 15..20 секунд вам придет STATUS сообщение.
Со списком команд можно ознакомиться, послав боту команду /help@BOT_USERNAME (в нашем случае /help@Relay_01bot)
Бот немного задумчив, тк время между опросами 10 секунд. Если у вас безлимитный интернет смело меняйте на 5 секунд во квладке Settings -> Telegram Config — > Advance. На настройках по умолчанию, расход трафика около 3.25MB в день. В один групповой чат, можно добавить до 20 ботов реле.
Настоятельно рекомендую после каждой команды проверять себя запуская STATUS — /status@BOT_USERNAME (в нашем случае /status@Relay_01bot). И только после этого выполнять команды /save и /reboot.
Сильно не тестировал, но вроде все работает.
UDP: Где исходники? Их не будет. Есть только скомпилированные бинарники. Лицензия arduino (именно в ней написан проект) позволяет не открывать исходный код. То что я сам у себя своровал библиотеки HTU2xD_SHT2x_Si70xx и AHTxx принято к сведению и виновные будут наказаны.
О схеме, прошивки и базовой настройке повторяться не буду, об этом читайте в первой части. Здесь только пошаговая инструкция настройки Telegram messenger.
В Telegram найдите @BotFather и создайте своего бота с помощью команды /newbot.
Скопируйте username бота (в нашем примре это Relay_01bot) в Username и token в поле Token вебморды.
В Telegram найдите своего бота по name (в нашем случае Relay_01), добавьте его в контакты, затем откройте чат бота и отправьте команду /start
Чтобы несколько пользователей могли управлять реле, создайте групповой чат и добавьте всех кому положен доступ. Так же добавьте бота в качестве администратора чата.
Чтобы бот не бузил, рихтуем ему права.
Открываем групповой чат и отправлем любое сообщение в группу. Например — Hello world.
Открываем интернет-браузер и в поле адреса вводим api.telegram.org/botYOUR_BOT_TOKEN/getUpdates. Ищем идентификатор группового чата (он всегда отрицательный, например id:-12345678901234).
Копируем число в поле Chat ID вебморды.
Если многопользовательское управление не нужно, то пропускаем шаги создания группового чата и вместо идентификатора группового чата ищем id чат бота (он всегда положительный, например id:123456789). Копируем число в поле Chat ID.
В веб морде щелкаем на Save и Reboot. Если все сделали правильно, то в течении 15..20 секунд вам придет STATUS сообщение.
Со списком команд можно ознакомиться, послав боту команду /help@BOT_USERNAME (в нашем случае /help@Relay_01bot)
Бот немного задумчив, тк время между опросами 10 секунд. Если у вас безлимитный интернет смело меняйте на 5 секунд во квладке Settings -> Telegram Config — > Advance. На настройках по умолчанию, расход трафика около 3.25MB в день. В один групповой чат, можно добавить до 20 ботов реле.
Настоятельно рекомендую после каждой команды проверять себя запуская STATUS — /status@BOT_USERNAME (в нашем случае /status@Relay_01bot). И только после этого выполнять команды /save и /reboot.
Сильно не тестировал, но вроде все работает.
UDP: Где исходники? Их не будет. Есть только скомпилированные бинарники. Лицензия arduino (именно в ней написан проект) позволяет не открывать исходный код. То что я сам у себя своровал библиотеки HTU2xD_SHT2x_Si70xx и AHTxx принято к сведению и виновные будут наказаны.
+218 |
23156
155
|
Самые обсуждаемые обзоры
+67 |
3026
127
|
+49 |
3323
64
|
+28 |
2191
37
|
+50 |
1915
37
|
Думал может какой-то сакральный смысл имеет место быть.
Это и была фраза «Hello world»
При моем более чем 30 летнем стаже в программировании, до сих пор первый запуск приложения написанном на новом языке на новой платформе сопровождаю выводом этого текста :)))
Basic-Fotran-Pascal-Asm-FoxPro-ActionScript2,3-JS-typeScript-Go-Php и т.д. :)
Привычка. Нет. Канон! :)
Если разбирается хорошо — сможет подтвердить что в коде нет ничего «лишнего».
Про лишнего, придётся поверить на слово.
Сколько у Вас заимствованного кода из чужих проектов? Сколько раз нарушена GPL и другие лицензии?
Я не вижу, на каких условиях Вы распространяете свой продукт. Где LICENSE?
Вы изучили вообще совместимость LGPL v2.1, MIT, GPLv3?
Хотя бы это изучали?
Это не LGPL. GPL v3 подразумевает, что софт, который использует библиотеку (код) GPL v3, будет распространяться под GPL v3, которая обязывает предоставлять пользователю исходный код. Вы выполнили требования лицензии?
(http://www.gnu.org/licenses/gpl-faq.ru.html#IfLibraryIsGPL)
HTU2xD_SHT2x_Si70xx — это моя библиотека. ее (и прошлю версию) качают около 5..6 челвек в сутки в течении уже 7 лет. я иногда ради интереса ищю об ее упоминаии в инете и других проектах, но вот беда в ответ тишина. но на каждом углу я про это не кричу и к каждому скачавшему не пристаю. opensource такой opensource.
как только кто-то напишет что-то пожее, с таким же функционалом, нормальной вебмордой и без детских болячек, то я сразу откою свой (тк воровать станет нечего). а пока так.
ну и к вам вопрос ABATAPA. где ваши opensource посмотреть?
Напомню про LGPL ( esp8266/Arduino is licensed under the GNU Lesser General Public License v2.1):
(https://ru.wikipedia.org/wiki/GNU_Lesser_General_Public_License)
Выбранная же Вами лицензия GPLv3 накладывает ещё большие ограничения, которые Вы сами нарушаете в производном продукте.
Т. е. Вы не воруете у других, а другие воруют у Вас? :)
Причём тут я? Что за детская попытка перевести стрелки? Я вообще могу не быть программистом. Как потребитель я как раз ничего не нарушаю. Если я «никогда, ничего не выкладываю» — я не распространяю ПО и не нарушаю лицензии этого ПО.
Как это связано с тем, что Вы, именно Вы нарушаете лицензии, в том числе — на свой собственный (якобы) продукт?
выкладываю только библиотеки. этого достаточно чтобы написать похожий проект или даже лучше.
свой выложу как только кто-то напишет что-то похожее (с таким же функционалом, нормальной вебмордой и без детских болячек), а пока так.
Всё понятно.
На git abuse. Тему закрыли.а то что я своровал сам у себя, я переживу и виновных накажу.
Вы ошибаетесь.
esp8266/Arduino is licensed under the GNU Lesser General Public License v2.1
Если бы Вы распространяли ПО, которое использует динамическую библиотеку (как .so в Linux или DLL в Windows) — это было бы возможно и допустимо для LGPL (но не для Вашей библиотеки под GPL v3). Но Вы распространяете бинарный код, где всё слинковано статически. Вы читали вообще тексты лицензий GPL, LGPL? Уверен, что нет.
Ну, если Вы сами себя не уважаете… Да и не только себя, как видно из написанного выше.
Но это как раз то самое — о совести. У кого-то она есть. А вот у некоторых — нет.
как я уже писал выше — я сегодня же, решительно, себя за это накажу. надеюсь теперь претензий нет?
но конкретно в этом случае, у автора все сделано грамотно.
GPL-шный кусок судя по всему принадлежит целиком автору, и он как автор может использовать свой код как захочет. А на публику он тот кусок распространяет под GPL.
так что никаких проблем нету: пермиссивщина+код lgpl (в котором он вероятно совсем ничего не менял — т.е. и нечего распространять в форме кода) и свой собственный код. никаких обязательств по выкладыванию кода это не влечет.
возможно какие-то мелкие нюансы — типа неприложенного файлика license, но это не тянет на нарушения. так что всё ок.
единственно с GPL-ой библиотекой есть один нюанс. если автор примет туда изменения от сторонних разработчиков (которые пойдут туда под GPL), то вот эту часть кода он не сможет закрыть. и если будет использовать в своих наработках ту часть кода (даже 1 строчку изменений), то будет обязанность обеспечить доступ ко всему коду и изменениям при распространении.
т.е. таким образом сработает вирусность лицензии и ему придется открыть весь tthRelay, т.к. иначе это будет нарушением условий GPL.
и/или для дальнейшего распространения без предоставления кода придется как-то добиться от сторонних контрибуторов перелицензирования внесенных ими изменений (что обычно практически невозможно).
но пока он там один ведет этот проектик под GPL, то повторюсь, всё ок.
У него статическая линковка, значит, в распространяемом коде есть GPL v3 и он обязан предоставить исходники.
Он сам же этого не делает.
LGPL тоже допускает использование в проприетарных продуктах только при внешней линковке.
Учите матчасть.
Вы сами нарушаете выбранную Вами же лицензию. А не выкладываете почему? Боитесь, что «украдут». Но сами поступаете так же. Рассчитываете в дальнейшем на монетизацию, да?
Собственно, всё ясно.
Вы бы хоть раз почитали… «По цене носителя информации». Но это писа́лось во времена дискет и CD. При распространении через Интернет, да ещё с бесплатной платформы — о чём может идти речь?
Насколько я понимаю автор не обязан предоставлять исходники именно через интернет.
Скажет что высылает исходники на CD значит на CD. Про цену носителя все верно.
Вот автор пишет о «воровать», но как он поступает сам?
Что мешало ему использовать только не-копилефт-компоненты? Он даже для своей библиотеки выбрал лицензию GPL, а не, к примеру, MIT! Почему? Не хотел, чтобы другие «безнаказанно» на этом зарабатывали — деньги или «славу»? И оправдания «ваши лицензии не работают» — это просто… Они потому и не (всегда) работают, что вот так относятся…
А вообще, это больше о чести и совести.
В этом месте у разных людей разные мнения.
Стоит почитать адептов BSD лицензии, они от GPL обычно просто кипятком писают.
К слову, у меня лично мнение что все это изначально писалось для защиты от корпораций, потому что заставить автора-фицлицо открыть исходники практически нереально, на него просто нет рычагов в отличии от юрлица.
Пусть хоть уписаются. Это вопрос выбора, а не нарушения этих лицензий.
Кто-то и от УК «киятком писает», это что-то меняет в плане нарушений этого УК? Нет.
Выбирает он.
(https://www.gnu.org/licenses/gpl-faq.html#AnonFTPAndSendSources)
Четко написано выполните или (1) или (2).
Смешно. Авторы лицензии GNU — пересказчики.
И да, читайте до конца:
Если обсуждаем лицензию то давайте уж тогда обсуждать оригинальный текст.
Я правда не вижу какой в этом смысл и что именно мы собираемся обсудить. А главное на что повлияет это обсуждение.
Текст GPL, FAQ и других материалов переведён и на русский язык в том числе.
Кроме того, я привёл фрагмент оригинального текста лицензии.
Я ничего не собираюсь с Вами обсуждать. Я указываю на Ваши ошибки.
Вы только высказали свое мнение. Я свое.
Чье из мнений ошибочное а чье нет может решить только суд. А потом может поменять его на противоположное.
Одним из. А не каждым из описанных. Вот и выбирает автор пункт (b) и не обязан выбирать желаемый вами пункт (d).
Хорошо что подробную инструкцию по добавлению телеграмм-бота опубликовали «исходником», а не бинарником.
но не уметь написать такой проект самостоятельно с нуля.
Если что-то хочется поправить в функционале или проверить как оно написано, нужен исходник.
А писать такое же — тратить тучу времени. А время зачастую дорогой ресурс.
Может быть много причин того, что Вы не хотите делиться кодом — от комплексов — напишут, что код хреновый до боязни взлома вашего решения, которое уже используется где-то. Ну и для выкладывания кода может быть нужно его просмотреть, чтобы убрать всю персональную инфу…
Но это меняет слабо результат. Я готов принять бинарник от wifi-iot или подобного билдера прошивок. Благо там есть возможность сделать телегам-бота, а прошивка стоит около 100 рублей.
А ставить закрытую прошивку, в которой ничего не могу поменять, ошибки вероятно не правятся и тд — я бы не стал.
какая то у вас странная логика. по вашему мне нужно было брать 100р и тогда норм?
И нет, Вам не нужно брать 100 рублей. Разница вашего кода с wifi-iot в том, что там есть: комьюнити, возможность перебилдить решение и прошить по воздуху.
Думаю, что если бы Вы просто написали, что исходник давать не хотите (причина выше), но есть такие-то решения, в которых можно сделать аналогичное — со ссылками на ресурсы, пара ссылок на github с похожими проектами, Вы бы получили более позитивные комментарии. Вот и все )
Явно быстрее чем свое заново делать.
Тот же домотикз, в общем и целом меня устраивает, но есть то что не нравится — поменял и ок.
Любой другой некоммерческий «продукт», сделанный для себя, но без исходников мало полезен остальным людям, к сожалению.
Пулл-реквесты на добавление датчиков — там уже сильно много «бюрократии». Там надо сильно вложиться. Я не имею стол ко времени.
А «подровнять» под себя — легко и просто
Но когда я писал бота отсылающего снимки с камеры в телеграм то очень быстро наступил на этот момент, как и на различные ограничения по числу посланий и комбинации типов документов в сообщении.
Немного про супергруппы есть тут
Я находил в итоге где то в официальной документации. Но уже не вспомню где.
Name это то как его имя будет отображаться в чатах оно по идее не уникальное, типа многих могут звать Алексеями.
name: Алексей
username: Алексей_bot
и таких как Алексей назавших своих ботов Алексей/Алексей_bot (по закону вероятности) точно больше одного.
имхо главную роль в уникальности играют id чатов (юзеров)
Поэтому юзернэймы у ботов были разные и достаточно причудливые, а вот нэймы вполне человеческие.
Вот например разница нэймов и юзернэймов
Про уникальность username я оказался не прав.
те вот мгновенно все 220uF рассосутся через диод на землю gpio?
680ohm это я еще увеличил, стояло 470ohm — оптопара дольше проживет.
почему нет? С 3.3 вольта разрядится до 0.8 через сколько? 5-10 ом?
Подскажите, должна ли выполняться команда включения реле?
так же обратите внимание, что поле этой команды реле автоматический перейдет manual mode и в нем останется!!! даже если до этого стояли time, temperature или humidity.
вернуть обратно можно командой
после каждой команды проверяем «а чо мы там накомандовали?» запуская
он вам все раскажет
если вам надо из коробки, то все советуют shurillu/CTBot как самую стабильную и малопотребляющую ресурсов.
вся информация по ядру и не только есть во вкладке ESP8266 Info. сейчас у меня задача оптмизировать парсер комад для телеграмбота, тк свободного stack всего 0.7КБ...0.8КБ. например в моем проекте часов всегда свободно 2КБ stack memory.
----------------------------------------------------------^^^^^^^^
Тут делаете столько кучи сколько нужно.
К тому же с кучей все ок — свободно 15кб, и фрагметация 7%..8%.
Проблема со стеком из 4кб осталось 0.7кб. Это я ещё подправил, на первых версиях было 0.5кб и не хватало — реле могло иногда легко перегрузиться на тяжёлых командах типа выдать список всех команд в телеграмм бот (там список + описание команд получается под 1кб) а ещё его надо в json засунуть и тд. и тп.
И бинарник на всех проектах, и это без бота, перестал влезать в 8285, ибо теперь на 20% больше, чем на 2.4.2.
3.0.2 вааще красава!
Скетч использует 491505 байт (55%) памяти устройства.
То есть теперь полоумную розетку по web не обновить!
и в большом разрешенни. как говорится почувствуйте разницу. сделанно людми для людей. а вы своих пользователей за людей не считаете.
эта почему-то не прикрепляется, поэтому ссылка на анимированный gif и ч.1
art.mysku-st.ru/uploads/arts/03/41/75/2021/12/01/6103ea.gif
потому что это другое… и нет необходимости.
пародокс в том что тевизор, телефон и все купленное вами, за работанные рубли, вы хотите с красивым, удобным и человечным интерфейсом, но при этом себе позволяете вот такую шляпу и не видите в этом ничего плохого.
может просто надо начать с себя и глядишь ваши дети вывастут другими. может станут инженерами и спроектируют нормальный автомобиль. а пока они копируют вас у них тоже будет все такое вырвиглазное — от осинки не родятся апельсинки.
Я ещё раз повторю, то что у вас не получается лучше — это нормально тк выше головы не прыгнуть. Не нормально то, что вы не видите что это полная шляпа и еще нас пытаетесь убедить убедить в этом.
Вы вот себе ответь честно, если в магазине вы увидите две умные розетки, но одна с интерфейсом как у вас, а вторая как у меня вы какую купите, при условии что цена одинаковая?
Ладно, расслабьтесь. Покупать я буду естественно то, что будет удобно в обращении. Что нибудь типа этого:
И когда надоест китайское облако с наворотами, сделаю своё, попутно доработав железо.
И сделаю удобный интерфейс без лишних наворотов.
Arduino я разворачиваю за 1 минуту и все сразу работает с кучей примеров на все случаи жизни.