1) Стандартный MiHome
2) Через софт FloleVac
3) MQTT
4) Valetudo, скачать можно здесь
5) FAQ Valetudo
6) ioBroker и telegram
7) RoboRock Control Center
8) Xiaomi Vacuum Cleaner Telegram Bot
Valetudo - это устанавливаемый в пылесос web-сервер. После установки появляется возможность управлять пылесосом из любого браузера с любого компьютера или гаджета в локальной сети.
Выглядит это таким образом
Доступ через PUTTY
- Логинам root и cleaner установлен пароль - cleaner.
Вход по ssh пользователем root может пригодиться например для программы RoboRock Control Center.
- Добавлены в систему wget, nano, htop, bbe, snmpd (community: public).
- Установлен Valetudo 0.2.3. Более поздние версии идут с отвязкой от облака Xiaomi и карта в МиХоме показываться не будет.
- Добавлена отдельная прошивка содержащая Valetudo(пример имени файла vacuum_valetudo_1898.pkg). В ней нет смены региона. А так же она не передает карты и данные на облачные сервера, управление роботом возможно либо через Valetudo либо через альтернативные Умные Дома. MiHome работать не будет.
- Пропатчен rrlogd (отключено шифрование карт) для показа карты в режиме покоя через Valetudo.
- DNS не получаются по DHCP и выставлены в 8.8.8.8 и 114.114.114.114.
- Прошивки в имени которых находится 2prc (например vacuum_2prc_1768.pkg) при обновлении европейской версии превращают ее в китайскую (при наличии файла /mnt/default/roborock.conf).
- Прошивки в имени которых находится 2eu (например vacuum_2eu_1768.pkg) при обновлении китайской версии превращают ее в европейскую (при наличии файла /mnt/default/roborock.conf).
- Отключено китайское поздравление с Новым Годом.
- Установлен оригинальный, не урезаный adbd.
- Отключен сбор и отправка логов в облако(с картами это никак не связано). Значительно снижает трафик и нагрузку на процессор робота.
- Добавлен патч отключения проверки региона на новых ревизиях (02.2019) второго поколения роботов.
- Отключено обновление с официальных серверов (в MiHome будет выдаваться ошибка обновления прошивки).
- Заменен miio клиент на версию 3.3.9, в которой разрешено обновление прошивок не через сервера (local ota).
Инструкция к первой версии робота:
Нажимаем кнопки возврата на базу (Home) и сброс под крышкой (Reset), Держим 3-5 секунд. Отпускаем кнопку сброса. Продолжаем держать кнопку возврата на базу, пока не заморгает индикация. Через некоторое время робот поприветствует мелодией включения. Готово.
Инструкция ко второй версии робота:
Нажимаем левую и правую кнопки (локальная уборка и возврат на базу), держим, нажимаем кнопку сброса под крышкой (Reset). Держим 3-5 секунд. Отпускаем кнопку сброса, продолжаем держать левую и правую кнопки, пока не заморгает быстро центральная кнопка, после некоторого ожидания робот заговорит на китайском. Готово.
Можно ли полностью удалить Valetudo из моего робота?
Да. Просто восстановите заводские настройки вашего робота.
1) Создаем сцену для пылесоса Xiaomi Mi Robot Vacuum
2) Пылесос Xiaomi Mi Robot Vacuum
Готовая сцена для пылесоса, а для тех, кто хочет собирать сам, выкладываю коды для сцены
Вид сцены
Код: Выделить всё
/* This css is for normalizing styles. You can skip this. */
*, *:before, *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
}
.XiaomiMiRobotVacuum {
padding: 50px;
background: rgba(0, 0, 0, 0.2); /* Цвет фона */
border: 1px solid black; /* Параметры рамки */
padding: 15px; /* Поля вокруг текста */
margin-bottom: 10px; /* Отступ снизу */
border-radius: 10px;
}
.form-group {
display: block;
margin-bottom: 15px;
}
.form-group input {
padding: 0;
height: initial;
width: initial;
margin-bottom: 0;
display: none;
cursor: pointer;
}
.form-group label {
position: relative;
cursor: pointer;
font-size: 200%;
color: green;
}
.form-group label:before {
content:'';
-webkit-appearance: none;
background-color: transparent;
border: 3px solid #0079bf;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05);
padding: 15px;
display: inline-block;
position: relative;
vertical-align: middle;
cursor: pointer;
margin-right: 5px;
}
.form-group input:checked + label:after {
content: '';
display: block;
position: absolute;
top: -1px;
left: 13px;
width: 12px;
height: 30px;
border: solid #0079bf;
border-width: 0 4px 4px 0;
transform: rotate(45deg);
}
/*Button Transitions */
button {
transition-property: all;
transition-duration: 0.4s;
transition-timing-function: ease-out;
}
/* General styling */
button {
background: rgba(158, 212, 200, 0.5);
border: 2px solid #fff;
border-radius: 1em;
color: #222;
cursor: pointer;
font-size: 18px;
width: 180px;
height: 60px;
font: Helvetica, Arial, Sans-serif;
padding: 5px;
}
button:hover {
background: green;
color: #fff;
font-size: 18px;
}
body {
background: #222;
}
}
Код: Выделить всё
<script>
$("#take").click(function() {
var x = [];
$("input:checked").each(function(i, item) { //получим массив значении из выбранных чебоксов
$('input:checkbox').prop('checked', false); //сброс состояния чекбоксов при запуске уборки
x.push($(item).attr("value"))
});
$.get( "../../objects/", { object:"XiaomiMiRobotVacuum", op:"set",p:"ZonedClean", v:x.toString()} );
});
</script>
Код: Выделить всё
<div class="XiaomiMiRobotVacuum">
<font size="6" color="DodgerBlue" face="Arial"><center>Информация</center></font>
<font size="4" color="black" face="Arial">
Статус: %XiaomiMiRobotVacuum.State_text_rus%
<br/>
Уровень заряда: %XiaomiMiRobotVacuum.Battery%%
<br/>
Время уборки: %XiaomiMiRobotVacuum.СleanTime% минут
<br/>
Основная щетка: %XiaomiMiRobotVacuum.MainBrushWorkLife% часов
<br/>
Боковая щетка: %XiaomiMiRobotVacuum.SideBrushWorkLife% часов
<br/>
Фильтр: %XiaomiMiRobotVacuum.FilterWorkLife% часов
<br/>
Датчики: %XiaomiMiRobotVacuum.SensorDirtyLife% часов
</font>
</div>
Код: Выделить всё
<div class="XiaomiMiRobotVacuum">
<font size="6" color="White" face="Arial"><center>Где убрать?</center></font>
<br/>
<br/>
<form>
<div class="form-group">
<input type="checkbox" id="Gostinaya" value="%XiaomiMiRobotVacuum.zone_Gostinaya%">
<label for="Gostinaya"><font size="5" color="White" face="Arial">Гостиная</font></label>
</div>
<div class="form-group">
<input type="checkbox" id="Spalnaya" value="%XiaomiMiRobotVacuum.zone_Spalnaya%">
<label for="Spalnaya"><font size="5" color="White" face="Arial">Спальня</font></label>
</div>
<div class="form-group">
<input type="checkbox" id="Koridor" value="%XiaomiMiRobotVacuum.zone_Koridor%">
<label for="Koridor"><font size="5" color="White" face="Arial">Коридор</font></label>
</div>
<div class="form-group">
<input type="checkbox" id="Kuhnya" value="%XiaomiMiRobotVacuum.zone_Kuhnya%">
<label for="Kuhnya"><font size="5" color="White" face="Arial">Кухня</font></label>
</div>
<button id="take" type="button" onclick="getData()">Запустить зональную уборку</button>
</form>
</div>
<script>
$("#take").click(function() {
var x = [];
$("input:checked").each(function(i, item) {
$('input:checkbox').prop('checked', false);
x.push($(item).attr("value"))
});
$.get( "../../objects/", { object:"XiaomiMiRobotVacuum", op:"set",p:"ZonedClean", v:x.toString()} );
});
</script>
Класс объекта пылесос Xiaomi MiRobotVacuum Виджет для пылесоса
Ссылка на тему: [Виджет] Пульт робота пылесоса для СЦЕН и МЕНЮ
Класс объекта пылесос. Переделал для взаимодействия с голосовым помощником Алиса + зональная уборка.
------------------------------------------ Обновление статьи от 05.10.2020 ------------------------------------------
В Valetudo RE 0.9.8 встроены MQTT и Telegram бот
Как запускать зональную уборку в Valetudo?
Для отправки основных команд, создаем valetudo/rockrobo/command
start - Запуск уборки
stop - Остановить уборку
pause - Приостановить уборку
locate - Поиск робота
return_to_base - Вернуть робота на базу
return_home - Вернуть робота на базу
battery - Запрос состояния батареи
status - Запрос статуса
clean_spot - Запустить уборку в текущем месте
fan_speed - Выбор мощности всасывания
В свойство custom_command вставляем этот код {"command": "zoned_cleanup", "zone_ids": ["Имя зоны"]}
Если нужно убрать несколько зон. Ставим через запятую ["Зона 1","Зона 2","Зона 3","Зона 4","Зона 5"]
Например:
Если надо убрать 1 зону:
{"command": "zoned_cleanup", "zone_ids": ["Имя зоны"]}
Если надо убрать 2 зоны:
{"command": "zoned_cleanup", "zone_ids": ["Имя зоны 1","Имя зоны 2"]}
Если надо убрать 3 зоны:
{"command": "zoned_cleanup", "zone_ids": ["Имя зоны 1","Имя зоны 2","Имя зоны 3"]}
Если надо убрать 4 зоны:
{"command": "zoned_cleanup", "zone_ids": ["Имя зоны 1","Имя зоны 2","Имя зоны 3","Имя зоны 4"]}
Если надо убрать 5 зон:
{"command": "zoned_cleanup", "zone_ids": ["Имя зоны 1","Имя зоны 2","Имя зоны 3","Имя зоны 4","Имя зоны 5"]}
В Valetudo RE 0.9.8 есть встроенный телеграм бот.
Чтобы заработал телеграм бот, строго нужно создавать нового бота. Телеграм бот от MajorDoMo не заработает в Valetudo.
Как настроить зональную уборку для пылесосов Roborock 2, Roborock 6 читаем здесь