Hjemmeautomasjon – begynnelsen

Hei!

Tenkte jeg skulle begynne å skrive litt om min egen lille hobby – hjemmeautomatisering.

Her er det mulig å begynne enkelt, også kan du egentlig gjøre det så innviklet du bare vil.

Vi starter med det første, hva du trenger for å komme i gang.

Det jeg benytter for hjemmeautomatiseringen er noe som heter Home Assistant (Hassio). Dette kan du lese mer om her.

Jeg kjørte dette i starten på en Raspberry Pi Model 3 A+. Det er verdt å merke seg at denne er litt svak, men gjør jobben. OBS – det er bare WiFi på denne modellen. Etter hvert så vil også den vesentlig kraftigere Model 4 bli fullstendig støttet.

Når du har gått til innkjøp av maskinvaren, så kan du gå til denne siden for å lese mer om hvordan du installerer Hassio. Det er ikke vanskelig. Bare følg punktene.

Jeg har siden oppgradert til en Intel NUC, som kjører Ubuntu med VirtualBox.

Dette er mitt oppsett, men du kan godt kjøre et annet. Det er opp til deg.

Jeg antar nå at du har fått installert Hassio, og kan logge inn i webgrensesnittet. Vi kan nå se litt på hvordan du kan gjøre livet ditt litt enklere, ved å legge inn noen add-ons. Dette gjøres fra menyen til venstre, ved å klikke på Hass.io.

Den første jeg la til, var Samba share. Sett brukernavn og passord for autentisering, og det skal være klart til bruk. Denne add-on er kjekk for å kunne redigere konfigurasjonsfilene i et vanlig redigeringsprogram. Selv bruker jeg Visual Studio Code. Dersom du gikk for Intel NUC, så kan du også installere en add-on som heter Visual Studio Code. Denne gir deg redigeringsprogrammet direkte i browser, fra admingrensesnittet til Hassio.

Dersom du ønsker å gjøre Hassio tilgjengelig utenfor nettverket ditt, kan det også være kjekt med add-ons som Duck DNS og NGINX Home Assistant SSL proxy.

Det meste er godt dokumentert, så det er bare å lese mer om det man er nysgjerrig på.

Siden du er interessert i hjemmeautomasjon, regner jeg med du har såkalte “smartlys” eller andre “smarte” enheter. Selv benytter jeg IKEA Trådfri til lys, Mill panelovn med WiFi for varme, Netatmo weatherstation for inne- og utetemperatur og Xiaomi Roborock S6 som støvsuger. For at Hassio skal kunne snakke med disse, må man legge til informasjon i fila configuration.yaml. Nederst i fila, kan du da legge til nødvendige linjer med tekst for å koble til. Du kan lese mer om integrasjoner her. Søk opp det du vil integrere, og du vil få dokumentasjon på hvordan dette gjøres, og hva du trenger (f.eks API-brukere hos leverandør).

Eksempel for IKEA Trådfri er følgende. Her trenger du bare IP-adressen til IKEA Trådfri Gateway.


tradfri:
 host: 192.168.0.98
 allow_tradfri_groups: True

Jeg har gitt min IKEA Trådfri Gateway en fast IP-adresse, så jeg ikke trenger å bekymre meg for at Hassio mister kontakten med lysene mine.

Du kan se hele konfigurasjonen min på GitHub.com.

Her kan du også legge merke til ting som !secret netatmo_api_key. Dette forteller Hassio at informasjonen den trenger ligger i en fil som heter secrets.yaml. Denne ligger ikke på GitHub, som jeg vil anta dere kan forstå.

Fila secrets.yaml fungere slik at du skriver en hemmelighet per linje. Eksempel:


netatmo_api_key: SupeRsECRetAPI
netatmo_secret_key: SUPersecRETkey

Disse kan da refereres til i andre filer, med teksten !secret netatmo_secret_key og !secret netatmo_api_key. Les mer om secrets.yaml her.

Det var det for denne gang. Håper det hjelper 🙂

Sender Policy Framework (SPF)

Sender Policy Framework (SPF), og hvordan dette kan hjelpe deg å beskytte domenet ditt fra å misbrukes til spam eller svindelforsøk.

Dette blir mer og mer aktuelt, ettersom det er utrolig mye spam for tiden. Jeg tenker da spesielt på den siste tidens flom av e-post fra noen som utgir seg for å være posten, telenor eller bare en tilfeldig faktura. Der jeg jobber stopper vi hundrevis av slike e-poster daglig, og de benytter seg av tilfeldige domener uten SPF.

En annen svindelmetode er å sende e-post som utgir seg for å være bedriftens sjef (visningsnavn og avsenderadresse er sjefens faktiske navn og adresse), men når man trykker på “Svar”, så dukker det opp en annen e-postadresse, som svindlerne har kontroll på. Du kan lese mer om dette på E24.no.

SPF er kort fortalt en godkjentliste for domenet ditt. Det som ligger i lista er godkjent til å sende e-post med domenet ditt, mens alt annet skal enten stoppes som spam eller avvises fullstendig. Du kan lese litt mer om SPF på Wikipedia.

En kort “disclaimer” når det gjelder SPF: Selv om du har aktivert det, så er det opp til mottaker å sjekke for SPF. De fleste e-posttilbydere som bryr seg om sikkerhet har dette aktivert. Store aktører som Gmail og Outlook.com har også begynt å sjekke for SPF nå.

For å aktivere SPF for domenet ditt, så trenger du tilgang til å administrere domenets DNS-verdier. Når du har dette, kan du opprette en TXT-record med følgende tekst (på rota til e-postdomenet, det som står bak @):

“v=spf1 a mx -all”

Denne tekststrengen sier at spf versjon 1 er aktivert, at A-record (nslookup type=a eksempel.no) for domenet (IP-adressen) og MX-record (nslookup type=mx eksempel.no) for domenet er godkjente avsendere. -all betyr at alt annet skal avvises.

Det er flere andre måter å inkludere avsendere på, dersom man brukes tredjeparter for å sende e-post. En ting som er viktig å merke seg er at en TXT-record kan kun ha 10 henvisninger. Trenger du flere, må du opprette flere TXT-records, f.eks spf1.eksempel.no, spf2.eksempel.no. Et eksempel på dette finner vi ved å sjekke TXT-records for google.com.

SPF_Google

Her ser vi at de avslutter verdien med ~all. ~ betyr “SoftFail”, og e-post vil da havne i spam-mappen, og ikke avvises.

For å se de forskjellige måtene man kan legge til verdier i SPF på, kan du trykke her. Denne siden inneholder mye god informasjon angående SPF og hvordan det fungerer.

Hvis du benytter deg av eksterne tjenester for håndtering og utsending av e-post, f.eks Freshdesk, Office 365 eller lignende, så har de ofte ferdige verdier for SPF. Ta kontakt med aktuell support eller sjekk hjelpesidene deres for mer informasjon!

Hvis det er noe du lurer på kan du godt legge igjen en kommentar.

Microsoft System Internals

System Internals er en samling kraftige verktøy som du kan benytte på din PC for feilsøking og lignende.

Verktøyene kan hentes fra live.sysinternals.com enten via nettleser eller utforsker (\live.sysinternals.com). Den sistnevne metoden krever ingen nedlasting av filer, men kan også være litt…treig.

Noe som “mangler” på denne nettsiden er en enkel måte å laste ned alle filene på. Dette har jeg ordnet ved å ha et script som laster ned samtlige filer og pakker disse i en zip-fil.

Dette finner du her. Fila heter sysinternals.zip. Denne oppdateres hver natt, i tilfelle det skulle komme ut ny versjon av noen filer.

Jeg har også lagd et PowerShell-script som laster ned zip-fila og pakker den ut for deg på C:sysint. Denne stien kan endres til det du vil. (Krever PowerShell 5 – lastes ned her om du mangler det.)

 

#This requires PowerShell 5 – Download from here: https://www.microsoft.com/en-us/download/details.aspx?id=50395

#Setting paths. This can be altered to what you feel is best
$url = “http://sysint.bjornar.eu/sysinternals.zip
$tempDL = “C:\tempsysinternals.zip”
$sysintPath = “C:\sysint”

#Downloading the file to the temp area
Write-Host “Downloading System Internals zip”
Invoke-WebRequest -Uri $url -OutFile $tempDL

#Deletes the sysintPath if it exists
If (Test-Path $sysintPath){
Write-Host “Deleting” $sysintPath
Remove-Item -Recurse -Force $sysintPath
}

#Unzips to the sysintPath
Write-Host “Extracting the file to” $sysintPath
Expand-Archive -Path $tempDL -DestinationPath $sysintPath -Force

#Removes the downloaded file after it’s done, no need for it anymore
Write-Host “Deleting the System Internals zip”
Remove-Item $tempDL

Write-Host “You now have updated System Internal tools”

Fila lastes ned til C:temp. Pakkes deretter ut til C:sysint (hvis C:sysint finnes fra før, fjernes denne).

Når utpakking er ferdig, så slettes zip-fila på C:temp. Det er utpakking (Expand-Archive) som krever PowerShell 5.

 

Scriptet kan du enten kjøre med PowerShell ISE eller lagre koden i en .ps1-fil, høyreklikke på fila og velge Kjør med PowerShell.