видение,  гаджеты и прочие приборы,  дом,  Интернет,  софт,  стройка

Нескрываемый восторг от OpenSource и GitHub в частности

Давным-давно я купил автоматической метеостанцию Davis VantagePro2 с проводным подключением ибо не верил в солнечные батареи и аккумуляторы (впрочем, и сейчас не верю тоже). К ней докупил модуль, который подключен к Ethernet (там есть встроенный Web для конфигурации и telnet для команд) и регулярно уже много лет передаёт данные на сервера разных компаний. Долгое время я пользовался сервисом WeatherUnderground.com и WeatherLink.com (от Davis Instruments), однако годы шли и сервисы меняли собственников и политику, так что, мне пришлось задуматься о локальном хранении данных что бы просто иметь к ним простой и не ограниченный «непойми кем» доступ. Собственно с момента первых тестов метеостанции я знал, что модуль WeaterLinkIP подключенный к метеостанций откликается не просто на telnet, но и в ответ на весьма документированные команды выдаёт внятные, но бинарные ответы (то есть их надо преобразовывать из битиков и байтиков в осмысленные цифры). Сразу после покупки метеостанции я, конечно, поискал ПО для локального общения с метеостанцией и даже какие-то софтинка попробовал, но все они не были пригодны для сбор аи хранения данных, то есть, являлись некими «консолями», но никак не базами данных. Шли годы и вот после изменения политики сначала WeatherLink, а потом и WeatherUnderground (его купил IBM) я изрядно напрягся ибо к нынешнему поливочному сезону у меня не было удобного способа узнавать о фактически выпавших осадках на моём участке что бы принимать решение о необходимости и должном уровне полива, что недопустимо для осмысленного управления поливом растений. Ввязываться ради этого в переписку или, хуже того, исправления кода на Java что бы поменять там имя сервера и дальше PR-request и ожидание, что автор add-onn’а внесёт эти исправления понятный путь и тут я не мог бы быть первым и результата ожидать смысла не было так как PR-request уже давно был и никто на него не реагировал уже 4 месяца!!!

И вот тут начинается самое интересное: примерно зная как устроено современное программирование я пошёл искать на GitHub код на Python (ибо я его изучаю ради последующего освоения ML) и к моему удивлению я нашел ровно то, что мне было нужно — готовую библиотеку для разбора бинарных полей и кусок кода для её использования, так что, большого труда прикрутить туда MongoDB для хранения данных не составило, но теперь я понял, что надо на Influx переехать, то есть я допустил ошибку, что пошёл на поводу моды на MongoDB.

Второй прекрасный случай: управление системой вентиляции (BreezArt). Когда я её покупал в 2014 году я сразу смотрел что был IP и не ошибся. Протокол они опубликовали и в интеграции с умным домом, конечно, были заинтересованы, так что, не просто делали мобильное приложение, но и даже одно время развала исходные тексты мобильного приложения для Android, но позже перешли к платной модели мобильного приложения и открытому протоколу общения с контроллером через IP. А если есть документация и смысл, то со временем появляются и авторы библиотек и приложений. Так случилось и здесь: нынче я нашел готовое приложение на Python общающееся с вентиляцией и MQTT-брокером, так что, его элементарно интегрировать с почти любым «умным домом».

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

Ещё была история с Sonoff: она стоит несколько особняком, так как это не полноценный DYI, а совершенно осознанное гугленье вынужденного решени яи его реализация, но опять же прошивка и документация на GitHub!!!

В целом я просто в восторге от того, что OpenSource позволяет решать весьма перспективные задачи, но для того что бы им пользоваться нужны минимальные навыки не только программирования, но и понимания современных тенденций ибо легко угодить в тупиковый проект, который никому не будет интересен. Так же есть масса проблем с безопасностью, так как многие проекты написаны именно как «проба пера» без перспектив на внедрение в боевых условиях, но есть и проекты которые реально используются людьми. Так же прекрасно, что люди пишут документацию и описывают как именно они решили мелкие проблемы не описанные производителем, но неизменно возникающие.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *