Метод чем-то схож с настройкой для пылесоса Xiaomi Dreame D9 от s1yder, но со своими нюансами.
Качаем Mi Home от Vevs (https://www.kapiba.ru/2017/11/mi-home.html).
Устанавливаем, настраиваем, логинимся и т.д., пылесос должен быть настроен и работать через это приложение.
Подключаем телефон к компу и копируем с него на компьютер файл main.bundle, который находится по пути /Android/data/com.xiaomi.smarthome/files/plugin/install/rn/1002682/1018005/android/. Если с компьютера не удается войти в эту папку (не видна в списке), то заархивировать на телефоне и архив перенести в любое другое место на телефоне, например, в корневую папку.
Важно: если на телефоне есть в корне папка vevs, то скорее всего вам будет необходимо работать именно в ней, и тогда для вас путь к файлу будет /vevs/files/plugin/install/rn/1002682/1018005/android/. Не забываем делать резервные копии! Скопировали, продолжаем.
В этом же файле (main.bundle) со строки 5666 находится перевод плагина, а именно все текстовые значения полей и заголовков. Если вам не нравится перевод или вы хотели бы что-то для себя изменить, то это можно сделать, просто сменив значения в переводе.
Установка локального сервера
Выбрал более-менее не сложный сервер для инструкции – XAMPP. (Пробовал на своем OpenServer, устанавливал Ampps, на них так же работает. Если что-то уже стоит из аналогов, можно пользоваться ими.).
Скачать сервер с офф. сайта: https://www.xampp.ru/
Скачать сервер отсюда: https://mc-dos.ru/upload/roidmi/xampp-windows-x64-8.0.12-0-VS16-installer.exe
Устанавливаем XAMPP с минимальным набором функций. Можно отключить все отключаемые галочки:
Запускаем сервер (если ничего не трогали, то контрольная панель запустится автоматически). После запуска нажимаем кнопку Start в единственной доступной строке Apache. Сервер запустится и подсветит зеленым название Apache.
Теперь необходимо узнать ваш локальный IP адрес. Можно двумя вариантами:
- Через классическую контрольную панель в пункте «Центр управления сетями и общим доступом», нажав ссылку подключения в блоке «Просмотр активных сетей» и в открывшемся окне нажимаем кнопку «Сведения», где смотрим параметр «Адрес IPv4».
- В системном трее тыкаем на значке подключения, выбираем «Открыть параметры сети и интернет», заходим в «Свойства» подключения, прокручиваем вниз и ищем параметр «IPv4-адрес».
Нашли. Он может выглядеть примерно так 192.168.1.6. Заходим в браузер и пробуем зайти на страницу http://192.168.1.6/ нашего сервера. Если отображается стартовая страница, вида этой, то все хорошо:
Если ничего не меняли при установке, то путь до файлов сервера на компьютере имеет вид C:\xampp\htdocs. Заходим и удаляем все файлы.
Качаем архив с необходимыми файлами: https://mc-dos.ru/upload/roidmi/htdocs.zip
В этом архиве лежит json файл с конфигурационными данными для озвучек из которого я убрал все языки кроме Русского и Английского, а так же добавил свою озвучку голосом робота Maksim.
Все команды заменены. Делал для себя и еще в процессе доработки, так что можно считать, что это для теста.
Разархивируем все файлы в папку C:\xampp\htdocs и пробуем зайти еще раз на установленный сервер через браузер. Если видим список файлов, что разархивировали, то все хорошо.
Внесение изменений в плагин Roidmi Eve Plus для MiHome
Переходим к файлу main.bundle. Открываем его любым текстовым редактором и переходим к строчке 31912 (на момент написания статьи) или ищем переменную «_this.voice_root». В оригинале:
_this.voice_root = 'https://cdn.awsde0.fds.api.mi-img.com/resource/robot/mihome/voicepack/';
Заменяем все, что в кавычках на адрес вашего сервера. В наем случае это http://192.168.1.6/. В итоге должно получиться так:
_this.voice_root = 'http://192.168.1.6/';
Не забываем, что адрес у вас будет свой и «192.168.1.6» только для моего случая.
Измененный файл сохраняем и заменяем им оригинал. После замены обязательно надо завершить приложение MiHome через меню приложения (долго удерживая палец на значке) и выбрать внизу ЗАКРЫТЬ. Только потом входим в приложение снова и открываем плагин пылесоса.
Переходим в меню «Голос и громкость», где мы должны будем увидеть такую картину:
Теперь, выбрав новый голос озвучки, можно проверять его работу.
Создание собственных языковых пакетов
В архиве https://mc-dos.ru/upload/roidmi/htdocs.zip лежат файлы без расширения. Оригиналы это «girl_ru» и «girl_en». Эти файлы есть GZ архивы с расширением tar.gz. Их можно переименовать, например, в «girl_ru.tar.gz», разархивировать и начать мучать озвучку.
Для простоты работы я подготовил 2 архива:
https://mc-dos.ru/upload/roidmi/girl_ru_orig.zip — разархивированный архив с оригинальной русской озвучкой.
https://mc-dos.ru/upload/roidmi/original_girl_ru_named.zip — разархивированный архив с оригинальной русской озвучкой и с подписанными фразами для каждого файла (вида Q009-начинаю-уборку-заданной-зоны.mp3), что бы было проще ориентироваться. Там все таки 76 фраз.
Создав свою озвучку для всех или частично файлов, назвав их так же, как оригинальные названия, необходимо создать tar.gz архив. На Windows 10 его можно создать так же, как на Linux системах:
- Наживаем сочетание Win+R, пишем cmd. Заходим в консоль.
- Переходим в папку с озвучкой командой cd <путь/к_папке_озвучки> (Например, все mp3 файлы озвучки лежат в папке C:\roidmi\my_voice\, то команда будет выглядеть, как cd C:\roidmi\my_voice\ )
- Выполняем команду tar -czvf mypack.tar.gz *
В папке с озвучкой создастся файл с именем mypack.tag.gz. Ему необходимо стереть расширение tar.gz, оставив только имя без точки в конце.
Готовый файл необходимо перенести в папку локального сервера, в нашем случае C:\xampp\htdocs. Так же, в файле voice_config.json необходимо добавить новую запись озвучки или внести правки в существующую.
Пример того, что нужно добавить в файл, на примере сознанной озвучки mypack:
Сохраняем. Заходим в MiHome, который в лучшем случае, так же перезагрузить закрыв-открыв и проверяем работу новой озвучки.
Возможные ошибки и их решения
Если пылесос находится в сети 2.4ГГц (в иной он и не может быть), а телефон в сети 5ГГц, то не скачивается с локального сервера файл конфига. Проверьте нахождение устройств в одной одинаковой сети 2.4ГГц.
Проверить, что вообще включен Wifi на телефоне. Бывало и такое.
Не обновляется список языковых пакетов:
- Проверить возможность захода через браузер телефона на адрес локального сервера. Если не заходит — попробовать отключить брандмауэр Windows, если используется стандартный.
- После замены файла приложение Mi Home не было закрыто принудительно. Закрыть приложение через Настройки — Приложения и запустить заново.