Апрель 21

Робот-пылесос Xiaomi Mi Robot Vacuum Mop 2 Pro (MJST1SHW) miot

Ну что ж, наш пылесос работает, а в связке с home assistant, мы можем создавать плановые уборки комнат и скрипты, а не только всего этажа.

после попыток прешерстить все команды я получал много запросов без ответа, как оказалось некоторые запросы работают только через облако. (Enable miot cloud (Config account in YAML)ПОДТВЕРДИТЬ)

получаем с папки vevs/log/miot/ наш лог

get map

{"did":"dddddd","siid":10,"aiid":1}

reset map

{"aiid":10,"did":"dddddd","in":[1681894220],"siid":7}

set map

{"aiid":15,"did":"dddddd","in":[0],"siid":10}

set name map rooms (параметры взял с лога) в логах эти параметры не получаются, только передаются возможно mihome держит в памяти ид комнат после создания

{"aiid":18,"did":"dddddd","in":[1681894220,"[[\"15391\",14],[\"15478\",13],[\"15479\",15],[\"15497\",11],[\"15528\",12],[\"15794\",10]]"],"siid":10}

clear room 13,11

{"aiid":3,"did":"dddddd","in":["11,13",0,1],"siid":7}

отправка робота убирать конкретную точку

miiocli genericmiot --ip 192.168.1.245 --token <token> set_property_by 2 4 0 

miiocli genericmiot --ip 192.168.1.245 --token <token> set_property_by 9 5 '-2.003,3.713' //прихожая можно посмотреть в логах vevs

genericmiot --ip 192.168.1.245 --token <token> call_action_by 9 1

кроме того мы можем подключить джойстик и управлять роботом через miot.

{«did»:»dddddd»,»siid»:7,»piid»:16,»value»:1}

Август 1

Настраиваем L2TP VPN-сервер на платформе Linux (Debian / Ubuntu) для подключение роутеров xiaomi

Как я вытягивал камеры с очень серого IP малой кровью

Инструкция

Для работы с IPsec мы будем использовать пакет strongSwan, установим его:

apt install strongswan

Затем откроем файл настроек /etc/ipsec.conf и добавим в его конец следующие две секции:

conn rw-base
fragmentation=yes
dpdaction=clear
dpdtimeout=90s
dpddelay=30s

conn l2tp-vpn
also=rw-base
ike=aes128-sha256-modp3072
esp=aes128-sha256-modp3072
leftsubnet=%dynamic[/1701]
rightsubnet=%dynamic
mark=%unique
leftauth=psk
rightauth=psk
type=transport
auto=add

Первая секция задает общие параметры: включает фрагментацию IKE и настраивает протокол обнаружения мертвых узлов (Dead Peer Detection, DPD), отвечающий за обнаружение неактивных клиентов. Вторая относится уже к L2TP-соединениям, указывая использовать транспортный режим IPsec, аутентификацию по общему ключу и задает используемые шифры. Приведенные значения являются рекомендуемыми и взяты из официальной документации strongSwan.

Общий ключ следует указать в файле /etc/ipsec.secrets, добавив в него следующую строку:

%any %any : PSK "mySharedKey"

Где mySharedKey — общий ключ, так как от него зависит безопасность вашей VPN-сети мы рекомендуем использовать в качестве ключа случайно сгенерированную строку из букв, цифр и спецсимволов. Для этого можно воспользоваться командой:

openssl rand -base64 18

Результатом ее выполнения станет случайная строка длинной в 18 символов.

l2tp-vpn-server-debian-ubuntu-001.pngПосле внесения указанных настроек перезапустим службу:

systemctl restart strongswan

В Ubuntu имя службы несколько иное — strongswan-starter, поэтому команда будет иметь вид:

systemctl restart strongswan-starter

Настраиваем L2TP

Для реализации функций L2TP-сервера предназначен пакет xl2tpd, для его установки выполните:

apt install xl2tpd

Затем откройте файл настроек /etc/xl2tpd/xl2tpd.conf, раскомментируйте и приведите к следующему виду опции:

[global]
port = 1701
auth file = /etc/ppp/chap-secrets
access control = no
ipsec saref = yes
force userspace = yes

[lns default]
exclusive = no
ip range = 10.2.2.100-10.2.2.199
hidden bit = no
local ip = 10.2.2.1
length bit = yes
require authentication = yes
name = l2tp-vpn
pppoptfile = /etc/ppp/options.xl2tpd
flow bit = yes

Большая часть опций относится к настройке протокола L2TP и требует понимания его работы, поэтому мы на них останавливаться не будем. Разберем те опции, которые имеют существенное значение. Параметр auth file указывает на файл с данными для аутентификации, а pppoptfile — набор опций для PPP-соединения, которое используется внутри L2TP-туннеля, name — имя сервера, которое будет использоваться для поиска аутентификационных данных в файле chap-secrets.

Опции local ip и ip range отвечают за локальный адрес сервера в VPN-сети и диапазон адресов для выдачи удаленным клиентам. Здесь можно использовать два подхода: выдавать клиентам адреса из диапазона локальной сети офиса и включить ProxyARP, в этом случае настраивать маршрутизацию на клиентах не требуется, они будут как-бы включены в общую сеть офиса на канальном уровне (L2), либо выдавать адреса из непересекающегося диапазона и использовать маршрутизацию. Автоматизировать создание маршрутов для Windows-клиентов можно с использованием PowerShell.

Для настройки PPP перейдем в /etc/ppp и скопируем стандартный файл настроек:

cd /etc/ppp
cp options options.xl2tpd

Затем открываем файл /etc/ppp/options.xl2tpd на редактирование и приводим к следующему виду. Опции перечислены в порядке их следования, нужно раскомментировать их и указать нужное значение, если опция отсутствует, то ее следует добавить в конце файла.

asyncmap 0
auth
crtscts
lock
hide-password
modem
mtu 1460
lcp-echo-interval 30
lcp-echo-failure 4
noipx
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
multilink
mppe-stateful

Если вы будете использовать ProxyARP то дополнительно раскомментируйте опцию:

proxyarp

Также для Windows-клиентов можно передать настройку DNS-серверов, для этого добавьте опции:

ms-dns 192.168.1.1
ms-dns 192.168.1.2

Это позволит настроить первичный и альтернативный DNS-сервера в системе.

Сохраним все внесенные изменения и перезапустим службу L2TP-сервера:

systemctl restart xl2tpd

Строку со следующим сообщением можно проигнорировать, на работу VPN-сервера она не влияет:

xl2tpd[843]: setsockopt recvref[30]: Protocol not available

Заключительным этапом настройки будет создание учетных записей для удаленных клиентов, для этого откроем файл /etc/ppp/chap-secrets и внесем следующую строку:

ivanov   l2tp-vpn   Pa$$word_1   *

Первым указываем логин, затем имя службы, оно должно совпадать с тем, которое мы указали в опции name в xl2tpd.conf, после него идет пароль и IP-адрес клиента, символ * обозначает что можно присвоить любой адрес из выбранного диапазона. Если же требуется выдать клиенту постоянный адрес, то его следует указать явно, и он не должен входить в динамический диапазон указанный в ip range, например:

petrov   l2tp-vpn   Pa$$word_1   10.2.2.99

Для доступа к L2TP-серверу следует разрешить в брандмауэре входящие подключения к портам 500 UDP, 1701 UDP и 4500 UDP.

И инструкция для переброски портов доступа в интернет клиента VPN через сервер VPN

nano /etc/ppp/ip-up добавляем

iptables -t nat -A POSTROUTING -s $5 -j MASQUERADE
iptables -A FORWARD -s $5 -j ACCEPT

nano /etc/ppp/ip-down добавляем

iptables -t nat -D POSTROUTING -s $5 -j MASQUERADE
iptables -D FORWARD -s $5 -j ACCEPT

добавлено 22.02.2024

все то же самое, но если вы хотите параллельно использовать pptp

apt install pptpd
sudo systemctl enable pptpd
sudo systemctl start pptpd
sudo systemctl status pptpd

/etc/ppp/chap-secrets и внесем следующую строку:

petrov1   pptp   Pa$$word_1   10.2.2.97

https://moron.1side.ru/lokalnye-seti/obedinenie-setej-s-pomoshhyu-vds-i-vpn-pptp.php
Декабрь 25

Xiaofang детектор в ручном режиме работает в автоматическом нет

Проблема в не хватке памяти, решение на github появляется много раз а тут только раз 🙂

Что делать, если мои скрипты в config / userscripts / motiondetection не выполняются или сообщения mqtt / telegram / электронные письма не отправляются при движении?
Возможно, вашей камере не хватает памяти при обработке события движения. Это вероятно в камерах с 64 МБ, например Xiaofang 1s. Попробуйте включить часть памяти подкачки, скопировав swap.conf.dist в swap.conf и установив SWAP = true.

Сентябрь 4

Mi band 5 NFC

и так NFC — работает. регистрируем себе китайский аккаунт — по инструкции

заходим на сайт https://account.xiaomi.com, создать новый аккаунт и выбираем China и вам сразу в поле ниже нужен ввести дополнительно номер телефона (но у нас то его нет или он привязан к уже существующего реальному аккаунту, но благо Xiaomi разрешила для регистрации Китайского аккаунта регистрировать любой номер – хотя мне кажется это дыра), ну вбиваем как-то виртуальный временный номер +7 (в инете их валом), быстренько проходим регистрацию с China регионом на xiaomi, далее запускаем приложение Mifit и регистрируем второй аккаунт, но уже для Mifit доступа. Всего нам 2 аккаунта понадобятся: Mifit (с данными: это Login: email / пароль и MI-аккаунт (China) – Country Region China / Номер телефона наш виртуальный

с помощью этого сервиса найденого по запросу «виртуальный временный номер +7»

первый раз в мифит заходил через googleplay — Mifit программа с обрезаной проверкой ID не пускала, но после привязки браслета перезашел через нее и с генерировал пустую карту.

и так -транспортные карты — это не клонирование карт, а покупка и активация в Китайских сервисах

ключи доступа не клонируют карты метро и.т.п (как впрочем и ардуино модули), ведать шифровка и разновидность банковских карт.

меню банковские карты отсутствует — надеюсь пока 🙁

Июль 22

Mi Air Purifier Pro v7

итак апи для Mi Air Purifier Pro v7

zhimi.airpurifier.v7 Mi Air Purifier Pro v7

включение
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=&dcmd=set_power&dopt=[«on»]
выключение
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=
&dcmd=set_power&dopt=[«off»]

выключение дисплея
12:32:31 /ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=&dcmd=set_led&dopt=[«off»]
включение дисплея
12:32:31 /ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=
&dcmd=set_led&dopt=[«on»]

режимы
12:32:31 /ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=&dcmd=set_mode&dopt=[«auto»]
12:32:31 /ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=
&dcmd=set_mode&dopt=[«favorite»]
12:32:31 /ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=***&dcmd=set_mode&dopt=[«silent»]

скорость от 1-16
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=&dcmd=set_level_favorite&dopt=[1]
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=
&dcmd=set_level_favorite&dopt=[16]

включить защиту от детей
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=***&dcmd=set_child_lock&dopt=[«on»]

выключить защиту от детей
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=***&dcmd=set_child_lock&dopt=[«off»]

громкость 0-100
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=&dcmd=set_volume&dopt=[0]
/ajax/xiaomimiio.html?op=test_api_cmd&dip=192.168.1.68&dtoken=
&dcmd=set_volume&dopt=[100]

Май 7

Notify & Fitness for mi band востановление данных из settings.ba

так уж повелось у меня, что я постоянно борюсь в восстановлением данных
еще один «лайф хак»

моя система перестала загружаться после не удачного патча, (раньше этот патч ставился, но после обновления привел к вечной загрузке — я не совсем дурак) навякий случай создал резервную версию битой системы. установил новую и как оказалось Notify & Fitness for mi band поздравил меня с тем, что затер мою копию на google drive новой чистой пустой резервной копией. после громких матов о том, что Notify & Fitness for mi band не может настроить нормально резервные копии я было собрался от нее навсегда избавится. Но как оказалось mi fit стал только хуже, а писать свое все так же нет времени. решил восстановить Notify, импортировать с гугл фит было лень, но помня, что делел это загоняя файлы в settings.ba решил взять этот файл с ломаного бекапа.

Итак если у вас умерла система и вы не уверены, что бекапы есть (еще не разу не было, чтоб они были 🙁 )
зайдя в рекавери скопируйте себе файл базы данных програмы
/data/data/com.mc.miband1/databases/settings.ba

установите старую бета версию программы (последние версии матерятся: просят прописать в манифест, что программа бета, потому-что они увидели, что добавлены записи в БД)
я установил эту 7.4.5
запустите -> выгрузите из памяти -> подмените новый файл settings.ba на ранее сохраненный->запустите программу и обновите программу до последней версии.

До встречи при новых потерях данных

Январь 2

настраиваем цикличную запись на sd-card «Dafang Hacks» Local h264 recording possible Xiaomi Xiaofang 1S (mac:78)

как написано тут
убираем из автозагрузки медиа сервер и запись
и прописываем их в
run.sh
после блока

## Autostart all enabled services:
for i in /system/sdcard/config/autostart/*; do
$i
done

записываем

sleep 10;
/system/sdcard/controlscripts/rtsp-h264

//заметил, что номера процессов увеличиваются если увеличить время значить видеосервер запускает еще процессы потому стоит поиграть со временем

// sleep 2;

sleep 10;
/system/sdcard/controlscripts/recording

файл /system/sdcard/controlscripts/recording

меняем строку выполнения записи блок start
у меня команда выглядит так
/system/sdcard/bin/busybox nohup /system/sdcard/bin/avconv -rtsp_transport tcp -y -i rtsp://0.0.0.0:8554/unicast -vcodec copy -c:a aac -ar 48000 -ab 128k -strict experimental "$RECORDING_PATH" &>/dev/null &

как видно из файла он запускает запись видео навсегда
потому не плохо бы на крон повесить
/system/sdcard/controlscripts/recording stop

sleep 1;


/system/sdcard/controlscripts/recording start

как оказалось баш, не понял команду stop&start  потому просто запускал еще одну запись что в конечном итоге просто подвисало систему я пошел другим путем и вынес блок стоп в файл крона

/system/sdcard/config/cron/periodic/15min/recording

#!/bin/sh
PIDFILE="/run/recording.pid"
DCIM_PATH="/system/sdcard/DCIM"

pid=»$(cat «$PIDFILE» 2>/dev/null)»
if [ «$pid» ]; then
kill «$pid» && rm «$PIDFILE»
echo «Stopped recording»
else
echo «Could not find a running recording to stop.»
fi

/system/sdcard/controlscripts/recording

 

ну и как вы могли доказать час видео то есть 4 файла это гиг потому стоит повесить на каждодневный крон очистку старых файлов хотя в таком случае наверное стоит все файлы писать в 1 дерикторию — ну это потом пока проверяем как пишет

 

настройки для видео bitrate выставил 256 просто где-то в подсознании слышал а вот 5000 или 2000 мне показалось диким и так заработало иначе писало битый файл пару секунд и подвисало

так же обратите внимание что зайдя в настройки — в маем случае даже чтоб сделать снимки и выложить вам запись оборвалась -но после перезагрузки возобновилась,

так же стоит помнить что обрыв электричества или выключение провода может сделать вашу карту доступной только для записи -лечится копированием всего содержимого карты на компьютер и форматирование карты  и возвращением всех фалов назад на SD-card

пользуйтесь друзья

 

 

PS как показала практика отключаем все записи по демонам и вставляем в крон 1 минуту команду на запись -59 сек. потому как оказалось выгрузка демона не происходит с первого раза в отличии от окончания записи к сожалению ролики на 5 минут уже не записывает, понятно почему даже у родного софта организованы минутные записи.

ну и желательно бы было собрать l4v без мастера а для записи сразу на диск без трансляции — но это потом

Декабрь 25

miio lumi.gateway.v3

Друзья, что-то совсем с протоколом тяжело.
нашел команду для проверки включения свойства включена ли на шлюзе (lumi.gateway.v3) сигнализация.
m= get_prop
p=["arming"]

варианты ответов
{"result":["off"],"id":1545739388} //выключен
{"result":["on"],"id":1545739388} //включен
{"result":["oning"],"id":1545739388} //включается

печаль, что

m=set_prop

не работает

но

барабанная дробь
m=set_armin
p=["on"]

и соответственно

m=set_armin
p=["off"]

Май 1

Install google play store on 小米盒子 MIBOX3_PRO

с помощью тора я смог скачать обновление и обновиться до версии 1.4.6 как оказалось в китае забанен укртелеком. но потерял root теперь благодаря http://flying8pus.blogspot.my/ я смог остановить рут так как старая версия программы 360root с этим не справлялось. так кроме всего прочего автор заявляет что можно установить GOOGLE service в просто народе GAPPS. пока не пробовал но рут уже есть а значить и backup restore.

Device:
manufacturer: Xiaomi
model: MiBOX3_PRO (MDZ-18-AA)
MIUI TV版本: 1.4.6(稳定版)
Prerequisites (Tools & Packages )
1) 360超级ROOT from http://root.360.cn/
  PermRoot.apk

2) apk files from Gapps packages
  67ae3a402c705c8ec97d6d05364e8697  gapps-5.1-arm64-2015-07-17-15-08.zip
     Unzip and extract the following apk files:
PrebuiltGmsCore.apk (from /arch/priv-app/PrebuiltGmsCore/)
GoogleServicesFramework.apk (from /common/priv-app/GoogleServicesFramework/)
GoogleLoginService.apk (from /common/priv-app/GoogleLoginService/)
Phonesky.apk (from /common/priv-app/Phonesky/)
     !! Rename the PrebuiltGmsCore.apk to GmsCore.apk !! 

3) Terminal emulator
  Example: jackpal.androidterm-1.0.70-71-minAPI4.apk

4) Google play store apk (from apkmirror etc)


Steps

0) You may want to follow the link to enable 3rd party apk installation and change the UI language: How-to change UI language 

1) Root the device
     Install PermRoot.apk. Launch 360超级ROOT & click the <跳skip> on upper right corner to enter the main screen. Click the center BIG icon in middle to start.

2)  Install terminal emulator and grant the root access
    Install jackpal.androidterm-1.0.70-71-minAPI4.apk. Launch the emulator and switch to root user
  >  su -     (Click Accept / 允许 when 360超级ROOT prompt)
  #  cd /

3) Remount /system rw
  # mount -o rw,remount /system

4) Copy the Gapps apk files to respective locations
   # cd /system/priv-app
   # mkdir GmsCore GoogleServicesFramework GoogleLoginService Phonesky
   # chmod 755 GmsCore GoogleServicesFramework GoogleLoginService Phonesky
   # 
   # df   (check your path to USB thumbdrive)
   (Note: Modify the following path to your Gapps apks in thumbdrive)
   # cp /storage/usbotg/usbotg-sda1//GmsCore.apk GmsCore/
   # cp /storage/usbotg/usbotg-sda1//GoogleServicesFramework.apk GoogleServicesFramework/
   # cp /storage/usbotg/usbotg-sda1//GoogleLoginService.apk GoogleLoginService/
   # cp /storage/usbotg/usbotg-sda1//Phonesky.apk Phonesky/
   # chmod 644 GmsCore/GmsCore.apk Google*/* Phonesky/Phonesky.apk
   # sync
   # reboot

