Копытов Иван

Заметки любителя экспериментов

Сканирование по сети с Kyocera m2235dn

В продолжение к предыдущему посту.
Около месяца назад купил точно такое же МФУ. Получил прямо перед отпуском, успел установить и немного протестировать. Поначалу внимания не обратил, задумался об этом, уже отдыхая в другом городе. А задумался о том, что один МФУ, купленным годом ранее, у меня не получилось настроить на сканирование по сети, а с этим все прошло гладко. Сканирует и в «семерке», и в «десятке». Со стекла или из автоподатчика — все равно. Все просто работает. И не нужно ничего «изобретать» типа адресной книги (тоже нормально работает, кстати). То ли прошивка поменялась у аппарата, то ли наконец-то производитель задумался об этом и обновил ПО — не знаю. Но интерес к этому есть, планирую на днях собрать информацию и провести несколько тестов.

Постановление Пленума ВС РФ

Один товарищ скинул любопытный документ по вопросам, касающимся сбора и/или распространения информации о частной жизни лица, составляющих его личную или семейную тайну. И немножко о взаимоотношениях работодателей и работниках, находящихся в предпенсионном возрасте.
Постановление Пленума ВС РФ от 25 декабря 2018 года № 46.pdf

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

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

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

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

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

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

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

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

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

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

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

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

Немного юмора

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

* * * *
xxx: У нас тут YYY (билд инженера) сманили. Чел принципиально жил только в консоли и vim, диаграммы рисовал скриптами в dot, доки писал в wiki маркдауном, если что-либо требовало больше чем 1.5 минуты писал скрипт. Сидим разбираем его наследие.
xxx: Из прекрасного
xxx: smack-my-bitch-up.sh — шлет видимо его жене «Задержался на работе» и генерит отмазки из списка. Поставлено в cron, стреляет после 9 вечера если на рабочей станции висят интерактивные сессии по ssh с его логином.
xxx: kumar-mudak.sh — сканит почту, ищет письма от Кумара (заграничный ДБА с говорящей фамилией) с ключевыми словами (sorry, help и т. д.) откатывает упомянутую базу стейджинга на последний бэкап и отписывается типа не вопрос будь аккуратнее в следующий раз. Зело заколебал его Кумар вестимо.
xxx: badun.sh — поставлен на cron на определенные даты, шлет письма «плохо себя чувствую, поработаю из дома» опять же если к 8-45 утра не обнаружилось интерактивных сессий на рабочей станции.
xxx: И наконец первый приз: coffe-blyat.sh — ждет 17 сек (!!!) логинится по ssh в кофе-машину (епрст, мы и понятия не имели что она в сетке да и еще что на ней sshd поднят) и засылает туда какую-то абракадабру. Экспериментальным путем выяснили что ЭТО запускает процесс варения half-caf chai latte среднего размера, которое начинает выливаться в чашку как раз к тому моменту когда неспеша идущий человек добирается от его офиса до автомата.

* * * *
Вспомнилось как я был свидетелем, как когда-то в прошлом тысячелетии упоротые программисты в павильоне «Вычислительная Техника» на ВДНХ измывались над прототипом голосового синтезатора, и когда на словосочетании «Фрунзик Мкртчян» железка отчаянно захрипела, у всех присутствующих на лицах мелькнула довольная улыбка, прямо как у тех сибирских лесорубов победивших японскую пилу.

Проблема с мусором

Сдается мне — началось

Вчера вечером, выгуливая собаку, обратил внимание на рабочих, откатывающих мусорные ящики со своего места. Грохот стоял на весь двор. Тогда я не задумался куда они их перекатывают, а сегодня вопрос встал в полный рост.
Понадобилось мне выкинуть большой мешок мусора. Несу его к площадке, где всегда стояли баки, и вижу, что их там нет. Нет и «загончика» для строительного мусора. Но стоит какая-то табличка. Надеясь на то, что там будет хоть какая-то дополнительная информация о том, куда делись баки, подхожу ближе. Но, увы, там всего лишь предупреждение о том, что складирование мусора запрещено и что ведется видеонаблюдение. Ладно, черт с вами, с другой стороны дома тоже были баки. Обхожу дом и вижу, что два из трех баков стоят дном вверх, а третий же забит. Деваться некуда, закидываю свой мешок. Насколько я понял, баки с этого места тоже уберут. На минуту, если мне не изменяет память, в доме более 100 квартир. И мусор куда-то нужно девать.
Пока выгуливал собаку, в голову пришла мысль, что «простые» рабочие ЖКХ точно бы не смогли установить камеры видеонаблюдения и подключить их к какому-то центральному серверу. Оглядевшись, камер не заметил. Кроме одной, установленной кем-то из жильцов уже достаточно давно. Да и смотрит она на двор и мусорка явно не входит в её обзор.
Даже если предположить, что ЖКХ решило пернести мусорку ниже дома, через сквер, то... Тогда получается вообще бред. Просто потому, что та мусорка и так «обслуживает» несколько домов. А если еще присоединимся и мы, то там перманентно будет все завалено.
Что это? Ремонт площадки? Попытка сэкономить на вывозе мусора? Пора закупаться пивом, чипсами и буду продолжать наблюдение.

Как меня забанили на narodmon.ru

Негодования пост

Ничто, как говорится, не предвещало...
Не так давно переделал свою метеостанцию: использовал другую прошивку для ESP8266, переделал схему для более устойчивой работы модуля зимой — ранее он периодически отваливался от домашнего WiFi и не отправлял данные. Заодно немного переделал схему отправки данных: вместо того, чтобы напрямую отправлять их на сервер, данные сначала забирались системой Domoticz, а затем отправлялись на сервер narodmon. Метод отправки тоже изменился — теперь на HTTP-запрос GET.
В итоге, за три «нарушения» за последние несколько дней, на один из датчиков мне поставили «бан» на месяц. Почему? Потому, что Domoticz отдавал данные атмосферного давления, округленными до единицы, что привело к тому, что показания не менялись в течение нескольких часов. Администрация сайта посчитала это нарушением и исключила этот датчик из общедоступной карты. Да, я последние пару дней был занят оптимизацией скрипта отправки в связи с изменившимися обстоятельствами, и не обращал особого внимания на то, что творится с передаваемыми показаниями.
Конечно, меня эта ситуация немного опечалила. Как говорится, «не делай добро...» На мой взгляд, администрации стоило бы предоставить больше информации еще при первом возникновении ошибки. Иначе это выглядит так:

  1. Около показаний датчика появляется информация, что показания не менялись с такого-то времени. Сам датчик выделяется желтым цветом.
  2. Через сутки или больше появляется значок предупреждения с тем же текстом. Т. е. информативности никакой. Ну не меняются показания, и что? Такое может случиться, например, при возникновении неполадок с оборудованием. И, если я не успел исправить это очень быстро, то с карты они пропадают. Если я не заходил на сайт, то я вообще этого всего не увижу. А что? У меня данные отправляются, сервер отвечает, что принял их. А что на самом деле происходит — никто не ведает.
  3. Датчик «улетает» в приватные, т. е. не видимые никому, кроме владельца. Если попробовать заново выбрать пункт «публичная карта», чтобы вернуть его на место, то получаем еще одно «предупреждение». То есть не получаем — оно нигде не отображается, но вам оно засчитывается. Тишина на ровном месте. После третьего «предупреждения» вы наконец-то видите причину, почему датчик не появляется на карте — вас забанили. Опля! А раньше нельзя было сказать? Я бы более внимательно искал причину, а не считал исчезновение датчика с карты глюками сайта.
  4. Спустя еще полдня после «бана» я начинаю получать уведомления из программы, установленной на телефон. А вот это уже, на мой взгляд, издевательство. Могу повториться: а раньше нельзя было сказать? Нигде! Нигде об этом ничего не написано! Перерыл всю справку и нашел только одно более-менее подходящее предложение:
    «- Если показания датчика не передавались более 30 дней — он и его показания удаляются с сервера автоматически. При неактивности датчика более 3ч датчик он пропадает с карты.»

Хочется материться после всего этого. Изменения на сайте вносятся, но никто о них не оповещается. Мы же телепаты, мы и так все знаем.

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

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

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

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

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

Открытый почтовый релей

Внезапно обнаружил, что мой почтовый сервер стал полностью открытым. Если честно, то даже не помню когда вносил какие-то сколь значимые изменения в конфигурацию postfix. С какого перепуга произошло это событие — для меня пока что загадка. Единственное, что косвенно указывало на это — возросшая нагрузка на сервер. Но я «грешил» на другое. Команда mailq сегодня выдала очередь из более чем 100 тысяч сообщений на отправку. Пришлось убивать всю очередь, не искать же нормальные письма в такой куче. Изменил несколько параметров почтовика, вроде бы все более-менее пришло в норму, даже сервер стал отвечать побыстрей. Но тесты все равно выдают, что у меня открытый релей, поэтому завтра, если будет свободное время, придется сбрасывать конфигурацию postfix и dovecot на «заводскую» и настраивать всё заново. Благо, что есть рабочий корпоративный сервер и часть настроек можно перенести оттуда. Впрочем, настройка с нуля поможет освежить мою память в этом плане и, возможно, пересмотреть некоторые настройки безопасности.

Синхронизация данных с Nextcloud

Должен сказать, что до этого я предпочитал использовать другие программы для хранения данных, но постепенно отказался от них в пользу своего сервера. Если, например, носить данные только на флэшке, то достаточно велика вероятность повредить или совсем их утерять. А ручная синхронизация — это не для нас, она занимает время и можно банально забыть или не успеть её сделать и опять же потерять данные.
Итак, что мы будем синхронизировать? Пройдемся по списку.

  1. Конечно же, пароли. Это одна из самых важных частей нашей жизни.
  2. Файлы. Каждый день мы работаем с кучей файлов: документы, рисунки и прочее.
  3. Контакты. Очень обидно утерять нужный контакт.
  4. Закладки браузера. Казалось бы зачем? Но одно из главных правил системного администратора: бэкап, бэкап и еще 100 раз бэкап. Поэтому пусть будет.

По хорошему, в этот список еще бы включить заметки, но я пока что не нашел способа их синхронизации.
Пароли.
Для этого мы будем использовать известную программу KeePass (или любой из ее форков). Программа старая, проверенная, с открытым исходным кодом. Кому-то она может показаться некрасивой из-за своего интерфейса, но, по моему мнению, это только сохраняет ресурсы системы при работе с ней.
Где нам чаще всего нужны пароли? Во-первых, конечно, в браузере для входа на какой-то сайт. Во-вторых, на телефоне. Например, для входа на те же сайты, но на чужом компьютере или на самом телефоне. В-третьих, на компьютере. Тут вариантов применения множество.
Для начала нужно создать саму базу данных. Для этого на компьютере запускаем программу KeePass, создаем базу, настраиваем её и сохраняем в файл. Далее этот файл нам нужно перенести в облако Nextcloud. Ну тут вы уже сами :-) Для пущей безопасности создаем в облаке еще одного пользователя с произвольным именем и паролем и дадим ему доступ только к файлу паролей. Зачем это нужно я объясню чуть позже.
Браузер.
Так как я использую Firefox, то мне пригодится расширение под названием KeePass Tusk. Это расширение может работать с файлами, расположенными не только в Nextcloud, но и Google Drive, Dropbox, Onedrive, PCloud. В список возможностей так же входит открытие базы по ссылке общего доступа или через протокол WebDAV. Устанавливаем и настраиваем расширение по своему вкусу. Надо отметить, что за несколько месяцев использования у меня были проблемы с доступом по ссылке общего доступа («забывало», что доступ есть), но ни разу — через WebDAV. Но так как имя пользователя и пароль в таком случае хранятся на диске незашифрованными, то велика вероятность их компрометации. Именно поэтому я и создал отдельного пользователя Nextcloud с доступом только к одному файлу.
Телефон на Android.
Здесь я использую программу Keepass2Android. Из «плюсов» программы стоит отметить возможность разблокировки базы через отпечаток пальца, синхронизацию баз при открытии, автоматическое создание резервной копии и нормальный поиск.
Компьютер.
Так как у меня на домашнем компьютере стоит Linux, то я решил использовать KeepassXC. Но вы, при желании, можете использовать и «основную» версию Keepass, которая, начиная со второй версии, поддерживает Mono, что, в свою очередь позволяет запускать ее в Linux.
Файлы.
Ну тут проще всего использовать клиента Nextcloud для настольного компьютера. Что это дает? Во-первых, копию всех ваших файлов в облаке. В том числе и копию вашей базы с паролями. Во-вторых, согласитесь, что редактировать файлы лучше всего на компьютере, не заходя в облако.
Контакты.
На мой взгляд, одна из самых важных вещей. И вторая по сложности восстановления после паролей. Помнится очень давно я настраивал свой старый телефон на синхронизацию контактов (и еще чего-то, уже помню точно чего) с одним сервером. И в какой-то момент телефон начал «глючить» настолько, что мне пришлось сбросить его до заводских настроек. Дело это было на улице, поэтому сразу восстановить все данные у меня не получилось бы. Но я помнил адрес сервера, имя пользователя и пароль. Поэтому мне оставалось только вбить эти данные в настройки телефона и через несколько минут вся моя адресная книга была в телефоне. Это было очень приятное ощущение :-)
Где мы можем добавлять и редактировать контакты? Конечно, в телефоне. Но я не люблю этого делать там просто из-за некоторого неудобства редактирования. Поэтому я обычно записываю только основные данные (имя, фамилию и номер телефона), а остальное добавляю уже на компьютере.
Где обычно используются данные контактов? В телефоне — раз. Чтобы позвонить или написать смс. В почтовом клиенте — два. Чтобы отправить письмо по электронной почте. Про остальные способы общения пока умолчим.
Тут должен упомянуть, что помимо Nextcloud, у меня развернут свой Cal/CardDAV сервер на базе Baikal и упор сделан на синхронизацию с ним. Это позволяет мне синхронизировать контакты, заметки и задачи на любом телефоне, поддерживающем SyncML, а не только Android. На мой взгляд, это достаточно удобно.
Начнем с мобильного телефона. Для синхронизации контактов и задач используем приложения DAVx5 и Open Tasks. В них у меня зарегистрированы два сервера: Nextcloud и Baikal. Если также установить клиент для мобильного Nextcloud, то контакты будут автоматически копироваться в облако в отдельный скрытый каталог.
Для почтового клиента Thunderbird установлено расширение CardBook. И, наконец, установлен плагин CardDAV для веб-интерфейса Roundcube.
Закладки.
Для синхронизации данных между браузерами, установленными на разных компьютерах и телефонах, я изначально использовал учетную запись Mozilla. Но лишняя копия не помешает же? Тем более, что много места она не занимает. Поэтому устанавливаем расширение Floccus и настраиваем его в соответствии со своими предпочтениями. В Nextcloud нам понадобится приложение Bookmarks.

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

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

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

Новые ESP8266

Дней 10 назад полностью пришел мой заказ: 10 ESP8266 12E, 10 плат-адаптеров для них и 20 штук регуляторов напряжения HT7833 с нужной распиновкой. Первым делом, конечно, решил собрать пару штук. Регуляторы по размеру оказались чуть меньше, чем контакты под них на адаптере, но это полбеды. Чуть больше припоя — и все замечательно. Пайка ESP тоже проблем не вызвала. А вот включение этой сборки меня напрягло — регуляторы ощутимо «жарили». Пробовал другой источник питания — картина не менялась. Напряжение на входе было стабильно низким и его явно не хватало для запуска модуля. Вроде бы и проверял все на несколько раз, но все равно оставалось непонятным такое их поведение. Решил отложить пока в сторону, ибо были и другие задачи.

Сегодня, когда появилось свободное время, решил вернуться к этому вопросу. Смахнул с платы регулятор, впаял перемычку и... На мое удивление все заработало в штатном режиме. Питание не проверял. Взял еще один набор, собрал без HT7833, подал 3.3 вольта. Все работает. Хм... Вернулся к предыдущему, припаял новый HT7833, подал питание. Регулятор не грелся, ESP-ха приветственно мигнула индикатором WiFi, типа «привет, хозяин». Погоняв модуль несколько минут, единственным вариантом почему у меня они грелись в последний раз осталась переполюсовка. Может быть, меня тогда «перемкнуло»?

Запустил прошивку модуля. Тут во весь «рост» стала другая проблема. Оказалось, что «ноги» для адаптера имеют чуть меньший диаметр, чем нужно. Вследствие чего у меня наблюдался крайне нестабильный контакт. Но как-то обошел этот момент и удалось залить прошивку ESPEasy. Подключился к модулю, посмотрел информацию. Вроде бы все нормально. Но что-то не давало покоя... После прошивки третьей микросхемы и промотра информации о ней, понял — по документации в этих модулях 512 Кб памяти, а прошивка мне показывает, что реальный размер — 4 Мб. Да это же мне позволяет обновляться через OTA!!! Скачал более свежий релиз прошивки и пошел накатывать на все модули, которые успел спаять.

Модификация камеры

Как уже писал ранее, в коридоре у меня висит камера, записывающая все события, происходящие в нем. Но, как обычно, хочется же большего. Например, также записывать и звук. Но увы, такой функционал эта камера не предоставляет. Поискав камеры с записью звука в городе, немного взгрустнулось — такую цену за нее я отдать не готов. Как финансово, так и морально.
Попробовал отдельно подключить микрофон к аудиовходу регистратора — оказалось, что он работает только в «гибридном» режиме или в аналоговом. В режиме NVR — увы. Хотя чувствительность микрофона оказалась очень высокой — он слышал речь жены, когда она находилась в зале, через закрытую входную дверь. Мою речь он почему-то не слышал. Видимо, более низкие частоты не проходят через дверь. В итоге пришел к выводу, что микрофон нужно подключать непосредственно к камере.
Какое-то время спустя попытался поискать варианты подключения. И наткнулся на одно любопытное видео, где было показано как это сделать. Снимать установленную камеру и разбирать её мне не хотелось, поэтому решил купить еще одну такую же. Всё равно хотел расставить еще несколько по квартире.
Итак, сегодня забрал камеру, вернулся на рабочее место и разобрал её. По коду на наклейке нашел документацию. Оказалось, что это одна из 2.0M Hi3518EV200 Network Camera Module. Но в документации не оказалось распиновки заинтересовавших меня разъемов. На самой плате оказался еще один код, который и привел меня к нужной информации. Любопытно, что она оказалась на известном мне форуме и притом только там. Больше ни одна ссылка не пригодилась.
Изучая описание, пришлось воспользоваться переводчиком с китайского. И вот тут меня ожидал небольшой сюрприз. Дело в том, что по указанной выше ссылке, человек пытался подключить к камере хоть какой-то накопитель (USB-флэшку, SD-карту и т. п.), чтобы записывать видео на него. А я для себя обнаружил не только вход микрофона, но также и выход на динамики. Иными словами, при помощи одного разъема я могу организовать двухстороннюю связь через камеру, а при помощи второго — использовать ее как полноценный видеорегистратор.

Продление домена

Вчера утром пришло очередное напоминание об окончании срока регистрации домена. И, хотя до него оставалось еще около трех недель, решил не откладывать и продлить срок регистрации.
Для начала зашел на сайт «основного» регистратора, посмотрел цену — 899 рублей. В памяти всплыло, что где-то видел дешевле. Зашел на сайт партнерского регистратора, где первоначально регистрировал домен. И верно, цена в полтора раза ниже — 599 рублей. Деньги лишними не бывают, поэтому будет продлевать тут :-) Выбираю пополнение баланса, в качестве метода пополнения — списание с банковской карты. Подтверждаю пополнение, получаю смс о списании денег. В личном кабинете выбираю продление, деньги списываются со счета, текущий баланс становится равным 1 рублю. Следом падает еще одна смс и письмо на почтовый ящик. Поначалу подумал, что это подтверждение о продлении. Открываю смс, а в ней информация об отказе в приеме платежа и возврате средств. Странно... Открываю письмо — оно от системы Яндекс.Деньги. В письме текст, говорящий что что-то пошло не так, поэтому деньги они мне возвращают. Да ёпрст! Возвращаюсь в личный кабинет — там то же самое, что и в письме от Яндекса. Блjad! Открываю список доменов, а мой продлен до 2020 года. Не понял! Подождал несколько часов, проверил снова — продлен. По подсказке в одном чате смотрю результаты whois — тоже продлен. Хм...
Насколько я понял, деньги поступили на лицевой счет регистратора, я успел оплатить продление, списав деньги со счета в личном кабинете. Затем что-то пошло не так и Яндекс вернул всю сумму, которую я успел перевести. По итогу, домен продлен, денег на это не потрачено. Но для полной уверенности нужно дождаться 23 апреля и посмотреть не изменится ли ситуация.

Задолбал Gmail

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

Итак, что имеем. В программе заведены две учетные записи: google и моего личного сервера. Обе работают через IMAP. И если с учеткой google все более-менее в порядке, то с моей... полный швах. Причем раньше такого не было.
Допустим, пришло мне 20 писем. Я подключаюсь к домашней сети по WiFi. Телефон радостно мне сигнализирует звуком и вибрацией о том, что есть новая почта. Хорошо, все норм, вроде бы. Ага, разбежались! 20 писем пришло — получите один звуковой сигнал, светоиндикацию и 20 раз вибрацией. В принципе, это можно было бы пережить, если бы не второй нюанс. Если «смахнуть» уведомление о пришедшей почте, то через некоторое время, в случае поступления нового письма, оно прилетит обратно. Угадайте, сколько раз будет вибрировать телефон? Один? О, вы наивны! Двадцать один!
Другая ситуация. Уведомление не «смахиваем». Итак, 20 писем пришло, просматриваю их на компьютере (или на телефоне, роли особой не играет), по прочтении удаляю ненужные. Как и в большинстве программ, если просматривать письмо в течение заданного времени, то оно отмечается прочтенным. Несколько прочтенных, несколько удаленных. Закончили просматривать почту, взяли в руки телефон, «смахнули» уведомление о новой почте. Так-так... Было же 20 новых писем? Стало 0? Сколько раз будет сигналить телефон? Как обычно, один звуковой сигнал, светоиндикация и 20 раз вибрировать. И не дай вам бог, в процессе всего этого действа снова «смахнуть» уведомление. Получите еще один звуковой сигнал! Телефон-то помнит, что у вас было 20 новых писем! А что их стало меньше — не его проблема, будет сигнализировать о каждом, по его мнению, непрочтенном.
И вот такое поведение сильно раздражает. Не знаешь, то ли тебе кто-то что-то написал, то ли пришло уведомление от какой-то охранной системы, то ли просто gmail бесится.

«Умный» дом

Добавляем камеру в 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 в случае возникновения или завершения движения в коридоре.

Зеркало NOD

Немного прошелся по своему зеркалу, «причесал», подправил недочеты. Сделал страницу регистрации, ибо негоже когда человеку приходится писать тебе, чтобы получить доступ к нему. Сейчас можно просто открыть страницу регистрации, ввести свой email, который будет являться логином и после нажатия кнопки «Отправить» скрипт сохранит данные на сервере и отправит их копию пользователю на указанную электронную почту.
Поначалу хотел использовать команду системы для генерации хэша пароля, но оказалось, что последний генерируется неправильно. На счастье в интернете нашелся PHP-код, который выполняет те же самые действия, но уже правильно.
Потом хотел сделать чтобы все страницы сайта располагались в одном файле, но что-то пошло не так и я отказался от этой затеи. Не настолько я знаю PHP и JS, чтобы отлавливать и исправлять ошибки в коде.
В конце страницы появилась небольшая статистика: сколько всего зарегистрировано пользователей, сколько в этом месяце использовало зеркало и сколько человек сейчас находится на сайте. Любопытно, что зарегистрировалось около 50 человек, а используют примерно 30. Где остальные? Судя по журналам, они даже не пытались скачивать обновления. По этому поводу мелькает мысль примерно раз в полгода удалять тех, кто ни разу не обновлялся с зеркала. Или уже оставить как есть?

Эксперименты с видеонаблюдением

Небольшое отступление.
Посмотрел дату последней заметки — оказалось, что ничего не писал уже около полугода. Работа со «странным» заказом, затем предновогодняя суета, потом другие дела. Порой хотелось поделиться событиями из жизни, но то забудешь, то времени нет, то желания. А потом вроде как и поздновато уже.
Если вкратце, то события последнего времени такие. Работу в «Балансе» закончили, москвичи полностью расплатились с нашим куратором еще в декабре, но полного расчета от последнего мы так и не получили. «Минус» ему в карму. Договоров в письменном виде никаких не было, поэтому увы и ах. Подождем еще немного.
Три дня подряд корпоративов — это тяжело. Очень тяжело. Из них вынес для себя, что водку и самогон лучше не пить, только вино. Или это старость ко мне так подкрадывается?

Ну и хватит, ближе к делу.
Ну не могу я несколько дней ничего не делать и сидеть дома. Руки начинают «чесаться». В итоге, вспомнив, что у меня домашний видеорегистратор является гибридным, прикупил IP-камеру попробовать. Брал без особых наворотов типа PTZ, распознавания лиц и т. д. Обычную Full HD камеру с инфракрасной подсветкой. Заодно перевесил ее со стены в центр потолка в тамбуре. Особых различий в картинке между предыдущей аналоговой и новой IP я не заметил. Хотя нет, обманываю, одно различие все же было — в цветах. У аналоговой камеры тамбур был намного более синим из-за того, что в этот цвет покрашены стены в нем. «Цифра» более точно передает цвета. Плюс к этому всякие «примочки» в виде автобаланса цветов, антиблика и т. п.
Кстати, в таблице переключения режимов работы регистратора указано, что он поддерживает 4 аналоговых канала или 8 цифровых в формате Full HD. Или 2 аналоговых и 2 цифровых, но в 720p. После недолгих размышлений пришел к выводу, что не хочу совмещать аналоговые и IP-камеры. Пусть лучше будут только последние.
Потратив примерно месяц на «любование» новой камерой, снова заскучал. Пришлось купить себе пару Sonoff Basic для экспериментов — это реле управления нагрузкой с возможностью доступа к нему через WiFi. Поставил программу для управления на телефон, запустил и... Ненавижу управлять устройством через чье-то облако. В данном случае, конечно же, китайское. Недавно только читал пару статей о том, как два человека не могли получить доступ к технике: один к водонагревателю, другой к пылесосу. И все потому, что РКН (не к ночи будет помянут) заблокировал серверы Amazon, где располагались эти облака. Открыл 4pda, почитал, посмотрел на скриншоты и залил стороннюю прошивку Tasmota. Мне лично ее возможностей пока хватает.
Итак, проблема с облаком решена, теперь устройства ни к чему не привязаны, кроме моего роутера. Отлично! Зарезервировал для них IP-адреса, немного поигрался и стал думать куда их поставить.
Тут нужно упомянуть, что чуть раньше прикупил себе в «Леруа» датчик движения с реле. Вот вроде такого:

Датчик движения с реле

Но он меня немного разочаровал — достаточно медленно, на мой взгляд, реагирует на движение, несмотря на выкрученную на максимум чувствительность. Хотелось все же чего-то побыстрей. Вроде такого: ты только начинаешь открывать дверь из подъезда/квартиры, а датчик уловил движение и включил освещение в тамбуре.
И вот на этой почве у меня родилась идея по замене установленного датчика движения на этот самый Sonoff. А в качестве первого будет выступать новая IP-камера — у нее-то чувствительность можно регулировать. Если быть совсем точным, то не в ней, а в программе motion, которая рассылает мне оповещения и шлет кадр с камеры с фото человека, движущегося в тамбуре. Но тут произошел небольшой казус с motion. Оказалось, что для программы выключение света — тоже движение. А значит его нужно записать. И включить свет — ведь есть «движение»! Мать его!!! Бесит!
Пока что нашел только один выход из этой ситуации, «костыль» — свет выключается через 58 секунд после обнаружения движения, за 2 секунды до окончания события. За это время человек гарантированно пройдет тамбур. Надо будет, кстати, попробовать находиться в нем более 1 минуты и посмотреть выключиться свет или нет. Попробую еще покопаться в настройках камеры и видеорегистратора — возможно, что найду что-то полезное для данного случая.
В целях решения этой проблемы в голову пришла мысль прикупить еще PIR-сенсор и прикрепить его к Sonoff. Правда получится почти такой же датчик, как и тот, который я брал в «Леруа», но размеры явно будут поменьше. Дома еще уже много лет валяется «объемник», тоже с PIR-сенсором, но как его связать с реле — пока непонятно.
В общем, пока что с выключением света думаю, рассматриваю разные варианты. Как все получится — отпишусь что получилось и к чему я пришел. И хочется, наконец-то, сделать распознавание лиц.

Не дождетесь!

Ранее Ctrl + ↓