«Умные дома» и «умные офисы» сегодня тренд. А как сделать самое обычное бытовое устройство чуть «умнее»? А что если при этом вы не умеете или не хотите ничего паять? Я например отношусь к тем, кто паять не умеет, а пользу от умных устройств получать хочет.

Под катом я расскажу, как легко и без паяльника можно быстро превратить абсолютно любую микроволновку в самую настоящую smart-микроволновку, которая будет оповещать вас о готовности еды и своем текущем статусе самыми разнообразными способами.

Для чего?


Так уж получилось, что в нашем офисе помещений несколько, а микроволновка одна. Собственно нужно как-то оповещать коллег, что еда разогрелась и пора идти на обед (ходим на обед мы все вместе, а еду разогревает только пара человек).

Во всех офисах у нас висит по телевизору, который подключен к самому обычному ПК (Mac Mini). Так что он мог бы выступить в качестве «рупора», оповещающего, когда микроволновка начала, а когда закончила свою работу. Вдобавок, можно было бы подключить какое-то световое оповещение, типа лампочек ильича Phillips Hue. Ну или посылать уведомление в мессенджер.

Что понадобится?


Как я уже сказал ранее, паяльник НЕ ПОНАДОБИТСЯ. А понадобится нам что-нибудь, что умеет мерять нагрузку на обычной 220 розетке, к которой подключена микроволновка, и сообщать об этом куда надо. А куда надо? Правильно — в онлайн автоматизатор IFTTT, который умеет отправлять что-угодно куда-угодно.

Собственно алгоритм простой — когда микроволновка включится, то нагрузка на розетку возрастает, а когда микроволновка заканчивает греть — то снова становится равной нулю. Этот факт можно отследить и использовать как триггер в IFTTT, который и «дернет» нужный нам сервис, оповещающий нас о готовности.

Розетка


Теперь пойдем в любой интернет магазин умных домов и купим там обычную Z-Wave розетку и контроллер к ней.

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

Сама розетка — например вот эта (хотя можно купить и гораздо более дешевый вариант, но эта красиво светится :) )

Котроллер нужен, чтобы получать данные от розетки. С его помощью можно также и управлять умными устройствами, но сейчас не об этом.
Будем подключать нашу розетку к контроллеру MiCasa Vera Lite (или можно к Vera 3).


Контроллер подключается в локальную сеть через Ethernet или Wi-Fi (для Vera3). С ним один раз синхронизируется розетка с помощью одной-единственной кнопки, и все — теперь с помощью контроллера можно управлять розеткой и получать от нее данные. Сразу ее включим через веб-консоль контроллера и оставим включенной.

OpenHAB


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

Зачем он нам? Все просто — он будет отслеживать состояние нашей розетки и в нужный момент отправлять на IFTTT запрос, чтобы тот в свою очередь отсылал данные в нужный нам канал нотификаций.

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

Установка


Итак, скачаем OpenHAB и аддоны для него, среди которых отыщем jar файлы со словом «mios» в названии и положим их в папку «addons» нашего OpenHAB-а.

Еще вам понадобится Oracle JDK последней версии, так как OpenHAB написан на Java

Конфигурируем OpenHAB


Тут все просто. Идем в папку «configurations» и переименовываем «openhab_default.cfg» в «openhab.cfg» и открвыаем его в редакторе.
В конец фала пишем строчку
mios:house.host=192.168.1.22

естествнно заменив IP адрес на адрес вашего контроллера Vera. Его кстати можно очень быстро получить, открыв в браузере вот такую ссылку http://cp.mios.com/detect_unit.php

Подробное описание процесса настройки и конфигурации Vera в OpenHAB описана на странице аддона github.

Далее идем в папку «items» и там в файле «test.items» пропишем настройку, чтобы OpenHAB знал, состояние какой розетки нам нужно отслеживать:
Number Microwave {mios="unit:house,device:11/service/urn:micasaverde-com:serviceId:EnergyMetering1/Watts"}

Вместо цифры 11 пропишите идентификатор вашей розетки, который можно увидеть в веб-консоли вашего контроллера Vera.

Ну и последнее — пишем небольшое правило, которое будет отслеживать состояние розетки и отправлять запрос на наш IFTTT.
В папке «rules» создаем файл «test.rules» и пишем там:
import org.openhab.core.library.types.*
import org.openhab.model.script.actions.*

rule "Microwave"
 when 
  Microwave received update 0
 then
  sendHttpGetRequest("http://maker.ifttt.com/trigger/microwave/with/key/<тут должен быть ваш ключ от IFTTT>")
end


Правило реагирует, когда нагрузка от микроволновке становится равной нулю и шлет запрос на IFTTT. Адрес запроса нужно получить в вашей консоли IFTTT, туда сейчас и пойдем.

IFTTT



IFTTT предоставляет возможность слать ему запросы от любых систем и перенаправлять их в нужный вам канал с помощью канала Maker. Там можно получить свой уникальный идентификатор, который и подставить в приведенный выше скрипт OpenHAB.
По сути, это URL, на который нужно отправить GET или POST запрос, заодно можно туда передать параметры (в нашем примере это не нужно). IFTTT получает такой запрос и выполняет «then» — то есть запускает нужный вам канал с нужными параметрами.

Кто-то обязательно скажет, что мол все придумано за нас, и OpenHAB уже давно работает с IFTTT, зачем нам костыль из Maker?
Отвечу сразу — IFTTT слишком редко получает статусы от OpenHAB (раз в 15 минут), что для нас неприемлемо. Поэтому OpenHAB будет сам «дергать» Maker — и тогда никаких задержек не будет, все будет происходить моментально.


Итак, делаем рецепт:

Этот рецепт для примера просто отправит нотификацию на ваш смартфон, когда микроволновка закончит свою работу. Как я уже сказал, можно создать любой другой рецепт, который сделает что-то более интересное, например слать сообщение в корпоративный Slack.

Настройки самого триггера Maker будут вот такими:


Собственно все! В Maker можно проверить как это работает — на самой странице Maker можно нажать кнопку Test и получить результат.

Не забудьте прописать ваш ключ от Maker в правило в OpenHAB!

Запускаем!


Остается только запустить OpenHAB с помощью одного из скриптов «start.sh» или «start.bat», в зависимости от того, на какой ОС у вас он установлен.
Теперь каждый раз, когда микроволновка будет заканчивать греть еду, вы будете получать от IFTTT нотификацию, которую настроили в своем рецепте. Причем моментально.
Так мы сделали из обчной микроволновки «умную», которая умеет немножко больше, чем только греть еду :)

Комментарии (20)


  1. ColorPrint
    27.09.2015 16:25
    +1

    Просто розетку включать не интересно. Вот если бы режимами еще управлять можно было )
    Все-таки для концепции умного дома не хватает открытых протоколов управления техникой (и их поддержки самой техникой).
    Управляемые розетки это конечно хорошо, но далеко с ними не пойдешь.


    1. morfeusys
      27.09.2015 16:41

      Простите, не совсем понял вас. Где вы увидели «включать розетку»? Статья вообще-то не об этом.


    1. bak
      27.09.2015 21:22

      Тут даже включать не выйдет, только определять готовность.


  1. RicoX
    27.09.2015 16:31
    +14

    Устройств на 300$+, отдельный сервак для установки OpenHAB, еще и прикрученный к левому сервису через интернет, все это чтоб оповещать о готовности микроволновки, да просто мечта маркетолога. Снять сигнал с встроенной пищалки и передать в сеть, хоть той-же, прости ктулху, ардуиной за 3$ не говоря уже о том что можно обойтись без МК вовсе, но раз без пайки. Дарю идею: ru.aliexpress.com/item/DDJ1-DDZ1-electromagnetic-vibrating-electric-whistle-bell-electric-horn-AC220VDC24-alarm-alarm-horn/32338986640.html плюс релюха в параллель к встроенной пищалке микроволновки, о готовности еды узнают даже в соседних офисах, без сервера, сети, интернета и прочих наворотов.


    1. AlexanderS
      27.09.2015 22:17
      +1

      Это вы предлагаете, чтобы микроволновка дудела в «электромагнитный вибрационный электрический свисток колокол электрический рог AC220VDC24 автосигнализация сирена» с функцией «триод силы» и специальной функцией «высокий диод контакта пункта обратного напряжения»? Да с таким девайсом не только в соседних офисах узнают — триод силы даже духов в параллельном измерении оповестит о том, что в нашей вселенной наконец-то сделали умную микроволновку без пайки! )))


    1. spc
      27.09.2015 22:31
      +2

      Вот и я тоже по-хорошему завидую парням — так запросто «пошел в магазин и купил розетку и контроллер для Z-Wave». С учетом цен на эти фиговины звучит, как у кого-то из фантастов «мы взяли атомную бомбу, и она жахнула».


    1. Deranged
      28.09.2015 16:31

      Ох уж этот китайский SEO…


  1. and7ey
    27.09.2015 17:59

    Openhab на роутеры/NASы с linux ставить можно?


    1. morfeusys
      27.09.2015 18:12

      Конечно можно


    1. nochkin
      28.09.2015 08:36

      OpenHAB требует Java со всеми вытекающими. Мало роутеров, которые могут тянуть Java.
      Вот тут подробнее про железо для OpenHAB: github.com/openhab/openhab/wiki/Hardware-FAQ


  1. Urvin
    28.09.2015 09:57
    +3

    По-настоящему умной микроволновку можно считать только тогда, когда она научится получать/синхронизировать свое время с NTP-серверами.


    1. LumberJack
      29.09.2015 08:49

      И, анализируя разогреваемое содержимое, будет составлять список покупок на завтра.


      1. Urvin
        29.09.2015 08:57
        +2

        Это компетенция холодильника


  1. yvm
    28.09.2015 10:56

    del


  1. utya
    29.09.2015 09:51

    Я чего-то запутался, для чего vera и openhab? Это как бы одно и тоже.


    1. ACooper
      02.10.2015 00:28

      Vera это контроллер сети z-wave с софтом, а openhab — только софт, объединяющий абсолютно разные контроллеры и сервисы.
      Сам openhab без наличия контроллера сети (в данном случае z-wave) управлять данным розеточным модулем не сможет.
      А вот зачем автор дополнительно с Vera использовал openhab и IFTTT действительно не понятно. Все это можно было спокойно сделать только на Vera. Без дополнительных сервисов и устройства с openhab. Возможно просто для демонстрации возможностей.

      Собственно у меня самого данный розеточный модуль вместе с Vera используется в «умном доме» для включения бойлера (в летний период отключения горячей воды) и информирования меня о том, что бойлер нагрелся.


      1. morfeusys
        02.10.2015 13:11

        IFTTT для того чтобы показать, как можно одной строчкой кода интегрироваться с сотней сторонних сервисов, не реализуя их протокола самостоятельно.
        Например у нас в офисе используется HipChat для переписки. Микроволновка может туда писать сообщение, когда включается и когда готова. С помощью Zapier (аналог IFTTT) это делается за 30 секунд. Без него пришлось бы писать вызов к серверу HipChat с аутентификацией самостоятельно.


  1. past
    29.09.2015 14:51
    +1

    А что, vera не умеет делать http запросы?
    Тогда вместо нее достаточно RaZberry и raspberry pi купить.
    И поставить туда же openhab или любой другой софт, поддерживающий z-wave.


  1. aivs
    29.09.2015 22:58

    Заглавная картинка классная!


  1. Equin0x
    30.09.2015 16:07

    Как яростный поклонник микроволновой кухни со стажем, избалованный остановкой по датчику влажности (закипело) и плавным изменением мощности излучения, ожидал чего-то большего.