AlexxIT Smart Home
7.85K subscribers
321 photos
27 videos
289 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Как много всего нужно успеть, перед тем как тебя лишат свободы или жизни.

Похоже, go2rtc это первый проект в мире, который поддерживает кодек H265 для WebRTC в реальном браузере. На данный момент это только Safari последних версий. Зато работает на всех свежих macOS, iOS и iPadOS.

Кроме того, это первый проект в мире, который поддерживает стриминг с HomeKit камер (теоретически любых, но нужны тесты).

Он всё ещё в beta версии. И, в любой момент, не по моей воле, может остаться таким навсегда. Как и всё остальное на GitHub.

Проектом go2rtc я хотел показать, что в любых технологиях вообще нет никаких ограничений, когда в правильных руках есть время, желание и возможности. А хороших идей за последние два года было гораздо больше, чем времени, чтоб это всё реализовать.

Подробности про HEVC/H.265 тут
https://github.com/AlexxIT/Blog/issues/5

Мамкины комментаторы в чате Telegram попадут в бан без предупреждения.
На выходных ко мне пришла посылка, которую я буквально джва года ждал.

30 июля 2020 года я стал одним из первых участников проекта Flipper Zero.

Это просто must have штуковина для гиков, которые любят разбираться, как устроен окружающий их мир. А именно разные протоколы доступа и связи, вроде iButton, IR, RFID, RF433, NFC, BLE.

За один день изучения окружающих меня ворот и шлагбаумов, я успел ужаснуться, насколько их протоколы несовершенны. И настоятельно рекомендую всем, кто использует радио-пульты для защиты своей частной собственности, отключить приёмники на воротах и перейти на использование, например, WiFi-реле.

Для ковыряния умного дома Flipper пока не супер интересен. Радио-датчиков рядом нет, да и известных уязвимостей BLE/Mesh я не встречал.

Но! Чип в Флиппере умеет BLE/Zigbee/Thread, а значит вопрос времени, когда появится альтернативная прошивка, способная "пошатать" вашу или не вашу сеть. Все ведь помнят, что там с безопасностью у Zigbee?
#go2rtc
По многочисленным просьбам, в go2rtc была добавлена прямая поддержка протокола HTTP-FLV. Именно его используют в проекте dom.ru для отображения потока с домофонов.

К сожалению, пока без звука. Но зато видео можно забрать с минимальной задержкой в форматах WebRTC, MSE, MP4, RTSP, включая snapshot в формате mp4.

Если очень нужен звук - можно подключить транскодинг средствами ffmpeg, но это добавляет время к старту потока.

Говорят, хорошо работает в связке с отображением потока на телевирах с Яндекс Алисой.
#go2rtc
Автор rtsp-simple-server отметил go2rtc. Именно его гениальная идея взаимодействия с FFmpeg легла в архитектуру проекта. О чём, конечно же, отмечено в начале документации.
На Ali сейчас скидки на довольно интересную линейку камер. У меня не было с ними опыта, но заказал пару для теста.

https://us.eufy.com/products/t81241w1

1. Маленькая 2К камера с поддержкой HomeKit и вроде как RTSP
2. Поворотная 2К камера с поддержкой HomeKit и вроде как RTSP
3. Беспроводная 2К камера на аккумуляторе!

Так же есть аккумуляторная 2К камера с прожектором и беспроводная 2К камера с солнечной батареей.

Все беспроводные камеры НЕ поддерживают HomeKit и RTSP! но интеграция вроде как какая-то есть. Узнал о линейке этих камер, потому что ко мне как раз пришёл автор этой интеграции. Ищет варианты, как с помощью go2rtc получить с них обычных RTSP поток.

eufy Official Store
https://www.aliexpress.com/store/sale-items/1102140348.html
Очень долго ждал момент, когда Nike Run Club выдаст мне высшую награду, салатовый бейдж за 15000 километров. Вот этот день настал, но приложения Nike больше нет. Такие дела...
История первого появления на GitHub:
В ноябре 2019 - SonoffLAN
В январе 2020 - YandexStation
В июне 2020 - HassWP
В августе 2020 - Xiaomi Gateway 3
В апреле 2021 - WebRTC Camera
В августе 2022 - go2rtc

