Uppsetning á Home Assistant. Hluti 5. Aðgangur frá internetinu

Það mun koma sá tími að þú viljir tengjast Home Assistant kerfinu þó að þú sért ekki heima hjá þér, þ.e. utan staðarnetsins. Þá eru tvær leiðir færar, að nota App sem að ætlað er fyrir Home Assistant, það má finna á þessari slóð (https://www.home-assistant.io/integrations/mobile_app/), þetta er svokallað offical app, hið opinbera app, fyrir Home Assistant kerfið. Ókosturinn við það er að það kostar, það er hægt að fá 1 mánuð frítt í upphafi til að prufa forritið en eftir það kostar það $5 á mánuði. Því eru því margir sem velja þá leið að opna leið sjálfir út á internetið, í gegnum routerinn hjá sér, þannig að hægt sé að tengjast forritinu þó að maður sé utan heimanetsins. Ef þetta official app er notað þarf ekki að opna þessa leið sem lýst er hér fyrir neðan, í því tilfelli á Home Assistant forritið samskipti við tölvuský út í heimi (en. cloud) og appið talar síðan við skýið.

Til að geta tengst Home Assistant tölvunni frá internetinu án þess að nota official appið þarf að útbúa leið þannig að tölvur sem eru utan staðarnetins okkar (netinu heima hjá okkur) viti hvert þær eiga að tengjast. Almennt er það svo að við fáum ekki fasta ip tölu frá þjónustuaðilanum sem við kaupum internettenginguna af. Því getum við ekki farið út fyrir netið og sett inn ip tölu eða vefslóð og tengst Raspberry Pi tölvunni sem við höfum verið að setja upp. Til að við getum þekkt og tengst heimanetinu okkar þurfum við því að setja upp viðbót í Home Assistant forritinu sem talar út á internetið og segir okkur hvert við eigum að tengjast. Einnig þurfum við að útbúa tengingu í routernum (beininum) okkar sem leyfir okkur að tengjast frá internetinu, gegnum routerinn og inn á Raspberry Pi tölvuna. Þegar við fáum routerinn frá þjónustuaðilanum okkar eða setjum hann upp sjálf kemur hann sjálfgefið með stillingum sem eru strangar varðandi það að leyfa utanaðkomandi aðilum að tengjast inn á heimanetið okkar, það er öryggisatriði svo að ekki sé brotist inn á tæki á heimanetinu okkar.

Það sem við þurfum því að gera er að setja upp DuckDNS þjónustu til að þekkja netið okkar frá internetinu, setja upp öryggisleiðir til að sú tenging sé dulkóðuð og að opna leið í gegnum routerinn okkar til að tengjast inn á Raspberry Pi tölvuna okkar.

Fyrsta sem við gerum er að setja upp DuckDNs viðbótina á Home Assistant. Við skráum okkur inn í kerfið, veljum Supervisor í vinstri valmyndinni og síðan Add-on-store:

Þar smellum við á Duck DNS viðbótina og síðan á Install sem er á vinstri hluta skjásins sem þá kemur upp.

Næst fer maður á duckdns.org og skráum okkur inn þar. Líklegast munt þú skrá þig inn með gmail veffangi. Ef þú hefur ekki aðgang að neinum þeim innskráningaraðferðum sem þarna er boðið upp á er sennilega auðveldast að búa til gmail aðgang til að nota þarna. Ég fer ekki nánar í bili í hvernig það er gert.

Þegar þú hefur skráð þig inn og samþykkt skilmála þeirra, þá sérðu mynd líkt og sést hér fyrir neðan. Ég er búinn að setja hvíta kassa yfir þær upplýsingar sem eru viðkvæmar gagnvart mér.

Þú býrð núna til domain, með því að skrifa eitthvað heiti í reitinn þar sem stendur núna “sub domain”. Það þurfa að vera bók- og tölustafir. Sú vefslóð sem kemur út úr því verður vefslóðin sem þú notar þegar þú ætlar að tengast Home Assistant frá internetinu. Dæmi um slóð gæti verið jonha.duckdns.org, í því tilfelli er jonha sett inn í svæðið þar sem stendur nú “sub domain”. Eftir það smellir þú á takkann “add domain” og þá skráist lína með þessu veffangi í línuna þar fyrir neðan, þar sem m.a. má finna takkann “update ip”. Það næst sem þú gerir er að smella á þann takka, þá kemur upp sú ip tala sem tölvur úti á internetinu sjá að þú kemur frá. Athugaðu vel svæðið “token” sem er ofarlega á síðunni, við munum nota það á eftir.

Næst skaltu fara aftur í Home Assistant kerfið hjá þér, smella á Supervisor í valmyndinni vinstra megin, þá lendir þú á valmyndinni Dashboard og þú munt þar sjá Duck DNS viðbótina sem við vorum að setja upp áðan.

Þú smellir á hana og síðan á Configuration sem er á valmyndinni efst.

Þá sérð stillingatexta eins og sjá má hér að ofan.

Þú breytir textanum þannig að fyrir aftan “accept_terms” skrifar þú true í staðinn fyrir false. Í token setur þú textann sem var fyrir aftan token á DuckDNS síðunni, þessi sem ég minntist á hér að ofan. Rétt útfyllta skrá má sjá hér fyrir neðan. Ég hef set x í staðinn fyrir token stafina mína, þú setur að sjálfsögðu þitt token þar. Einnig skrifaði ég thittdomainnafnher.duckdns.org, þar setur þú það nafn sem þú ákvaðst fyrir þig í staðinn fyrir thittdomainnafnher. Athugaðu að línur og uppsetning á skránni þarf að vera nákvæmlega svona, þú mátt ekki búa til ný línubil, setja gæsalappir eða breyta táknum eða öðru en þessu þrem atriðum, þ.e. accept_terms, token og domains. Eftir það smellir þú á SAVE takkann í hægra horninu.

Næst þarfu að búa til leið í gegnum routerinn hjá þér. Þessar leiðbeiningar sem eru hér á eftir eru fyrir router sem kallast Unifi Security Gateway. Það er router sem ég keypti sjálfur og setti í staðinn fyrir routerinn sem símafélagið lét mig fá, símafélagsrouterar eru yfirleitt ekki af mjög háum gæðaflokki. Það er því ekki víst að þessar leiðbeiningar eigi við þinn router, en aðferðarfræðin er engu að síður sú sama. Það var þannig einusinni að hægt var að fá leiðbeiningar frá símafélögum til að opna fyrir svona leiðir (kallað að opna fyrir port eða port forwarding) fyrir þeirra routera, ég er ekki viss um hvernig það er núna. Ég mun örugglega setja upp leiðbeiningar fljótlega sem segja til um hvernig þú getur keypt Unifi router og sett hann upp í staðinn fyrir routerinn sem þú fékkst frá símafélaginu.

Ég skrái mig inn á vefviðmót Unifi routersins. Fyrst þarf ég að finna ip tölu Raspberry Pi tölvunnar. Ég smelli á Clients táknið í vefviðmóti Unifi routersins og sé þá öll tæki sem eru tengd við routerinn. Undir Name dálknum í listanum sé ég “homeassistant” í einni línunni og í dálknum fyrir aftan sé ég ip tölu Raspberry Pi tölvunnar. Hvítu reitirnir í neðangreindri mynd setti ég til að fela viðkvæmar upplýsingar en þarna sést hvernig línan fyrir homeassistant sést.

Þú skrifar ip töluna hjá þér og smellir á tannhjólið sem er neðst í vinstra horninu. Á valmyndinni sem kemur þá upp vel ég “Routing & Firewall” og í valmyndinni sem þá kemur upp efst á síðunni vel ég “Port forwarding”. Þar smelli ég á takkann “Create new port forward rule” og þá kemur upp svona skjámynd.

Þú fyllir hana út á svipaðann hátt og hér fyrir ofan. Þú getur valið þitt eigið nafn í dálknum “Name” og í “Forward ip” setur þú ip tölu á Raspberry Pi tölvunni þinni, það sem þú fannst skv. leiðbeiningum hér að ofan. Það er líklegt að það sé 192.168.1.x, þar sem x er einhver tala einnig. Eftir það smellir þú á Save takkann. Það sem þetta gerir að er að ef tengst er inn á routerinn frá internetinu, inn á port 443, er þeirri fyrirspurn beint áfram á Raspberry Pi tölvuna okkar. Þar með er uppsetningu varðandi routerinn lokið.

Næst ferðu aftur í Home Assistant kerfið og setur upp eina viðbót í viðbót. Við viljum að þessi tenging sé sem öruggust þannig að við setjum upp svokallaðan NGINX proxy, það er viðbót sem hjálpar okkur að koma á fót dulkóðuðum samskiptum við tækið sem við ætlum að nota úti á internetinu og hjálpar okkur um leið að verja Raspberry Pi tölvuna gagnvart tölvuárásum, þar sem eftir þetta mun verða hægt að tengjast inn á þessa leið sem við vorum að búa til í gegnum routerinn, frá internetinu. Þú smellir því á Supervisor í Home Assistant valmyndinni, eftir það á Add-on-store og síðan á NGINX Home Assistant SSL Proxy kassann. Eins og áður smellir þú nú á INSTALL textann sem ætti að vera fyrir miðjum skjá. Þegar viðbótin hefur verið sett upp smellir þú á Configuration í valmyndinni efst á skjánum, þá áttu að sjá svona skjámynd:

Þú breytir bara einni línu þarna, þar sem stendur domain, þar setur þú domain nafnið sem þú valdir í DuckDNS viðmótinu, það er thittdomainnafn.duckdns.org, nema þú skiptir út textanum í thittdomainnafn í það sem þú valdir, eftir það lítur þetta svona út:

Þú smellir núna á Save, ferð aftur á Info valmyndina efst og smellir á Start textann sem þá kemur upp fyrir miðri mynd.

Þá er enn örlítið eftir. Núna smellir þú aftur á Supervisor í vinstri valmyndinni í Home Assistant vefviðmótinu, smellir á “File editor” viðbótina sem við settum upp í fyrri pistli og í hægra horninu á skjámyndinni sem þá kemur upp veljum við “Open web ui”. Í skjámyndinni sem þá kemur upp smellir þú á möpputáknið sem er ofarlega og þá sjáum við þessa skjámynd

Þú smellir þarna á configuration.yaml, þá opnast sú skrá og síðan smellir þú á dökkgráa svæðið sem er hægra megin. Þá áttu að sjá svona texta

Þarna þarftu að bæta við nokkrum línum eins og sést hér fyrir neðan, það er frá http niður að Text to speech. Athugaðu að þær þurfa að vera nákvæmlega svona og með sömu bilum. Helsta breyting sem þú þarft að hugsa um að eftir “base_url:” þarftu að setja slóðina sem þú valdir og skráðir í DuckDNS.

Þetta þarf að vera nákvæmlega eins. Litlu punktarnir sem þú sérð fyrir framan stafina eru space tákn, yfirleitt tvö space fyrir framan hverja skilgreiningu nema http skilgreininguna. Fyrir ofan “# Text to speech” á að vera ekkert space, bara “enter” tákn (enter sem sama og línubil, stóri takkinn sem er hægra megin á lyklaborðinu þínu), strikið sem er fremst í þeirri auðu línu táknar línubil.

Eftir það smellir þú á rauða disktáknið og þá geymist skráin.

Núna skaltu fara í Supervisor valmyndina vinstra megin í Home Assistant vefviðmótinu, smella á System í valmyndinni sem þar kemur efst og eftir það á Reboot stafina sem eru hægra megin við miðju í skjámyndinni sem þá kemur upp og síðan Reboot host í glugganum þá kemur upp. Þá endurræsir Raspberry Pi tölvan sig, það getur tekið nokkrar mínútur.

Þegar tölvan er búin að endurræsa sig skaltu opna nýjan flipa á vefskoðaranum þínum og setja inn slóðina sem þú bjóst til í DuckDNS, þ.e. https://thittdomainnafn.duckdns.org, nema þú skiptir thittdomainnafn yfir í það nafn sem þú valdir. Gamla slóðin sem var http://homeassistant:8123/ virkar ekki lengur, þó að þú sért á heimanetinu þínu, þú kemst reyndar inn á slóðinni https://homeassistant:8123/ en þá þarftu að velja að tengjast með ódulkóðuðum samskiptum.

Til að prófa hvort þetta virki út á internetinu getur þú farið í símann þinn, slökkt á þráðlausu tengingunni á honum þannig að hann noti símasamskipti til að tala út á internetið (gagnasamskiptin fara þá ekki fram í gegnum heimanetið þitt), opnað vefskoðara og slegið inn duckdns.org slóðina þína. Ef allt er eðlilegt átt þú að fá vefviðmótið fyrir Home Assistant upp á símanum.