Категории: Инструкции

Raspberry Pi в домашната екосистема: Характеристики и примери (част 1)

Преди време аз закупени едноплатков мини-компютър Raspberry Pi 4 (известен още като "малина» сред аматьори), без особено разбиране как и за какво може да се използва у дома. По-скоро това беше поредната технологична играчка и то за абсолютно приемливи пари, за да можете да си позволите да експериментирате. Гледайки напред, мога да кажа, че в момента имам такива услуги като блокиране на реклами в цялата мрежа, работещи на моя RPi4 Начало на AdGuard, резервна система за съхранение Apple Time MachineДомашен мост за добавяне на несертифицирани устройства към екосистемата Apple HomeKit, програма за изтегляне на торенти трансмисия, медиен сървър PLEX и ретро игрова конзола RetroPie. Планирам да експериментирам със самостоятелен мениджър на пароли Bitwarden, аналог с отворен код на известната 1Password. Не е твърде малко за такъв малък с размерите на кутия цигари, нали?

В този цикъл с две статии, ще се опитам да разкажа възможно най-подробно как инсталирах и конфигурирах всичко това.

Първият статия ще бъде по-полезен за производителите на мак, тъй като засяга специфични за екосистемата Apple точки, въпреки че разделът, занимаващ се с AdGuard, ще представлява интерес за потребителите на всяка настолна или мобилна операционна система.

Във втората статия помислете за универсални услуги, които могат да бъдат полезни за всички без изключение. И ние с вас ще напредваме като нормалните хора - от простото към сложното.

Подготовка на Raspberry Pi

Трябва да се отбележи, че ранните ревизии на Raspberry Pi бяха доста слаби по отношение на хардуера, така че всеки разработчик на софтуер възприема този компютър като машина за една задача. Поради това всяка услуга, която може да се изпълнява на RPi, по подразбиране ще се предлага като готово изображение на операционната система. Изтеглих го, записах го на SD карта, сложих го в RPi и пуснах готовия компютър с инсталирана услуга. Но нашата задача е да стартираме няколко услуги едновременно, тъй като текущата версия го позволява. Затова ще ги инсталираме като приложения.

Да приемем, че вече сте свързали Raspberry Pi с "чиста" Raspbian система към локална мрежа. Ако сте начинаещ и дори не знаете откъде да започнете, тогава започнете с  официални инструкции (следвайте връзката - чудесен съветник стъпка по стъпка с много интерактивни илюстрации) и след това преминете към следващия етап.

Етап 1

На първо място, трябва да разрешите достъп от SSH към вашия Raspberry Pi. За да направите това, трябва да изпълните няколко прости стъпки:

  • Отворете прозореца за конфигурация на Raspberry Pi в менюто Предпочитанияces" операционна система
  • Кликнете върху „Интерфаces»
  • Изберете Активиране до SSH
  • Кликнете върху бутона "OK", за да влязат в сила промените

Ако имате инсталиран Raspbian Lite без графичен интерфейс, в терминала на самия Raspberry Pi изпълнете следните команди:

sudo systemctl активира ssh sudo systemctl стартира ssh

Достъпът е разрешен.

Имам компютър с macOS, така че мога да премина веднага към следващите стъпки, точно като собствениците на компютри с Linux. Потребителите на Windows 10 също получиха вграден OpenSSH клиент като част от операционната си система преди време, но може да са необходими някои манипулации, за да го активирате.

Отворете команден ред на Windows или обвивка на PowerShell (което предпочитате) и въведете следната команда:

Get-WindowsCapability -Online | ? Име като „OpenSSH*“

Ако SSH клиентът е инсталиран, отговорът на командата ще бъде нещо подобно:

Ако OpenSSH.Client ни каже в полето State, че е NotPresent, тогава най-бързият начин да го активирате е да въведете следната команда:

Add-WindowsCapability -Online -Name OpenSSH.Client*

Това завършва първия етап от подготовката, включително за потребителите на Windows. Като се има предвид естеството на Raspberry Pi и факта, че Raspbian OS всъщност е друга версия на Linux, ще трябва да свършим доста работа върху командния ред. Може да изглежда необичайно за някои, но повярвайте ми, в това няма нищо трудно или непоправимо, така че бъдете по-смели. Всичко ще се получи.

Етап 2

Сега трябва да сте сигурни, че вашият Raspberry Pi винаги получава един и същ вътрешен IP адрес в локалната мрежа. Най-лесният начин да направите това е в настройките на рутера.

Използвам трикомпонентна MESH система  ASUS ZenWiFi Mini със стандартния уеб интерфейс на всеки рутер на тази компания. За да свържете MAC и IP адреси, трябва да изберете устройство от списъка със свързани устройства и в изскачащия прозорец просто да посочите желания IP. В моя случай избрах 192.168.50.10 просто за по-лесно запомняне.

В рутери на други производители елементът от менюто може да се нарича по различен начин, но същността му ще остане същата - издаване на статични локални IP адреси на свързани устройства.

Етап 3

Стартираме Терминал (команден ред, PowerShell и т.н.) на вашия компютър от стандартния набор от macOS, Linux или Windows.

Убиваме отбора

ssh pi@

(където вместо <ip address of your server> вмъкваме IP на "малини" от предишната стъпка) и виждаме приблизително следната картина:

Тук трябва да убиете паролата на вашия Raspberry Pi, която сте посочили по време на първоначалната настройка.

Важно! Паролата няма да се показва на екрана, докато я въвеждате. И "звездите" също няма да се показват. Трябва да въведете паролата буквално "на сляпо" и да натиснете Enter.

Ако паролата е въведена правилно, резултатът ще бъде нещо подобно:

Здравейте, вие сте във вашия Raspberry Pi. Добре дошли! Можете да продължите към настройките на отделните услуги. И ще започнем с най-простото.

Инсталиране и конфигуриране на AdGuard Home на Raspberry Pi

Начало на AdGuard, според свидетелството на разработчика - „мощен мрежов инструмент срещу реклама и проследяване. С нарастващата роля на Интернет на нещата става все по-важно да управлявате цялата си мрежа. Веднъж настроен, AdGuard Home ще покрие ВСИЧКИ домашни устройства без нужда от клиентски софтуер.“

Просто казано, това е рекламен филтър, който не работи като отделни приложения или плъгини за браузър на всяко от вашите устройства, а универсално решение, което покрива цялата ви домашна LAN мрежа с филтри.

Да се ​​върнем към прозореца на терминала (нека се съгласим, че Windows PowerShell и други обвивки за въвеждане на команди, в текста просто ще се обадя на терминал, става ли?), Изпълняваме следните команди, които ще изтеглят и разопаковат началния архив на AdGuard:

cd $HOME wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_armv6.tar.gz tar xvf AdGuardHome_linux_armv6.tar.gz

Всичко, което остава, е да инсталирате услугата и да я стартирате:

cd AdGuardHome sudo ./AdGuardHome -s инсталация

Резултатът ще изглежда така:

AdGuard Home вече е инсталиран! Беше просто, нали?

Сега трябва да посетите уеб интерфейса на новоинсталираната услуга. Стартирайте браузъра (Safari, Chrome, Firefox или какъвто имате - няма значение) и в адресната лента убийте https://<ip address of your server>:3000. В моя случай това е, както си спомняме, https://192.168.50.10: 3000.

Ще видите стъпка по стъпка съветник за първоначална настройка. Ако ви е по-удобно с интерфейса на друг език, можете веднага да превключите на желания. Списъкът включва, наред с други, украински, полски и руски.

В третата стъпка ще бъдете помолени да създадете начален потребител на AdGuard и да създадете парола. На четвъртото ще бъде обяснено, че IP адресът на Raspberry Pi (същият 192.168.50.10 в моя случай) трябва да бъде регистриран като DNS в съответния раздел на настройките на рутера. Направите това:

В рутери на други производители желаната точка за настройки ще бъде разположена приблизително по същия път.

След това отиваме в настройките на самия AdGuard Home, който все още е невинно чист.

Ако имате Smart TV Samsung, LG или подобен, отидете в менюто "Филтри - Добавяне на черен списък" и там "Изберете от списъка". Активирайте съответния списък с блокирани.

Сега трябва ръчно да добавите филтри за реклами на руски/украински език. Щракнете отново върху „Добавяне на черен списък“, след това върху „Добавяне на вашия списък“ и последователно въведете следните стойности в съответните полета:

Име URL
AdGuard Base филтър https://filters.adtidy.org/extension/chromium/filters/2.txt
AdGuard руски филтър https://filters.adtidy.org/extension/chromium/filters/1.txt
Филтър за защита от проследяване на AdGuard https://filters.adtidy.org/extension/chromium/filters/3.txt

За начало тези филтри са напълно достатъчни.

За сравнение обикновено използвам exler.ru, сайт, пълен с класически банери. Отляво - преди, отдясно - след прилагане на филтри.

Актуализацията на AdGuard Home става в ръчен режим, но започва буквално с един бутон и отнема няколко секунди, без да се налага намеса.

Това е всичко, общо взето. Отсега нататък всичките ви домашни устройства са практически без реклами. Неприятно изключение тук е клиентската програма YouTube на конзоли Apple TV, но тук влизат в сила ограниченията на tvOS архитектурата, така че AdGuard е безсилен в този случай.

Инсталиране и конфигуриране на Time Machine на Raspberry Pi

Според Wikipedia Time Machine е разработена резервна система Apple и е вграден в Mac OS X Leopard и по-нови версии на macOS, както и програма със същото име, която ви позволява да преглеждате съдържанието на архивните копия и да възстановявате както отделни файлове, така и операционната система като цяло.

Просто казано, това е почасова система за архивиране, вградена в macOS, която изисква съвместим файлов сървър. Можете да превърнете Raspberry Pi в точно такъв сървър, ако свържете към него външен USB HDD.

За да работи Time Machine правилно, е подходящ само Raspberry Pi 4 или по-нова версия, с USB 3.0 портове (при по-ранните модели портовете са по-бавни) и подходящ HDD с обем 1-3 терабайта (с външно захранване, ако има 3,5-инчов диск).

Важно! Има два мрежови протокола, които позволяват на macOS да съхранява данни на Time Machine в локална мрежа. Остарял Netatalk или по-модерна Samba. По принцип можете да използвате всеки от тях за задачи на Time Machine. Интернет е пълен с инструкции за организиране на процеса чрез Netatalk и всички тези инструкции са с различна степен на причудливост, но моята задача е да дам най-простия, гарантирано работещ вариант. А вашата задача е да изберете удобния за вас. Така че в статията ще разгледаме и двете.

Подготовка на HDD

Свързваме HDD към USB 3.0 порта на нашия Raspberry Pi, осъществяваме достъп до него в терминала чрез SSH и изпълняваме командата lsblk, което ще покаже списък на свързаните устройства в конзолата. Обръщаме внимание на размера на диска, за да сме сигурни с кой ще работим, името и точката на монтиране, в моя случай е просто sda, вашият все още ще има точка на монтиране, най-вероятно /dev/sda‌. Имаме нужда от нея.

Въведете командата sudo fdisk /dev/sda (или с друга подходяща за вашия случай точка на монтиране), след което щракнете върху клавиатурата m, за да видите пълния списък с команди. Можете дори да го копирате в отделен текстов файл (или да използвате подсказката по-долу).

GPT M въведете защитен/хибриден MBR Generic d изтриване на дял F списък на свободно неразделено пространство l списък на известни типове дялове n добавяне на нов дял p отпечатване на таблицата на дяловете t промяна на типа на дял v проверка на таблицата на дяловете i отпечатване на информация за дял Разни m отпечатайте това меню x допълнителна функционалност (само за експерти) Скрипт I зареждам дисково оформление от sfdisk скрипт файл O изхвърлям дисково оформление към sfdisk скрипт файл Save & Exit w запишете таблица на диска и излезте q излезте без запазване на промените Създайте нов етикет g създайте нов празна таблица с дялове на GPT G създайте нова празна таблица с дялове на SGI (IRIX) o създайте нова празна таблица с дялове на DOS s създайте нова празна таблица с дялове на Sun

Нашата задача е да направим delete a partition толкова пъти, колкото е необходимо, за да почистите напълно диска от дялове и след това създайте нов с помощта на add a new partition. Не забравяйте да запишете промените, т.е write table to disk and exit. успяхте ли Перфектно.

Сега създаваме файлова система на диска. Обичайният ext4 е напълно достатъчен, въпреки разнообразието от мнения в мрежата, че дискът трябва да бъде форматиран в една от файловите системи Apple. В действителност това само усложнява процеса на подготовка, без да носи никаква полза.

Въведете командата sudo mkfs.ext4 /dev/sda1, Готово.

Сега трябва да намерим UUID на нашия нов дял.
Да влезем ls -lha /dev/disk/by-uuid и виждаме нещо подобно:

Копирайте UUID от нашия sda1 в отделен текстов файл, ако не използвате разширения клипборд с хронология.

Сега трябва да създадем папка, в която ще монтираме нашия диск и ще му дадем съответните права за достъп.

sudo mkdir /mnt/tm && sudo chmod -R 777 /mnt/tm && sudo chown pi:pi /mnt/tm

Монтирайте диска. За да направите това, редактирайте конфигурационния файл с командата

Sudo нано / и т.н. / fstab

Нано в този случай името на инсталирания в системата редактор, който предпочитам да използвам.

Направете промени в отворения файл, като добавите следния ред към него

UUID=b32c00d8-0aa8-4ec4-b01f-18cbade45e7c /mnt/tm ext4 nofail,defaults 0 2

но с вашия UUID от предишната стъпка. Трябва да изглежда така:

Запазете промените, като щракнете Ctrl + O і Въведетеи след това излезте от редактора, като щракнете Ctrl + X.

Рестартирайте Raspberry Pi с командата sudo reboot и след рестартирането влезте отново през SSH.

Убийте отбора df -h и се уверете, че устройството е монтирано към системата в точката /mnt/tm.

Отлично, дискът е готов за работа.


Инсталиране и конфигуриране на NETATALK (опция 1)

Ние инсталираме:

sudo apt-get install netatalk -y

Ние конфигурираме всичко в същия редактор Нано:

sudo nano /etc/netatalk/afp.conf

И ние правим съдържанието на конфигурационния файл точно така:

‌; ; Netatalk 3.x конфигурационен файл; [Глобален] ; Глобални настройки на сървъра mimic model = TimeCapsule6,106 [Машина на времето] път = /mnt/tm машина на времето = да валидни потребители = pi; [Комове] ; базиран regex = /xxxx; [Моят AFP том] ; път = /път/към/том; [Моята машина на времето том] ; път = /път/до/резервно копие; машина на времето = да`

Не забравяйте да запазите резултата с помощта Ctrl + O → Въведете → Ctrl+X

Файлът вече е редактиран nsswitch.conf, добавяйки в края на реда hosts: допълнителни стойности mdns4 mdns.

sudo nano /etc/nsswitch.conf

Резултатът трябва да изглежда така:

# /etc/nsswitch.conf
#
# Примерна конфигурация на GNU Name Service Switch функционалност.
# Ако имате инсталирани пакетите `glibc-doc-reference' и `info', опитайте:
# `info libc "Превключвател за услуга за имена"' за информация относно този файл.

passwd: файлове
група: файлове
сянка: файлове
gshadow: файлове

хостове: файлове mdns4_minimal [NOTFOUND=връщане] dns mdns4 mdns
мрежи: файлове

протоколи: db файлове
обслужванеces: db файлове
етери: db файлове
rpc: db файлове

мрежова група: nis

Отново запазваме промените чрез Ctrl + O → Въведете → Ctrl+X

След това остава само да стартирате услугите:

sudo service avahi-daemon start sudo service netatalk start

И проверете представянето им в отбори:

sudo услуга netatalk състояние

че

sudo service avahi-daemon състояние

Резултатът трябва да изглежда така:

Всичко, което остава, е да отидете в настройките на macOS, да изберете секцията Time Machine и да видите нашия Raspberry Pi в наличните дискове.

Посочваме като вход pi, като парола - тази, която се използва за SSH достъп.

Готово, стандартната опция през Netatalk е конфигурирана. Сега, когато вашият Mac е в същата локална Wi-Fi мрежа като Raspberry Pi, автоматично ще се правят резервни копия на вашето устройство.

Сега помислете за алтернатива под формата на протокола Samba, който се счита за по-надежден.

Инсталиране и конфигуриране на SAMBA (опция 2)

Ние инсталираме Samba:

‌sudo apt-get инсталирайте samba

Задаваме потребителската парола (за същия pi потребител) и редактираме конфигурацията. Първа парола:

‌sudo smbpasswd -a pi (можете да използвате същото като за SSH).

И тогава конфигурацията на Samba е в същия редактор Нано:

‌sudo nano /etc/samba/smb.conf

Блокиране на съдържание [global] трябва да изглежда така накрая:

[глобална] сигурност = пароли за шифроване на потребители = истинска карта към гост = лош потребителски акаунт за гост = никой

В самия край на конфигурационния файл добавете нов блок:

[TimeCapsule] коментар = Time Capsule path = /mnt/tm browseable = да writeable = да create mask = 0600 directory mask = 0700 spotlight = няма vfs обекти = catia fruit streams_xattr fruit:aapl = да fruit:time machine = да

И запазваме резултата: Ctrl + O, Въведете, Ctrl + X.

Рестартирайте услугата:

‌sudo systemctl рестартирайте smb.service

Свършен Остава, както в случая с Netatalk, да намерите диска в списъка, представен в панела с настройки на Time Machine.

Инсталиране и конфигуриране на Homebridge на Raspberry Pi

Е, успешно стигнахме до най-масовия блок на статията.

Домашен мост е базиран на NodeJS сървър, който използва API на Homekit за интегриране на несертифицирани устройства и първоначална поддръжка за Apple Домашен комплект.

Трудността при конфигурирането на Homebridge е, че неговите добавки поддържат голямо разнообразие от протоколи и устройства, което ги прави видими и управляеми от Apple HomeKit. Съответно всеки плъгин е конфигуриран по свой собствен начин, често напълно различен от аналога си за друго устройство.

Да започваме. Както обикновено, осъществяваме достъп до Raspberry Pi чрез SSH и изпълняваме няколко стъпки.

Инсталиране на Node.js

Имате възможност да копирате и поставите целия блок код в терминала. В абсолютното мнозинство от случаите това е достатъчно. Но ако се случи така, че на някакъв етап инсталацията е неуспешна, тогава въведете останалите команди от блока една по една.

# setup repo curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - # install Node.js sudo apt install -y nodejs gcc g++ make python net-tools # test node is working node -v # upgrade npm (версия 6.13.4 има проблеми с git зависимостите) sudo npm install -g npm

Инсталиране на Homebridge и Homebridge Config UI X

Като начало, нека поставим основата със следната команда...

‌sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x

...и го стартирайте като системна услуга.

‌sudo hb-service install --user homebridge

Конфигуриране на Homebridge чрез уеб интерфейса

Отидете на адреса в браузъра на вашия компютър http://<ip address of your server>:8581 където вместо <ip address of your server> все същото IP от самото начало на статията, в моя случай

Стойностите по подразбиране на потребителя и паролата са еднакви: admin

Препоръчвам незабавно да отидете в елемента от менюто „Потребители“ и да промените стойностите по подразбиране там на по-сигурни.

Направи ли го? Отлично, следващи ще конфигурираме плъгини.

Наличието на разнообразно оборудване у дома диктува кои добавки трябва да инсталираме. Напълно възможно е във вашия случай наборът от плъгини да е малко по-различен, но като използвате примера на моята конфигурация, можете да получите представа какви нюанси можете да срещнете в процеса на настройката им.

Моят набор от добавки към момента на писане:

  • Потребителски интерфейс на Homebridge (включва се в основната конфигурация и няма собствени настройки)
  • Оттенък (за управление на осветлението Philips нюанс)
  • Apple Дистанционно за телевизор (за управление на декодери Apple Телевизия)
  • Mqttthing (за управление Лампата на Гайвер з фърмуер от Уилзър)
  • Samsung Tizen (за управление на Smart TV Samsung с Tizen OS)
  • Времето плюс (за автоматизация на умен дом в зависимост от метеорологичните условия)
  • Yeelight Wi-Fi (за управление на лампата Xiaomi Yeelight)

Да вървим един по един.

Настройки на приставката Hue

За да инсталирате който и да е плъгин в Homebridge, достатъчно е да отидете в съответния раздел на уеб интерфейса, да въведете името на желаното желязо в лентата за търсене и да изберете плъгина от списъка с налични. Препоръчвам да обърнете внимание на етикета „🛡Verified“, версията и датата на актуализация на приставката (ако авторът не я е актуализирал няколко години, има голям шанс да не работи) и се уверете, че отворете връзката към началната страница на плъгина, която обикновено е описана подробно в процеса на инсталиране.

Щракнете върху бутона „Инсталиране“ на необходимата добавка и изчакайте минута или две, докато добавката бъде инсталирана.

Плъгин Homebridge Hue доста лесен за настройка. Просто трябва да зададете името по подразбиране, което ще се показва в регистрационните файлове на Homebridge, и да изберете кой тип съвместими устройства ще се обработват от приставката. В моя случай това е просто осветление Philips Hue и дори първата версия на главината е кръгла.

След попълване на данните и задължително запазване на резултата е нужно само да натиснете централния бутон на хъба Philips Hue и изчакайте 15 секунди, докато плъгинът разпознае хъба. Свършен!

Всичко, което остава, е да вземете iPhone, да насочите камерата му към QR кода, намиращ се в раздела „Състояние“ на уеб интерфейса на Homebridge, и да го добавите като мост към вашия HomeKit.

Ако HomeKit като такъв вече е конфигуриран предварително (избрано Apple TV или iPad като основен център, добавени стаи и т.н.), тогава съветникът стъпка по стъпка незабавно ще предложи да разпредели всички намерени осветителни устройства Hue в съответните стаи и ще даде име на всяко устройство. В хола си например имам лампи "Ceiling 1", "Ceiling 2" и "Ceiling 3", но с помощта на самия HomeKit на iPhone (елемент "Combine with other devices") ги комбинирах в логическа група " Горна светлина", за мен е по-удобно. В същото време в една и съща всекидневна имам "Подова лампа" и "Нощна лампа" - отделни устройства, но Siri перфектно разбира голямо разнообразие от команди без допълнително обучение:

  • „Включете светлината в хола (всички лампи в хола светят)“
  • „Включете подовата лампа“
  • "Яркостта на нощната светлина е двадесет процента"
  • „Включи нощната лампа“
  • „Изключи горната светлина“
  • "Син цвят на подовата лампа"
  • „Изключи светлините в хола (изключва всички светлини в хола)“
  • „Изключи всички светлини (изключва осветлението в целия апартамент)“

И така нататък. Ако сте го конфигурирали правилно Apple-семейни, подходящи и абсолютно логични команди автоматично стават достъпни за всички членове, въведени във вашето семейство Apple ДОКУМЕНТ ЗА САМОЛИЧНОСТ.

Настройки на плъгина Apple Дистанционно за телевизор

Използвам този плъгин за една единствена цел: да създам допълнителен превключвател за конзолата Apple телевизор. Факт е, че в Apple HomeKit има способността да програмира, например, включването на възпроизвеждане на албум или плейлист според предварително определено условие, като например „Когато се прибера у дома“. И всичко би било наред, но ако приставката спи в този момент, наличието на такъв сценарий не може да я събуди. Но е възможен допълнителен виртуален превключвател. Ние отидохме:

Етап 1. Инсталираме услуга за прихващане на идентификационни данни Apple TV

sudo npm install -g node-appletv-x

Етап 2. Търсим декодери, налични в локалната мрежа Apple TV

Sudo appleтелевизионна двойка

Етап 3. Създаваме двойка с желания префикс. Изходът на конзолата ще изглежда така:

% appleТВ чифт ✔ Свързване към хола ✔ Иницииране на сдвояване? Въведете 4-цифрения ПИН код, който в момента се показва във всекидневната

На стъпалото ‌? Enter the 4-digit pin that's currently being displayed on... на екрана на избраната от вас приставка Apple телевизор, ще се появи стандартен четирицифрен код за сдвояване с дистанционното управление (в нашия пример ще бъде 1234), който трябва да бъде убит точно там, в конзолата.

% appleТВ чифт ✔ Свързване към хола ✔ Иницииране на сдвояване? Въведете 4-цифрения ПИН код, който в момента се показва в Living Room 1234 ✔ Завършване на идентификационните данни за сдвояване: 77346115-ED48-46A8-A288-

Вместо <snip> ще има няколко реда от смес от букви и цифри, те трябва да бъдат копирани в отделен текстов файл в тяхната цялост, започвайки от първото число в реда Credentials:. Малко по-късно тези същите акредитивни писма ще ни трябва много.

Етап 4. Добавете следния блок към раздела за конфигурация на уеб интерфейса на Homebridge в раздела „Конфигурация“. "platforms": [

{ "платформа": "AppleTvPlatform", "име": "Apple ТВ платформа",
   „Девиces": [
      {
         "име": "Къща за гости",
         "идентификационни данни": "77346115-ED48-46A8-A288-",
         "isOnOffSwitchEnabled": вярно,
         "onOffSwitchName": "Apple телевизор" } ] },

...и в една линия "credentials": просто вмъкнете пълното съдържание на текстовия файл от предишната стъпка.

Избираме произволно име за префикса, "Къща за гости" тук е само за пример.

Етап 5. Инсталираме самия плъгин.

В раздела „Модули“ на уеб интерфейса на Homebridge въведете в лентата за търсене  Apple TV Remote и натиснете бутона "Инсталиране". След като инсталирате плъгина, ще бъдете подканени да рестартирате Homebridge, като това става чрез натискане на съответния бутон.

Това е всичко, на iPhone в HomeKit се появи нов превключвател, който вече може да се добави към всички сценарии, при които трябва автоматично да включите приемника.

Гласови команди като „Siri, включи Apple TV" или "Siri, изключи Apple TV“ също се поддържат автоматично. Освен това, ако конфигурирате няколко приставки в различни стаи, Siri също автоматично ще започне да разбира заявката за изключване Apple Телевизор в конкретна стая или всички наведнъж.

Всъщност този плъгин се развива бързо, той вече знае как да разпознае Bundle ID за приложения, работещи на конзолата, и да се намеси в тяхната работа, например, да постави на пауза филм в Netflix. Но вие ще се справите сами с това, ако има желание.

Конфигуриране на приставката Mqttthing

Използвам този плъгин с лампата Guyver, спомената по-горе - домашна лампа с платка Arduino и 16x16 матрица от адресируеми светодиоди. Самата лампа трябва да бъде пълна с фърмуер от Whilser. Нека силата бъде с теб!

Етап 1. Инсталиране на MQTT брокера

Изпълняваме няколко команди. Те не работят на партиди, така че ги въвеждаме в конзолата един по един.

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key добавяне на mosquitto-repo.gpg.key
cd /etc/apt/sourceces.list.d/
судо wget 
sudo apt актуализация
sudo apt инсталирате mosquitto mosquitto-клиенти
sudo /etc/init.d/mosquitto stop
sudo nano /etc/mosquitto/mosquitto.conf

Последната команда стартира вече познатия редактор Нано, в който заместваме съдържанието на отворения файл със следното:

# Поставете вашата локална конфигурация в /etc/mosquitto/conf.d/ # # Пълно описание на конфигурационния файл е в # /usr/share/doc/mosquitto/examples/mosquitto.conf.example # pid_file /var/run/ mosquitto.pid allow_anonymous true listener 1883 persistence true persistence_location /var/lib/mosquitto/ log_dest тема log_type грешка log_type предупреждение log_type забележка log_type информация connection_messages true log_timestamp true include_dir /etc/mosquitto/conf.d

Както обикновено, Ctrl + O, Въведете, Ctrl + Xи след това рестартирайте брокера с командата

‌sudo /etc/init.d/mosquitto start

Инсталиран MQTT брокер.

Етап 2. Инсталиране на приставката Mqttthing

Обикновено отиваме в раздела „Модули“ в уеб интерфейса на Homebridge, търсим Mqttthing и щракнете върху „Инсталиране“.

Етап 3. Конфигурация на приставката Mqttthing

Всяка лампа Guyver има собствен идентификатор на ESP чип. Например ESP-3bd20b. Ако сами сте направили и мигали лампата, тогава сте напълно информирани за това, ако не, тогава поставете лампата в режим на сдвояване и когато сте свързани към вашата Wi-Fi мрежа, съответният диалогов прозорец на iPhone ще покаже необходимия идентификатор . Да го напишеш.

  1. Изключете захранването на лампата;
  2. Изключете рутера;
  3. Включете захранването на лампата;
  4. На iPhone отидете на „Настройки → WiFi“
  5. Изберете незащитена мрежа със SSID като „ESP12345678“ и щракнете върху „Конфигуриране на WiFi“ в диалоговия прозорец
  6. Идентификационният номер на чипа ще се изисква в най-долната част на прозореца за конфигуриране

Ако лампата вече е конфигурирана по-рано, можете просто да я изключите, да включите рутера и отново да включите лампата - старите настройки ще бъдат взети. Ако това е първото свързване на лампата, включете рутера и изберете вашата мрежа в списъка с настройки, след което въведете всички необходими данни, като паролата на домашния Wi-Fi и IP адреса на Raspberry Pi.

Отворете раздела „Конфигурация“ на уеб интерфейса на Homebridge и в раздела "accessories": [ въведете такова огромно парче код, заменяйки предишния идентификатор с ESP-3bd20b сам:

{
    "акcessory": "mqttthing", "type": "електрическа крушка", "name": "Nightlight", "url": "http://127.0.0.1:1883", "mqttPubOptions": { "retain": false } , "topics": { "getOn": "homeassistant/light/ESP-3bd20b/статус", "setOn": "homeassistant/light/ESP-3bd20b/switch", "getBrightness": "homeassistant/light/ESP-3bd20b /яркост/състояние", "setBrightness": "homeassistant/light/ESP-3bd20b/brightness/set", "getRGB": "homeassistant/light/ESP-3bd20b/rgb/status", "setRGB": "homeassistant/light /ESP-3bd20b/rgb/set" }, "onValue": "ON", "offValue": "OFF" }, { "accessory": "mqttthing", "type": "телевизия", "name": "Нощни светлинни ефекти", "url": "http://127.0.0.1:1883", "topics": { "setActive" : "homeassistant/light/ESP-3bd20b/switch", "getActive": "homeassistant/light/ESP-3bd20b/status", "setActiveInput": "homeassistant/light/ESP-3bd20b/effect/set", "getActiveInput" : " homeassistant/light/ESP-3bd20b/effect/status" }, "inputs": [ { "name": "Confetti", "value": "Confetti" }, { "name": "Fire", "value ": "Огън" }, { "name": "Rainbow Vert.", "value": "Rainbow Vert." }, { "name": "Rainbow Horrors.", "value": "Rainbow Horrors." } , { "name": "Промяна на цвета", "value": "Промяна на цвета" }, { "name": "3D лудост", "value": "3D лудост" }, { "name": "3D облаци" , " value": "3D облаци" }, { "name": "3D пейка", "value": "3D пейка" }, { "name": "3D плазма", "value": "3D плазма" } , { "name": "Rainbow 3D", "value": "Rainbow 3D" }, { "name": "Peacock 3D", "value": "Peacock 3D" }, { "name": "Zebra 3D" , " value": "Zebra 3D" }, { "name": "Forest 3D", "value": "Forest 3D" }, { "name": "Ocean 3D", "value": "Ocean 3D" } , { "name": "Снеговалеж", "value": "Снеговалеж" }, { "name": "Матрица", "value": "Матрица" }, { "name": "Светулки", "value": „Светулки“ }, { „name“: „Аквариум“, „value“: „Аквариум“ }, { „name“: „Звездопад“, „value“: „Звездопад“ }, { „name“: „Пейнтбол“, "value ": "Пейнтбол" }, { "name": "Спирала", "value": "Спирала" }, { "name": "Топла светлина", "value": "Топла светлина" }, { "име ": "Махало", "value": "Махало" }, { "name": "Мигане", "value": "Мигане" }, { "name": "Полицейска сирена", "value": "Полицейска сирена " } , { "name": "Drift", "value": "Drift" }, { "name": "Flock", "value": "Flock" } ], "onValue": "ON", "offValue ": "ИЗКЛЮЧЕНО"}

Свършен IN Apple В HomeKit се появиха две нови устройства, лампата "Night Light" и "Night Light Effects". Те са взаимосвързани и предназначението им е съвсем ясно. Ако желаете, можете да ги преименувате в конфигурацията.

За съжаление, авторът на фърмуера е написал параметрите на руски, така че с такава конфигурация ще трябва да се свържете със Siri и на руски. Но ако говорите със Siri на английски, можете да коригирате всяка кодова точка по следния начин:

{ "име": "Огън", "стойност": "Огон" },

Тогава резултатът на iOS ще изглежда така:

Настройки на плъгина Samsung Tizen

Етап 1. Проверка на телевизора за съвместимост

В контролния панел на рутера дайте на телевизора статичен локален IP, както направихме за Raspberry Pi в самото начало. Например в моя случай това е 192.168.50.100.

Отидете на адреса в браузъра на вашия компютър  http://TV_IP:8001/api/v2, което в моя случай означава http://192.168.50.100:8001/api/v2/

Ако видите страница с куп сервизна информация, която изглежда нещо подобно...

{"device":{"FrameTVSupport":"false","GamePadSupport":"true","ImeSyncedSupport":"true","OS":"Tizen","TokenAuthSupport":"true","VoiceSupport":"false","countryCode":"UA","description":"Samsung DTV RCR","developerIP":"0.0.0.0","developerMode":"0","duid": ......

...тогава това означава, че има шансове за успех. Но трябва да разберете, че не всички модели телевизори Samsung съвместим с плъгина. Например тези, които изискват идентификация с ПИН, няма да работят.

Копирайте стойността на полето от страницата на услугата"wifiMac": и подгответе дистанционното от телевизора, нека ви е под ръка.

Етап 2. Инсталиране на плъгина

Нищо ново, търсим плъгин при поискване Samsung Tizen, изберете желания (авторство @tavicu) и инсталирайте.

След стартиране отидете на настройките и въведете следните стойности там:

Името „телевизор“ е напълно достатъчно, тъй като Siri прекрасно разбира искането да включите телевизора в хола, в който едва ли имате 2 телевизора. Разбира отлично и командата "пусни телевизора в спалнята", без да дърпа за пореден път телевизора в хола.

Етап 3. Свързване към телевизор

Тук всичко е просто: вземете дистанционното управление на телевизора и изчакайте на екрана да се появи контекстното меню с предупреждение за опит на някое устройство да поеме контрол над телевизора. Телевизорът, разбира се, трябва да е включен. Когато в горния десен ъгъл на екрана се появи съответната заявка, използвайте дистанционното управление на телевизора, за да изберете бутона Allow, Готово.

Етап 4. Добавете телевизора към Apple HomeKit

Да, за разлика от предишните случаи, телевизорът няма да се появи магически в списъка с устройства във вашия дом. Затова вземаме iPhone в ръцете си и стъпка по стъпка:

  1. Стартирайте приложението Home и на главната страница натиснете + в горния десен ъгъл;
  2. Изберете „Добавяне на аксесоар“;
  3. В долната част на екрана щракнете върху „Без код или сканиране“;
  4. На следващия екран изберете вашия телевизор;
  5. Когато бъдете подканени да въведете кода за настройка на HomeKit, щракнете върху „Използване на камера“;
  6. Насочете камерата към QR кода в раздела Homebridge Status.

Етап 5. Настройки на плъгина

След като се задълбочих в документация към приставката, можете да накарате Siri да стартира определени програми на телевизора от списъка с инсталирани, да ги постави на пауза и т.н. Сега, като упражнение, ще променим функционалността на един единствен бутон във виртуалното дистанционно Apple Дистанционно, вградено в "пердето" на iOS Control Center.

Това е бутонът ℹ︎ (информация), по подразбиране той показва информация за текущия режим на изображение в горната част на телевизионния екран. В същото време достигнете от дистанционното управление Apple Няма начин да добавите Remote към списъка с програми, инсталирани на телевизора. И сега ще го поправим.

Отидете в настройките на приставката, секцията „Ключово съпоставяне“, потърсете полето „ИНФОРМАЦИЯ“ и променете стойността му на KEY_HOME. Рестартирайте Homebridge и готово - бутонът ℹ︎ във виртуалното дистанционно извежда главното меню на приложението! Виртуалното дистанционно имаше смисъл.

Настройване на приставката Weather Plus

Етап 1. Създайте акаунт в OpenWeather

Да отидем на сайта https://home.openweathermap.org и регистрирайте акаунт, хубавото е, че е безплатно.

Етап 2. Генериране на API ключ

Отидете до желания раздел на личния акаунт на OpenWeather и след като посочите името на ключа, щракнете върху бутона „Генериране“.

Етап 3. Инсталиране и конфигуриране на плъгина Weather Plus

Търсим и инсталираме желания плъгин по обичайния метод и след това продължаваме към неговите настройки. Резултатът трябва да изглежда така:

В прогнозата аз лично се интересувам само от стойностите за следващия час, така че другите са просто деактивирани:

И така че ненужните виртуални сензори за времето не са досадни с ненужни активации, ние ги деактивираме в съответния раздел Скриване на стойности. Желателно е да деактивирате:

  • Въздушно налягане
  • Облачно покритие
  • Точка на оросяване
  • Видима температура
  • Посока на вятъра
  • UV индекс
  • Скоростта на вятъра
  • Скорост на вятъра Макс

И щракнете върху „Запазване“ в най-долната част на прозореца с настройки.

В резултат на това в интерфейса Apple HomeKit ще покаже стойности на температурата и влажността за следващия час, както и два виртуални сензора "Сняг" и "Дъжд", които могат да се използват в различни сценарии. Например, програмирал съм автоматизация на HomeKit, при която, когато в прогнозата за близко бъдеще се появи дъжд или сняг, лампата на Guyver показва съответния ефект на локва или падащи снежинки за минута. В същото време ефектът ще се активира само между 8:00 и 23:00 часа и само ако някой е вкъщи. В други случаи е малко вероятно да са необходими предупреждения да вземете чадър или да носите водоустойчиво облекло.

Настройване на приставката Yeelight WiFi

По заявка Yeelight Homebridge предлага много плъгини за инсталиране, включително един проверен. Но аз предпочитам друг, при който преходите между състоянията са максимално плавни, а не в стил "нощта падна над лагера". Освен това поддържа адаптивно осветление от Apple, но тук е стандартното приложение Xiaomi никога не съм научил това през годината, откакто тази функция се появи в HomeKit.

Важно! Оставете включена само една крушка Xiaomi, за да избегнете объркване в началото. Ще работим с нея.

След като инсталирате плъгина, рестартирайте Homebridge и потърсете нещо подобно в дневника: ‌[Yeelight] Received advertisement from ab1234. Това е условно ab1234 и ето я твоята крушка. Може би стойността ще бъде color-ab1234, тогава ще работите с него.

Отидете в настройките на плъгина и поставете там следната част от кода:

{ "platform": "yeelight", "name": "Yeelight", "transitions": { "power": 400, "brightness": 400, "color": 1500, "temperature": 1500 }, "multicast" : { "интерфейс": "0.0.0.0" }, "defaultValue": { "color-ab1234": { "име": "Подова лампа", "черен списък": [ "set_hsv" ] } } }

Къде вместо color-ab1234 трябва да бъде стойността от вашия дневник и вместо това ‌"name": "Торшер" произволно име, отразяващо мястото, където се завинтва лампата: нощна лампа, свещ, таван и др.

Запазете поставения код, като щракнете върху бутона Запазване и рестартирайте Homebridge. Готово, крушката се появи в HomeKit под името, което сте избрали. Останалите крушки на Yeelight се добавят една по една чрез натискане на бутона "+ ДОБАВЯНЕ НА ПЛАТФОРМА" там в настройките на приставката по абсолютно същия начин.

Актуализиране на Homebridge и Node.JS на Raspberry Pi

Актуализирането (и връщането на версията) на самия Homebridge е доста просто: трябва да щракнете върху номера на текущата версия в уеб интерфейса и да изберете желаната версия от списъка в диалоговия прозорец.

Но с актуализацията на Node.JS и NPM, която рано или късно ще бъде необходима при инсталиране на актуализация на някой плъгин, не е толкова лесно. По-точно командите не са точно тези, описани в стандартните инструкции.

Node.JS се актуализира с командата:

sudo hb-service update-node

И NPM цели две поредни:

sudo npm cache clean -f
sudo npm install -g npm

За съжаление нито самият Homebridge, нито неговите добавки, нито „релсите“, по които се движи, могат да се актуализират автоматично. И влизането в контролния панел всеки ден и проверката дали има нещо ново рано или късно става скучно. И така, за да автоматизират процеса, те измислиха специална джаджа за iOS 14, която следи състоянието на всички възли на Homebridge и може да сигнализира за наличието на актуализации или проблеми визуално и с PUSH съобщения.

Инсталиране на изпълнимия модул Homebridge Status

Както можете да видите, джаджата показва много полезна и не толкова полезна информация за вашия Homebridge, но най-ценната част от нея е информация за състоянието на самия Homebridge, неговите добавки и Node.JS.

За да получим самата джаджа, първо се нуждаем от нейното родителско приложение. Инсталирайте го на вашия iPhone от App Store.

Разработчик: Саймън Б. Støvring
Цена: Безплатно+

И сега започва доста дългият, но вълнуващ процес на инсталиране на джаджата. Ще го инсталираме с помощта на друг скрипт, наречен ScriptDude в програмата Scriptable. ScriptDude е добър, защото проследява промените в кода на масата скриптове, разположени в галерията на адрес scriptables.net. Може би ще намерите нещо друго полезно за вас там, но сега имаме една задача и ще я решим.

Етап 1. Инсталирайте Scriptable.app от App Store.

Етап 2. Отворете сайта в браузъра на iPhone scriptdu.de и щракнете върху бутона Инсталиране на ScriptDude.

Етап 3. На страницата, която се отваря, щракнете върху бутона Copy Installer и след като получите съобщение за кода на скрипта в нашия клипборд, щракнете върху бутона Open Scriptable.

Етап 4. Вмъкнете съдържанието на клипборда в празното поле със заглавие Untitled Script и натиснете бутона Play ▶️.

Етап 5. На екрана, който се отваря, щракнете върху връзката Разгледайте scriptables.net и на следващата страница докоснете етикета (технология). Ура, скриптът Homebridge Status е първи в списъка! Чувствайте се свободни да щракнете върху бутона Изтегляне със ScriptDude.

Етап 6. Натискаме Инсталиране и след като се съгласихме с две предупреждения, виждаме желания скрипт в списъка Инсталирани. Основният екран на Scriptables вече изглежда като четвъртата екранна снимка по-долу и ние щракваме върху трите точки в плочката за състояние на Homebridge и отиваме към опциите за редактиране.

Етап 7. Първо, променяме стойността overwritePersistedConfig з фалшив на вярно

overwritePersistedConfig = вярно

за да запазите настройките на скрипта в iCloud.

Етап 8. Слизайки малко по-надолу, редактираме три полета: IP адреса и порта Homebridge (не забравяйте, че това е вече споменатото http://<ip address of your server>:8581 където вместо <ip address of your server> все същото IP от самото начало на статията, в моя случай ) и се съгласявате с предупреждението за търсене на устройства в локалната мрежа. Ура, скриптът работи!

Всичко, което остава, е да добавите джаджата към екрана на iOS 14 по същия начин, както всеки друг. След като добавите, трябва да отидете в настройките на джаджа (продължително докосване върху нея) и да посочите редица параметри: изберете желания скрипт, посочете какво да правите, когато взаимодействате с него, и въведете следната стойност в полето Параметър

USE_CONFIG:purple.json

След това не забравяйте да се върнете към кода на скрипта и да върнете стойността

overwritePersistedConfig = невярно

Това е всичко. Уиджетът работи и когато има актуализации на Node.JS, Homebridge или неговите плъгини, ще получавате PUSH-известия със съответното съдържание.

Заключение

Възможности Apple HomeKit порасна многократно за мен. Измислих куп скриптове и автоматизации, които улесняват живота на мен и близките ми.

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

Когато последният член на семейството напусне къщата, HomeKit внимателно ще изключи телевизорите, осветлението и като цяло всичко, което може да бъде изключено. И ако вкъщи има поне един човек, с настъпването на здрача външното осветление и някои лампи вътре ще бъдат включени.

Отново Siri може да управлява всички свързани устройства с напълно логични команди, дума по дума същите, които бихте помолили на някого в къщата, когато трябва да включите или изключите нещо в определена стая. Само че вече никой не трябва да бяга в тази стая.

Сутрешни и вечерни музикални миксове от Apple, към който са прикрепени светлинните ефекти на лампата Guyver. Възможно е друго осветление да работи със светлинна музика, но не съм доволен от ефекта.

Като цяло сценариите за приложение зависят само от вашето въображение и няма да натоварят много портфейла, тъй като продуктите с етикет „Работи с Apple HomeKit вече не е единственият наличен избор.

В следващата статия от цикъла вие и аз ще се забавляваме малко: ще преподаваме нашите Raspberry Pi изтегляйте торенти, нека го превърнем в мощен медиен център и ретро конзола за игри.

Остани настроен!

Сподели
Юрий Станиславски

Разработчик на SwiftUI. Колекционирам винил. Понякога журналист. Собственик на Nota Record Store.

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани*