Управление мультиваркой Redmond. Горячее ферментирование

Будучи поклонником здорового питания, увлёкся методом приготовления пищи с помощью горячего ферментирования. Смысл приготовления — щадящее нагревание в диапазоне 40–80 градусов в течение нескольких часов. Похоже на процесс «томления» из народных традиций. Для разных продуктов существуют свои температурные диапазоны работы естественных ферментов — природных катализаторов, которые преобразуют плохоперевариваемые вещества в пище в легкоусвояемые.  Блюдо, которое готовится, последовательно проходит по различным температурным диапазонам. Для желающих подробно ознакомиться — сайт Сергея Гладкова. Оригинально по вкусу, полезно и целое поле для экспериментов.

При готовке, необходимо поддерживать температуру с точностью до градуса. Отсюда проблема: не все обычные мультиварки поддерживают температуру с заданной точностью, да и не имеют в меню требуемых режимов.

Приобрел недавно мультиварку Redmond RMC-M226S, которая управляется приложением Ready for Sky (R4S). Вот только время жалко на то, чтобы  постоянно следить прошел ли выставленный температурный этап, доставать смартфон и вбивать новый. Приложение для смартфона не совсем удобное, особенно трудно точно выставить температуру крутящимся колёсиком. А ещё оно перестало работать без включенного GPS.

Поиски привели к статье Управляем чайником SkyKettle из GNU/Linux, решил сделать приложение, которое само управляет мультиваркой по заданной программе.

Протокол для управления мультиваркой похож на управление чайником, в начале фразы передается 0×55, конце 0xAA, второй байт — секвенсер увеличивающийся на 1 0–0xFF. При открытии нового соединения секвенсор можно сбрасывать и начинать с первой цифры.

В начале управляющее устройство инициализирует соединение,  высылает пароль:

55 FF <8 байт пароля> AA

Получает в ответ сообщение об успешной регистрации:

55 FF 01 AA

Далее команда 01, типа пинга, которая продлевает сессию:

55 01 AA

Для того, чтобы приложение знало текущее стостояние, есть команда 06, для чтения статуса, в ответ передается 20 байт состояния:

55 06 AA

55

06 (статус)
Текущий режим 00-09 02 - мультиповар
Температура сотни
Температура - десятки и единицы
часы до окончания
минуты
??
??
01 - автоподогрев (0 - выключен)
состояние нагрева 0- выкл, 01-ввод данных, 05 - включено
??
??
0
0
0
0
0
AA

Для включения в режим используем команду 05:

55

05 - установка режима
программа готовки 00-04 02-мультиповар
температура - сотни
температура десятки и единицы
часы
минуты
00
00
01
AA

И наконец, команда 03 «Зажигание» — запуск нагревателя.

55 03 AA

При необходимости можно выключить прибор командой 04. Есть еще способ включить автоподогрев.

Это мой первый опыт создания приложений для Android. Большое спасибо Александру Климову за обучающий сайт.

a387e0a47be51631bb617a6e926358ee.jpg

В приложении, которое назвал Vicigilo (на эсперанто означает устройство ставящее в очередь), можно установить до 9 интервалов нагрева со своим временем. Любой набор (рецепт) можно сохранить в памяти. В конце приготовления или при неудаче связи, подается уведомление. Не успел доделать сканирование устройтв для поиска MAC-адреса мультиварки, его нужно вставлять вручную в настройках. Иногда на некоторых смартфонах не всегда надёжно отрабатывает передача (мультиварка не всегда отвечает), думаю надо ввести несколько попыток на соединение.

Скомпилированный файл приложения можно скачать здесь

Сылка на исходники github

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

© Habrahabr.ru