Как стать автором
Обновить
8
0
Дмитрий @Vallefor

Программист

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

Долго стоял такой принцип работы света в ванне/туалете и он ВСЕГДА будет накладывать неудобства. Вот несколько сценариев, когда это всех начинает бесить:

  1. Кто-то решил принять ванну с открытой дверью, так как с закрытой становится душно

  2. Лоток кота стоит в туалете и дверь там всегда открыта.

  3. Ребенку 3+ лет вообще пофиг на правила открытия/закрытия дверей :)

  4. Уборка в таких помещениях

  5. Чистка зубов (да, как оказалось даже дорогие датчики с минимальным blind-time который смотрит на тебя в упор - не видят движений, пока ты чистишь зубы 2 минуты электро-щеткой)

Уже в 2020-ом году на момент ремонта был обязан быть запланирован датчик присутствия (потолочный для "темных комнат" самое оно).

Плюсы датчика присутствия (а особенно тех, что на 24Гхз):

  1. Можно установить минимальные задержки на выключение света

  2. Датчик отработает, даже если что-то пошло не по плану (кот не закрыл дверь за собой или ребенок пооткрывал/позакрывал все).

  3. Такой же датчик в прихожей это прям тоже маст-хэв

  4. Скрипт автоматизации становится максимально простым

У меня Supervised. Чтоб /etc/hosts в нем менять я создал shell_command интеграцию

shell_command:
  recover_home_connect_proxy: "echo '[ip-вашей-vps] api.home-connect.com' >> /etc/hosts"

И его можно запускать на старт HA.

Смог настроить интеграцию, в обход февральских ограничений. Подключил посудомоечную машинку к приложению как указано в статье (vpn, другой регион и т.д.). Потом решил настроить haproxy на сервере, который находится в стране, где это все работает.

Покупаем любой VPS в доступной стране (у меня уже был Hetzner в Финляндии), устанавливаем haproxy. На самом деле покупать для этих целей VPS - такое себе, но допустим, если у вас есть Home Assistant - то есть и VPS.

Добавляем в конфиг (в Ubuntu он находится в /etc/haproxy/haproxy.cfg) эти строки:

frontend https-in
    mode tcp
    bind *:443
    tcp-request inspect-delay 5s
    tcp-request content accept if { req_ssl_hello_type 1 }
    acl is-homeconnect req.ssl_sni -i api.home-connect.com
    acl is-singlekey req.ssl_sni -i singlekey-id.com
    acl is-dev-hc req.ssl_sni -i developer.home-connect.com

    use_backend bk-homeconnect if is-homeconnect
    use_backend bk-singlekey if is-singlekey
    use_backend bk-dev-hc if is-dev-hc

backend bk-homeconnect
    mode tcp
    server api-homeconnect 3.77.174.102:443 check

backend bk-singlekey
    mode tcp
    server singlekey 20.101.240.212:443 check

backend bk-dev-hc
    mode tcp
    server dev-hc 3.125.176.154:443 check

После чего, вам нужно в hosts места, где крутится Home Assistant Core прописать:

[ip-вашей-vps] api.home-connect.com

Ну и на своем компе, чтоб настроить интеграцию:

[ip-вашей-vps] api.home-connect.com singlekey-id.com developer.home-connect.com

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

Раньше перед тем как диск выкинуть, сверлил в нем несколько дырок. Но на последних не поленился и достал блины с данными.

Ну с тех пор Silicon Labs купил Z-Wave. После чего они наобещали золотые горы в виде чипа 7-го поколения (где улучшили так все круто, что девайсы на батарейках будут работать по 10 лет, 1 чип будет поддерживать все частоты сразу) + вроде открыли протокол. Но что-то никаких новых устройств на новом чипе я пока не видел (но у них там сертификация дорогая, наверное это замедляет весь процесс).

По крайней мере подключите RPi4 по проводу, если возможно. На самом деле NUC или аналог будет стоить как примерно как Vera Plus, только возможностей будет на много больше. Так что при полноценном переезде с z-wave покупка чего-то производительнее RPi4 будет неизбежна.
В итоге в качестве базы использую Home Assistant — он очень крут, но придется разбираться. Много настраивается через yaml (но это только в начале кажется неудобным). Не советую ставить на Raspberry, лучше сразу купить что-то типа Intel NUC (есть куча аналогов, в том числе на АМД).
У Home Assistant есть интеграция с Vera — можно сначала интегрировать, перевсти все в HASS и потихоньку избавляться от нее.

Все выключатели, димеры и контроллеры штор (у меня мотор от штор старый, сейчас советовал бы Xiaomi) от shelly.cloud. Советую к димерам сразу купить кнопочные (возвратные) выключатели, с обычными они ведут себя странно и иногда самопроизвольно включаются. Для Shelly использую плагин для HA — ShellyForHass (но с mqtt они тоже хорошо работают + есть скрипт для автоматического добавления).

И еще, если переходить на shelly — то роутер должен быть хорошим. А если у вас дом или участок большой, то возможно придется делать сеть из нескольких точек. Суепр-крутое решение это конечно unifi. Но, на мой взгляд, хватит и Кинетиков *_*

Еще есть из выключателей есть:
парочка выключателей на ZigBee от Moes Home — с ними все ок.
3 штуки Sonoff mini — перепрошиты на стандартную прошивку от esphome (имхо, очень кошерный и стабильный вариант) — работали без нареканий где-то год, заменил на Shelly для стандартизации.

Сейчас смотрю на термостаты, на батарею купил 1 для теста www.zigbee2mqtt.io/devices/TS0601_thermostat.html — доволен больше чем любым из Z-wave, но у него очень странный алгоритм открытия/закрытия, от аккумуляторов плохо работает и придется перепрошивать по воздуху после покупки (а это иногда не с первого раза происходит).

Для пола купил:
www.zigbee2mqtt.io/devices/BHT-002-GCLZB.html
Тоже не скажу, что доволен. В общем-то все работает, есть 2 проблемы:
1. Он раз в какое-то время шлет в сети какой-то флуд, типа 30 раз сообщает какой у него linkquality — не знаю, что случится, если таких поставить штук 5 *_*
2. Иногда зависает (помогает только отключение питания). Пытаюсь понять почему зависает и кажется это из-за того, что если он теряет связь с координатором (например вы перезагружаете девайс с координатором), то может такое произойти.

Если пойдете по пути zigbee2mqtt то советую сразу собрать 1-2 вот таких роутера:
www.zigbee2mqtt.io/how_tos/how_to_create_a_cc2530_router.html

