4 заметки с тегом

умный дом

«Умный» дом. Первое препятствие

Мне всегда казалось, что автоматизированный процесс съема показаний и оплаты электроэнергии (или потребления воды, неважно) — это хорошо. Несколько лет назад, когда все мои мысли об «умном» доме еще лежали в плоскости теории, я об этом сильно не задумывался. Поэтому, когда пришла пора меня счетчик электроэнергии, купил самый дешевый. Чуть позже, когда теория стала наконец-то перерастать в практику, заинтересовался смогу ли я снимать показания со счетчика и отправлять их в автоматическом режиме. Для начала я связался с заводом-изготовителем. Просто для подтверждения найденной мной в интернете информации.

Здравствуйте!
Ситуация следующая. Не так давно был установлен счетчик СЭО-1.20Д.402. Имеется потребность удаленно снимать с него показания. Просмотрев информацию на сайте, нашел, что счетчик имеет импульсный выход и для его подключения можно использовать, например, ПИ-1 или ПИ-2. В связи с этим возникают следующие вопросы.
1. Не смог найти информации о том, к каким контактам электросчетчика осуществляется подключение линии.
2. Достаточно ли для подключения обычной витой пары категории 5? Или лучше использовать какой-либо другой провод?

И вот, что они мне ответили.

Счетчик СЭО-1.20Д.402 имеет один телеметрический числоимпульсный выход, а не нужный Вам интерфейс RS-485, к которому можно подключить ПИ-1 или ПИ-2. Такой выход можно подключить только к специализированному УСПД.

Понятно, информация подтверждается. Уже неплохо. На очереди «КрасноярскЭнергоСбыт», главная энергосбытовая компания края. Задаю им вопрос через личный кабинет.

Здравствуйте! В 2013 году был установлен электросчетчик СЭО-1.20Д.402, который имеет импульсный выход и, соответственно, возможность удаленного снятия показаний. Хотелось бы полностью автоматизировать процесс передачи показаний и оплаты, но для этого необходимо осуществить подключение к его импульсному выходу, который находится за опломбированной крышкой. Могу ли я осуществить подключение к данному выходу? Конечно, я понимаю, что придется, как минимум, пригласить работника, который затем, после окончания работ, опломбирует счетчик. Могу ли я использовать самодельное устройство для съема показаний или требуется какое-то специальное сертифицированное устройство, внесенное в реестр? Аналогично интересует вопрос по подключению подобных устройств ПОСЛЕ счетчика. Насколько я понял, на текущий момент нет никаких законодательных актов, которые бы запрещали подключения подобных устройств.

Отвечать они почему-то предпочитают в телефонном режиме. Наверное, потому что в итоге можно откреститься от своих слов. Вкратце их ответ был таков:

Мы не знаем. Но с 1 июля 2020 года мы, наверное, будем подключать автоматизированную систему коммерческого учета показаний (АСКУЭ).

Всё. Всё, блядь!!! Главная энергосбытовая компания края не смогла ответить на мой вопрос и «предложила» свои услуги в следующем году. Которые она, возможно (!!!), будет предоставлять. Просто потому, что они пока что ничего не знают.
Если заупрямиться и пытаться добиться своего, то лично я вижу несколько выходов.

  1. Просто не платить за электричество в течение двух-трех месяцев. Обычно этого хватает, чтобы пришел контролер (который, вроде как, живет неподалеку от меня), снял пломбу и отключил мне свет. Прецеденты уже были (денег просто не было от слова «совсем»), поэтому я знаю, что пломбу обратно они в таких случаях не ставят. Пломбируют только тогда, когда заново подключают электроэнергию. То есть после оплаты задолженности.
  2. Тупо разбить счетчик и заменить его на новый с возможностью удаленного съема показаний.
  3. Через знакомых найти электрика, который согласится выполнить работу по подключению оборудования к импульсному выходу и сможет опломбировать электросчетчик.

Есть еще несколько вариантов, но они пока что не оформились в голове целиком, поэтому я их не описываю.

Добавляем камеру в Domoticz

Небольшая правка

Была куча нюансов в работе камер с системой «умного дома». Например, не отображались скриншоты и «живое» видео при нажатии на соответствующие пункты. Сегодня удалось это победить. Как я уже ранее писал, камеры у меня китайские, от Xiong Mai. Ну вот так получилось...
Чуть отступлю от темы. На днях разобрал обе камеры и припаял к ним выходы для внешних микрофонов. Нашелся штекер чуть больше размером, но, после доработки напильником, он четко встал на положенное место (обе камеры были с нужными разъемами, но не выведенными наружу). В итоге вывел три контакта: питание, землю и контакт микрофона. Остальные пока что остались в камере, при желании их можно за короткое время тоже начать использовать. Например, для подключения аудиоколонок. Микрофоны оказались ОЧЕНЬ чувствительными, спокойно ловят звук открывающейся двери на первом этаже. Или звук отъезжающего с другой стороны дома автомобиля. Один «минус» — звук как из бочки, глухой. Я бы подумал, что это просто неисправный микрофон, но он такой не один. Очень надеюсь побороть этот дефект.
Но вернемся к нашим баранам. Поиск в интернете навёл меня на одну страницу, с которой я перепробовал несколько ссылок. Одна из них оказалась вполне себе рабочей, но недокументированной. Выглядела она таким образом:

http://192.168.1.15/webcapture.jpg?command=snap&channel=1?

Используя эту ссылку (IP камеры, конечно, нужно изменить на нужный), можно получить текущий скриншот с камеры.
Вторая часть, которая дала мне понимание почему Domoticz так плохо работает с камерами, нашлась на официальном форуме. Суть состоит в том, что «домик» не берет поток с камер как таковой, а использует систему ежесекундных скриншотов. Именно поэтому для так важен адрес их получения. Да, изображение получается дерганым, но с этим, похоже, ничего не сделать. По крайней мере, пока что.
Еще один «минус», который всплыл после этой перенастройки — мобильная версия Domoticz плевать хотела на них и просто не отображает видеопоток. Также, если настроить отправку скриншотов при обнаружении движения, они отправляются только на электронную почту. В тот же Telegram отправки нет. Почему?

Влажность в квартире

Собрал мини-метеостанцию для зала (планирую установить подобные во все комнаты квартиры), подключил её к Domoticz. Получилось отлично — сама станция размером со спичечный коробок, нужно только подобрать ей корпус.
Показания поначалу ввели в ступор: давление около 1000 и влажность около 20%. Залез в документацию, оказалось что давление датчик измеряет в гПа. Пришлось в прошивке ESP8266 создавать еще один виртуальный датчик и пересчитывать для него показания в мм ртутного столба. Всё таки в России используется такая единица измерений. А вот с влажностью непонятно до сих пор. Текущие показания — 17%, хотя норма составляет 40-50%. Поначалу думал, что что-то с датчиком. Распаковал новый, установил — картина не изменилась. Сейчас на работе вспомнил об этом, подключил AM2302 — тоже около 18%. Хоть на улицу выноси! Пришлось пойти на сайт narodmon.ru. Там картина поинтересней — показания колеблются от 14% до 24%. Хм, ладно, допустим, что все используют одно и то же оборудование. В таком случае нужно обратиться к более официальному источнику. Но «официалы» показали примерно ту же картину — от 20% до 30%.
В общем, пока что можно успокоиться и провести несколько экспериментов по её повышению, вроде кипящего рядом чайника.

Показания барометра
Показания барометра
Виртуальный датчик
Виртуальный датчик

«Умный» дом

Добавляем камеру в Domoticz

Во-первых, почему Domoticz? Мне он показался намного более простым по сравнению с Majordomo и другими системами. Во-вторых, этот пакет присутствует в репозитории на роутере (с установленным OpenWrt). С одной стороны ставить такую программу я предпочел бы на сервер, с другой — именно роутер является точкой, соединяющей все сетевые устройства в квартире. Поэтому пусть пока будет так.
Так как камера у меня — «чистый» китаец, то просто так добавить ее в систему не получится. По крайней мере, мне это не удалось. Пришлось идти обходным путем.
Строка подключения к камере выглядит примерно так:

rtsp://192.168.1.12:554/user=admin&password=&channel=1&stream=0.sdp?real_stream

Открыв этот адрес, например, через плеер VLC, можно увидеть основной поток камеры. В принципе, строку можно чуть-чуть сократить, убрав всё после sdp. В любом случае, Domoticz такое не понимает. Поэтому нам понадобится пакет под названием motion. У меня он уже установлен и отправляет мне в Telegram фото событий. Камера у меня пока что одна, но в будущем планируется еще несколько, поэтому все настройки, отличающиеся от настроек по умолчанию, я вынес в отдельный файл, который подключил в motion.conf. Там нам понадобятся несколько параметров, перечисленных ниже.

netcam_url rtsp://192.168.1.12:554/user=admin&password=&channel=1&stream=1.sdp?real_stream
netcam_keepalive on
width 704
height 576
stream_port 8091
on_event_start /root/motion/actions/on_event_start
on_event_end /root/motion/actions/on_event_end

Первая строка — подключение к самой камере на вторичный поток. Вторая — поддержка подключения, можно пропустить. Третья и четвертая — размеры кадра вторичного потока, у меня они такие. Можно выбрать, конечно, и основной, но это повлечет за собой увеличение трафика в сети и времени подключения. Самая «интересная» строка — следующая. Она указывает motion через какой порт выводить картинку. И последние две строки — пути к скриптам, которые будут выполняться при возникновении и завершении события. У скриптов должны быть установлены права на выполнение.
Запускаем motion и первым делом проверяем наличие потока, просто открыв ссылку в браузере. Например, motion у нас будет установлен на компьютер с адресом 192.168.1.10. Тогда в браузере набираем:

http://192.168.1.10:8091/

Вы должны увидеть видеопоток с камеры. Если его нет — придется разбираться что не так. Чаще всего просто не открыт указанный порт на компьютере. Если картинка есть — идем дальше.
Открываем Domoticz и пробуем добавить камеру.

Нужное меню в Domoticz Добавляем камеру в Domoticz
Добавляем камеру в Domoticz

Протокол оставляем HTTP, в качестве IP-адреса указываем адрес компьютера, куда установили motion. Порт указываем тот же самый, что и в файле настроек motion. Имя пользователя и пароль заполняем в том случае, если для просмотра камеры нужна авторизация. Ну и в ImageURL забиваем полный путь к потоку, тот же самый, который вбивали в браузере при проверке потока камеры. Нажимаем «Тест соединения» и надеемся, что картинка появится. Обычно на это нужно до 10 секунд. Если картинки нет, значит что-то пошло не так и придется всё проверять. В моем случае картинка нормально появляется когда я работаю в домашней сети. Если я запускаю Domoticz с рабочего компьютера, то она не показывается.
Нажимаем кнопку «Add», чтобы добавить камеру в список. И тут тоже есть нюанс. В строке с камерой тоже есть предварительный просмотр, но в моем случае он не работает. Также не работают кнопки «Сделать снимок» и «Stream video». Но это не важно, камера работает.
Не зря же мы это все делали? Пусть теперь камера работает датчиком движения — нечего ей просто так висеть на потолке. Например, включает освещение в коридоре, когда обнаружит движение.
В качестве выключателя с удаленным доступом у меня стоит простой Sonoff Basic, подключенный к моей сети через WiFi. Идем в настройки Domoticz, выбираем «Оборудование». В выпадающем списке ищем пункт «Dummy (Does nothing, use for virtual switches only)», называем его как-нибудь и нажимаем кнопку добавить. Теперь в списке чуть выше нажимаем кнопку «Создать виртуальные датчики», вводим название выключателя (придумываем сами) и указываем тип «Переключатель». Жмем «ОК». Всё, мы создали виртуальное устройство, которое будет управлять освещением в коридоре. Остается теперь соединить между собой камеру и выключатель.
Вспоминаем, что у нас есть два скрипта от motion, которые выполняются при возникновении и завершении события, в данном случае — в коридоре. Добавляем в каждый из скриптов по одной строке. В  /root/motion/actions/on_event_start добавляем

/usr/bin/curl -s "http://api_username:api_password@domoticz_server:domoticz_port/json.htm?
type=command&param=switchlight&idx=your_ID&switchcmd=On"

а в  /root/motion/actions/on_event_end такую строку:

/usr/bin/curl -s "http://api_username:api_password@domoticz_server:domoticz_port/json.htm?
type=command&param=switchlight&idx=your_ID&switchcmd=Off"

Теперь разберем, что это за бред.
curl — программа, позволяющая выполнить те или иные действия по указанному адресу, используя только командную строку.
api_username и api_password — имя пользователя и пароль, которые вы установили для доступа к Domoticz. Если не устанавливали, то эту часть «api_username:api_password@» можно не вводить.
domoticz_server и domoticz_port — IP-адрес и порт компьютера, где у вас установлен Domoticz. В качестве порта нужно указать стандартный 8080, если, конечно, вы не делали перенаправления портов.
idx=your_ID — в качестве your_ID нужно указать значение выключателя из колонки Idx таблицы устройств. У меня это значение равно «1».

Таблица устройств
Таблица устройств

Ну и последний параметр switchcmd может принимать значения On или Off, в зависимости от того, хотите ли вы включить освещение или выключить соответственно. Подозреваю, что можно также указать «1» и «0» соответственно, но, если честно, лень проверять :-)
Должен также отметить, что в Sonoff установлена не стандартная прошивка с привязкой к китайскому облаку (и возможностью потерять доступ к своему выключателю из-за рвения Роскомнадзора заблокировать всех и вся), а Tasmota. Возможностей у нее немного, но лично мне хватит с избытком. Не будет же выключатель вещать радио, когда мне скучно? :-)
Теперь почему мы используем такой сложный способ включения/выключения? Просто при таком способе состояние выключателя будет корректно отображаться в Domoticz в случае возникновения или завершения движения в коридоре.