Linux для android tv box

Linux на X96 или какой же этот ваш ARM овно

Подогрел мне кум неудачно прошитую андроид-приставку X96-mini. Он вообще любитель «обновляться» без нужды, вот и этот девайс окирпичил.

Беззащитная машинка умещается на ладошке, и содержит в себе с понтом четырехядерный Amlogic S905w, два гига ОЗУ, и 16 Г флешку.

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

Итак, начнем с того, что готового образа НЭД (уже молчу о том, что его сперва нужно создать). Нет, образы конечно есть. Только вот они под другие модификации. Образ под устройство с 1Гб отличается от образа под устройство с 2Гб. Они все отличаются от образа сделанного под устройство на базе памяти Samsung, а этот образ отличается от образа сделанного на базе памяти Hynix.

Визуально это видно как либо ОС не запускается вовсе, либо ядро падает в overflow и kernel panic, потому что не совпадают пару байтов откуда это ядро читать.

Ладно, готового образа нет, попробуем сделать свой. Но не тут-то было. Сначала нужно записать загрузчик. Но это загрузчик НЕ ПОД ARM, и даже не загрузчик под этот процессор. Это загрузчик под конкретное устройство.

Вот нагуглился аналогичный по процессору девайс Khadas VIM1. Вроде все красиво, u-boot стянулся, флешка стартонула. Но нет, это еще не все. Нужен DTB-файл. Это описание дерева устройств. У нас в X86 вроде такое тоже есть, но оно вшито производителем. Ладно, с горем пополам накопали в базе CoreElec такой вот DTB, переименовали в dtb.img, поскольку это имя файла захардкожено. И ничего. Потому что нужен еще файл с командами сраному u-boot’у. Мы не можем просто передать управление ядру под данную архитектуру (или хотя бы загрузчику который загрузит ядро), нет. Мы должны сначала определить откуда идет запуск, скопировать оттуда ядро в память по определенному адресу, а уже потом передать управление в начало этого адреса. Ладно. Так я и сделал.

Kernel panic, stack overflow. Сцука. И тут я присмотрелся: оказывается эта система считает себя Khadas VIM1 с одним гигом ОЗУ. Ну да, на месте ядра я бы тоже зафейлился, но на месте гребанной архитектуры, я бы разрешил ядру самому определить сколько в компьютере ОЗУ, а не основываться на каком-то левом файле.

Разумеется готовых u-boot в сети я не нашел, хотя нашел маны как конпельнуть. Жаль только в этом мане нету defconfig’а под это устройство, посему конпеляция увенчалась неуспехом. Более того, под Дебианом компилятор выдал какую-то ошибку шото типа duplicate или already defined, не помню. Поставил Арч. Скомпильнулось нормально, но не запустилось. Предсказуемо.

Нашел прошивку Андроида мало-мальски предназначенную под похожее устройство. Конечно же она тоже не завелась, но благодаря полутора утилитам, удалось с нее вытащить u-boot.

Но этот u-boot грузит по умолчанию recovery.img — андроидный рекавери. Окай, в порядке эксперимента качаю TWRP, переименовываю его в recovery.img, перезагружаюсь — вуаля, работает. При чем даже радиоклава с радиомышкой и видит подключенную USB-флешку. Хотя и изображение на мониторе раздваивается. Ну да ладно, напуркуа мне эти рекавери. Записываю файл с командами u-boot’а, который собственно копирует ядро в память и его оттуда запускает, записываю ядро (у меня их два, с armbian и с manjaro) — болт тебе. booti: command not found. И таки да, через UART удалось вызвать консоль сраного u-boot’a (чем-то напоминает наш grub, лал), там такой команды нет. Пояндексив, нагуглил что команда booti загружает линуксовое ядро, команда bootm андроидное, и эта команда у меня есть. Окей, поменял. Но нет, не тот формат ядра. Конечно нет, ведь Андроид это ж не Линукс.

Подменив ядра на CoreElec (видимо с андроидной базой) — CoreElec таки запустился. Ура.

Я бы оторвал руки изобретателям подобной архитектуры. Или производителю железки. Или хоть кому-нибудь.

Если уж хочется дроч с загрузчиками — почему не выделить в процессоре область ? Это ж гребанный SoC. Этот загрузчик занимает полмегабайта. И может быть readonly. Ну как на один и тот же процессор могут использоваться разные загрузчики, в зависимости от которых у вас либо стартонет система либо нет ? Вы хоть представляете себе установочный образ Винды заточенный на работу под 8Гб ОЗУ и вылетающий если стоит 16Гб ? Вот и я нет. А представляете чтобы вы в grub прописали шота типа «RAM=2G» и ваш Линукс думал что у вас 2 Гб ? Более того, стал вылетать если вы его запустили на 4 Гб ?

Повторюсь, сей звиздец с прошивками и Линуксами творится в пределах нескольких девайсов с идентичным именем, на идентичной архитектуре, а зачастую даже на совершенно идентичных процессорах.

Короче ARM не светит на десктоп. И как мне кажется именно по причине прибитости гвоздями загрузчика к железу, железа к реализации в загрузчике. Если ваш девайс по каким-то причинам теряет свою ОС — он превращается в кирпич, по крайней мере пока вы не вкатите туда ОС с точно такого же девайса.

И да, если у кого-то есть дельные предложения по запуску Linux на этом девайсе — буду премного благодарен, пушо пока на нем работает только две ОС — CoreElec (андроид) и Khadas recovery (который хоть и Linux, но покоцанный дюже), впрочем видящий только гиг ОЗУ. X96 2G на Amlogic S905W.

Читайте также:  Синхронизация папок для android

Источник

Устанавливаем Linux (Armbian) на ТВ бокс

Если вести речь о энергоэффективных устройствах, то ARM64 архитектура себя отлично зарекомендовала. На рынке существует огромное предложение устройств на данной архитектуре. Но ценник при запросе определенных параметром стремительно растет вверх. Озвучим наши требования: ARM64, 1Gb ОЗУ и 8GB SSD или NAND. Естественно увеличение параметров в большую сторону приветствуется. Обратившись к рынку ТВ приставок — я вижу предложения от 1000р, что в 2-4 раза дешевле плат для разработчиков. Выбор пал на Х96 приставку

За 1000р я получил ужасный ТВ бокс, но отличный конструктор. Блок питания и клавиатура, а также HDMI кабель шли в комплекте. Прикладываю подтверждение, так как никто не поверит иначе.

Получив включил, посмотрел на тупящий андроид, выключил. Разобрал.

В профильной теме Armbian на ТВ бокс находим нужны йобраз и скачиваем. Я скачал Armbian_20.11_Arm-64_buster_current_5.9.9.img.xz

Заглянув по адресу https://www.debian.org/releases/ я вначале купился на bullseye релиз, не прочитав фразу:

This release started as a copy of buster, and is currently in a state called testing . This means that things should not break as badly as in unstable or experimental distributions, because packages are allowed to enter this distribution only after a certain period of time has passed, and when they don’t have any release-critical bugs filed against them. Please note that security updates for testing distribution are not yet managed by the security team. Hence, testing does not get security updates in a timely manner. You are encouraged to switch your sources.list entries from testing to buster for the time being if you need security support. See also the entry in the Security Team’s FAQ for the testing distribution.

Позже я поплотился за это и позже решил выделять отдельное время для игр с тестовыми образами. Для более менее стабильных систем я выбрал стабильный образ от debian. Позже мы устанавливаем образ на диск и читаем инструкцию:

How to run these images on the Amlogic platform .
Now all images Armbian and LE has all the files for activate the multi-boot. Anything addition to download and copy to media is not required.
1. Download the image for your device
2. Unpack
3. Burn the image on the medium
4. Configure in the file (uEnv.txt) launch parameters for the desired platform and model (uncomment the desired lines and comment out or delete unused ones)
If universal multi-upload has not yet been activated on this device, you need to activate it once. There are several options for activating multi-loading.
— Connect the prepared media to the device and turn on the power, boot into Android
— Open the app «Update&Backup»
— Click on «Select» local update and chose the file on the removable media aml_autoscript.zip
— Start «Update»
— System will reboot twice and start running the system from external media.

На последних образах изменились правила:
Pay attention. Starting from version 20.08 (20200814), the configuration order for the used DTB changes.
Please note that the algorithm for initial configuration of the system for startup has changed. Instead of a file «uEnv.txt», the file «/extlinux/extlinux.conf » is now used. The rules for editing a file remain the same.
All Amlogic models now need the «u-boot.ext» file.
Before launching on Amlogic, you must copy or rename one of the existing files «u-boot-*» to «u-boot.ext».
For s905 (not X) — used u-boot-s905
For s905x and s912 — used u-boot-s905x-s912
For s905x2 and s922 — used u-boot-s905x2-s922

— Теперь устанавливаем образ на SD карту.
— Открываем BOOT раздел на SD карте и переименовываем файл u-boot-s905x-s912 в файл u-boot.ext(на старых версиях этого делать не требовалось), затем в папке extlinux редактируем файл extlinux.conf (убираем ненужное и раскомментируем нужное). Для своей приставки я использововал meson-gxl-s905x-nexbox-a95x.dtb
— Вставляем SD карту в приставку.
-У меня загрузка начинается сразу, но я использую старый образ. Если загрузчик на приставке не обновлен, то заходим в обновление и выбираем обновление на флешке. После его установки первичная загрузка становится с флешки. Но в новых инструкциях рекомендуют зажать кнопку сброса, которая находится внутри разъема AV и включить питание приставки. После того, как на HDMI пойдет сигнал, отпустить кнопку сброса.

При желании можно установить Linux в приставку и затереть Android, что я успешно и сделал.

Источник

Запуск дистрибутива Manjaro ARM Linux 21.04 с SD-карты на ТВ-боксах Ugoos серии AM6

В середине прошлого года в кратком обзоре было показано как превратить Android ТВ-бокс Ugoos семейства AM6 в настольный компьютер Linux с помощью дистрибутива Armbian.

Сегодня в обзоре мы расскажем как запустить дистрибутив Manjaro ARM Linux 21.04 с SD-карты / USB накопителя на ТВ-боксе Ugoos AM6 Plus.

Что нужно для установки:

    • Скачать архив *.img.xz содержащий файл образа. Убедитесь, что загрузка завершилась успешно.
    • Скачать и установить программу Etcher и записать образ на SD-карту или USB накопитель (8 ГБ или больше).
    • ТВ-бокс Ugoos семейства AM6.

Ссылки для скачивания и установка

Сначала нужно скачать архив с образом: Manjaro ARM 21.04 – XFCE или Manjaro ARM 21.04 – KDE Plasma и распаковывать его. В данном случае будет использоваться образ Manjaro ARM XFCE 21.04 (Manjaro-ARM-xfce-am6-plus-21.04.img).

Дальше нужно скачать программу balenaEtcher для записи образа (можно использовать и другую, например Win32 Disk Imager).

Установите программу balenaEtcher.

Теперь запустите программу balenaEtcher, выберите образ, SD-карту (как уже говорилось ранее, можно использовать USB-накопитель) и нажмите Flash.

Обычно после записи образа, нужно изменить параметры запуска в файле extlinux.conf, который находится в папке extlinux, но в данном случае, это делать не надо, поскольку по умолчанию уже выбрана dtb для Ugoos AM6 Plus:

Читайте также:  Как разблокировать андроид fly если забыл пароль

Теперь вставьте SD-карту / USB накопитель в устройство, подключите питание и чтобы начать загрузку с флешки, удерживайте кнопку «Recovery» в течении 5-6 секунд.

Первый запуск занимает много времени, поэтому наберитесь терпения и следуйте следующим командам на экране, когда они появятся:

    • Раскладка клавиатуры
    • Имя пользователя
    • Дополнительная группа пользователей (необязательно)
    • Полное имя
    • Пароль для этого имени пользователя
    • Пароль для root
    • Часовой пояс
    • Локализация
    • Имя хоста

Затем система установит все эти параметры. Дождитесь появления экрана входа в систему.

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

Нажмите, чтобы увеличить

Как видно в скриншотах ниже, в данной версии работает WiFi, как 5 ГГц, так и 2.4 ГГц, а также Ethernet подключение.

Bluetooth также работает и удалось без проблем найти и подключится к другому ТВ-боксу.

Вот некоторые другие подробности, после запуска дистрибутива XFCE на Ugoos AM6 Plus:

Источник

Linux\*Elec на tv-box Z69 Amlogic S905X

Добрый день, коллеги!
В очередной раз наткнулся на споры в комментариях в отношении ТВ-бокса на Amlogic s905. Большинство комментаторов призывают дать инструкции, что нужно сделать, чтобы из китайской коробочки сделать производительный (медиа)сервер. Скажу сразу: покурить мануалы все же придется, все само не заработает. Однако, у вас будет стимул, вы будете знать что можно в итоге получить.

Данная статья призвана обобщить довольно значительный опыт в рамках бытовой автоматизации и использования медиаплееров. Цель всего опуса описать неочевидные возможности устройств и ПО, примеры того, как можно из булки хлеба сделать троллейбус при помощи python и нескольких десятков пар костылей. Интересующихся прошу под кат.

Введение.

Сравнение.

System: amlogic: GNU/Linux
OS: GNU/Linux — 3.14.29 — #146 SMP PREEMPT Tue Dec 26 12:40:49 MSK 2017
Machine: aarch64 (aarch64)
Language: en_US.utf8 (charmap=«UTF-8», collate=«UTF-8»)
16:22:44 up 9 min, 1 user, load average: 0.21, 0.18, 0.10; runlevel 5

— Benchmark Run: Tue Mar 27 2018 16:22:44 — 16:50:50
0 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 7436510.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 1312.0 MWIPS (10.1 s, 7 samples)
Execl Throughput 871.6 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 180951.1 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 56264.8 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 428546.6 KBps (30.0 s, 2 samples)
Pipe Throughput 437935.7 lps (10.0 s, 7 samples)
Pipe-based Context Switching 93731.8 lps (10.0 s, 7 samples)
Process Creation 3236.2 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2428.7 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 714.0 lpm (60.1 s, 2 samples)
System Call Overhead 929656.2 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 7436510.3 637.2
Double-Precision Whetstone 55.0 1312.0 238.6
Execl Throughput 43.0 871.6 202.7
File Copy 1024 bufsize 2000 maxblocks 3960.0 180951.1 456.9
File Copy 256 bufsize 500 maxblocks 1655.0 56264.8 340.0
File Copy 4096 bufsize 8000 maxblocks 5800.0 428546.6 738.9
Pipe Throughput 12440.0 437935.7 352.0
Pipe-based Context Switching 4000.0 93731.8 234.3
Process Creation 126.0 3236.2 256.8
Shell Scripts (1 concurrent) 42.4 2428.7 572.8
Shell Scripts (8 concurrent) 6.0 714.0 1190.0
System Call Overhead 15000.0 929656.2 619.8
========
System Benchmarks Index Score 421.7

System: rpi3: GNU/Linux
OS: GNU/Linux — 4.9.35-v7+ — #1014 SMP Fri Jun 30 14:47:43 BST 2017
Machine: armv7l (unknown)
Language: en_US.utf8 (charmap=«ANSI_X3.4-1968», collate=«ANSI_X3.4-1968»)
CPU 0: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

CPU 1: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

CPU 2: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

CPU 3: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

16:26:55 up 20:47, 1 user, load average: 0.77, 0.98, 0.57; runlevel 3

