Есть у меня перманентная задача на зимний период - дистанционный контроль за температурой в загородном доме. Ну, чтобы точно знать, что пора срочно ехать и топить печку, пока все нафиг не померзло к чертовой матери. Когда я тут живу, то, разумеется, и так все понятно, а вот когда обстоятельства требуют долговременного присутствия в городе - мне как-то неспокойно.
Долго прикидывал, как бы это сделать. Ну, то есть, нормальный человек купил бы просто GSM-термометр за 200 баксов и голову бы себе не напрягал. Хорошая штука - отсылает смс с данными датчика температуры, по расписанию или по запросу. Гибрид термометра и мобильника. Многие даже позволяют дистанционно включать какую-нибудь нагрузку, например - обогреватель.
Но дистанционное включение мне не нужно, а 200 баксов кажется мне дорого. Ну и, опять же - воткнул-работает… Скучно!
И потому я пошел своеобычным путем per anus оригинальных технических решений. Для чего приобрел в Китае термодатчик в USB. За 250 рублей. Это ровно в 20 раз дешевле самого дешевого GSM-термометра.
Выглядит он как обычная флешка и втыкается туда же.
К нему имеется фирменная утилита, которая, по замыслу китайцев, умеет все:
Показывать график, посекундную таблицу измерений, отправлять данные по скайпу, MSN и емаил. Разумеется, наиболее привлекательным выглядело последнее. Стоит себе на даче нетбучочечек, воткнутый в UPS, и два раза в сутки шлет мне на почту сводный отчет от температуре через мою же
GSM-to-Wi-Fi сетку. У меня как раз и нетбучок ненужный для этого есть:
Тот самый «еле-еле пися» - EeePC. Неубиваемый древний девайс, вечный, как окаменевшее говно мамонта и примерно настолько же полезный. Зато он на одном упсе может неделю работать, потребление у него как у планшета.
Но, разумеется, если бы все заработало, как планировалось, то о чем бы я вам рассказывал?
Для начала, фирменная утилита термометра потребовала на нетбуке обновления NET Framework до 3.5, но все равно не стала запускаться, выдавая этого самого фраймворка ошибку. Я ее и так и этак, со словами и без слов… - нет, глядь, не работает. С «еле-еле-писей» это частенько случается, там криво и жестоко кастрированная (чтобы влезала на крошечный SSD) ХРень, у нее свои странные приколы. Некоторые вещи на ней не работают «просто потому что». Проще плюнуть, чем понять, чего им не хватает.
Плюнул. Воткнул пока в основной комп. Потом привезу из города старый ноут с отломанным экраном, он у меня раньше
за сервак работал, а теперь без дела лежит. А пока, думаю, для примера разберусь и настрою на компе. Вот, рядом контрольный термометр для калибровки:
Установил утилиту, настроил почту - и с какого ящика отсылать, и на какой…
Ан хрен там!
Я знал, но как-то не придавал значения тому, что в прошлом году абсолютно все почтовики перешли на безусловную SSL-авторизацию SMPT. А между тем, это именно так. А утилита этого не умеет. Погуглив, обнаружил, что сервера без SSL теперь только за лютые деньги для профессиональных спамеров. Именно потому, что они позволяют отправлять письма любым унылым утилиткам, типа этой. А нормальные сервера это обрезали. Как раз в целях борьбы со спамом.
Нет, конечно можно поднять собственный почтовый сервер, с блэкджэком и без SSL, но… Чот это как-то из пушки по воробьям. Долго и муторно. Нормальные герои, как известно, всегда идут в обход.
Что нам остается? Скайп? Скайп надысь принципиально порезал API для сторонних разработчиков. Ну да, в микрософте, известно дело, жадные ненатуралы давно окопались. MSN Messenger? Так его, вроде, теперь вообще нету. Всех еще об прошлом годе принудительно перевели на тот же скайп. Потому что в микрософте… ну, вы поняли.
Таким образом, остался только лог, который постоянно пишет программа. Текстовый файл, состоящий из строк вида «номер строки, температура, дата, время»:
Частота записи - раз в секунду. Это явно избыточно для моей задачи, но, к сожалению - никак не регулируется. Движок с этой функцией в интерфейсе настроек есть, но ни на что, зараза, не влияет. Ладно, черт с ним, пусть так. Можно по крайней мере задать число строк для одного файла, что уже неплохо. Хотя безвестный китайский программист, написавший эту утилиту, явно напрашивается на ампутацию рук - чтобы сидеть не мешали…
Осталось только наладить получение этих логов с загородного компа на домашний, что уже задача попроще. Сначала я просто задал программе путь для сохранения логов в папку Дропбокса - но вышло нехорошо. Постоянно перезаписываемый раз в секунду файл бесконечно синхронизируется, что сводит Дропбокс с ума и создает непрерывный трафик.
Пришлось сделать периодическую синхронизацию папки с логами в папку дропбокса при помощи
моей любимой консольной утилиты nnBackup. Для чего я написал такой микроскрипт:
Первая строчка - синхронизация данных, вторая - удаление файлов старше суток, чтобы не гонять через дропбокс лишнее и не иметь на компе бесконечно растущую папку.
Скрипт подвесил через стандартный «Планировщик задач» (клянусь бейцами биллгейца, я даже не представлял, через какую задницу он запускается на 8.1! «консоль управления»! ояебундестаг!..) на выполнение дважды в сутки.
Таким образом, сидя в городе, я дважды в сутки получаю в дропбокс оперативные логи, где указана посекундная температура за текущий день. Из этих данных можно строить графики, но зачем? Вполне достаточно того, что мне известна текущая температура.
В общем, кривоватая и корявоватая система дистанционного мониторинга температуры заработала. Но, конечно, вышло неизящно. Эка они подкузьмили-то со своим SSL…
Надо еще подумать.
Оригинал этой записи на
http://semiurg.ru/2015-01-04/temperatura-onlayn/