Как вскипятить чайник при помощи Siri или Алисы
В закладки
Одно из самых рутинных действий в доме – включение чайника. Для этого приходится специально идти на кухню, а потом возвращаться и ждать, когда вода нагреется до нужной температуры.
Умные чайники и термопоты позволяют включить подогрев удаленно, но используют для этого фирменные приложения. Приходится держать отдельную программу только для включения подогрева воды.
Некоторые модели, например, чайники от Xiaomi и вовсе не позволяют удаленно включать режим кипячения. Приходится выкручиваться и исхитряться, заранее устанавливая режим подогрева.
Какой чайник выбрать для умного дома
Проще всего интегрировать в экосистему умного дома чайники от Redmond. Мы уже пользовались таким, остались довольны и даже нашли возможность включать устройство удаленно, а не только из соседней комнаты по Bluetooth.
Такой чайник, как и другие из линейки SkyKettle, можно запросто встроить в уже имеющуюся экосистему. Вот, что для этого нужно:
▪️ умный чайник Redmond SkyKettle
▪️ хаб HomeBridge на базе Raspberry Pi или компьютера (с модулем Bluetooth) для подключения чайника к HomeKit и Siri
▪️ Яндекс.Станция или другая колонка с голосовым ассистентом Алиса для подключения к умному дому от Яндекс
В первом случае мы пробросим устройство в HomeKit для работы из программы Дом на iOS, а во втором – подключим к экосистеме Яндекс.
Как подружить умный чайник и Siri
1. В HomeBridge устанавливаем плагин homebridge-cmdswitch2. Расширение можно найти в разделе Плагины веб-интерфейса или воспользоваться командной строкой:
npm install -g —unsafe-perm homebridge-cmdswitch2
2. Копируем файл, которые нужны для работы плагина, по пути home/pi на нашей “малинке”.
3. Устанавливаем сканер Bluetooth-устройств поблизости при помощи команды:
sudo apt-get install bluez-tools
4. После окончания установки вводим команду:
sudo hcitool lescan
В списке устройств находим адрес устройства, который будет промаркирован номером модели чайника.
5. Переходим к редактированию конфигурации HomeBridge через веб-интерфейс или командную строку.
6. Добавляем новый раздел:
<
«platform»:»cmdSwitch2″,
«name»:»Switches»,
«switches»:[
<
«name»:»Чайник»,
«on_cmd»:»/home/pi/on.sh 00:00:00:00:00:00″,
«off_cmd»:»/home/pi/off.sh 00:00:00:00:00:00″,
«state_cmd»:»/home/pi/status.sh 00:00:00:00:00:00 | grep -l ‘ON'»,
«manufacturer»:»Redmond»,
«model»:»RK-G213S»
>
]
>
где 00:00:00:00:00:00 заменяем полученным ранее адресом устройства, прописываем модель своего чайника.
7. Вводим команду с указанием адреса чайника и одновременно с этим зажимаем кнопку питания на 5 секунд:
8. Перезапускаем HomeBridge и видим новое устройство в приложении Дом.
Управлять можно как через программу, так и через виджет команд Siri либо голосовой ассистент.
Как подружить умный чайник и Алису
С интеграцией в экосистему от Яндекс все гораздо проще. Устройство поддерживает работу с Алисой из коробки.
Для управления чайником в доме потребуется лишь приложение, а для включения электроприбора удаленно нужен специальный хаб или смартфон, который будет всегда находиться недалеко от чайника.
Путь от глупого чайника Redmond к умному
Два года назад был куплен чайник Redmond Skykettle RG-G210S из-за надписи на корпусе «управляй с помощью Алисы». Кто же знал, что для управления нужно купить еще док-станцию. Ввиду того, что чайником я особо не пользуюсь, мысли об его интеграции я задвинул в «дальний ящик», но сейчас видимо, его время пришло.
Начало пути
Прогуглив «в лоб», на Хабре обнаружил лишь способы интеграции в Homekit через bash скрипты. Концепция следующая. Вы устанавливаете на имеющийся у вас контроллер несколько файлов, которые позже «дергаете» через плагин CMD для Homebridge. В файлах хранятся скрипты, устанавливающие соединение с чайником и отправляющие ему команды на изменение режима, включения, выключения и т.д. Способ рабочий, у многих он работает годами и они довольны. Если вам интересно, можете почитать тут, тут и тут. Мне данного функционала показалось мало, поэтому я решил его расширить.
В распоряжении у меня был контроллер Wirenboard 6, расположенный недалеко от кухни, поэтому радиуса работы bluetooth адаптера вполне хватало.
Подключаемся к контроллеру по SSH. Устанавливаем сканер Bluetooth-устройств поблизости при помощи команды:
После окончания установки вводим команду:
После того как мы узнали адрес нашего чайника, формируем 6 команд. Для включения, выключения, и считывания текущего статуса чайника.
- bash connect.sh DD:FB:BF:5B:B6:96 auth
- bash connect.sh DD:FB:BF:5B:B6:96 query
- bash connect.sh DD:FB:BF:5B:B6:96 queryone
- bash connect.sh DD:FB:BF:5B:B6:96 keeptemp
- bash connect.sh DD:FB:BF:5B:B6:96 on
- bash connect.sh DD:FB:BF:5B:B6:96 off
Для взаимодействия с чайником необходимо установить с ним связь. У модели RK-G210S ввод чайника в режим сопряжение выполняется кнопкой включения/выключения.
После сопряжения, отправляем команду на чтение статуса чайника и получаем следующий ответ:
К сожалению, готовые скрипты, которые я нашел, не отображали текущую температуру чайника, и в целом выдавали малое количество информации. Поэтому вооружившись стандартным приложением, начал по байту разбирать ответ.
После чего доработал те скрипты, что у меня были, и на выходе получил следующий результат:
По запросу status выводится вся информация по чайнику, в формате обьекта<"kettle_state":0, //Текущее состояние 0 - Выкл / 2 - Вкл"program":0, //Текущий режим"sound":1, //Звуковое опощение"current_temp":25, //Текущая температура в Dec"target_temp": 0, //Целевая температура в Dec"speed_change_color":30, //Скорость изменения цвета (в секундах)booiling_time:0 //Время кипячения (от -5 до 5)>
По запросу statustics<"Turnung_on_the_device": 70, //Количество включений устройтсва"Consumption":37.292, //Количество потребленной электроэнергии в kWh"Work_time": 16:57:04 //Время работы ЧЧ:ММ:СС>
По запросу on чайник включится. По запросу off чайник выключится.
По запросу lightIndication 1 либо 0 включится либо выключится световая индикация о том, что время на чайнике и на контроллере синхронизируются.
По запросу targettemp 35. 90 мы запишем целевую температуру. И включим режим поддержания температуры.
По запросу nightlight мы включаем режим ночника. По запросу boiling мы включаем режим кипячения. По запросу boilingtargettemp мы включаем режим кипячения и поддержания температуры.
Скачать готовый скрипт вы можете по ссылке.
Новый виток
К сожалению, скрипт иногда терял соединение с чайником, иногда команды на включение и выключение «терялись». Особенно при отключении чайника от док-станции для залива воды. Поэтому я принял решение продолжить поиски готовых решений. И как оказалось не зря.
На GitHub нашел прошивку для контроллера ESP32 — ESP32-R4sGate-for-Redmond. Прошивка имеет формат .bin, и для ее установки я использовал программу esphome-flasher и windows ноутбук, ввиду того, что мой ноутбук на m1pro просто не видит esp, подключенную к com порту. Более подробную инструкцию по настройке можно прочитать тут. Кратко расскажу о процессе. 1. Прошиваем ESP32.2. Создаем гостевую сеть на вашем роутере с названием: «r4s» и паролем: «12345678».3. После создания сети, ESP сама автоматически подключится к точке доступа.4. Нам необходимо определить ее IP адрес.5. Ввести IP адрес в браузер.6. В настройках необходимо ввести имя и пароль от основной Wi-Fi сети.7. Ожидаем подключение ESP к основной Wi-Fi сети.8. Переходим в раздел «Settings» 9. Выбираем тип нашего чайника (например, у меня модель RG-G210S, но выбрал тип RK-G240S).
Обязательно включите «offline Response» — чтобы знать, когда чайник не отвечает. И «true/false Response» — чтобы статусы вкл и выкл присылались в формате true и false, ввиду того, что по моим наблюдениям ON и OFF работают нестабильно. В качестве mqtt брокера (192.168.69.207), я использовал Wirenboard, ввиду того, что он является центром моего дома и все автоматизации, сценарии у меня работают через него.
Плата перезагрузится и если вы указали верные настройки, то она подключится к вашему mqtt брокеру. Прошивка постоянно опрашивает чайник и мгновенно публикует все изменения в mqtt.
Интеграция в Wirenboard
Для интеграции нам понадобиться движок правил WB-Rules. Заходим в раздел WB-Rules и создаем новое правило SkykettleESP32.js
Вставляем в наше правило код выше, изменяете переменную mac на мак адрес вашего чайника и нажимаем кнопку «сохранить». Заходим во вкладку «Устройства» и наблюдаем наше виртуальное устройство «чайник».
Интеграция в Яндекс.Умный дом через Node-Red
Инструкцию по установке и базовым принципам node-red можно найти тут. Для интеграции чайника из Node-Red в Яндекс.Умный дом, была использована нода: node-red-contrib-alice
Разберем каждый узел подробно. Добавляем в поток узел on/off.
Нажимаем на наш узел. Нам необходимо создать новое устройство.
Выбираем тип smartKettle, указываем имя и учетную запись вашего яндекс аккаунта.
Наш узел сразу же привяжется к свежесозданному устройству. Для интеграции чайника я решил выключить «Disable other controls of the device is turned». Данный параметр необходим, чтобы в интерфейсе вы могли видеть включен чайник или выключен (Обратная связь). Команды на включение и выключение чайника вызываются через «Алиса, вскипяти чайник». А у нашего чайника помимо кипячения есть другие режимы, которые нужно активировать без кипячения. А в случае, если у нас чайник выключен, то другие режимы активировать мы просто не можем.
Разберем каждый узел подробнее.
Включение и выключение
Для включения и выключения нам понадобятся узлы: mqtt in / mqtt out / change / on_off(yandex)
Датчик температуры
Для передачи информации с датчика температуры нам понадобятся узлы: mqtt in / function / sensor(yandex)
Целевая температура
Дпя изменения целевой температуры нам понядобятся следующие узлы: mqtt in / function / range(yandex) / mqtt out
Ночник
Для включения / выключения режима Ночник нам понадобятся следующие узлы: mqtt in / change / toggle (yandex) / mqtt out
Поддержание температуры
Для включения / выключения режима поддержания температуры нам понадобятся следующие узлы: mqtt in / change / toggle (yandex) / mqtt out
Управление цветом
Для управления цветом нам понадобятся следующие узлы: mqtt in / function / color (yandex) / mqtt outОбщий вид всех использованных для интеграции узлов.
После создания всех связей между узлами, нажимаем кнопку «Развернуть».
Далее добавляем Node Red в приложении Яндекс.Умный дом.
1. Открываем приложение.2. Нажимаем на «+».3. Нажимаем «Устройство умного дома».4. В поиске выбираем серис Node Red Home.5. Входим под той учетной записью, что и в Node Red.6. Нажимаем «Продолжить».7. Нажимаем «Обновить список устройств».8. Изменяем имя и добавляем чайник в комнату.
На момент написания статьи, данная связка (ESP+Wirenboard+NodeRed) работает стабильно на протяжении месяца. Позволяя вставать с кровати к уже нагретому чайнику.