На сегодняшний день это привело к:
- 7 тысяч суммарных звёзд на аккаунте GitHub
- из них 2 тысячи у SonoffLAN
- 46 тысяч скачиваний HassWP
- 44 тысячи скачивания докера go2rtc + 10 тысяч скачиваний бинарника (всего за 5 месяцев)

Посчитать установки интеграций невозможно, GitHub не даёт таких API.

На прошлой неделе вышли в релиз:
- третья версия Xiaomi Gateway 3
- третья версия WebRTC Camera
- первая версия go2rtc
На прошлых выходных распаковал одну из своих TP-Link Tapo камер. Решил посмотреть по поводу поддержки two way audio и погряз на несколько дней.

Закрытый протокол, шифрование, поток MPEG TS, с которым я раньше не работал, и нестандартные кодеки внутри этого протокола.

Вчера вышел релиз и с поддержкой two way audio на этих камерах. И с отправкой потокового аудио или TTS на любые камеры, для которых go2rtc поддерживает TTS.

Автор интеграции Tapo в Home Assistant, целый вечер изучал мой код и наконец-то смог добавить функцию скачки видео с этих камер. Фича висела открытой более двух лет, а проблема реализации была связана с неправильным применением шифрования.

Я тоже помучался с этой проблемой в рамках реализации. Но на поиски решения ушло два дня.

https://github.com/JurajNyiri/pytapo/issues/4
В 2022 году я провёл без бега всего несколько дней. В начале февраля меня уложил Covid. А 18 марта - кишечная инфекция. Конечно можно было собрать волю и пробежать символические 3 км в эти дни, но тогда я решил, что оно того не стоит.

Это значит, что 18 марта 2023 (сегодня), я во второй раз в жизни, закрываю челлендж по ежедневному бегу в течении года.

Технический прогресс пришёл в нашу жизнь не только в виде смартфонов и умных лампочек. В любительском спорте появилась возможность следить за уровнем максимального потребления кислорода (МПК/VO2max) в бытовых условиях. Это универсальный показатель, отражающий выносливость организма.

Сейчас у меня он около 50. Что вполне соответствует лёгкому, но регулярному бегу.

У бегунов-разрядников он около 60. У профи около 70. У мировой элиты около 80. У офисного работника с лёгкой формой ожирения - около 30.

На поддержание организма во время сна расходуется около 3 единиц. Такие дела.
Описал часть нововведений последнего релиза go2rtc 1.3.0 в статье на Хабре:

- стриминг с камер пылесосов Roborock! Да-да, это мобильная роботизированная батарейная камера с двухсторонней аудиосвязью
- двухстороннюю аудиосвязь для Hikvision ISAPI
- быстрый, лёгкий и безопасный шаринг любых потоков камер с помощью технологии WebTorrent (открывать внешний доступ к серверу не нужно)
- получение потока с камер в удалённых закрытых сетях, опять же по технологии WebTorrent
- превращение камеры любого мобильника в IP-камеру в пару кликов
- стриминг экрана компьютера из OBS Studio или браузера Google Chrome

https://habr.com/ru/post/724482/
Вчера выпустил сразу несколько новых релизов.

Как вы возможно знаете, этот год объявлен разработчиками Home Assistant, как год голосового управления. И вот только в версии 2023.5 появилось что-то интересное.

Это локальный движок для распознавания речи - Whisper. И механизм конструирования своих голосовых помощников, так называемый Assist pipeline.

До вчерашнего дня эти новшества поддерживало всего две интеграции. Это ESPHome с микрофоном и динамиком, через которую можно говорить с ХА. И VOIP, где с помощью специального SIP телефона можно позвонить на ваш ХА.

Ни того, ни другого у меня нет. Зато у меня есть очень много разных камер и колонок. Так появилась интеграция StreamAssist.

https://github.com/AlexxIT/StreamAssist

С помощью неё можно забрать звук практически с любой камеры, прокрутить его через локального голосового ассистента, и вернуть голосовой ответ на практически любую колонку, которая умеет проигрывать аудиофайлы из ХА.

Whisper это аддон ХА. Значит попробовать новые голосовые возможности могли только пользователи HassOS и Supervisor.

Чтоб это исправить, я за пару часов набросал FasterWhisper интеграцию. Которая работает на любой версии ХА.

А чтоб новый голосовой движок могли попробовать ну прям вообще все, я выпустил новую версию HassWP, куда все эти интеграции уже встроены.

На скриншоте HassWP + FasterWhisper + StreamAssist + WebRTC Camera + go2rtc + стриминг mp3-файла с песней по RTSP 🙈

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

Впрочем, у вас есть все возможности сделать вывод самостоятельно. И пожалуйста, научитесь думать своей головой. Этого так сильно не хватает в современном мире.
#gateway3
Начинается новая эпоха в развитии Xiaomi шлюзов - эпоха Ключей.

В недавнем обновлении прошивки Xiaomi Multimode Gateway v1.5.5 был закрыт неофициальный способ выполнить произвольную команду на шлюзе.

На его место пришёл официальный способ. Но он требует "ключ" шлюза (не путать с токеном). Ключ зашивается на заводе и никогда не меняется. Узнать его можно только получив полный доступ к шлюзу.

Поэтому интеграция Xiaomi Gateway 3, начиная с версии v3.3.0, автоматически скачает и сохранит этот ключ в настройках интеграции.

Если вы уже обновились на прошивку 1.5.5, а ключа нет - остаётся один программный и один аппаратный способ открыть доступ. Подробности в документации.

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

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v3.3.0
#go2rtc
Марафон очередных бессонных ночей закончен в виде нового релиза go2rtc.

Разных фич стало больше, а размер приложения - меньше. Потому что я выкинул почти все внешние библиотеки и переписал их функции с нуля.

Из большого и сложного появилась базовая поддержка стриминга в Apple HomeKit. Этим конечно сейчас никого не удивишь. Такое умеют разные open source решения.

Зато никто из них не умеет trasparent proxy для HomeKit камер (например Aqara). Это когда камера продолжает работать в экосистеме Apple с полной поддержкой всех своих функций. И дополнительно можно с неё забрать RTSP, WebRTC, MSE, снапшоты и прочее.

А ещё никто из них не имеет маленького и полностью автономного приложения в 5 МБайт, которое можно запустить прям на железе камеры.

Например, разработчик альтернативных прошивок для дешёвых и популярных китайских камер Wyze, добавил go2rtc в качестве основного стримингового ядра на эти камеры. А это значит, что с новым релизом поддержка HomeKit появится прям на них. А, в перспективе, и на других камерах.

Изменений очень много, поэтому релиз может быть не супер стабилен.

https://github.com/AlexxIT/go2rtc/releases/tag/v1.7.0
Решил немного отвлечься и реализовать очень старую задумку - голосовое управление офисной кофеваркой.

Как это выглядит (осторожно, в видео есть слово Алиса!):
https://www.youtube.com/watch?v=NzvDjmDLbJE

Как это работает:
https://habr.com/ru/articles/759858/
Please open Telegram to view this post
VIEW IN TELEGRAM
#go2rtc
Обновления получили сразу два проекта - go2rtc и WebRTC.

1. В go2rtc появилась механика шаринга потока на популярные стриминговые сервисы - YouTube, Telegram и др.

Тут, в первую очередь, интересен Telegram. Ведь он позволяет легко и быстро создать публичную анонимную трансляцию камеры на весь мир. Или же создать закрытую трансляцию для семьи, друзей, подъезда, спонсоров...

Есть один минус - сервера Telegram добавляют к трансляции задержку примерно в 10 секунд. На YouTube я видел задержку менее двух секунд. Тут я готов посотрудничать с командой Павла @durov, чтоб догнать и перегнать этот показатель YouTube. Пишите - сделаем из Telegram топовую стриминговую платформу.

2. Также в go2rtc появилась поддержка two-way audio для протокола DVRIP. Популярные безымянные камеры из Поднебесной.

3. И поддержка two-way audio появилась в карточке WebRTC.

---

На скриншоте выше демонстрация четырёх технологий стриминга камеры за серым IP-адресом (без публичного внешнего доступа):

1. SSH Tunnel - самый сложный в настройке способ. У меня на GitHub есть такой аддон.

2. Telegram - трансляция поддерживается в мобильных и настольных приложениях. Видно отставание потока.

3. WebTorrent - поддерживается в go2rtc довольно давно, есть статья на Хабре.

4. HomeKit - для внешнего доступа нужен "центр умного дома" Apple, у меня это старый iPad Air 2 на постоянном питании. Трансляция на доли секунды опережает WebRTC.

Ещё в список можно добавить сервисы Ngrok и Dataplicity. В бесплатной версии оба позволяют закрепить за своим сервером один публичный адрес.
Полностью посвятить себя любимому делу можно не только программируя что-то там на GitHub.

Уже много лет Искандер @yadgarovblog вдохновляет тысячи бегунов своим стилем жизни. Обычный (бывший) программист Яндекса занимал призовые места на разных забегах (когда-то) в России, а теперь уже в мире.

Чтоб было не так скучно (иначе зачем это всё), он бежал Амстердамский полумарафон на прошлых выходных в "костюме" Форреста Гампа. Но самое примечательное (почему я и пишу этот пост) - он специально не брился несколько недель, для более тонкой передачи образа культового персонажа.

За внимание к деталям, снимаю шляпу:
https://t.me/yadgarovblog

А тем временем прошёл 578й день моего челленджа "ни дня без бега".

PS. А ещё сегодня профиль GitHub перевалил за 10000 суммарных звёзд...
На прошлой неделе, без лишнего пафоса, произошло значимое событие в индустрии видео стриминга. Вышел релиз iOS 17.1 с поддержкой технологии MSE.

Именно на этой технологии 80% браузеров отображают потоковое видео последние несколько лет. А с новым релизом цифра может подняться до 90-95%.

По заявлению инженера Apple, технологию не пускали на яблочные телефоны из-за высокого энергопотребления. Тут сложно поспорить, если потоковое видео не открывается - телефон проживёт дольше.

На мой взгляд, Apple специально тормозит развитие индустрии, чтоб продлить жизнь собственной стриминговой технологии HLS.

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

В последних версиях go2rtc и WebRTC Camera всё уже поддерживается. Интеграция автоматически определит, на какой технологии лучше всего отобразить потоковое видео на вашем текущем устройстве.

Чем MSE лучше WebRTC:
- поддержка большего количества кодеков (H265, AAC, и другие)
- меньше проблем с внешним доступом
- нет потерь на высоких битрейтах видео
- поддержка неквадратного пикселя и перевёрнутого видео (не во всех браузерах)

На идеальном сетевом канале и качественном видео-потоке задержка MSE сравнима с WebRTC.

https://developer.apple.com/videos/play/wwdc2023/10122/
Через пару недель можно будет посмотреть на меня вживую, пообщаться и даже послушать доклады на конференциях VideoTech и юбилейной HighLoad.

На первой будет про историю создания go2rtc и разное про видео-стриминг. На второй про тонкости Golang внутри go2rtc.

Забавно. В описании одного из докладов есть цифры скачивания go2rtc. Так вот они уже не актуальны и подросли в полтора раза...

PS. А сегодня, тем временем, 600-й день ежедневного бега.

https://t.me/HighLoadChannel/3408
https://habr.com/ru/companies/jugru/articles/769996/
#go2rtc
Давно мечтал поснимать свои пробежки от первого лица. На прошлой неделе идея стала настолько навязчивой, что не удержался от покупки GoPro.

GoPro это в первую очередь камера. А что мы делаем с камерами? Правильно, добавляем их в go2rtc.

Сегодняшний релиз уже поддерживает модели с HERO9 по HERO12. Более старые имеют другие API. Добавлю по возможности.
На днях Яндекс выпустил фичу "активации по голосу" почти на всех своих колонках.

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

А уж как его использовать в своих автоматизациях, придумывайте сами.

https://github.com/AlexxIT/YandexStation/wiki/VoiceSensor