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

IoT

Отправить сообщение

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Channel quality indicator for server WebRTC over TCP

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


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 мин
Количество просмотров14K

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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


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


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


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

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

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

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

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

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

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

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

Информация

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