В качестве сенсоров, кнопочек и т.д. почти все от xiaomi (датчики движения модифицирую, чтоб срабатывали раз в 10 секунд) — все остальное работает и так. Если нет возможности модифицировать, то альтернативу нашел только Hue Motion Sensor — но он дорогой :( А если таймаут не важен, то на ZigBee полно сенсоров с таймаутом 1-2 минуты и ценой в 700-800 рублей. Кстати, как оказалось, в сети ZigBee с xiaomi могут появиться проблемы, они как-то странно работают с не-xiaomi роутерами, но с diy-роутерами на cc2530 работают хорошо

В качестве zigbee-стика купил www.tindie.com/products/slaesh/cc2652-zigbee-coordinator-or-openthread-router — качество сигнала очень улучшилось (но ждал заказа полтора месяца).

В целом, скажу, что zigbee2mqtt — это эксперимент. Придется часть устройств покупать для теста, прежде чем заменять все. Но все равно не жалею, что перешел на него.
Почти все Z-wave устройства продал за 2000-2500.
Ну, то что Xiaomi не репортит «движения нет» — это уже не такая беда. Это все можно таймерами в Home Assistant победить. От Z-Wave меня в последнее время вообще воротит, У меня конечно все устройства не Z-Wave+ и вообще дикий Legacy (самые первые версии от Fibaro и zwave.me) и уверен, что сейчас там лучше, но цена там явно не лечше.

Да, с внутренними модулями под выключатели у Zigbee не очень. Но по крайней мере начали появляться выключатели Tuya и Tuya-совместимые + всегда можно попробовать Shelly или Sonoff.
Хмм… У меня сейчас все Shelly на динамических ИП-шниках, с DHCP и с авто-каналом очень стабильно работают. Даже парочка, где, где сигнал показывает -90.
Роутер — ASUS RT-AC87U.
У Shelly и правда дело может быть в прошивке. Но, по крайней мере, на них можно Тасмоту накатить.
Из Sonoff у меня есть 3 Sonoff Mini — там по крайней мере паять ничего не нужно. Тоже работают без проблем. У Shelly понравилось то, что они практически из коробки работают с HA. У меня с Shelly началось все интересно — купил несколько Shelly1, Shelly25, Shelly Plug, Shelly Dimmer. Все начало работать без проблем прямо из коробки, а все Shelly 25 постоянно уходили оффлайн. Недели 2 мучился с ними, решил перепрошить на Tasmota. Перепрошил 3 из 4 (у 4-ой сломал пины). Все 3 больше не уходили оффлайн. Но потом вышла новая прошивка на последнюю Shelly 25 и она тоже перестала оффлайн уходить. После этого мне очень стремно нажимать «обновить» на них :)

По замку сейчас смотрю на Danalock v3, но там тоже с установкой проблемы (не каждая личина подойдет, а универсальные личины стремные). Aqara тоже нравится, но то, что его нужно будет врезать в дверь — напрягает.

С термостатами на батарею у меня сейчас почти никак. Изначально были Eurotronic Stella Z от Z-Wave Me. Но эти штуки не работали корректно ни дня (то начинали на ровном месте открывать/закрывать, то игнорили вообще все команды от хаба да и батарейки они выжирает очень резво). Сейчас в одной комнате стоят сервоприводы Oventrop 230 + shelly25.

HA у меня на Raspberry стоял только на время тестирования, как только понял, что это то, что мне нужно — поставил его на сервак, где крутится много всего сейчас.

А каким образом вы открываете домофон?
Вообще строю умный дом уже лет 8-9 и накопилось много разных знаний. Изначально начал строить все на Fibaro HC2 и Z-Wave (в далекие времена контроллер стоил 25к и устройства по 2.5к). В итоге полностью избавляюсь от Z-Wave (надоело инвестировать в супер-закрытую систему, где в стоимости устройств, похоже, 80% это сертификация, где куча разных частот, агррр… я стал просто ненавидеть z-wave).

Потихоньку перестраиваю все с использованием:

Home Assistant — открытый софт, выступает в качестве контроллера. У меня он стоит на бескулерной системе на Ryzen 2400G (хоть его и ставят на Raspberry Pi, я бы рекомендовал что-то типа NUC, ZBox, Brix и т.д.). У HA очень много интеграций с разными устройствами, даже моими старыми LG-телеками умеет управлять.

Zigbee2Mqtt + CC2531 стик — в какой-то момент это было большим открытием для меня. Сейчас поддерживает 741 устройство от 133 вендоров. У некоторых вендоров есть нюансы, типа CC2531 должен работать на определенном канале, но об этом написано и ошибиться тяжело.

Zwave2Mqtt + Z-Wave.Me стик. Эту часть системы я ненавижу :) Но там все еще крутится часть устройств. Zwave2Mqtt очень крута, но есть разные баги особенно со старыми устройствами. Например мой Fibaro Roller Shutter определяется как диммер.

Из конечных устройств:
Внутренние модули для света (выключатели и диммеры) — все от Shelly. Это Wi-Fi устройства, если их планируется много, роутер ваш должен быть хорошим.

Все Shelly устройства стоят очень вменяемо (даже не смотря на курс), скажем одинарная релейка стоит 9 евро + доставка. Устройства на батарейках от них не рекомендую.

Датчики движения:
Fibaro Motion Sensor — потихоньку избавляюсь от них в пользу Xiaomi Motion Sensor. Fibaro конечно крут тем, что есть много настроек (в том числе чувствительности и Blind Time). Стоит дорого и это Z-wave.
Xiaomi Motion Sensor — если модифицировать (нужно разобрать и паяльником соединить 2 контакта) то становится очень крутым датчиком движения. Blind Time становится 10 секунд. Чувствительность не меняется.
Philips HUE Motion — куплен 1 для теста, Blind Time 10 секунд, настраиваемая чувствительность, стоит дешевле Fibaro, но дороже Xiaomi. Если не хочется возиться с Xiaomi-сенсорами, то это один из самых крутых датчиков движения на ZigBee.
Konke Motion Sensor — куплен 1 для теста, blind time 2-3 минуты (что прям вообще не приемлемо).

Датчики на двери окна:
Fibaro Door Window — дорогой, как и все на Z-Wave, скорость срабатывания время от времени прям барахлит. Еще именно эти датчики время от времени покидают сеть и приходится их подключать заново, а так как в z-wave всегда при этом меняется ID — это та еще морока.
Aqara Door Window — срабатывает супер-быстро, дешевый. Проблем за пол года никаких. Было бы круто, если бы были цветовые решения, чтоб они сильно не выделялись.

Датчики протечки:
Fibaro Flood — очень нравится устройство его ножек, за счет чего он очень чувствительный, но это Z-wave стоит дорого. Из плюсов — есть звуковой сигнал и датчик температуры. Один после протечки умер, что для датчика протечки неприемлемо.
Aqara Water Leak — дешевый, срабатывает хорошо и быстро. Ножки у него приподняты на 0.5мм, из-за чего он менее-чувствительный, но это можно модифицировать. Из минусов — отсутствие звуковых сигналов.

Прочие датчики:
Aqara Temperature and Humidity (тот, что квадратный) — дешевые, работают исправно.
MiJia Light Intensity — отдельный датчик освещенности. На мой взгляд, работает на много лучше чем те, что встроены в датчики движения.

Всякие кнопки и пульты:
Aqara smart home — прикольная штука, 1 для теста рекомендовал бы взять :)
Xiaomi Wireless Switch — круглая версия кнопки. Из плюсов, вместе с Zigbee2Mqtt можно регистрировать 1, 2, 3, много нажатий + есть длинное нажатие. Но из-за своего устройства иногда случайно нажимается котами и сборка нравится меньше чем кнопки от Aqara.
Aqara Wireless Switch — нравится своим исполнением, но в первой версии у нее есть только 1 нажатие + длинное нажатие. Сейчас заказал вторую версию с гироскопом внутри.
Fibaro Keyfob — при всей моей ненависти к Z-wave, это устройство мне очень нравится. С Zwave2Mqtt работает без проблем. У ZigBee вообще как-то все очень грустно с подобными брелками.

Прочее:
Клещи токоизмерительные Philio — для мониторинга потребления электричества на z-wave, хочу перейти на Shelly.
Для определения присутствия дома — BLE брелки на ключах, определение подключенных телефонов на роутере, сканер bluetooth.
Шаровые краны FAR + Shelly1 для перекрытия воды.
Замок Vision Security Door Lock with Handle — Z-Wave замок, я его ненавижу, работает крайне плохо (все плохо, долго не поддерживался почти никакими контроллерами, отзывчивости плохая, иногда не репортит свое состояние, иногда заедает на ровном месте, может сожрать полные аккумуляторы за месяц (возможно из-за заедания)), стоит он на общей входной двери.
Шторы Glydea Somfy (ставил 8 лет назад, сейчас бы ставил Xiaomi), управляются через Shelly 2.5. За 6 лет 1 мотор сломался (в редукторе разлетелась шестеренка) — не вижу смысла его чинить
Google Home Mini — Google официально не поддерживает русский язык. Раньше позволял через танцы с бубном сделать это, но после какого-то апдейта это пропало. Удобно ли это? Для некоторых команд — очень. Например, перед сном, можно сказать «good night» и колонка запустит нужные скрипты, отключит свет, комп и т.д. Можно сказать «включи [название сериала] на netflix» — тоже все поймет и включит с того момента, где закончили просмотр. Включать и отключать свет голосом — не удобно.

Стабильно ли это все работает? Зависит от комбинации. Мое мнение:
Home Assistant + zigbee2mqtt + Shelly — очень стабильно
Home Assistant + zwave2mqtt — средне, так-как zwave2mqtt построен на openzwave (а это реверс инжиниринг протокола z-wave)
Fibaro HC2 (и весь Z-Wave на нем) + Home Assistant (для сцен) — стабильно.
Все сцены на HC2 — средне, если много сцен, будут постоянные фризы системы и странные глюки. Но вообще, Home Assistant дает гораздо больше возможностей.

ВК постоянно рандомно вываливает ошибки, даже при банальной авторизации через него. Это прям каким-то стандартом стало у них.
Вот да, проблему с кешем тоже обнаружил.
Но когда я сравнил нагрузку на проц (через apache benchmark) с включенным pagespeed и выключенным, то прям как-то призадумался.
Я еще тогда экспериментировал с Google PageSpeed Insights и пытался понять, на сколько вообще возможно получить там 100 в скорости для мобил. Самое интересное, что даже на выделенном сервере, с одним сайтом, который в разработке, Google PageSpeed Insights часто ругался на то, что время ответа больше 0.2с. Кстати, у вас такая же проблема иногда появляется.

100 баллов легкой кровью так и не получилось получить из-за ошибки:
Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы
+ ошибок на малое время кеширование сторонних скриптов (яндекс метрика, фейсбук и т.д.)

Не то, что бы я считал Google PageSpeed Insights эталонным измерителем производительности.
Чем закончились эксперименты с ngx_pagespeed?
Да, в конце добавить:
&& service nginx reload
или
&& systemctl reload nginx

Если есть еще какие-то сервисы, которые используют сертификат (я, например, помнится, забыл про вебсокеты на nodejs), то их тоже надо релоуднуть.
О, не знал, про хуки, спасибо.
Останавливать и стартовать слишком жестко. Достаточно будет reload.
Кстати, openssl 1.0.2 можно было тоже из debian-backports установить.
И еще вопрос. А certbot теперь делает service nginx reload, после обновления сертификата? А то через 3 месяца может ждать сюрприз. 100% раньше не делал и в кроне приходилось дописывать эту строчку.
И правда, в «лучших» традициях PHP, создал путаницу с порядком аргументов.

Так как данный модуль уже в нескольких наших проектах используется, то при обновлении, обратную совместимость буду тянуть. К этому в какой-то мере приучила разработка CMS, чтоб обновление не превращалось в ад.
Там скорее везде должно быть DOCUMENT_ROOT, просто у меня обычно есть константа и использую ее.
Интересно… о QueryMultilineFontMetrics нет ни слова в PHP документации.
Спасибо!

Всегда были проблемы с придумыванием названий. Хотя последний мой шедевр в названиях — DynamicBlender (объект, который вытаскивает данные из динамического содержимого в CMSке).

Да, в большом количестве параметров у методов тоже вижу проблему. Но массивы не нравится использовать для параметров, так как спустя месяц-два — забываются ключи и приходится переходить внутрь методов, чтоб посмотреть, что и как назвал.
Хочу позже сделать так, чтоб можно было сделать цепочку: ->setText("...")->setTextColor("...")->setTextPosition("...") и т.д. В статье уже немного улучшенная версия, изначально нельзя было ставить несколько надписей и все было в одном объекте.
На setLogo тоже есть планы.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность