Как стать автором
Обновить
93
-6
Алексей @AlexxIT

IoT

Как подружить Ростелеком Ключ и Home Assistant

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 7.2K

Недавно ко мне в руки попал ключ для домофона «Ростелеком» непривычной прямоугольной формы. А вскоре после этого на моем телефоне появилось приложение «Ростелеком Ключ», которое позволило полностью перестать пользоваться физическим ключом. В нем можно просматривать видео с различных камер вокруг дома и в подъезде, создавать временные коды для открытия дверей, а также открывать все двери дистанционно.

Мне сразу же захотелось добавить все эти функции в Home Assistant, который у меня уже управляет кучей устройств внутри квартиры. Ну а интеграция с сервисами «Ростелекома» позволит расширить радиус контроля Home Asstatant'а и при желании реализовать новые интересные автоматизации, например открывать дверь подъезда, просто внимательно посмотрев в камеру домофона, и в этот момент предупреждать детей в квартире, что папа через 5 минут будет дома =)

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 9

Пишем свой протокол поверх UDP

Время на прочтение 24 мин
Количество просмотров 40K
Первые прямые трансляции с места событий появились в России почти 70 лет назад и вели их из передвижной телевизионной станции (ПТС), которая внешне походила на «троллейбус» и позволяла вести эфиры не из студии. А всего лишь три года назад Periscope позволил вместо «троллейбуса» использовать мобильный телефон.

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


Еще через полгода, летом 2016, Одноклассники запустили свое мобильное приложение OK Live для стриминга, в котором постарались решить эти проблемы.

Александр Тоболь отвечает за техническую часть видео в Одноклассниках и на Highload++ 2017 рассказал про то, как писать свой UDP протокол, и зачем это может потребоваться.

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


Говорят, что надо всегда начинать с архитектуры и ТЗ — якобы без этого нельзя! Так и сделаем.
Всего голосов 55: ↑53 и ↓2 +51
Комментарии 44

OpenConnect: недетектируемый VPN, который вам понравится

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 193K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Всего голосов 325: ↑324 и ↓1 +323
Комментарии 333

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 25K

Однажды у меня возникла потребность подключения своего узла учета электрической энергии к системе умного дома «Home Assistant», но вот беда, установленный счетчик ЭНЕРГОМЕРА СЕ101 не обладал смарт функциями, позволяющими без проблем подключать его к системам умного дома, а цена электросчетчиков со смарт функциями просто заоблачная. Но я нашел экономичное решение с ценой решения задачи менее $5 и об этом далее.
Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 87

Python, Go или… готовим сырой видеопоток с полсотни камер

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 9.8K

В проектах, связанных с машинным зрением и обучением приходится работать с сырым видеопотоком с камер. Чтобы принимать, предобрабатывать и передавать эти данные нейросетям необходим отдельный программный компонент, который мы условно называем «видеоридер». Это микросервис, который выполняет функцию декодирования RTSP-потоков с камер, отбирает определенные кадры и отправляет в базу данных для дальнейшего анализа. И все это в режиме реального времени.

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

Читать далее
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 22

Настраиваем просмотр IPTV в Plex Media Server

Время на прочтение 7 мин
Количество просмотров 59K

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

Но если все же интересно ТВ, а домашний медиацентр развернут на Plex? Не волнуйтесь, он справится и с вещанием IPTV, нужно его только "научить". Рассмотрим все в деталях.

Читать дальше →
Всего голосов 28: ↑25 и ↓3 +22
Комментарии 64

Channel quality indicator for server WebRTC over TCP

Время на прочтение 5 мин
Количество просмотров 2.4K


Publish and Play


There exist two main functions of WebRTC operation on the server side in the field of streaming video: publishing and playing. In the case of publishing, the video stream is captured from the web camera and moves from the browser to the server. In the case of playing, the stream moves in the opposite direction, from the server to the browser, is decoded and played in the browser’s HTML5 <video> element on the device’s screen.

Read more →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

«Поводок» для котла Bosch или DIY Opentherm регулятор котла (не вкл./выкл.)

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 13K

Однажды зимним утром я проснулся от того, что мне было неприемлемо зябко. «Никогда такого не было!», — подумал лентяй во мне. «И вот опять!», — ответил ему потребитель — «Тыжинженер!». Да, моему котлу в доме уже около 7 лет и все это время он был недоразвитым, а домочадцы постоянно подкручивали температуру теплоносителя, если им было жарко или холодно. В этот день я решил, что пора потратить свой досуг на решение этой задачи, а именно регулирование котла по температуре воздуха в помещении.

Кому это близко прошу под кат!
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 65

Оптимизация размера Go-бинарника

Время на прочтение 6 мин
Количество просмотров 10K

image Если вы когда-нибудь писали на Go, то размер получающихся бинарников не мог пройти мимо вашего внимания. Конечно, в век гигабитных линков и терабайтных дисков это не должно быть большой проблемой. Но все-таки встречаются ситуации, когда хочется, чтобы размер бинарника был как можно меньше, и при этом вы не хотите расставаться с Go. О вариантах, как сделать так, чтобы Go-бинарник “похудел”, пойдет речь ниже.

Читать дальше →
Всего голосов 39: ↑37 и ↓2 +35
Комментарии 21

Трансляция h264 видео без перекодирования и задержки

Время на прочтение 10 мин
Количество просмотров 45K
Не секрет, что при управлении летательными аппаратами часто используется передача видео с самого аппарата на землю. Обычно такую возможность предоставляют производители самих БПЛА. Однако что же делать, если дрон собран своими руками?

Перед нами и нашими швейцарскими партнёрами из компании Helvetis встала задача транслировать видео в режиме реального времени с web-камеры с маломощного embedded-устройства на дроне по WiFi на Windows-планшет. В идеале бы нам хотелось:

  • задержку < 0.3с;
  • низкую загрузку CPU на embedded-системе (меньше 10% на одно ядро);
  • разрешение хотя бы 480p (лучше 720p).

Казалось бы, что может пойти не так?


Читать дальше →
Всего голосов 40: ↑40 и ↓0 +40
Комментарии 37

Анатомия каналов в Go

Время на прочтение 34 мин
Количество просмотров 148K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Anatomy of Channels in Go" автора Uday Hiwarale.


Что такое каналы?


Канал — это объект связи, с помощью которого горутины обмениваются данными. Технически это конвейер (или труба), откуда можно считывать или помещать данные. То есть одна горутина может отправить данные в канал, а другая — считать помещенные в этот канал данные.


Создание канала


Go для создания канала предоставляет ключевое слово chan. Канал может передавать данные только одного типа, данные других типов через это канал передавать невозможно.

Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 6

Хабр Карьера проанализировала больше 10  000 зарплат айтишников за второе полугодие 2020 года, и вот что получилось.

Медианная зарплата среди всех айтишников сейчас составляет 113 000 ₽. В Москве ребята зарабатывают 150 000 ₽, в Петербурге чуть меньше — 130 000 ₽, в остальных регионах — 88 000 ₽. По сравнению с первым полугодием 2020 года, зарплаты выросли на 2,7%, в основном за счет роста зарплат в регионах и Санкт-Петербурге.

Хочу узнать подробности!
Всего голосов 44: ↑43 и ↓1 +42
Комментарии 85

Поддержание аккуратной истории в Git с помощью интерактивного rebase

Время на прочтение 5 мин
Количество просмотров 40K

Interactive rebase — один из самых универсальных инструментов Git'а. В этой статье от автора Git-клиента Tower рассказывается, как корректировать сообщения при коммитах и исправлять свои ошибки.

Читать далее
Всего голосов 55: ↑54 и ↓1 +53
Комментарии 44

Реверс-инжиниринг сообщений Protocol Buffers

Время на прочтение 7 мин
Количество просмотров 10K
Под реверс-инжинирингом, в данном контексте, я понимаю восстановление исходной схемы сообщений наиболее близкие к оригиналу, используемому разработчиками. Существует несколько способов получить желаемое. Во-первых, если у нас есть доступ к клиентскому приложению, разработчики не позаботились о том чтобы скрыть отладочные символы и линковаться к LITE версии библиотеки protobuf, то получить оригинальные .proto-файлы не составит труда. Во-вторых, если же разработчики используют LITE сборку библиотеки, то это конечно усложняет жизнь реверсеру, но отнюдь не делает реверсинг бесполезным занятием: при определённой сноровке, даже в этом случае, можно восстановить .proto-файлы достаточно близкие к оригиналу.
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 0

Как я создал собственный алгоритм YouTube (чтобы не тратить время впустую)

Время на прочтение 8 мин
Количество просмотров 22K


Побег от алгоритма YouTube


Я люблю смотреть видео на YouTube, осязаемым образом улучшающие мою жизнь. К сожалению, алгоритм YouTube с этим не согласен. Он любит кормить меня кликбэйтом и прочим мусором.

Всё это неудивительно: алгоритм отдаёт приоритет кликам и времени просмотра.

Поэтому я поставил перед собой задачу: Смогу ли я написать код, который автоматически будет находить ценные видео, избавив меня от привязанности к алгоритму YouTube?

Вот так всё и началось.

Оптимально выстроенные планы


Я начал с визуализации того, что должен делать мой инструмент. Мне нужна была программа, которая будет (i) ранжировать видео на основании вероятной релевантности для меня и (ii) автоматически отправлять мне предлагаемые видео, из которых я смогу выбирать.

Я решил, что смогу серьёзно повысить продуктивность, если буду пакетно выбирать наборы видео для просмотра на каждую неделю и избавлюсь от необходимости бесконечного скроллинга YouTube.
Всего голосов 43: ↑42 и ↓1 +41
Комментарии 29

Как мы нарисовали на карте несколько тысяч интерактивных объектов без вреда для перформанса

Время на прочтение 9 мин
Количество просмотров 18K

Привет, меня зовут Дарья, и я Frontend-разработчик юнита Гео в Авито. Хочу поделиться опытом того, как мы сделали на вебе новый поиск по карте, заменив кластеры более удобным решением и сняв ограничение на количество отображаемых объектов.


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


Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 30

Еще один термостат на Arduino, но с OpenTherm

Время на прочтение 28 мин
Количество просмотров 96K


Читая первую часть заголовка многие из вас, наверняка, подумали – еще один термостат на многострадальной Arduino. И… Это правда – да, это очередной термостат для очередного котла, очередного дома, но правда это только отчасти – в статье я не хочу концентрироваться на самом устройстве – их (статей) действительно предостаточно. Несомненно, я опишу термостат, но больше хотел бы рассказать о том, как я связывал сам микроконтроллер с котлом. Итак, кому интересно – прошу…
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 14

Беспроводной DIY датчик температуры и влажности с e-paper дисплеем

Время на прочтение 4 мин
Количество просмотров 20K
Всем привет! Сегодня хочу рассказать читателям о своем DIY проекте датчика температуры и влажности с e-ink дисплеем. Это будет некая обзорная статья об этапах создания устройства, будет много картинок. Идея этого проекта родилась около двух лет назад, примерно тогда я увлекся беспроводными автономными устройствами. Целью проекта было создание небольшого девайса для знакомства и изучения дисплеев на электронных чернилах. Было решено на плату добавить датчик температуры, что бы можно было выводить какие то полезные данные на экран, ну и передавать данные далее в систему умного дома.


Всего голосов 53: ↑50 и ↓3 +47
Комментарии 27

Xiaomi Gateway 2 можно и не паять

Время на прочтение 5 мин
Количество просмотров 55K


Привет Хабр! В предыдущих сериях я:

  • Накупил устройств от Xiaomi для умного дома и посредством паяльника заставил их работать в увлекательнной манере без родных серверов через home assistant (ссылка на пост)
  • Завернул web interface от home assistant в electron (ссылка на пост) с поддержкой нотификаций, менюшек, точбара итд (код тут)

Но по мере появления всё новых устройств стало вскрываться странное…

Например, что поддержки Aqara Wireless Relay 2ch (LLKZMK11LM) в интеграции xiaomi_aqara нет, а на открытие Issues в GitHub владельцы кода отвечали, что поддержать это реле невозможно без обновления прошивки устройства. «Что-то тут не так» — подумал я и пошел разбираться по коду, как так вышло. И так увлекся, что запилил интеграцию сначала для работы с реле через xiaomi_miio (ссылка), а затем реализовал поддержку кубика и кнопки Xiaomi для этой интеграции (ссылка), а теперь расскажу зачем и как.
Читать дальше →
Всего голосов 57: ↑57 и ↓0 +57
Комментарии 20

Xiaomi Gateway (eu version — Lumi.gateway.mieu01 ) Hacked

Время на прочтение 4 мин
Количество просмотров 40K
Xiaomi Zigbee Gateway Hack

В этой статье я хочу поделится с Вами своими наработками и достигнутыми успехами в разборе Xiaomi шлюза (Версия с евровилкой с беру.ру). Расскажу как установить на него альтернативное ПО, как восстанавливать шлюз с затертым софтом и даже оживлять шлюз с затертым u-boot.

---------МНОГО КАРТИНОК-------------


Читать дальше →
Всего голосов 48: ↑47 и ↓1 +46
Комментарии 30
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность