Home Assistant in Truenas Scale

Inleiding

Truenas Scale is sinds begin dit jaar uit beta. Dit lid uit de Truenas familie is ontworpen op Debian 11, in tegenstelling tot FreeBSD wat bij Truenas Core is gebruikt. Het voordeel van deze Truenas Scale te gebruiken is het gebruik van “apps”, aangezien deze achterliggend werkt op Docker. Concreter gezegd worden de containers door Kubernetes aangestuurd.

Standaard zijn er niet veel apps beschikbaar in de catalogus van Truenas Scale, maar gelukkig kan je wel extra catalogussen toevoegen om meer apps te verkrijgen. Truecharts is een van de actiefste en grootste catalogussen die je momenteel kan vinden en toevoegen aan je Truenas Scale.
In deze catalogus kan je onder andere Home Assistant Container installeren. Dit bevat dus enkel de Core functies van Home Assistant, en is het dus niet mogelijk om hierin de add-ons te installeren en de andere voordelen van de supervisor te gebruiken.

Je kan nu misschien wel zitten denken: “Truenas Scale draait op Debian 11, dus kan je toch gewoon de Supervised installatie uitvoeren, en kan je toch al de voordelen gebruiken?” In theorie zou het inderdaad kunnen, maar dat is niet de bedoeling, aangezien bestanden aanpassen buiten de Truenas Scale omgeving ten alle tijden kunnen (en zullen) overschreven worden bij het installeren van updates.

We gaan er voor deze tutorial van uit dat je net een propere installatie hebt gedaan van Truenas Scale en nog geen pools of mappen hebt aangemaakt. 

Opslagruimte

In onze server voor deze tutorial hebben we 2 schijven van 80GB zitten. Het kan zijn dat je meerdere schijven hebt, maar in deze uitleg gaan we het houden op het aanmaken van een raid1, wat een mirror maakt tussen de 2 schijven.

Pool aanmaken

Klik in het menu op Storage, en daar op de knop “create pool” als je dat nog niet hebt. Als je dit wel al gedaan hebt, ga je naar de stap Dataset aanmaken.

Geef je pool een naam, kies de schijven die je wil toevoegen aan deze pool, of klik op de “Suggest Layout” knop om de schijven en de indeling automatisch te laten bepalen, wat hier in ons geval best een mirror is.

Dataset aanmaken

Na het initialiseren van deze pool zie je deze nu staan, maar er moeten nog datasets worden aangemaakt. Hoe je deze indeling opzet kan je volledig zelf gaan kiezen, maar in dit voorbeeld gaan we een map maken waar alle bestanden in zitten van de apps die we gaan installeren. Zo is het gemakkelijk om deze map (dataset) in het geheel te delen, zodat je de configuratie bestanden eenvoudig kan aanpassen vanaf je eigen pc, maar dat volgt in een latere stap.

Klik op de 3 puntjes naast je storage pool, en klik op “Add Dataset” om je eerste ‘map’ aan te maken.

Geef een naam voor deze dataset en eventueel een commentaar, verder laten we alle opties standaard staan, dat gaat buiten het bereik van deze tutorial 😄 en klik op “save”.

Home Assistant dataset aanmaken

Binnen deze dataset gaan we per app een map aanmaken, waarin we de mappen uit de app (containers) gaan koppelen. We gaan hier al een map aanmaken voor Home Assistant.

Binnen de dataset Containers klikken we hier op de 3 puntjes en kiezen terug “Add Dataset” en geef een naam op voor de map. Ook hier laten we de overige opties standaard staan.

Rechten aanpassen

De rechten op de aangemaakte datasets staan ingesteld op de gebruiker en groep ‘root’. De apps die we gaan installeren, worden uitgevoerd onder de ‘apps’ gebruiker, welke ook een groep is. Je zal deze gebruiker niet zien als je naar de gebruikers gaat kijken in de Truenas Scale web interface, omdat de “systeemusers” verborgen staan. We kunnen deze groep wel kiezen als we rechten gaan toekennen op datasets.

De standaard rechten op onze Containers dataset

We gaan deze rechten aanpassen, met als user nog steeds ‘root’, maar de group gaan we aanpassen naar ‘apps’ en geven zowel de Read, Write en Execute rechten. Als we later een account gaan aanmaken (die met Samba moet kunnen verbinden) zetten we het nieuwe account in de apps groep, zodat deze dezelfde rechten heeft. Om de rechten te wijzigen op de dataset ‘Containers’, klik je op de 3 puntjes op de lijn van Containers, en kiezen in het menu de optie “View Permissions”. Klik nu bovenaan in het kadertje op het potlood om de rechten aan te passen.

Bij Group kies je ‘apps’, en vink de optie “Apply Group” aan als bevestiging dat je de groep effectief wil aanpassen.

Bij Access Mode zet je het vinkje aan onder Write, naast Group. Bij “Other” mag je alle vinkjes uit zetten.

Bij Advanced vinken we “Apply permissions recursively”, en daarna krijg je ook de optie “Apply permissions to child datasets”. Deze vink je ook aan. De dataset “homeassistant die we daarnet hebben aangemaakt is een ‘child dataset’ van de Containers dataset.

Als laatste klikken we op Save.

Wanneer we later nog datasets gaan aanmaken onder deze Containers dataset, zullen we deze rechten ook steeds moeten controleren en wijzigen, aangezien hij bij het aanmaken van een dataset steeds de rechten standaard op root gaat zetten.

Truecharts catalogus toevoegen

Zoals in de intro reeds verteld heb je maar een beperkt aantal apps beschikbaar om te installeren in Scale. We gaan Truecharts als catalogus toevoegen, waar onder andere Home Assistant in te vinden is.

Pool voor de apps

De eerste keer dat je in het menu op Apps klikt, gaat er gevraagd worden wat de standaard pool moet zijn voor de apps. Aangezien we maar 1 pool hebben, kiezen we deze om verder te gaan.

Catalogus toevoegen

Nadat de Kubernetes updates voltooid zijn, kan je naar “Manage Catalogs” gaan, en dan bovenaan op “Add Catalog” om de Truecharts catalogus toe te voegen. Meer info over het toevoegen van Truecharts kan je HIER vinden.

In het venster dat je nu krijgt, vul je volgende gegevens in:

Name: Truecharts
Repository: https://github.com/truecharts/catalog
Preferred Trains: Stable en Core (stable staat reeds ingevuld, typ hierachter core en klik ergens buiten het veld om het toe te passen)
Branch: main

Klik nu op de Save knop, en dan zal de catalogus worden toegevoegd. Dit kan wel een tijdje duren voor alle info over deze catalogus is gedownload afhankelijk van je CPU en RAM geheugen.

Het uitvoeren van de download gebeurt verder op de achtergrond. Je kan de voortgang volgen via de task manager bovenaan.

Home Assistant

Nadat de catalogus volledig geupdate is, gaat je lijst met beschikbare apps enorm uitgebreid zijn! Je zal hier nu ook de Home Assistant zien tussen staan.

Installatie container

Zoals je kan zien aan de versie is dit versie 2022.05, welke – op het moment van schrijven – gisteren is uitgebracht. Klik op de knop “Install” om de wizard voor de installatie van de app te starten. 

In de eerste stap geef je de installatie een naam. Veel maakt dit niet uit, dit is vooral handig als je meerdere keren dezelfde app installeert naast elkaar. En bij versie kiezen we laatste versie van deze app. Let op, dit is niet de versienummer van Home Assistant, maar van de app zelf.

In stap 2 – Controller laten we alles standaard uit staan en gaan direct verder naar de volgende stap. 

Bij de volgende stap passen we enkel onze tijdzone aan naar onze regio, de rest laten we ook standaard staan. 

De volgende stap (4) is voor de configuratie van het netwerk en de poorten.

Standaard staat hier poort 8123 ingesteld om te gebruiken op de host, en dat is ook de poort die door Home Assistant gebruikt zal worden. Ook dit kunnen we allemaal standaard laten staan. 

Stap 5 is wel een belangrijke stap, aangezien we hier de opslagruimte gaan instellen. Standaard maakt de wizard een “persistant storage” ergens op de pool die we gekozen hebben bij de eerste keer dat we Apps in het menu kozen. Op dit stukje storage gaan in het geval van Home Assistant de config.yaml bestanden staan, en de database bestanden. 

We gaan hier onze eigen locatie opgeven, zodat we zoals eerder gezegd de configuratie eenvoudig kunnen aanpassen. 

Bij de Home Assistant is er maar 1 te koppelen map voor de bestanden, de “App config storage”. Dit staat initieel op PVC ingesteld, maar dit gaan we aanpassen naar “HostPath (simple)”. Verder laten we de optie “Automatic Permissions” aan staan, zodat de juiste rechten worden toegepast, zodat de app rechten heeft om in deze map op onze server te mogen schrijven of lezen. 

We kunnen nu het “HostPath” kiezen, waar we de config map gaan koppelen aan een map op de server zelf. We hebben in de stap “…” de map ‘homeassistant’ aangemaakt op de storage1 pool.

De volgende stappen mag je grotendeels ook standaard laten zoals het staat. Bij stap 7 – Security and Permissions kan je eventueel de gebruiker aanpassen, als je voor elke app een aparte user gaat aanmaken binnen Truenas Scale, maar om deze tutorial niet te lang te maken, laten we dit allemaal draaien onder de admin gebruiker.
Bij stap 8 kan je eventueel USB apparaten koppelen aan deze home assistant apps, maar Zigbee en/of zwave usb sticks gaan we niet in deze app koppelen, aangezien dit enkel de core van Home Assistant is, en we de add-ons zoals Zigbee2mqtt naast deze app gaan installeren.

In de laatste stap zie je nog eens een hele samenvatting, en daarna zal de app geïnstalleerd worden. Als de app volledig geïnstalleerd is en opgestart, zie je Home Assistant met de status Active staan bij de “Installed Apps”.

Home Assistant onboarding

Als de app Active is, is de installatie van Home Assistant gelukt, en kan je nu Home Assistant openen in je browser. Als je de standaard poort hebt laten staan, ga je naar http://IP_VAN_TRUENAS:8123 en daar krijg je de Onboarding te zien. Je mag deze volledig doorlopen.

Home Assistant onboarding wizard

Toegang tot config bestanden

Nadat Home Assistant volledig gestart is, gaan we terug naar de Truenas Scale interface om er voor te zorgen dat we toegang kunnen krijgen tot onder YAML bestanden. We gaan gebruik maken van een SMB share, welke zowel op Windows, Linux als Apple werkt.

Gebruiker aanmaken

Het standaard ‘root’ account van de server kan niet inloggen via SMB. Hiervoor moet je dus zeker een eigen account aanmaken

Als je een gebruiker aanmaakt, moet je aangeven of je het account ook Samba Authentication mag uitvoeren, om te kunnen inloggen via het Samba protocol vanaf je pc.

Om gebruikers aan te passen of aan te maken, ga je naar “Credentials” en kiezen dan “Users”.

Bij het aanmaken of aanpassen van het account moet je er dus voor zorgen dat de optie “Samba Authentication” ingeschakeld is.

Verder gaan we deze gebruiker ook toevoegen aan de groep ‘apps’, die we daarstraks als groep eigenaar op de dataset hebben gezet met schrijfrechten.

Samba service activeren

Je kan via het menu item “Shares” alle shares gaan instellen. Als je nog geen shares aangemaakt hebt, staat de “Windows (SMB) shares” standaard uit. Je moet eerst een share hier in aanmaken, alvorens je deze service kan starten. Hiervoor klik je op de Add knop naast de SMB shares.

Als Path kiezen we hier voor de map “Containers”, zodat we later ook direct aan de andere apps hun mappen kunnen via dezelfde share. Geef de share een naam en eventueel een beschrijving, en klik op Save.

Aanmaken van de SMB share

Na de share opgeslagen te hebben, krijg je een pop-up met de vraag om de service in te schaken, dit mag je uiteraard toestaan. Mocht je deze pop-up gemist hebben, kan je op de 3 puntjes klikken naast de Add knop en daar kiezen voor “Turn On Service”.

De share openen vanaf je pc

In dit voorbeeld werken we in Windows, maar kan dus in elk besturingssysteem gebruikt worden. Als je de Windows verkenner opent, enter je in de balk bovenaan het IP adres in van je Truenas Scale server zoals in dit voorbeeld:

\\10.0.0.107

Daarna gaat er gevraagd worden om de login gegevens van je account in te geven. Je gaat direct de melding krijgen dat de gebruikersnaam of wachtwoord foutief zijn. Dit komt omdat Windows eerst probeert in te loggen met het account wat je momenteel op je pc gebruikt.

SMB verbinding met je server in Windows

Log in met de gebruiker die je hebt aangemaakt in de stap Gebruiker aanmaken.

Als het inloggen goed gelukt is, zie je nu de share “Containers” staan. We gaan deze share vast koppelen in Windows, zodat je hier snel aan kan. Klik rechts op de gedeelde map, en kies “Netwerkverbinding maken”.

In het volgende venster kan je eventueel een andere schijfletter kiezen, en klik op voltooien. Je gaat nu deze schijf telkens terugvinden in je verkenner. In deze netwerkschijf ga je nu de map homeassistant vinden, waar de config.yaml en andere bestanden staan. Aangezien je gebruiker ook in de groep ‘apps’ zit, kan je hierin de bestanden ook bewerken.

De Home Assistant folder, vanaf je pc

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.