Электроника и софт

OpenHab — Часть 3 — Базовая настройка и взаимодействие с Устройствами, Логирование

Предыдущие главы:

Прощу прощения за задержку в публикации статьи. Времена нынче не простые…

Оглавление

  • Предисловие
  • Настройки из админки
  • Настройки через конфиг файлы
  • Логи
    • Karaf console
    • Frontail — логи в браузер
  • Заключение

Предисловие

В третьей публикации поговорим о настройке openHab и взаимодействии со внешними устройствами.

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

openHab позволяет создавать кастомные графические интерфейсы. Впринципе там и, что называется «из коробки», довольно много симпатичного функционала. Однако, ничего не мешает закастомизировать все донельзя, но это потребует познаний в CSS, angularJS и т.д.

Данная часть повествования начнется с простенького примера, возможно даже слишком простенького, просто чтобы показать концепцию конфигурирования openHab на базовом уровне. А вот следом сразу последуют  вещи сложнее и интереснее, в частности обещаная экосистема Xiaomi. Тем не менее, и этот простенький пример может пригодиться впоследствии, поэтому поигравшись, не удаляйте его.

Итак, приступим к настройке openHab. Традиционно, системы подобные openHab имеют как минимум два принципиально разных графических интерфейса. Первый – это админка, так называемый back end. Этот интерфейс используется для настройки и администрирования системы. Второй – это пользовательский интерфейс, front end, через который пользователи взаимодействуют с системой.

В случае openHab, система настолько разрослась, что существует целый ряд графических интерфейсов, на выбор. Задачу облегчает тот факт, что интерфейсы могут работать параллельно, а некоторые в определенной мере даже совмещают в себе и админку и пользовательский интерфейс. Например, заслуженно популярный Habpanel, но о нем позже.

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

Продолжить чтение

Прокси туннень по-быстрому или как обойти корпоративную слежку с PuTTY

Присказка

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

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

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

Понятное дело, что говорить с АйТи бесполезно — у них других головных болей выше крыши в нынешнее бредово-неспокойное время.

Короче достало меня это весьма, и вспомнил я, про простейший способ проксирования софта, который не раз приходил на выручку в универе 15 лет назад.

Мой универ славился наличием огромного количества лекций по массе курсов, записанных на видеокамеру и доступных для просмотра студентами. Это очень помогало в ряде ситуаций: кто-то не мог или не хотел ходить на лекции, кто-то просто забил и решил посмотреть весь курс разом, под конец семестра. Да и записанный на камеру лектор, за дополнительное бабло, полученное за старания, часто вещал куда более старательно, чем унылый профессор, который ведет тебе курс живьем, только ради получения очередного гранта на свои исследования, и ты для него лишь средство достижения желаемого.

Так вот, студенты на первых курсах, у которых еще не появился доступ к продвинутым компьютерным аудиториям на своих факультетах, вынуждены были тусоваться в огромной аудитории-лягушатнике для лохов-новобранцев. Компов там было немеряно. Как сейчас помню эти системники Compaq с первыми поколениями чертвертых пней, и, что примечательно, без кнопки reset. А-ля «наши компы никогда не зависают!» Ага, щаЗ. Но истинная жопа заключалась в том, что на этих компах был закрыт доступ к инету. Совсем. Доступ был только ко внутренней сети универа, включая видеотеку. Бесило это неимоверно, и на самом деле, являлось полным бредом — универ был очень востребован и люди буквально рвали жопу, чтоб поступить в него. Я не встречал студентов, которые бы после такой борьбы за свое место под солнцем, сидели бы в аудитории и бесцельно просирали время, шарясь по инету. Напротив, когда способ обхода блокировки стал достоянием масс, было видно, что инетом пользуются либо по делу, либо чтоб почитать новости несколько минут, перевести дух и снова нырнуть в лекции и домашки.

Короче. Был у нас в универе мощнейший сервак, на котором крутились мэйлы студентов. А еще, к нему был открыт ssh доступ, которым пользовались студенты на всяких курсах по программированию для хитроумной сдачи домашек и подобной хрени. Доступ был конечно ограничен, но сервак, сам по себе, имел доступ в инет. Причем дико-скоростной по тем временам. Сотни мегабит/сек.

Сказка

Значит, что мы делали. Брали портабл версию (не требующую установки) широко известного putty. Запускали, понятное дело вводили адрес сервака:

Затем в SSH->Tunnels, вводим порт, например 8080 в поле Source port, выбираем Dynamic и жмем Add:

Порт появится в списке перенаправленных портов:

Затем жмем кнопку Open и логинимся к серваку.

Теперь идем в настройки браузера (или любой другой софтины) и конфигурируем прокси:

Всё! Весь траффик теперь течет через SSH туннель на сервак, и оттуда уже в инет, и обратно, т.е. минуя все блокировки и слежки, будь они локально на компе, или за его пределами.

У меня дома есть безголовый сервак на линуксе. Прописал я прокси, точно по этому древнему способу и все отлично заработало! Ура, товарищи!

Не было бы сервака — отрыл бы ssh доступ на ISR (в народе — домашний беспроводной раутер) и юзал бы его. Или смартфон с SSH серверной аппликацией. Вариантов немало.

Кстати, я юзаю Firefox, и в моем случае оконце настройки прокси были заблокировано. «Что за хренотень!?», подумал я. Гугл, еще гугл, ага. Вот оно. Что это за странный .cfg файл в директории Firefox? Да и создан сегодня, вот буквально час назад. Хм, удаляем, перезапуск браузера, вуаля, блокировка снята. Это следящий софт постарался. Браузеры предоставляют такую возможность защиты от дурака, через конфиг файлы, которые тупо делают оверрайд на все, что там юзверь понастроил. Инфа есть, ищите, читайте.

Короче, туннели рулят. Слежка нет. Долой царя.

VyOS и с чем его едят. Настройка.

Пару лет назад я опубликовал небольшой очерк о работе, проделанной над мини-PC Lenono Thinkcentre M72e Tiny. Этот мини-компьютер предполагалось использовать в качестве гибко-настраиваемого и высокопроизводительного софтверного раутера.

В этой публикации поговорим немного о конфигурировании оного. Но для начала, традиционная рубрика:

А зачем?

Нравится. Просто нравится использовать энтерпрайз технологии дома. Это удобно и позволяет решить весьма заковыристые проблемы.

Когда будущую сеть для дома находилась в стадии планирования/проектирования, большое внимание предполагалось уделить безопасности работы оной. Кроме банальных телефонов, планшетов, ноутбуков, телевизоров и т.п., сетью в моей обители пользуется армия устройств для умного дома, погодная станция, приемник сигналов пролетающих мимо бортов для flightradar24, камеры наблюдения и т.д. Сразу было понятно, что ограничиться одной общей сетью для всех устройств будет не самым удачным решением.

Попытка объединить все эти устройства в одной сети, во-первых, привела бы к невероятной мешанине. А во вторых, представлялся простейший сценарий, в котором злоумышленник подбирается к одной из камер наружного наблюдения, вынимает из нее сетевой провод, втыкает его в свой ноутбук и вуаля — гигабитный доступ к домашней сети за одно движение.

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

Продолжить чтение

Как сделать из тормознутого старого ноутбука рабочую машинку

На самом деле, я люблю людей, которые не зная, что делать с дохлым, тормознутым старым ноутбуком, дарят его мне. А я трачу 150 долларов и пару вечеров и получаю живчика, который еще по меньшей мере несколько лет будет отлично справляться практически со всеми областями применения — интернет, фильмы, офис, различные специализированные приложения, исключая разве что тяжелую 3D графику. Причем под парой вечеров имеется ввиду не убиваться по 6 часов кряду, ковыряясь в компьютерных потрохах и почесывая затылок, а так, по быстрому погуглить, да заказать пару вещиц на eBay.

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

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

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

По сути, вся модернизация заключается в четырех этапах: меняем жесткий диск (1), меняет/добавляем оперативную память (2), меняем, если нужно, батарею (3) и устанавливаем свежую систему (4). Процедуры эти, будучи базовыми и наверняка уже произведенные большим количеством пользователей, с большой вероятностью уже будут подробно описаны в сети — стоит только поискать.

Пациент

Для примера, давайте рассмотрим конкретный случай. Достался мне Dell Latitude E6420, года эдак 2011-2012. Внешне выглядит очень неплохо. Видно, что обращались с ним бережно. Но вот с функциональной точки зрения — беда. Грузится 3 часа, несмотря на весьма быстрый процессор i7 на борту; батарея дохлая от слова вообще, оперативной памяти 4 гига. Классический пример машины, которую можно быстро и недорого привести в чувство.

Продолжить чтение

Laing DDC опять сдохла!

Помните древние трактора, у которых не было привычного электрического стартера? Стартером служил маленький двухтактный движок — пускач, заводимый веревочным стартером, именуемым в народе шмыргалкой (русский, как всегда, велик и могуч) или маленьким электро-моторчиком. Короче заводим движочек, даем обороты и через специальный механизм сцепления передаем момент на дизель и он, теоретически, заводится. Вот так это выглядит (с пятой минуты):

Смотреть ровно с пятой минуты

К чему это я? А к тому, что чертова помпа в контуре водяного охлаждения компа, недешевая и обещающая быть вечной Laing DDC, с кучей модных прибамбасов вроде магнитной подвески и керамического подшипника сдохла. Опять. Вторая за последние 5 лет. Не отработав и десятой части заявленного срока службы (MTBF если быть точнее). Несмотря на бережную эксплуатацию в идеальных условиях…

Laing DDC

Она просто перестала включаться. Первый раз я и не заметил отсутствия её еле слышного гула – сработали встроенные системы защиты проца от перегрева и сигнализация отсутствия циркуляции жидкости в системе, встроенные в мой самопальный измеритель потока и температуры в контуре. Случилось все это, как положено, в самый неподходящий момент. Потому что были срочно необходимые файлы на десктопе…

Как и 3 года назад, причиной гибели помпы стала электроника. Двигатель помпы бесколлекторный, поэтому в помпу встроена плата блока электронного управления. Интернет говорит, что часто на плате что-то дохнет, и помпа отказывается заводиться сама. А вот если импеллер подтолкнуть – она выходит на режим и стабильно крутится, до следующей остановки. И действительно, открутив крепления помпы и хорошенько встряхнув чертов механизм, удалось запустить его и добраться до заветных файлов.

Далее нужно сделать отступление, и сказать, что раз уж я живу в доме «на земле», который ко всему еще и прошел через фазу масштабного ремонта, некоторое время назад я решил осуществить давнюю задумку по переносу помпы и радиатора охлаждения наружу, за пределы дома. Это сделает систему еще тише, производительнее, а также снизит температуру в комнате, где стоит комп (это актуальная летняя проблема).

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

Продолжить чтение

Реверс-инжиниринг протокола и контрольной суммы (CRC) для Bonaire Comfort Control

Статейка эта, по сути, сводится к паре довольно полезных утилит, которые я обнаружил в процессе разбора протокола связи, имеющегося у меня пульта дистанционного управления. Одна (reveng) из них позволяет, путем хитромудрого перебора подобрать подходящий алгоритм контрольной суммы. Другая (pycrc) генерирует готовый С код, реализующий конкретный алгоритм, задаваемый пользователем.

Но, обо всем по порядку. Есть у меня дома система центрального испарительного кондиционирования воздуха, весьма популярная в Австралии. Управлению ею производится с помощью пульта по радиочастоте. Пульт один, часто теряется. Кроме того, как я упоминал в своих статьях про умный дом, я постепенно делаю «умными» все «не-умные» устройства, для централизованного управления всем и вся через смартфоны. Настала очередь испарительного кондиционера.

Итак, есть вот такой вот симпатичный пульт Bonaire Comfort Control, которому ни много ни мало 20 лет.

Bonaire Comfort Control

Вопрос в том, как наладить взаимодействие между кондиционером и openHab’ом, который управляет домом. Путей, в принципе, существует три. Первый, и самый простой, это припаяться к кнопкам имеющегося пульта, и «нажимать» их цифровым, так сказать, способом. Но тогда пульту каюк. Второй путь, это не курочить имеющийся пульт, а купить еще один, и припаяться к нему. Но покупка еще одного обошлась бы по меньшей мере в 300-400 баксов. Эти пульты давно не выпускают, они в большом дефиците, поэтому и продаются весьма недешево.

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

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

Продолжить чтение

Lenovo Thinkpad – испытание водой

Он жив и здоров! И чист!

Я знал что последние поколения Thinkpad’ов серии T (и, возможно, некоторых других серий тоже) обзавелись дренажными отверстиями в клавиатуре, призванными спасти электронику от пролитого на комп чая. Но, одно дело знать и надеяться, а другое, стать непроизвольным наблюдателем процесса разливания обильного количества воды. Из высокого стакана. Прямо на клавиатуру. Эпичности происшествия не было предела.

К сожалению, времени на маневры не было, поэтому продолжавший работать лапоть Lenovo Thinkpad T560 2016 года выпуска выключили (правильно, через «Завершение работы», он же «Shut Down» в Винде), отключили от сети, и даже, зачем-то вынули батарею. Зачем-то, потому что в этом конкретном компе, кроме внешней, сменной, есть еще встроенная батарея. Поэтому обесточить его полностью, не разбирая, невозможно. Ну и протерли его, про быстрому, кое-как.

Спустя 8 часов, я решил, из любопытства и предосторожности, частично разобрать его и посмотреть, не намокла ли электроника. Глянув по быстрому инструкцию по разборке на YouTube, задняя крышка, клавиатура и тачпад были сняты и моим глазам предстала вот такая картина:

Вода стекает с герметичной клавиатуры под герметичный тачпад, и следом, под ноутбук

Клавиатура и тачпад, сами по себе, судя по всему герметичны, исключая разъемы. Ниша, в которую устанавливается клавиатура, имеет резиновые уплотнения по периметру, исключая два места: в районе тачпада и в районе кнопок-стрелок. Именно там располагаются дренажные каналы. И именно там была вода. Дренажные каналы довольно большие, и имеют форму воронки.

Продолжить чтение

Ninite, или как установить кучу программ в пару кликов

Что это? Как это?

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

Несколько лет назад коллега познакомил меня с сайтом ninite.com, на котором, буквально в несколько кликов, каждый может собрать для себя индивидуальный установщик. Будучи скачанным и запущенным он установит последние версии выбранных программ.

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

Как это работает, в картинках

Заходим на сайт с минималистичным интерфейсом ninite.com. В верхней части сайта можно увидеть список версий и даты релизов программ, которые будет ставить установщик.

Главная страница ninite.com

Ниже виден довольно обширный список программ и утилит, распределенных по категориям, с чекбоксом возле каждой. Все что требуется сделать, это понаставить галок у интересующих вас программ и нажать на кнопку Get your Ninite под списком. Через несколько секунд ваш индивидуальный установщик будет подготовлен и начнет скачиваться.

Доступные программы — их немало

Запускаем и наблюдаем за процессом установки. Можно нажать на кнопку Show details и увидеть немного более подробностей процесса.

Установка. Для примера я выбрал только одну программу — архиватор
Подробности установки

По завершению установки установщик можно удалить – он больше не потребуется.

Как видите, вещица простая, доступная и экономит время на нудный поиск и установку программ по одной.

Компактная беспроводная клавиатура и мышь

Периодически нужно подключиться к разным сервакам дома, будь то серьезный комп или мелкий Raspberry Pi. И все никак не удавалось мне выделить под это дело комплект клава-мышь, и в итоге, постоянно приходилось что-то мудрить и выдумывать. Пришло время решить вопрос кардинально. Отправился на AliExpress и приобрел вот такой комплект:

Цена вопроса — 15 долларов, брал здесь. Можно выбрать из черной, серебряной или бронзовой расцветок, с мышкой или без.

И клава и мышь работают на паре ААА батареек (т.е. нужно 4 штуки). В комплекте батареек не было. К компу комплект подключается через маленький USB свисток, моментально определяется, в том числе и в BIOS и отлично работает.

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

Размеры клавиатуры 28.5 на 11.5 см. Мышь обычного размера, примерно 11.5 на 6 см.

Короче, если кому нужна небольшая беспроводная клава + мышь для использования время от времени, очень рекомендую этот комплект.

OpenHab — Часть 2 — Установка + немного о моей системе

Другие главы:

В продолжение первой части, поговорим о том, с какими устройствами openHab работает у меня дома, для каких еще устройств существует поддержка, и научимся устанавливать систему на Debian системы (Ubuntu, Raspberry Pi и иже с ними).

Материал довольно объемный, поэтому разделю эту публикацию на части. Те, кто знаком с продукцией Xiaomi для умного дома, в принципе, может пропустить первую часть.

Оглавление

  • Почему Xiaomi
  • Что я использую c openHab кроме девайсов Xiaomi
  • А какие еще устройства поддерживает openHab
  • Устанавливаем openHab (Ubuntu)

Почему Xiaomi

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

Продолжить чтение