— Benchmark Run: Tue Mar 27 2018 16:26:55 — 16:56:17
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 2179181.5 lps (10.0 s, 7 samples)
Double-Precision Whetstone 368.3 MWIPS (9.9 s, 7 samples)
Execl Throughput 463.0 lps (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 73545.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 20941.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 194029.5 KBps (30.0 s, 2 samples)
Pipe Throughput 155045.4 lps (10.0 s, 7 samples)
Pipe-based Context Switching 27361.7 lps (10.0 s, 7 samples)
Process Creation 1177.1 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 1176.1 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 317.4 lpm (60.1 s, 2 samples)
System Call Overhead 333399.9 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 2179181.5 186.7
Double-Precision Whetstone 55.0 368.3 67.0
Execl Throughput 43.0 463.0 107.7
File Copy 1024 bufsize 2000 maxblocks 3960.0 73545.4 185.7
File Copy 256 bufsize 500 maxblocks 1655.0 20941.9 126.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 194029.5 334.5
Pipe Throughput 12440.0 155045.4 124.6
Pipe-based Context Switching 4000.0 27361.7 68.4
Process Creation 126.0 1177.1 93.4
Shell Scripts (1 concurrent) 42.4 1176.1 277.4
Shell Scripts (8 concurrent) 6.0 317.4 529.0
System Call Overhead 15000.0 333399.9 222.3
========
System Benchmarks Index Score 159.7

— Benchmark Run: Tue Mar 27 2018 16:56:17 — 17:25:34
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables 8690198.1 lps (10.0 s, 7 samples)
Double-Precision Whetstone 1470.5 MWIPS (10.0 s, 7 samples)
Execl Throughput 1266.4 lps (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 113576.7 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 31186.4 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 332597.5 KBps (30.0 s, 2 samples)
Pipe Throughput 616170.2 lps (10.0 s, 7 samples)
Pipe-based Context Switching 95804.8 lps (10.0 s, 7 samples)
Process Creation 2793.2 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2657.3 lpm (60.1 s, 2 samples)
Shell Scripts (8 concurrent) 341.1 lpm (60.2 s, 2 samples)
System Call Overhead 1277095.6 lps (10.0 s, 7 samples)

Читайте также:  Как настроить автообновление андроид

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 8690198.1 744.7
Double-Precision Whetstone 55.0 1470.5 267.4
Execl Throughput 43.0 1266.4 294.5
File Copy 1024 bufsize 2000 maxblocks 3960.0 113576.7 286.8
File Copy 256 bufsize 500 maxblocks 1655.0 31186.4 188.4
File Copy 4096 bufsize 8000 maxblocks 5800.0 332597.5 573.4
Pipe Throughput 12440.0 616170.2 495.3
Pipe-based Context Switching 4000.0 95804.8 239.5
Process Creation 126.0 2793.2 221.7
Shell Scripts (1 concurrent) 42.4 2657.3 626.7
Shell Scripts (8 concurrent) 6.0 341.1 568.6
System Call Overhead 15000.0 1277095.6 851.4
========
System Benchmarks Index Score 395.2

Есть смысл заморочиться? Ну, я заморочился 🙂

Установка ОС.

Все достаточно просто. Листаем выше обозначенную тему до постов “последний стабильный образ” и переходим на яндекс.диск: на момент написания (12.2017) это здесь
Скачиваем образ системы и заливаем на sd или usb флэшку с помощью программ rufus или win32diskimager.
Важным является момент активации загрузки. Для этого нужно загрузиться в андроид, вставить созданный на предыдущем шаге накопитель и через стандартную программу обновления (update&backup) исправить загрузчик бокса, т.е. запустить с флэшки скрипт обновления (aml_autoscript.zip). Подходящий файл будет на флешке только один, вы не перепутаете его. После запуска обновления, бокс перезагрузится и, если все сделано правильно, запустится выбранный образ Linux.
Учетные данные для образа armbian (ubuntu 16.04): root, пароль: 1234.
При первом входе будет запущена процедура изменения пароля и затем создания нового (нерутового) пользователя. Когда все будет выполнено — бокс еще раз перезагрузится. После этого, рекомендую назначить для твбокса постоянный ip адрес в DHCP на вашем домашнем роутере. После чего ходить на твбокс будет удобно по ssh (я пользуюсь для этих целей putty в windows).
Итак, мы в линуксе. На этом этапе, если вы жадный IT менеджер и планируете унижать своих пользователей(или сами любите страдания), вы можете сообщить: вот полноценный компьютер с ОС Linux! В нем можно запускать офис, выполнять типовые задачи и\или использовать браузер. Можно устанавливать дополнительные программы.
Лично я не склонен считать получившуюся систему полноценной. Я бы назвал это тонким клиентом, из которого, например, можно использовать сервисы предприятия в режиме удаленного рабочего стола, vdi или через веб интерфейсы.
На этом этапе также могут возникнуть вопросы с железом, например wifi и аппаратной поддержкой декодирования видео. Уважаемый balbes150 дает нам подборку драйверов(в терминологии linux — модулей ядра) в образе (утилита armbian-config), но с большой вероятностью вы можете оказаться в пролете и они не заработают. Увы, китайцы в каждом боксе ставят разную периферию. С этой проблемой вы, вероятно, один на один, ну или может вам помогут на форуме. Гуглите.
Для дома, получившуюся систему можно установить без графического интерфейса, а все необходимые функции получать в виде веб интерфейсов. Я использую дистрибутив Ubuntu server 16.04.

Пример №0: Тривиальный. Настройка торентокачалок, файлохранилок.

Что тут можно посоветовать. Любое ПО на ваш вкус.
Для торренов могу порекомендовать transmission
Для общих папок с windows: samba.
Самбу, кстати, можно использовать для автоматического резервного копирования видео с популярных камер Xiaomi Dafang по вот этой инструкции.
Для монтирования яндекс диска используем dav2fs — чтобы превратить ваш бокс в облачное хранилище, например, для тех же видеозаписей с камеры.

Пример №1: Установка системы домашней автоматизации на примере Domoticz (или majordomo\OpenHAB по вкусу).

Про использование домотикза читайте на муське тут.
Последнее время я им не особо доволен, он стал тормозить при взаимодействии с xiaomi шлюзом. Но пока разбираться лень.
Устанавливается система с помощью скрипта:

После нескольких простых вопросов у вас на порту 8080 будет запущен интерфейс Domoticz. Далее подключение и настройка устройств осуществляется через этот веб интерфейс.
Без труда можно интегрировать с умным домом xiaomi и выключателями sonoff, избавив их от гнета Китая 🙂
Выглядит в сборе примерно так:


Пример №2: Видеонаблюдение на базе motion+motionEye.

Кто не знает, motion это видеорегистратор с открытым исходным кодом. А motionEye это веб-интерфейс для настройки камер и управления архивами.
Устанавливается по инструкции (со 2го шага)
Выглядит так:

Кстати, он умеет работать с непосредственно подключенными USB web камерами. Ну, это понятно, что для любителей приключений…
RTSP потоки сильно грузят процессор, поэтому больше 2-х потоков в разрешении 720р amlogic s905x вряд ли вытянет.
У меня дома, кстати, стоят камеры Xiaomi Xiaofang с хаком. С помощью motionEye и хака можно просматривать видео (rtsp) с камер и получать изображения без помощи родного приложения MiHome. Я считаю это очень важным, т.к. стабильность и защищенность китайского облака оставляет желать лучшего.
Мой вариант использования: при открытии входной двери, датчик открытия отправляет запрос на сервер автоматизации, там python скрипт, запущенный linux лезет к камерам и получает с них фото, после чего направляет их мне через pushover по ftp или telegram.
Далее совмещайте с Яндекс-Диском и получайте облако для записей.

Пример №3: Продвинутый. Управление системой через Телеграм с помощью бота на Python.

Данный кейс требует некоторых навыков программирования и был очень удобен до последних событий, связанных с РКН. Я планировал использовать телеграм бота для отказа от белого IP дома.
На текущий момент ситуация не изменилась кардинально, но возможны проблемы со стабильностью, но скрипт бота приходится запускать с использованием прокси. Для надежности и секурности рекомендую обзавестись собственным proxy/vpn.
В основе бота лежит библиотека python-telegram-bot
Мой бот выполняет следующие функции:

  • запуск linux shell команд, перенаправление вывода в телеграм
  • краткая информация о состоянии устройства
  • информация о состоянии домашних устройств
  • получение фото с камер

В работе выглядит так:



Источник

Оцените статью