AlexxIT Smart Home
7.97K subscribers
321 photos
28 videos
289 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download 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
Вчера неожиданно прошло 18 марта. А это значит, что челлендж ежедневного бега перевалил за отметку два года подряд.

Было ли сложно? 95% времени - нет. Бег стал более привычным занятием, чем чистка зубов.

Во времена поездок приходится чуть напрячься. Нужно всегда брать с собой подходящую одежду и внимательно планировать день. Как-то бегал около транзитного аэропорта между двумя перелётами.

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

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

Интересный факт. Лёгкий бег при температуре -20 в течении 30 минут хорошо сбивает температуру тела с 38+ градусов до положенных 36.6.

Теория известного доктора о сбивании температуры тела путём вдыхания прохладного воздуха очень даже работает. Даже интересно её ещё раз испытать в будущих болезнях.
Три года назад проект Zigbee2MQTT выпустил шуточную интеграцию с Xiamoli cloud.
В тот же день я выпустил вполне нешуточную интеграцию Zigbee2MQTT с шлюзами Xiaomi.

И вот, спустя три года, я продолжаю не только поддерживать интеграцию шлюзов, но и развивать её. Вчера вышло большое обновление. Улучшилась поддержка Zigbee, BLE и Mesh устройств из экосистемы MiHome, и Zigbee устройств сторонних производителей в режиме MiHome.

А также добавлена поддержка дочерних Matter устройств для шлюза Xiaomi Multimode Gateway 2 EU. Она появилась в евро версии с недавним обновлением прошивки. Пока особой пользы в таких устройствах в MiHome нет. Они не могут участвовать в автоматизациях.

Автоматизации MiHome довольно "детские", но их можно использовать для добавления отказоустойчивости вашему умному дому. Например, настроить управление "Zigbee, Mesh и Wi-Fi" светом с "Zigbee или BLE" кнопок и датчиков. Такие автоматизации вполне могут исполняться локально на шлюзе. Тогда при падении Интернета или сервера вашего умного дома (например, Home Assistant) - свет продолжит управляться.

Когда Xiaomi добавит поддержку автоматизаций по Matter устройствам - у пользователей появится возможность официально настраивать локальные автоматизации шлюза с устройствами сторонних производителей. Например, по датчику движения Zigbee включать реле Sonoff. Или даже использовать DIY устройства. При этом более сложные автоматизации, например адаптивное освещение, можно настроить в "продвинутых" системах умного дома.

PS. Известны случаи, что новый Xiaomi Multimode Gateway 2 с завода может иметь проблемы с Zigbee устройствами. Рекомендуется выполнить полный сброс (10 кликов на кнопку).

PS. Сразу после покупки получите и надёжно сохраните ключ шлюза. Иначе после обновления прошивки вам прийдётся использовать паяльник для подключения шлюза к Home Assistant.

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v4.0.0
Наверное, впервые в умном доме... караоке

Посмотреть
https://youtu.be/K8w_867i7qA

Попробовать
https://t.me/AlexxIT_Releases
#go2rtc
У программистов есть привычка - запускать Doom на любой железке, которая попадётся под руку.

У меня есть привычка - добавлять в go2rtc любую стриминговую технологию, которая попадётся под руку.

Пару дней назад я узнал о забавном способе отображать анимацию в формате ASCII-графики в текстовой консоли сервера.

Всего 150 строк кода, и вы можете повторить такой трюк дома с новой версией go2rtc.

https://www.youtube.com/watch?v=sHj_3h_sX7M
#go2rtc
Меня всегда завораживала карта Zigbee сети. Большую карту интересно разглядывать, как произведение искусства.

В новой версии go2rtc появилась своя карта стриминговой сети. Она живая и интерактивная. Между нодами бегают байты данных, старые ноды исчезают, а новые - появляются. Форматы, протоколы и кодеки, для удобства, названы схожими с FFmpeg именами.

Идея проекта go2rtc не просто реализовывать базовую функцию стриминга. Но и выполнять некую обучающую роль. Чтоб люди, далёкие от видео индустрии, могли на простых и живых примерах понять, насколько глубока эта кроличья нора.

https://youtu.be/ZzePTFl0QFk
Пять лет назад, в августе 2019 года, я заказал на Али умные безнулевые выключатели в евро подрозетник на прошивке Ewelink. Они послужили началом двух десятков разных open source проектов на GitHub.

Забавно, еслиб у товара по умолчанию стояла прошивка Tuya (как на скриншоте выше) - история могла пойти по совершенно другому пути, а вы бы сейчас не читали этот пост.

Два года назад, в августе 2022 года, я выложил в публичный доступ первую черновую версию проекта go2rtc. На сегодняшний день проект набрал скромные 4 тысячи звёзд на GitHub и более 1 тысячи issue.

При этом общее количество скачиваний на DockerHub превысило 1 миллион! Количество скачиваний бинарников на GitHub превысило 600 тысяч. Количество установок в составе Frigate и дистрибутивов под разные ОС посчитать затруднительно. Учитывая популярность Frigate - там должны быть миллионы.

Все эти цифры, конечно, не могут не радовать и подтверждают, что всё было не зря.

Интересный факт, за всё время разработки и существования go2rtc - я не прожил ни одного дня без бега. Такие дела.
Media is too big
VIEW IN TELEGRAM
#go2rtc
Вчера произошло довольно значимое событие - самый популярный open source проект на GitHub теперь использует go2rtc в качестве стримингового ядра!

Конечно же я говорю про Home Assistant. В конце октября команда GitHub подвела итоги года, где первое место по количеству участников занял наш любимый ХА, обогнав не менее достойного конкурента - VSCode.

go2rtc теперь встроен в Home Assistant core, начиная с версии 2024.11. Сотни тысяч новых пользователей будут получать настоящие real time потоки со своих камер, даже не подозревая, кто за этим всем стоит.

Как разработчик, я знаю, что такое решение далось HA core team нелегко. Сделать ставку на стороннее программное обеспечение в такой базовой функции - это очень серьёзный и обдуманный шаг. Вроде даже были попытки реализовать встроенную поддержку WebRTC средствами Python. Похоже, ничего толкового из этого не вышло.

Это лишь первый шаг в использовании go2rtc внутри ядра ХА - отображение потока с камер с помощью технологии WebRTC. На очереди и другие фичи - two way audio, MSE. Возможно, нормальная поддержка HomeKit, как на вход, так и на выход.

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