Как стать автором
Поиск
Написать публикацию
Обновить
0
@fix_parrotread⁠-⁠only

Пользователь

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

Умный дом в панельной хрущёвке

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

Сразу признаюсь, что слово «хрущёвка» в этом тексте – скорее хук в заголовке. Правильнее было бы сказать, что я просто описываю свой опыт создания умного дома в обычной среднестатистической квартире городского жителя РФ, который я проживаю прямо сейчас.

Статья будет состоять из двух частей: первая – постановка задачи, ресерч, планы, выбор; вторая – реализация, опыт использования, ошибки и корректировки.

Читать далее

Какую базу данных выбрать для Home Assistant

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

На случай, если ещё не встречались с HA (Home Assistant) - это opensource веб сервис для умного дома, который позволяет подключить к себе кучу всяких устройств и настроить для них любые желаемые автоматизации. Например, открывать ворота при вашем приближении, заваривать кофе, когда ваш умный браслет понял, что вы проснулись, или автоматически кормить кошку по праздничным дням календаря.

Сегодня мы поговорим о том, какую СУБД (Систему Управления Базы Данными) для него лучше выбрать. Потому что очень часто в чат по HA приходят новички, и спрашивают, что им делать с MySQL, а им в ответ говорят, что они наркоманы и нанюхались одного известного видео с ютуба. А почему такая реакция, и что делать - начинающему автоматизатору понять довольно сложно без довольно специфического багажа знаний в айти. Так что надеюсь, что эта статья кому-то поможет.

Читать далее

Ирина — опенсорс русский голосовой помощник. Offline-ready

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

- Ирина, таймер...
- Ставлю таймер на пять минут.

Вполне себе обыденная история из моего быта. Я таки сделал собственного автономного голосового помощника.

TL;DR> Ирина вполне неплохо работает дома 24x7.

Потребуется установить Python 3.5+ и зависимости через pip (немного знаний Python).

Скиллы "из коробки": таймер, погода, контроль медиа (громче/тише/дальше), контроль плеера MPC-HC, запуск медиа из папки, расписание ближайших электричек, "подбрось кубик/монетку".

Плагинами добавляются: другие скиллы, Text-to-Speech и Speech-to-Text движки.

Интересно? Поехали >

Как я победил хаос умных устройств, или Цифровая трансформация жилого пространства

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

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

Читать далее

Станция Миди и голосовое управление Zigbee-устройствами без интернета. История разработки

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

Недавно мы представили нашу новую умную колонку — Яндекс Станцию Миди. Она больше, чем Лайт или Мини, поэтому в ней уместились вуфер и два высокочастотных динамика с суммарной мощностью звука 24 Вт. Но при этом она легче и компактнее, чем Станция 2 или Макс. Кроме того, в Миди мы внедрили технологии, которые позволили Алисе научиться новому. В частности, благодаря более современному процессору и бо́льшему объёму оперативной памяти, Алиса в Станции Миди впервые стала понимать и выполнять голосовые команды умного дома локально, без интернета.

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

Что важно: это полезно не только при проблемах со связью. Теперь Zigbee-устройства будут реагировать на команды быстрее даже при наличии хорошего интернета (чуть подробнее — в блоке про замеры скорости в конце поста).

Про локальный умный дом мы впервые заговорили весной этого года. Возможно, вы даже читали на Хабре статью о том, как мы научили наши колонки со встроенным Zigbee-модулем хранить и выполнять сценарии умного дома напрямую, без посредника в виде сервера. Но были ограничения: это работало только для тех сценариев, которые запускались по кнопке или таймеру. Потому что работа с голосовыми командами была доступна только через наше облако. Слишком уж тяжеловесной была это задача для железа. 

Читать далее

А закрыл ли я замок двери? Home assistant + Aqara и немного витухи

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


Зачем всё это?


Привет дорогой читатель! Проверь, а закрыл ли ты входную дверь? Сходи, проверь ;). Дёрни ручку! Вдруг открыта? Если у Вас бывают навязчивые мысли о том, что Вы забыли закрыть дверь, то поздравляю у Вас ОКР Вам надо лечиться Вам будет полезен мой опыт доработки замка входной двери. Кроме шуток, данная доработка актуальна если: с Вами живут малолетние или великовозрастные дети, перегруженная(ый) работой программист(ка), которых невозможно постоянно контролировать; ситуация усугубляется если в Вашем подъезде иногда проходят митинги собутыльников со всего двора, которые очень будут рады унести что-нибудь из Вашей квартиры и хорошо если это пакеты с мусором.

Решение этой головной боли можно поручить умному дому. Читал, что аналогичную задачу реализовали даже с определением степени закрытости замка — учитывая глубину входа ригеля в ответную часть замка дверной коробки, но это всё сложно и требует специализированных знаний по схемотехнике, да и зачем эти трудности? KISS & YAGNI никто не отменял даже в таком деле!
Я решаю задачу самым простым и доступным мне способом из подручных материалов.
Читать дальше →

Работаем с Zigbee-устройствами через Zigbee2mqtt и Node-RED

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

В первой статье «Облачный умный дом: что нужно знать, чтобы избежать проблем» я рассмотрел преимущества и недостатки облачных решений, а также проблемы, с которыми за последние месяцы пришлось столкнуться пользователям разных облаков. Затем я перешел к практике: приобрел несколько устройств Aqara.

Во второй статье «Слезаем с облачной иглы Aqara и подключаем устройства к контроллеру Wiren Board» я отказался от фирменного облака Aqara, после чего перевел все устройства на контроллер с оболочкой Sprut.hub. Конечно, я прикрутил Алису от Яндекса для сбора статистики и голосового управления.

Настало время следующего этапа — использовать открытые бесплатные решения Zigbee2mqtt и Node-RED. В качестве хаба я возьму контроллер Wiren Board 7, но вы можете использовать любые другие решения, например, отдельный ПК.

Читать далее

Умный дом с голосовым ассистентом на минималках

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

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

Разработка шла с переменной скоростью в течении лет 5. Совсем не сразу взялся за летопись, поэтому прошу прощения, если что-то будет некорректно ;)

В результате имеем масштабируемое решение, которое можно использовать в любом месте (квартира, дом или еще что).

Читать далее

Локальный сервер для разработки (dns, nginx & git)

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

В итоге мы получим домашний сервер с фейковым доменом, на поддомене которого мы развернём GitLab и настроим работу gitlab-runner'а для деплоя наших веб-проектов.

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

Читать далее

Как мы перешли на регулярные релизы мобильного приложения

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

Всем привет! Меня зовут Тарас, я руководитель релизной команды в inDriver. Команда разработки inDriver в 2022 году — это более 40 кроссфункциональных команд, которые делятся на платформенные и продуктовые. Всего в разработке около 350 инженеров, из них примерно 80 — мобильные разработчики.

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

Читать далее

Диспетчеризация в Swift: погружение в теорию и практику

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

Все iOS-разработчики так или иначе сталкиваются с диспетчеризацией (Method Dispatch), но далеко не каждый понимает, как это работает. Зная, как проходит процесс диспетчеризации под капотом программы, вы можете повысить производительность своего кода. 

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

Материал будет полезен для всех iOS-разработчиков, которые хотят улучшить производительность своего кода. Кроме того, этот материал поможет при подготовке к собеседованию, где вопросы о Method Dispatch встречаются достаточно часто.

Читать далее

40 релизов в неделю при разработке государственного Amazon или почему Agile is dead

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

Что бы вы сказали, если бы вам потребовалось срезать косты вашей команды разработки в два раза? А если бы пришел босс и потребовал делать в два раза больше той же командой? Обычно интуиция нас подводит и мы в ответ на эти вопросы делаем не то, что нужно - в итоге только ухудшаем ситуацию. Самое интересное, что значительно улучшить результаты можно потратив относительно небольшие усилия - что же это за бесплатный сыр такой? Как это связано с релизами? От какого важного элемента Agile мы заодно отказываемся? Ответы на эти вопросы я попробую дать в своей статье.

Читать далее

Как iOS 15 сломала авторизацию на два месяца. Хронология и лечение от СберМаркета

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

После выхода новой iOS 15.0 пользователей СберМаркета выкидывало из приложения после блокировки телефона. Бэкенд возвращал ошибку 403 — «пользователь не авторизован». На поиск причины ушло два месяца.


Евгений Рядовой и Дмитрий Шлюгаев из команды разработки рассказали, как искали ошибку и почему это было так трудно.

Читать дальше →

Я каждый день рискую запустить восстание машин, но всё ещё жив

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

Я создал чудовище.  

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

Как я дошёл до жизни такой

Создание архитектуры: работа с iOS Coordinator pattern

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

(Иллюстрация)

Каждая команда рано или поздно начинает думать о внедрении собственных архитектурных подходов, и немало было об это копий сломано. Вот и мы в Umbrella IT всегда хотели работать с гибкими инструментами, чтобы формирование архитектуры не было чем-то болезненным, и проблемы навигации, mock-файлов, изолированности и тестирования перестали быть чем-то страшным, чем-то таким, что рано или поздно нависает над разросшимся проектом. К счастью, речь не идет о новой «эксклюзивной» архитектуре с вычурным названием-аббревиатурой. Надо признать, что существующие на данный момент популярные архитектуры (MVP, MVVM, VIPER, Clean-swift) справляются со своими задачами, и сложности может вызвать лишь неправильный выбор и неправильное использование того или иного подхода. Однако и в рамках принятой архитектуры можно использовать различные паттерны, что позволит добиться тех самых, почти мифических показателей: гибкость, изолированность, тестируемость, переиспользование.
Читать дальше →

MVI в iOS-приложении

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

Вы скорее всего знаете, как это бывает: пишешь код, пишешь, а в итоге получаешь настолько большой модуль, что полностью теряешь над ним контроль. И всё это добро изменяется со страшным скрипом, расширяется медленно и совсем не покрывается тестами. Ровно это с нами и произошло.

Меня зовут Саша, я iOS-разработчик в hh.ru. В сегодняшней статьей расскажу, как мы ушли от этого монструозного ужаса и что у нас в итоге получилось. Спойлер, мы использовали стейт-машину.

Читать далее
2

Информация

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

Специализация

Десктоп разработчик, Разработчик мобильных приложений
Средний
Swift
Разработка под iOS
Objective-С
Xcode
Autolayout
iOS Human Interface Guidelines
UIKit
Storyboard
GCD
Клиент-серверные приложения