Root NationProgramvaraInstruktionerRaspberry Pi i hemmets ekosystem: funktioner och exempel (del 1)

Raspberry Pi i hemmets ekosystem: funktioner och exempel (del 1)

-

För en tid sedan jag köpt enkorts minidator Raspberry Pi 4 (aka "hallon» bland amatörer), som inte särskilt förstår hur och till vad det kan användas hemma. Det var snarare en annan teknisk leksak, och för absolut acceptabla pengar, så du hade råd att experimentera. När jag ser framåt kan jag säga att jag för närvarande har sådana tjänster som en nätverksomfattande annonsblockerare som körs på min RPi4 AdGuard Hem, backup lagringssystem Apple Time MachineHomebridge att lägga till icke-certifierade enheter till ekosystemet Apple HomeKit, ett program för att ladda ner torrents Växellåda, mediaserver PLEX och en retro spelkonsol RetroPie. Jag planerar att experimentera med en lösenordshanterare som är självvärd Bitwarden, en öppen källkodsanalog av det berömda 1Password. Inte för lite för en sån liten i storleken av ett cigarettpaket, eller hur?

Raspberry Pi 4 med tangentbord och mus

I denna cykel med två artiklar kommer jag att försöka berätta så detaljerat som möjligt hur jag installerade och konfigurerade allt detta.

Den första artikel kommer att vara mer användbar för vallmobönder, eftersom den berör specifikt för ekosystemet Apple poäng, även om avsnittet som handlar om AdGuard kommer att vara av intresse för användare av alla stationära eller mobila operativsystem.

I den andra artikeln överväga samhällsomfattande tjänster som kan vara användbara för alla utan undantag. Och du och jag kommer att utvecklas som vanliga människor - från enkla till komplexa.

Raspberry Pi förberedelse

Det bör noteras att de tidiga revisionerna av Raspberry Pi var ganska svaga när det gäller hårdvara, så varje mjukvaruutvecklare uppfattade den här datorn som en enuppgiftsmaskin. På grund av detta kommer alla tjänster som kan köras på RPi som standard att erbjudas som en färdig bild av operativsystemet. Jag laddade ner den, spelade in den på ett SD-kort, satte in den i RPi och slog på den färdiga datorn med den installerade tjänsten. Men vår uppgift är att lansera flera tjänster samtidigt, eftersom den nuvarande revisionen tillåter det. Därför kommer vi att installera dem som applikationer.

Låt oss anta att du redan har anslutit en Raspberry Pi med ett "rent" Raspbian-system till ett lokalt nätverk. Om du är nybörjare och inte vet var du ens ska börja, börja med  officiella instruktioner (följ länken - en underbar steg-för-steg-guide med många interaktiva illustrationer), och fortsätt sedan till nästa steg.

Steg 1

Först och främst måste du aktivera åtkomst av SSH till din Raspberry Pi. För att göra detta måste du utföra några enkla steg:

  • Öppna fönstret Raspberry Pi Configuration i menyn Inställningarces" operativ system
  • Klicka på "Interfaces»
  • Välj Aktivera bredvid SSH
  • Klicka på knappen "OK" för att ändringarna ska träda i kraft

Om du har Raspbian Lite installerat utan ett grafiskt gränssnitt, i terminalen på Raspberry Pi själv, kör följande kommandon:

sudo systemctl aktivera ssh sudo systemctl starta ssh

Åtkomst aktiverad.

- Annons -

Jag har en macOS-dator, så jag kan gå direkt till nästa steg, precis som Linux-datorägare. Windows 10-användare fick också en inbyggd OpenSSH-klient som en del av sitt operativsystem för en tid sedan, men vissa manipulationer kan krävas för att aktivera den.

Öppna en Windows-kommandotolk eller ett PowerShell-skal (vilket du föredrar) och skriv följande kommando:

Get-WindowsCapability -Online | ? Namn som "OpenSSH*"

Om SSH-klienten är installerad kommer svaret på kommandot att vara ungefär så här:

Windows 10 OpenSSH installerat

Om OpenSSH.Client säger till oss i fältet Tillstånd att det är NotPresent, är det snabbaste sättet att aktivera det att ange följande kommando:

Add-WindowsCapability -Online -Name OpenSSH.Client*

Detta slutför det första steget av förberedelser, inklusive för Windows-användare. Med tanke på arten av Raspberry Pi och det faktum att Raspbian OS faktiskt är en annan version av Linux, måste vi göra en hel del arbete på kommandoraden. Det kan tyckas ovanligt för vissa, men tro mig, det finns inget svårt eller irreparabelt i detta, så var modigare. Allt kommer att lösa sig.

Steg 2

Nu måste du se till att din Raspberry Pi alltid får samma interna IP-adress på det lokala nätverket. Det enklaste sättet att göra detta är i routerns inställningar.

Jag använder ett trekomponents MESH-system  ASUS ZenWiFi Mini med standardwebbgränssnittet för vilken router som helst från detta företag. För att länka MAC- och IP-adresser måste du välja en enhet från listan över anslutna enheter och i popup-fönstret helt enkelt ange önskad IP. I mitt fall valde jag 192.168.50.10 bara för att det är lättare att komma ihåg.

ASUS WiFi-inställningar

I routrar från andra tillverkare kan menyalternativet kallas annorlunda, men dess kärna kommer att förbli densamma - utfärdande av statiska lokala IP-adresser till anslutna enheter.

Steg 3

Vi startar Terminal (kommandorad, PowerShell, etc.) på din dator från standarduppsättningen macOS, Linux eller Windows.

Vi dödar laget

ssh pi@

(var istället för <ip address of your server> vi infogar IP-adressen för "hallon" från föregående steg) och vi ser ungefär följande bild:

Raspberry Pi ssh lösenord

Här måste du döda lösenordet för din Raspberry Pi, som du angav under den första installationen.

- Annons -

Viktigt! Lösenordet kommer inte att visas på skärmen när du anger det. Och "stjärnorna" kommer inte heller att visas. Du måste skriva in lösenordet bokstavligen "blindt" och trycka på Enter.

Om lösenordet skrivs in korrekt blir resultatet ungefär så här:

Raspberry Pi ssh enterHej, du är inne i din Raspberry Pi. Välkommen! Du kan gå vidare till inställningarna för enskilda tjänster. Och vi börjar med det enklaste.

AdGuard Home Logotyp

Installera och konfigurera AdGuard Home på Raspberry Pi

AdGuard Hem, enligt utvecklarens vittnesmål - "ett kraftfullt nätverksverktyg mot reklam och spårning. Med Internet of Things ökande roll blir det viktigare och viktigare att hantera hela ditt nätverk. När AdGuard Home har konfigurerats täcker ALLA dina hemenheter utan behov av programvara på klientsidan.”

Enkelt uttryckt är det ett annonsfilter som inte fungerar som separata appar eller webbläsarplugin på var och en av dina enheter, utan en universell lösning som täcker hela ditt hemnätverk med filter.

Låt oss återgå till terminalfönstret (låt oss hålla med om att Windows PowerShell och andra skal för att ange kommandon, i texten kommer jag helt enkelt att anropa Terminal, okej?), Vi kör följande kommandon som hämtar och packar upp AdGuard Home-arkivet:

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

Allt som återstår är att installera tjänsten och köra den:

cd AdGuardHome sudo ./AdGuardHome -s installation

Resultatet kommer att se ut ungefär så här:

AdGuard Home installerat

AdGuard Home är redan installerat! Det var enkelt, eller hur?

Nu måste du besöka webbgränssnittet för den nyinstallerade tjänsten. Starta webbläsaren (Safari, Chrome, Firefox eller vad du nu har - det spelar ingen roll) och döda i adressfältet https://<ip address of your server>:3000. I mitt fall är det, som vi minns, https://192.168.50.10: 3000.

Du kommer att se en inledande installationsguide steg för steg. Om du är mer bekväm med gränssnittet på ett annat språk kan du omedelbart byta till det önskade. På listan finns bland annat ukrainska, polska och ryska.

Raspberry Pi AdGuards välkomstskärmI det tredje steget kommer du att bli ombedd att skapa en AdGuard Home-användare och komma med ett lösenord. På den fjärde kommer det att förklaras att Raspberry Pi IP-adressen (samma 192.168.50.10 i mitt fall) måste registreras som DNS i lämplig del av routerinställningarna. Gör det här:

ASUS routerns DNS-inställningar

I routrar från andra tillverkare kommer den önskade inställningspunkten att ligga ungefär på samma väg.

Därefter går vi till inställningarna för AdGuard Home själv, som fortfarande är oskyldigt ren.

Raspberry Pi AdGuard Home ren installation

Om du har en Smart TV Samsung, LG, eller liknande, gå till menyn "Filter - Lägg till svartlista" och där "Välj från listan". Aktivera motsvarande blocklista.

Raspberry Pi AdGuard Home TV-filter

Nu måste du lägga till ryska/ukrainskspråkiga annonsfilter manuellt. Klicka på "Lägg till svart lista" igen, sedan på "Lägg till din lista" och ange sekventiellt följande värden i motsvarande fält:

Ім'я URL-adress
AdGuard Base filter https://filters.adtidy.org/extension/chromium/filters/2.txt
AdGuard ryskt filter https://filters.adtidy.org/extension/chromium/filters/1.txt
AdGuard spårningsskyddsfilter https://filters.adtidy.org/extension/chromium/filters/3.txt

Till att börja med är dessa filter tillräckligt.

Som jämförelse brukar jag använda exler.ru, en sida full av klassiska banners. Till vänster - före, till höger - efter applicering av filter.

Uppdateringen av AdGuard Home sker i manuellt läge, men den börjar bokstavligen med en knapp och tar några sekunder, utan att behöva ingripa.

Raspberry Pi AdGuard Home-uppdatering

Det är allt i allmänhet. Från och med nu är alla dina hemenheter praktiskt taget annonsfria. Ett obehagligt undantag här är klientprogrammet YouTube på konsoler Apple TV, men här träder begränsningarna för tvOS-arkitekturen i kraft, så AdGuard är maktlös i det här fallet.

Apple Time Machine-logotyp

Installera och konfigurera Time Machine på Raspberry Pi

Enligt Wikipedia är Time Machine ett backupsystem utvecklat Apple och är inbyggt i Mac OS X Leopard och senare versioner av macOS, samt ett program med samma namn som låter dig se innehållet i säkerhetskopior och återställa både enskilda filer och operativsystemet som helhet.

Enkelt uttryckt är det ett säkerhetskopieringssystem per timme inbyggt i macOS som kräver en kompatibel filserver. Du kan göra Raspberry Pi till just en sådan server om du ansluter en extern USB-hårddisk till den.

För att Time Machine ska fungera korrekt är endast Raspberry Pi 4 eller senare lämplig, med USB 3.0-portar (i tidigare modeller är portarna långsammare) och en lämplig hårddisk med en volym på 1-3 terabyte (med extern ström, om den är en 3,5-tums disk).

Viktigt! Det finns två nätverksprotokoll som tillåter macOS att lagra Time Machine-data på ett lokalt nätverk. Föråldrad Netatalk, eller modernare Samba. I princip kan du använda vilken som helst av dem för Time Machine-uppgifter. Internet är fullt av instruktioner för att organisera processen genom Netatalk, och alla dessa instruktioner är av olika grad av nyckfullhet, men min uppgift är att ge det enklaste, garanterade arbetsalternativet. Och din uppgift är att välja den som passar dig. Så i artikeln kommer vi att överväga båda.

Förberedelse av hårddisken

Vi ansluter hårddisken till USB 3.0-porten på vår Raspberry Pi, kommer åt den i terminalen via SSH och kör kommandot lsblk, som visar en lista över anslutna enheter i konsolen. Vi är uppmärksamma på storleken på disken för att vara säker på vilken vi ska arbeta med, dess namn och monteringspunkt, i mitt fall är det enkelt sda, din kommer troligen fortfarande att ha en monteringspunkt /dev/sda‌. Vi behöver henne.

Raspberry Pi HDD-formatering

Ange kommandot sudo fdisk /dev/sda (eller med någon annan monteringspunkt som är relevant i ditt fall), klicka sedan på tangentbordet m, för att se hela listan med kommandon. Du kan till och med kopiera den till en separat textfil (eller använd tipset nedan).

GPT M ange skyddande/hybrid MBR Generisk d ta bort en partition F lista ledigt opartitionerat utrymme l lista kända partitionstyper n lägg till en ny partition p skriva ut partitionstabellen t ändra en partitionstyp v verifiera partitionstabellen i skriva ut information om en partition Övrigt m skriv ut den här menyn x extra funktionalitet (endast experter) Skript Jag laddar disklayout från sfdisk-skriptfil O dumpa disklayout till sfdisk-skriptfil Spara & avsluta w skriva tabell till disk och avsluta q avsluta utan att spara ändringar Skapa en ny etikett g skapa en ny tom GPT-partitionstabell G skapa en ny tom SGI (IRIX) partitionstabell o skapa en ny tom DOS-partitionstabell s skapa en ny tom Sun-partitionstabell

Vår uppgift är att göra delete a partition så många gånger som behövs för att helt rensa disken från partitioner, och skapa sedan en ny med add a new partition. Glöm inte att skriva ner ändringarna, dvs write table to disk and exit. Klarade du dig? Perfekt.

Nu skapar vi ett filsystem på disken. Den vanliga ext4 är tillräckligt, trots mångfalden av åsikter på nätverket att disken måste formateras i ett av filsystemen Apple. I verkligheten komplicerar detta bara förberedelseprocessen utan att medföra någon fördel alls.

Ange kommandot sudo mkfs.ext4 /dev/sda1. Gjort

Nu måste vi ta reda på UUID för vår nya partition.
Låt oss gå in ls -lha /dev/disk/by-uuid och vi ser något sånt här:

Raspberry Pi HDD-formatering

Kopiera UUID från vårt sda1 till en separat textfil om du inte använder det avancerade urklipp med historik.

Nu måste vi skapa en mapp där vi ska montera vår disk och ge den lämpliga åtkomsträttigheter.

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

Montera skivan. För att göra detta, redigera konfigurationsfilen med kommandot

sudo nano / etc / fstab

nano i det här fallet namnet på redigeraren som är installerad i systemet, som jag föredrar att använda.

Gör ändringar i den öppnade filen genom att lägga till följande rad i den

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

men med ditt UUID från föregående steg. Det ska se ut så här:

Raspberry Pi HDD-formatering

Spara ändringarna genom att klicka Ctrl + O і ange, och avsluta sedan redigeraren genom att klicka Ctrl + X.

Starta om Raspberry Pi med kommandot sudo reboot och efter omstarten logga in igen via SSH.

Döda laget df -h och se till att enheten är monterad på systemet vid punkten /mnt/tm.

Utmärkt, skivan är redo för arbete.


Installation och konfiguration av NETATALK (alternativ 1)

Vi installerar:

sudo apt-get install netatalk -y

Vi konfigurerar allt i samma editor nano:

sudo nano /etc/netatalk/afp.conf

Och vi gör innehållet i konfigurationsfilen exakt så här:

‌; ; Netatalk 3.x konfigurationsfil; [Global] ; Globala serverinställningar mimic model = TimeCapsule6,106 [Time Machine] sökväg = /mnt/tm tidsmaskin = ja giltiga användare = pi ; [Hem] ; baserat regex = /xxxx ; [Min AFP-volym] ; sökväg = /sökväg/till/volym ; [Min tidsmaskinvolym] ; sökväg = /sökväg/till/säkerhetskopiering ; tidsmaskin = ja`

Glöm inte att spara resultatet med hjälp Ctrl + O → Enter → Ctrl+X

Filen är nu redigerad nsswitch.conf, lägga till i slutet av raden hosts: ytterligare värden mdns4 mdns.

sudo nano /etc/nsswitch.conf

Resultatet ska se ut så här:

# /etc/nsswitch.conf
#
# Exempelkonfiguration av GNU Name Service Switch-funktionalitet.
# Om du har paketen `glibc-doc-reference' och `info' installerade, försök:
# `info libc "Name Service Switch"' för information om denna fil.

passwd: filer
grupp: filer
shadow: filer
gshadow: filer

värdar: filer mdns4_minimal [NOTFOUND=retur] dns mdns4 mdns
nätverk: filer

protokoll: db-filer
serviceces: db-filer
etrar: db-filer
rpc: db-filer

nätgrupp: nis

Återigen sparar vi ändringarna igenom Ctrl + O → Enter → Ctrl+X

Sedan återstår bara att starta tjänsterna:

sudo service avahi-daemon start sudo service netatalk start

Och kolla deras prestationer i lag:

sudo-tjänstens netatalk-status

att

sudo tjänst avahi-daemon status

Resultatet ska se ut så här:

Netatatlk Statusmeddelande

Allt som återstår är att gå till macOS-inställningar, välj avsnittet Time Machine och se vår Raspberry Pi i de tillgängliga enheterna.

Time Machine Netatalk

Vi anger som en inloggning pi, som lösenord - det som används för SSH-åtkomst.

Klart, standardalternativet via Netatalk är konfigurerat. Nu, närhelst din Mac är på samma lokala Wi-Fi-nätverk som Raspberry Pi, kommer säkerhetskopior automatiskt att göras till din enhet.

Överväg nu ett alternativ i form av Samba-protokollet, som anses mer tillförlitligt.

Installera och konfigurera SAMBA (alternativ 2)

Vi installerar Samba:

‌sudo apt-get install samba

Vi ställer in användarlösenordet (för samma pi-användare) och redigerar konfigurationen. Första lösenordet:

‌sudo smbpasswd -a pi (du kan använda samma som för SSH).

Och sedan är Samba-konfigurationen i samma editor nano:

‌sudo nano /etc/samba/smb.conf

Blockera innehåll [global] ska se ut så här i slutändan:

[global] säkerhet = användarkryptera lösenord = sann map till gäst = dåligt användarens gästkonto = ingen

I slutet av konfigurationsfilen lägger du till ett nytt block:

[TimeCapsule] kommentar = Time Capsule sökväg = /mnt/tm bläddringsbar = ja skrivbar = ja skapa mask = 0600 katalogmask = 0700 spotlight = inga vfs-objekt = catia fruit streams_xattr fruit:aapl = ja frukt:tidsmaskin = ja

Och vi sparar resultatet: Ctrl + O, ange, Ctrl + X.

Starta om tjänsten:

‌sudo systemctl starta om smb.service

Gjort Det återstår, som i fallet med Netatalk, att hitta disken i listan som presenteras i Time Machine-inställningspanelen.

Homebridge logotyp

Installera och konfigurera Homebridge på Raspberry Pi

Tja, vi har framgångsrikt nått det mest massiva blocket av artikeln.

Homebridge är en NodeJS-baserad server som använder Homekit API för ocertifierad enhetsintegration och initialt stöd för Apple Home Kit.

Svårigheten med att konfigurera Homebridge är att dess plugins stöder en mängd olika protokoll och enheter, vilket gör dem synliga och hanterbara från Apple HomeKit. Följaktligen är varje plugin konfigurerad på sitt eget sätt, ofta helt annorlunda än sin motsvarighet för en annan enhet.

Låt oss börja. Som vanligt kommer vi åt Raspberry Pi via SSH och utför flera steg.

Installerar Node.js

Du har möjlighet att kopiera och klistra in hela kodblocket i terminalen. I de allra flesta fall räcker detta. Men om det hände att installationen vid något skede misslyckades, skriv in de återstående kommandona från blocket ett efter ett.

# 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 # testnoden fungerar nod -v # uppgradera npm (version 6.13.4 har problem med git-beroenden) sudo npm install -g npm

Installera Homebridge och Homebridge Config UI X

Till att börja med, låt oss sätta grunden med följande kommando...

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

...och kör den som en systemtjänst.

‌sudo hb-service install --user homebridge

Konfigurera Homebridge via webbgränssnittet

Gå till adressen i webbläsaren på din dator http://<ip address of your server>:8581 var istället för <ip address of your server> fortfarande samma IP från början av artikeln, i mitt fall

Standardvärdena för användaren och lösenordet är desamma: admin

Jag rekommenderar att du omedelbart går till menyalternativet "Användare" och ändrar standardvärdena där till säkrare.

Raspberry Pi Homebridge Användarinställningar

Gjorde du det? Utmärkt, vi kommer att konfigurera plugins härnäst.

Att ha en mängd olika utrustning hemma bestämmer vilka plugins vi behöver installera. Det är mycket möjligt att i ditt fall kommer uppsättningen av plugins att vara något annorlunda, men med exemplet på min konfiguration kan du få en uppfattning om vilka nyanser du kan stöta på när du konfigurerar dem.

Min uppsättning plugins i skrivande stund:

  • Homebridge UI (ingår i grundkonfigurationen och har inga egna inställningar)
  • Nyans (för ljusstyrning Philips Nyans)
  • Apple TV-kontroll (för att styra set-top-boxar Apple TV)
  • Mqttthing (för ledningen Guyvers lampa з firmware från Whilser)
  • Samsung Tizen (för Smart TV-kontroll Samsung med Tizen OS)
  • Väder Plus (för automatisering av ett smart hem beroende på väderförhållanden)
  • Yeelight Wi-Fi (för lampstyrning Xiaomi Yeelight)

Låt oss gå en efter en.

Inställningar för Hue-plugin

För att installera något plugin-program i Homebridge räcker det att gå till motsvarande flik i webbgränssnittet, ange namnet på det önskade strykjärnet i sökfältet och välj plug-in från listan över tillgängliga. Jag rekommenderar att du uppmärksammar etiketten "🛡Verified", versionen och uppdateringsdatumet för plugin-programmet (om författaren inte har uppdaterat det på ett par år är det en stor chans att det inte fungerar) och se till att öppna länken till pluginens hemsida, som vanligtvis beskrivs i detalj installationsprocessen.

Raspberry Pi Homebridge Hue

Klicka på "Installera"-knappen på det önskade plugin-programmet och vänta en minut eller två tills plugin-programmet är installerat.

Plugin Homebridge Hue ganska lätt att sätta upp. Du behöver bara ställa in standardnamnet som kommer att visas i Homebridge-loggarna och välja vilken typ av kompatibla enheter som ska hanteras av plugin. I mitt fall är det bara belysning Philips Hue, och även den första versionen av navet, är rund.

Efter att ha fyllt i data och nödvändigtvis sparat resultatet behöver du bara trycka på mittknappen på navet Philips Nyans och vänta 15 sekunder tills pluginet känner igen hubben. Gjort!

Allt som återstår är att plocka upp iPhone, rikta kameran mot QR-koden som finns på fliken "Status" i Homebridges webbgränssnitt och lägga till den som en brygga till ditt HomeKit.

Om HomeKit som sådant redan har konfigurerats i förväg (vald Apple TV eller iPad som huvudnav, tillagda rum, etc.), kommer steg-för-steg-guiden omedelbart erbjuda att distribuera alla hittade Hue-belysningsenheter till motsvarande rum och ge varje enhet ett namn. I mitt vardagsrum har jag till exempel "Ceiling 1", "Ceiling 2" och "Ceiling 3" lampor, men med hjälp av HomeKit själv på iPhone (objektet "Combine with other devices") kombinerade jag dem till en logisk grupp "Övre ljus", det är bekvämare för mig. Samtidigt, i samma vardagsrum, har jag en "Golvlampa" och "Nattlampa" - separata enheter, men Siri förstår perfekt en mängd olika kommandon utan ytterligare träning:

  • "Tänd ljuset i vardagsrummet (alla lampor i vardagsrummet lyser)"
  • "Tänd golvlampan"
  • "Ljusstyrkan på nattljuset är tjugo procent"
  • "Tänd nattlampan"
  • "Stäng av taklampan"
  • "Blå färg på golvlampan"
  • "Släck lampan i vardagsrummet (släcker alla lampor i vardagsrummet)"
  • "Släck alla lampor (stänger av belysningen i hela lägenheten)"

Och så vidare. Om du har den rätt konfigurerad Apple-familj, relevanta och absolut logiska kommandon blir automatiskt tillgängliga för alla medlemmar som ingår i din familj Apple ID.

Plugin-inställningar Apple TV-kontroll

Jag använder denna plugin för ett enda syfte: att skapa en extra switch för konsolen Apple TV. Faktum är att i Apple HomeKit har förmågan att programmera, till exempel, inkludering av uppspelning av ett album eller en spellista enligt ett förutbestämt villkor, såsom "När jag kommer hem." Och allt skulle vara bra, men om set-top-boxen sover vid den här tiden kan närvaron av ett sådant scenario inte väcka den. Men en extra virtuell switch är möjlig. Vi gick:

Steg 1. Vi installerar en tjänst för att fånga inloggningsuppgifter Apple TV

sudo npm installera -g nod-appletv-x

Steg 2. Vi letar efter set-top-boxar tillgängliga på det lokala nätverket Apple TV

sudo appletv par

Steg 3. Vi skapar ett par med önskat prefix. Konsolutgången kommer att se ut ungefär så här:

% appletv-par ✔ Ansluter till vardagsrummet ✔ Initierar parkoppling? Ange den 4-siffriga pinkoden som för närvarande visas i Living Room

På steget ‌? Enter the 4-digit pin that's currently being displayed on... på skärmen på din valda set-top box Apple TV, kommer en vanlig fyrsiffrig kod att visas för ihopkoppling med fjärrkontrollen (i vårt exempel kommer det att vara det 1234), som måste dödas precis där i konsolen.

% appletv-par ✔ Ansluter till vardagsrummet ✔ Initierar parkoppling? Ange den 4-siffriga stift som för närvarande visas på Living Room 1234 ✔ Slutför parningsuppgifter: 77346115-ED48-46A8-A288-

Istället <snip> det kommer att finnas flera rader av en blandning av bokstäver och siffror, de måste kopieras till en separat textfil i sin helhet, med början från den första siffran på raden Credentials:. Lite senare dessa samma Referenser vi kommer att behöva det väldigt mycket.

Steg 4. Lägg till följande block i konfigurationsdelen av Homebridges webbgränssnitt på fliken "Konfiguration". "platforms": [

{ "plattform": "AppleTvPlatform", "name": "Apple TV-plattform",
   "Devices": [
      {
         "name": "Gästhus",
         "credentials": "77346115-ED48-46A8-A288-",
         "isOnOffSwitchEnabled": sant,
         "onOffSwitchName": "Apple TV" } ] },

...och i rad "credentials": infoga bara hela innehållet i textfilen från föregående steg.

Vi väljer vilket namn som helst för prefixet, "Gästhus" här är bara till exempel.

Steg 5. Vi installerar själva pluginet.

På fliken "Moduler" i Homebridges webbgränssnitt skriver du i sökfältet  Apple TV Remote och tryck på knappen "Installera". Efter att ha installerat insticksprogrammet kommer du att uppmanas att starta om Homebridge, detta görs genom att trycka på lämplig knapp.

Raspberry Pi Homebridge omstartsknapp

Det är det, en ny switch har dykt upp på iPhone i HomeKit, som nu kan läggas till i alla scenarier där du behöver slå på set-top-boxen automatiskt.

Röstkommandon som "Siri, slå på Apple TV" eller "Siri, stäng av Apple TV" stöds också automatiskt. Dessutom, om du konfigurerar flera set-top-boxar i olika rum, kommer Siri också automatiskt börja förstå begäran om att stänga av den Apple TV i ett specifikt rum eller allt på en gång.

Faktum är att detta plugin utvecklas snabbt, det vet redan hur man känner igen Bundle ID för applikationer som körs på konsolen och ingriper i deras arbete, till exempel att pausa en film på Netflix. Men du kommer att ta itu med detta på egen hand, om det finns en önskan.

Konfigurera Mqttthing-plugin

Jag använder detta plugin med Guyver-lampan som nämns ovan - en hemmagjord lampa med ett Arduino-kort och en 16x16-matris av adresserbara lysdioder. Själva lampan måste fyllas med firmware från Whilser. Må kraften vara med dig!

Gyver Lampa med Grogu

Steg 1. Installera MQTT-mäklaren

Vi utför ett antal kommandon. De fungerar inte i omgångar, så vi lägger in dem i konsolen en i taget.

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sourceces.list.d/
sudo wget 
sudo apt uppdatera
sudo apt installera mygga mygga-klienter
sudo /etc/init.d/mosquitto stop
sudo nano /etc/mosquitto/mosquitto.conf

Det sista kommandot startar den redan bekanta editorn nano, där vi ersätter innehållet i den öppnade filen med följande:

# Placera din lokala konfiguration i /etc/mosquitto/conf.d/ # # En fullständig beskrivning av konfigurationsfilen finns på # /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 topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true include_dir /etc/mosquitto/conf.d

Som vanligt, Ctrl + O, ange, Ctrl + X, och starta sedan om mäklaren med kommandot

‌sudo /etc/init.d/mosquitto start

MQTT-mäklare installerad.

Steg 2. Installerar plugin-programmet Mqttthing

Vi brukar gå till fliken "Moduler" i Homebridges webbgränssnitt, sök Mqttthing och klicka på "Installera".

Steg 3. Mqttthing-plugin-konfiguration

Varje Guyver-lampa har sitt eget ESP-chip-ID. Till exempel ESP-3bd20b. Om du skapade och blinkade lampan själv, är du perfekt informerad om det, om inte, sätt lampan i parningsläge, och när du är ansluten till ditt Wi-Fi-nätverk kommer lämplig dialogruta på iPhone att visa det nödvändiga ID:t . Skriv ner det.

  1. Stäng av strömmen till lampan;
  2. Stäng av routern;
  3. Slå på strömmen till lampan;
  4. På iPhone, gå till "Inställningar → WiFi"
  5. Välj ett osäkrat nätverk med ett SSID som "ESP12345678" och klicka på "Konfigurera WiFi" i dialogrutan
  6. Chip-ID kommer att krävas längst ned i konfigurationsfönstret

Om lampan redan har konfigurerats tidigare kan du helt enkelt stänga av den, slå på routern och slå på lampan igen - de gamla inställningarna kommer att hämtas. Om detta är den första anslutningen av lampan, slå på routern och välj ditt nätverk i inställningslistan, ange sedan all nödvändig information, som lösenordet för hemmets Wi-Fi och IP-adressen för Raspberry Pi.

Öppna fliken "Konfiguration" i Homebridges webbgränssnitt och i avsnittet "accessories": [ ange en så enorm kodbit och ersätt det tidigare ID:t med ESP-3bd20b själv:

{ "accessory": "mqttthing", "type": "lightbulb", "name": "Nightlight", "url": "http://127.0.0.1:1883", "mqttPubOptions": { "retain": false } , "topics": { "getOn": "homeassistant/light/ESP-3bd20b/status", "setOn": "homeassistant/light/ESP-3bd20b/switch", "getBrightness": "homeassistant/light/ESP-3bd20b /brightness/status", "setBrightness": "homeassistant/light/ESP-3bd20b/brightness/set", "getRGB": "homeassistant/light/ESP-3bd20b/rgb/status", "setRGB": "homeassistent/light /ESP-3bd20b/rgb/set" }, "onValue": "ON", "offValue": "OFF" }, { "accessory": "mqttthing", "type": "television", "name": "Nattljuseffekter", "url": "http://127.0.0.1:1883", "topics": { "setActive" : " homeassistant/light/ESP-3bd20b/switch", "getActive": "homeassistent/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" ": "Fire" }, { "name": "Rainbow Vert.", "value": "Rainbow Vert." }, { "name": "Rainbow Horrors.", "value": "Rainbow Horrors." } , { "name": "Color Change", "value": "Color Change" }, { "name": "3D Madness", "value": "3D Madness" }, { "name": "3D Clouds" , " value": "3D Clouds" }, { "name": "3D Bench", "value": "3D Bench" }, { "name": "3D Plasma", "value": "3D Plasma" } , { "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": "Snöfall", "value": "Snöfall" }, { "name": "Matrix", "value": "Matrix" }, { "name": "Eldflugor", "value": "Eldflugor " }, { "name": "Aquarium", "value": "Aquarium" }, { "name": "Starfall", "value": "Starfall" }, { "name": "Paintball", "value ": "Paintball" }, { "name": "Spiral", "value": "Spiral" }, { "name": "Varmt ljus", "value": "Varmt ljus" }, { "name ": "Pendulum", "value": "Pendel" }, { "name": "Blink", "value": "Blink" }, { "name": "Polis siren", "value": "Polis siren " } , { "name": "Drift", "value": "Drift" }, { "name": "Flock", "value": "Flock" } ], "onValue": "ON", "offValue ": "AV" }

Gjort I Apple Två nya enheter har dykt upp i HomeKit, lampan "Night Light" och "Night Light Effects". De är sammanlänkade och deras syfte är ganska tydligt. Om så önskas kan du byta namn på dem i konfigurationen.

Tyvärr skrev författaren till den fasta programvaran parametrarna på ryska, så med en sådan konfiguration måste du också kontakta Siri på ryska. Men om du pratar med Siri på engelska kan du fixa varje kodpunkt så här:

{ "name": "Brand", "value": "Ogon" },

Då kommer resultatet på iOS att se ut så här:

Gyver Lampa Siri Patched

Plugin-inställningar Samsung Tizen

Steg 1. Kontrollerar TV:ns kompatibilitet

I kontrollpanelen på routern, ge TV:n en statisk lokal IP, som vi gjorde för Raspberry Pi i början. Till exempel, i mitt fall är det 192.168.50.100.

Gå till adressen i webbläsaren på din dator  http://TV_IP:8001/api/v2, vilket i mitt fall betyder http://192.168.50.100:8001/api/v2/

Om du ser en sida med en massa serviceinformation som ser ut ungefär så här...

{"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": ......

...då betyder det att det finns chanser att lyckas. Men du måste förstå att inte alla modeller av TV-apparater Samsung kompatibel med plugin. Till exempel kommer de som kräver PIN-identifiering inte att fungera.

Kopiera fältvärdet från servicesidan"wifiMac": och förbered fjärrkontrollen från TV:n, låt den vara till hands.

Steg 2. Installerar plugin

Inget nytt, vi letar efter ett plugin på begäran Samsung Tizen, välj önskad (författarskap @tavicu) och installera.

hallon Pi Samsung Tizen plugin

Efter lanseringen, gå till inställningarna och ange följande värden där:

hallon Pi Samsung Tizen-plugininställningar

Namnet "TV" är ganska tillräckligt, eftersom Siri perfekt förstår begäran om att slå på TV:n i vardagsrummet, där du knappt har 2 TV-apparater. Hon förstår också perfekt kommandot "slå på TV:n i sovrummet", utan att dra TV:n i vardagsrummet en gång till.

Steg 3. Ansluta till en TV

Allt är enkelt här: ta upp TV:ns fjärrkontroll och vänta tills snabbmenyn visas på skärmen med en varning om ett försök från någon enhet att ta kontroll över TV:n. TV:n måste naturligtvis vara påslagen. När en motsvarande begäran visas i det övre högra hörnet av skärmen, använd TV:ns fjärrkontroll för att välja knappen Allow. Gjort

Steg 4. Lägg till TV:n Apple HomeKit

Ja, till skillnad från tidigare fall kommer TV:n inte magiskt att visas i listan över enheter i ditt hem. Därför tar vi iPhone i våra händer och steg för steg:

  1. Starta Home-appen och på huvudsidan trycker du på + i det övre högra hörnet;
  2. Välj "Lägg till tillbehör";
  3. Klicka på "Ingen kod eller skanning" längst ned på skärmen;
  4. På nästa skärm väljer du din TV;
  5. När du uppmanas att ange HomeKit-inställningskoden, klicka på "Använd kamera";
  6. Rikta kameran mot QR-koden på fliken Homebridge Status.

Steg 5. Plugin-inställningar

Efter att ha grävt djupt i dokumentation till plugin-programmet kan du få Siri att köra specifika program på TV:n från listan över installerade, pausa dem och så vidare. Nu, som en övning, kommer vi att ändra funktionaliteten för en enda knapp i den virtuella fjärrkontrollen Apple Fjärrkontroll, inbyggd i "gardinen" i iOS Control Center.

Detta är knappen ℹ︎ (information), som standard visar den information om det aktuella bildläget i den övre delen av TV-skärmen. Räck samtidigt från fjärrkontrollen Apple Det finns inget sätt att lägga till Remote till listan över program som är installerade på TV:n. Och vi ska fixa det nu.

Apple iOS Remote för Samsung TV

Gå till plugininställningarna, avsnittet "Key Mapping", leta efter fältet "INFORMATION" och ändra dess värde till KEY_HOME. Starta om Homebridge och voila - knappen ℹ︎ i den virtuella fjärrkontrollen tar upp huvudapplikationsmenyn! Den virtuella fjärrkontrollen var vettig.

Konfigurera plugin-programmet Weather Plus

Steg 1. Skapa ett OpenWeather-konto

Låt oss gå till webbplatsen https://home.openweathermap.org och registrera ett konto, det bästa är att det är gratis.

Steg 2. Generering av API-nyckel

OpenWeather

Gå till önskad flik i OpenWeathers personliga konto och, efter att ha angett nyckelns namn, klicka på knappen "Generera".

OpenWeather

Steg 3. Installera och konfigurera Weather Plus-plugin

Vi söker efter och installerar önskat plugin med den vanliga metoden och fortsätter sedan till dess inställningar. Resultatet borde se ut ungefär så här:

I prognosen är jag personligen bara intresserad av värdena för nästa timme, så de andra är helt enkelt inaktiverade:

Raspberry Pi OpenWeather prognosinställningar

Och för att onödiga virtuella vädersensorer inte ska vara irriterande med onödiga aktiveringar, inaktiverar vi dem i motsvarande avsnitt Dölj värden. Det är önskvärt att inaktivera:

  • Lufttryck
  • Molntäcke
  • Daggpunkt
  • Temperaturen uppenbar
  • Vindriktning
  • UV-index
  • Vindhastighet
  • Vindhastighet Max

Och klicka på "Spara" längst ner i inställningsfönstret.

Som ett resultat, i gränssnittet Apple HomeKit kommer att visa temperatur- och luftfuktighetsvärden för den kommande timmen, samt två virtuella sensorer "Snö" och "Regn", som kan användas i olika scenarier. Till exempel har jag programmerat HomeKit-automation, där, när regn eller snö dyker upp i prognosen för den närmaste framtiden, visar Guyver-lampan motsvarande pöl eller fallande snöflingor-effekt i en minut. Samtidigt aktiveras effekten endast mellan 8:00 och 23:00 och endast om någon är hemma. Vid andra tillfällen är det osannolikt att varningar om att ta ett paraply eller bära vattentäta kläder vara nödvändiga.

Konfigurera Yeelight WiFi-plugin

På förfrågan Yeelight Homebridge erbjuder många plugins för installation, inklusive en verifierad. Men jag föredrar en annan, där övergångarna mellan staterna görs så smidigt som möjligt, och inte i stil med "natten har fallit på lägret". Dessutom stöder den adaptiv belysning från Apple, men här är standardapplikationen Xiaomi aldrig lärt mig detta under året sedan den här funktionen dök upp i HomeKit.

Raspberry Pi Yeelight WiFi-plugin

Viktigt! Lämna bara en glödlampa på Xiaomi, för att undvika förvirring i början. Vi kommer att arbeta med henne.

Efter att ha installerat insticksprogrammet, starta om Homebridge och leta efter något så här i loggen: ‌[Yeelight] Received advertisement from ab1234. Detta är villkorat ab1234 och där är din glödlampa. Kanske blir värdet color-ab1234, då kommer du att arbeta med honom.

Gå till plugin-inställningarna och klistra in följande kod där:

{ "platform": "yeelight", "name": "Yeelight", "transitions": { "power": 400, "brightness": 400, "color": 1500, "temperatur": 1500 }, "multicast" : { "interface": "0.0.0.0" }, "defaultValue": { "color-ab1234": { "name": "Golvlampa", "blacklist": [ "set_hsv" ] } } }

Var istället för color-ab1234 bör vara värdet från din logg, och istället ‌"name": "Торшер" vilket namn som helst som återspeglar platsen där lampan skruvas in: Nattlampa, Lampett, Tak, etc.

Raspberry Pi Yeelight WiFi Plugin-inställningar

Spara den inklistrade koden genom att klicka på knappen Spara och starta om Homebridge. Klart, glödlampan har dykt upp i HomeKit under det namn du valde. Resten av Yeelight-lamporna läggs till en efter en genom att trycka på knappen "+ ADD PLATFORM" där i plugin-inställningarna på exakt samma sätt.

Uppdaterar Homebridge och Node.JS på Raspberry Pi

Att uppdatera (och återställa versionen) av själva Homebridge är ganska enkelt: du måste klicka på numret för den aktuella versionen i webbgränssnittet och välja önskad version från listan i dialogrutan.

Men med uppdateringen av Node.JS och NPM, som förr eller senare kommer att behövas när man installerar en uppdatering av något plugin, är det inte så lätt. Mer exakt är kommandona inte exakt de som beskrivs i standardinstruktionerna.

Node.JS uppdateras med kommandot:

sudo hb-service update-node

Och NPM så många som två i rad:

sudo npm cache clean -f
sudo npm installera -g npm

Tyvärr kan varken Homebridge själv, eller dess plugins eller "rails" den åker på uppdatera automatiskt. Och att gå in i kontrollpanelen varje dag och kolla om det är något nytt förr eller senare blir tråkigt. Så för att automatisera processen kom de med en speciell widget för iOS 14 som övervakar statusen för alla Homebridge-noder och kan signalera närvaron av uppdateringar eller eventuella problem visuellt och med PUSH-meddelanden.

Installera Homebridge Status-widgeten

Raspberry Pi Homebridge Status Widget

Som du kan se visar widgeten mycket användbar och inte så användbar information om din Homebridge, men den mest värdefulla delen av den är information om själva Homebridges tillstånd, dess plugins och Node.JS.

För att få själva widgeten behöver vi först dess överordnade applikation. Installera den på din iPhone från App Store.

Skrivbart
Skrivbart
Utvecklare: Simon B. Stovring
Pris: Fri+

Och nu börjar den ganska långa men spännande processen att installera widgeten. Vi kommer att installera det med hjälp av ett annat skript som heter ScriptDude inuti Scriptable-programmet. ScriptDude är bra eftersom det spårar ändringar i koden för massan av skript som finns i galleriet på adressen scriptables.net. Kanske hittar du något annat användbart för dig där, men nu har vi en uppgift och vi kommer att lösa den.

Steg 1. Installera Scriptable.app från App Store.

Steg 2. Öppna webbplatsen i iPhone-webbläsaren scriptdu.de och klicka på knappen Install ScriptDude.

scriptdu.de webbplats

Steg 3. På sidan som öppnas klickar du på knappen Kopiera installationsprogram och efter att ha fått ett meddelande om skriptkoden i vårt urklipp klickar du på knappen Öppna skriptbar.

Steg 4. Infoga innehållet i urklippet i det tomma fältet med titeln Untitled Script och tryck på Play-knappen ▶️.

Installation av ScriptDude

Steg 5. Klicka på länken på skärmen som öppnas Bläddra i scriptables.net och på nästa sida trycker du på taggen (teknologi). Hurra, Homebridge Status-skriptet är först på listan! Klicka gärna på knappen Ladda ner med ScriptDude.

Steg 6. Vi trycker på Installera och efter att ha godkänt två varningar ser vi det önskade skriptet i listan Installerade. Huvudskärmen för Scriptables ser nu ut som den fjärde skärmdumpen nedan, och vi klickar på de tre prickarna i Homebridge-statuspanelen och går till redigeringsalternativ.

Steg 7. Först och främst ändrar vi värdet overwritePersistedConfig з falsksann

overwritePersistedConfig = sant

för att spara skriptinställningar i iCloud.

Raspberry Pi Homebridge Statuskonfiguration

Steg 8. Går vi ner lite lägre, redigerar vi tre fält: IP-adressen och Homebridge-porten (kom ihåg att detta är den redan nämnda http://<ip address of your server>:8581 var istället för <ip address of your server> fortfarande samma IP från början av artikeln, i mitt fall ) och accepterar varningen om att söka efter enheter i det lokala nätverket. Hurra, manuset fungerar!

Allt som återstår är att lägga till widgeten på iOS 14-skärmen på samma sätt som alla andra. Efter att du har lagt till måste du gå till widgetinställningarna (långtryck på den) och ange ett antal parametrar: välj önskat skript, ange vad du ska göra när du interagerar med det och ange följande värde i fältet Parameter

USE_CONFIG:purple.json

Efter det, glöm inte att gå tillbaka till skriptkoden och returnera värdet

overwritePersistedConfig = false

Det är allt. Widgeten fungerar, och när det finns uppdateringar av Node.JS, Homebridge eller dess plugins kommer du att få PUSH-notiser med relevant innehåll.

Slutsats

Möjligheter Apple HomeKit har vuxit många gånger för mig. Jag kom på en massa skript och automatiseringar som gör livet lättare för mig och mina nära och kära.

Till exempel, vid den mörka tiden på dygnet, kommer den första familjemedlemmen som kommer hem att mötas av lamporna som tänds utifrån, i hallen, vardagsrummet och badrummet - och nu behöver du inte springa till växlarna med otvättade händer.

När den sista medlemmen i familjen lämnar huset kommer HomeKit försiktigt att stänga av TV-apparater, lampor och i allmänhet allt som går att stänga av. Och om det är minst en person hemma, när skymningen börjar, kommer den yttre belysningen och några lampor inuti att slås på.

Återigen kan Siri styra alla anslutna enheter med helt logiska kommandon, ord för ord samma som du skulle fråga någon i huset när du behöver slå på eller stänga av något i ett visst rum. Bara ingen behöver springa till det här rummet längre.

Morgon- och kvällsmusik blandar från Apple, till vilken Guyver-lampans ljuseffekter är fästa. Det går att få annan ljussättning att fungera med lätt musik, men jag är inte nöjd med effekten.

I allmänhet beror applikationsscenarierna bara på din fantasi och kommer inte att belasta plånboken mycket, eftersom produkter med etiketten "Fungerar med Apple HomeKit är inte längre det enda tillgängliga valet.

I nästa artikel i cykeln kommer du och jag att ha lite kul: vi ska undervisa vår Raspberry Pi ladda ner torrents, låt oss förvandla det till ett kraftfullt mediacenter och retro spelkonsol.

Håll dig igång!

Jurij Stanislavskij
Jurij Stanislavskijhttp://notarecords.com
SwiftUI-utvecklare. Jag samlar på vinyl. Ibland journalist. Ägare av Nota Record Store.
Mer från författaren
- Annons -
Bli Medlem
Meddela om
gäst

0 Kommentarer
Inbäddade recensioner
Visa alla kommentarer
Andra artiklar
Prenumerera för uppdateringar
Populärt nu