Температура онлайн

Есть у меня перманентная задача на зимний период – дистанционный контроль за температурой в загородном доме. Ну, чтобы точно знать, что пора срочно ехать и топить печку, пока все нафиг не померзло к чертовой матери. Когда я тут живу, то, разумеется, и так все понятно, а вот когда обстоятельства требуют долговременного присутствия в городе – мне как-то неспокойно.

Долго прикидывал, как бы это сделать. Ну, то есть, нормальный человек купил бы просто GSM-термометр за 200 баксов и голову бы себе не напрягал. Хорошая штука — отсылает смс с данными датчика температуры, по расписанию или по запросу. Гибрид термометра и мобильника. Многие даже позволяют дистанционно включать какую-нибудь нагрузку, например – обогреватель.

clip_image001

Но дистанционное включение мне не нужно, а 200 баксов кажется мне дорого. Ну и, опять же – воткнул-работает… Скучно!

И потому я пошел своеобычным путем per anus оригинальных технических решений. Для чего приобрел в Китае термодатчик в USB. За 250 рублей. Это ровно в 20 раз дешевле самого дешевого GSM-термометра.

Выглядит он как обычная флешка и втыкается туда же.

clip_image003

К нему имеется фирменная утилита, которая, по замыслу китайцев, умеет все:

Скриншот 2015-01-04 11.22.41

Показывать график, посекундную таблицу измерений, отправлять данные по скайпу, MSN и емаил. Разумеется, наиболее привлекательным выглядело последнее. Стоит себе на даче нетбучочечек, воткнутый в UPS, и два раза в сутки шлет мне на почту сводный отчет от температуре через мою же GSM-to-Wi-Fi сетку. У меня как раз и нетбучок ненужный для этого есть:

clip_image007

Тот самый «еле-еле пися» — EeePC. Неубиваемый древний девайс, вечный, как окаменевшее говно мамонта и примерно настолько же полезный. Зато он на одном упсе может неделю работать, потребление у него как у планшета.

Но, разумеется, если бы все заработало, как планировалось, то о чем бы я вам рассказывал?

Для начала, фирменная утилита термометра потребовала на нетбуке обновления NET Framework до 3.5, но все равно не стала запускаться, выдавая этого самого фраймворка ошибку. Я ее и так и этак, со словами и без слов… — нет, глядь, не работает. С «еле-еле-писей» это частенько случается, там криво и жестоко кастрированная (чтобы влезала на крошечный SSD) ХРень, у нее свои странные приколы. Некоторые вещи на ней не работают «просто потому что». Проще плюнуть, чем понять, чего им не хватает.

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

clip_image009

Установил утилиту, настроил почту – и с какого ящика отсылать, и на какой…

Скриншот-2015-01-03-13.08.13

Ан хрен там!

clip_image012

Я знал, но как-то не придавал значения тому, что в прошлом году абсолютно все почтовики перешли на безусловную SSL-авторизацию SMPT. А между тем, это именно так. А утилита этого не умеет. Погуглив, обнаружил, что сервера без SSL теперь только за лютые деньги для профессиональных спамеров. Именно потому, что они позволяют отправлять письма любым унылым утилиткам, типа этой. А нормальные сервера это обрезали. Как раз в целях борьбы со спамом.

Нет, конечно можно поднять собственный почтовый сервер, с блэкджэком и без SSL, но… Чот это как-то из пушки по воробьям. Долго и муторно. Нормальные герои, как известно, всегда идут в обход.

Что нам остается? Скайп? Скайп надысь принципиально порезал API для сторонних разработчиков. Ну да, в микрософте, известно дело, жадные ненатуралы давно окопались. MSN Messenger? Так его, вроде, теперь вообще нету. Всех еще об прошлом годе принудительно перевели на тот же скайп. Потому что в микрософте… ну, вы поняли.

Таким образом, остался только лог, который постоянно пишет программа. Текстовый файл, состоящий из строк вида «номер строки, температура, дата, время»:

clip_image013

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

(UPD — интервал мониторинга не без бубна, но заработал. Теперь утилита пишет в лог одну строку в полчаса, число строк на файл ограничил шестью — то есть, один текстовый файл в шесть строк раз в три часа. Это уже гораздо, гораздо лучше! Текстовый файлики в несколько килобайт вообще не дают трафика.)

Осталось только наладить получение этих логов с загородного компа на домашний, что уже задача попроще. Сначала я просто задал программе путь для сохранения логов в папку Дропбокса – но вышло нехорошо. Постоянно перезаписываемый раз в секунду файл бесконечно синхронизируется, что сводит Дропбокс с ума и создает непрерывный трафик.

Пришлось сделать периодическую синхронизацию папки с логами в папку дропбокса при помощи моей любимой консольной утилиты nnBackup. Для чего я написал такой микроскрипт:

clip_image014

Первая строчка – синхронизация данных, вторая – удаление файлов старше суток, чтобы не гонять через дропбокс лишнее и не иметь на компе бесконечно растущую папку.

Скрипт подвесил через стандартный «Планировщик задач» (клянусь бейцами биллгейца, я даже не представлял, через какую задницу он запускается на 8.1! «консоль управления»! ояебундестаг!..) на выполнение дважды в сутки.

clip_image015

clip_image016

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

В общем, кривоватая и корявоватая система дистанционного мониторинга температуры заработала. Но, конечно, вышло неизящно. Эка они подкузьмили-то со своим SSL…

Надо еще подумать.

19 комментариев

  1. Repich

    А разве ноутбук не вносит свои коррективы в окружающую температуру? Он ведь, собака, греется, что должно привести к искажению результатов? Конечно, если задача понять, что «все пропало» и температура в доме приблизилась а абсолютному нулю такой штучки достаточно, а вот может ли она отличить +22 от +17?

  2. lnr

    http://sms.ru/

    Когда-то пользовался этим сервисом.

    Он, вообще, платный, но раньше для одного номера можно было слать смс-ки бесплатно.

    У них есть АПИ клиенты на всех популярных языках, можно запустить какого-то демона на ноуте и стучаться к апи.

    • Павел Иевлев

      Интересная идея. Хотя не совсем понятно, как скармливать их АПИ произвольный текстовый файл…
      Но есть над чем подумать.

      • lnr

        Этот вариант хорош, когда информация в отчете ограничивается сотней символов.

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

          • lnr

            промахнулся, ответил ниже

  3. Денис

    Есть такая штучка stunnel, позволяет natить SMTP трафик с безSSLных клиентов на SSLные почтовые серверы. Мы такой пользовались для 1с, у которой до поры поддержки SSL не было.

  4. lnr

    http://www.unisender.com/ru/

    первое бесплатное что нагуглил

    Пока гуглил, пришла еще одна идея — твиттер, он будто создан для этого)

  5. elveel

    С линуксом дружит?
    Насколько знаю, делают прошивки с опенврт для роутера с поддержкой всяких датчиков.

  6. Евгений

    Могу предложить упростить данную связку созданием почтового ящика не требующего ssl для отправки писем (обычную авторизацию то прога умеет, надеюсь?). Сервер есть, ящик сделаю, ssl в ближайшие пару лет точно не сможем ввести как обязаловку…
    Если надо — welcome 🙂

    • Павел Иевлев

      Спасибо за предложение, но я уже нашел решение проще. Напишу по окончании тестирования.

  7. Starky

    У меня так — Arduino Mini Pro (120р + От батареек может месяцы жить, от UPS — +- бесконечность) + DHT22 (температура-влажность) + еще датчики + EtherCard (для выхода в инет) +nRF24 (для связи с другими «удаленными» датчиками и контроллером котла). Все подключено к роутеру где крутится OpenWRT, в выходные напишу скриптик на PHP (который в роутере уже есть), который будет принимать данные с ардуинки и отсылать их куда-нибудь в инет, где уже будет писаться в MySQL с графиками и прочими плюшками.

    • Павел Иевлев

      Да, Arduino — моя мечта. Останавливает пока недостаток времени на освоение новой платформы. Но я еще до него доберусь!

      • Starky

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

  8. MadRat

    А чего огород-то городить? Есть така халявна приблуда — TeamViewer http://www.teamviewer.com/ru/ . Работает, как лопата, проста и надежна, как лом. Схема проста до изумления. На удаленке запускаете сервак, на локале — клиента. И имеете такой квазиРДПконнект, но тока без выделенного айпишника ипрочих дополнительных накладных ништяков. Дальше — тварите, шо хатите )))

Оставить комментарий

Новая книга