5) Install the Google Play Store and YouTube from thumbdrive etc

ЗЫ
Проверил работает маркет, есть пока проблемы с логином в хроме но возможно обновляется.

Апрель 23

mi box 3 enhanced edition — Старт

И так приступим, первые сутки, пустые просторы интернета и первые проблемы и успехи.

наша модель MDZ-18-AA

первым делам включаем английский язык  в shafaguanjia маркете есть доступ к меню андроида там можно включить английский язык.

если после экспериментов ваша коробочка перезагружается по кругу вход в рекавери через кнопки «ок» в центре джостика и «назад»  — да установив root через «360 root» я хотел завести гугл сервисы и не удачно.

очень хорошо идет программа ex.ua порадовала меня после spark версии (работает перемотка вперед 🙂 ), очень сильно

программы брал отсюда,  iptv по подписке с torrent-tv.ru работают сносно, через AceStream не захотело запускать хоть на телефоне вариант работает на ура,

для ex.ua нужно установить MXPlayer в некоторых случаях он показал себя лучше чем BSPlayer, хоть есть смысл устанавливать оба плеера.  Программы  ставятся очень просто через usb диск 250GB на ура, сам не заметил как после переходов на SSD дисков у меня больше чем флешек.

попробовал погонять в гонки, первые попавшиеся, но с помощью блатного пульта смог только посмотреть по сторонам. — представлял немного по другому.

теперь радостная новость «logitech k330 клавиатура + мышь» можно установить русскую клавиатуру, что позволит хотя бы искать по тому же ex.ua.

 

раскладок можно выбрать несколько и переключать через — контрол+пробел.

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