http://design.ubuntu.com/search?search=logo&submit=

Guide: Så installerar du Ubuntu Server för Hemautomation

Vi har tidigare gjort en guide för Raspberry Pi som hemautomationskontroller, där visade vi hur installation av bland annat Home Assistant, Node-Red, Grafana mm görs. Tyvärr var allt inte guld och gröna skogar med att köra Raspberry pi… Mycket beror på begränsad livslängd på minneskort.. Även det gick att lösa genom att bota från en hårddisk eller undvika att skriva en massa data lokalt (Vilket är halva nöjet, hade idag 8,226,271 rader med information)

Började därför fundera på om jag inte hade någon skrotad dator liggandes… Och mycket riktigt fanns det en gammal bärbar dator, tyvärr med trasig skärm och hårddisk! Men prestandan i den var bättre än det en Raspberry Pi. Efter byte av hårddisk och ha fixat ett USB minne att installera från var den igång med Ubuntu Server!

Den här bärbara datorn hade gjort sitt sedan länge, men nu fick den nytt liv igen!
Den här bärbara datorn hade gjort sitt sedan länge, men nu fick den nytt liv igen med Ubuntu Server!

Jag passar på att göra en guide som visar hur installationen av gratis operativet Ubuntu server(extern länk) görs. Chansen är stor att det finns gamla datorer som klarar att agera hemautomationskontrollers! Eftersom jag hittade just en bärbar fick jag Bluetooth, Wifi och ”UPS” på köpet. Min tanke är att nyttja Ubuntu Server som ett nav framöver, är du intresserad av att testa själv så är den enda hårdvara extra som behövs en DVD-Skriva eller ett USB minne.  I höst kommer guider och tips på Home Assistant, Grafana, Node-Red, Mosquitto och Tasker. Dessa bygger på information från den här guiden, så är du intresserad av någon av dessa kan du utgå ifrån den här guiden eller RPI guiden för att själv testa och förbereda.

Vad kan du förvänta dig av guiden:

  • Hur skapar man ett USB minne som det går att installera från (extern länk)
  • Hur installerar du Ubuntu server
  • Hur du Installerar och konfigurerar
    • Grafana, InfluxDB, Node-Red, Home Assistant, Mosquitto
  • Jag kommer att uppdatera med mer information under hösten i andra guider som refererar hit.

Nu är inte jag någon expert på Linux, så jag tar gärna emot tips eller saker som går att förbättra! Men som sagt med informationen nedan fick jag igång min egna bärbara dator som nu agerar Hemautomationskontroller. Uppskatta verkligen alla tips jag kan få på vad som går att göra bättre.

Ladda hem och skapa media att installera från

Börja med identifiera vilken processortyp datorn har, dvs om du har X64 eller X86 processor i datorn (jag hade X64), börja med att ladda hem Ubuntu Server. För att sedan göra en usb sticka som datorn kan installera från följer du den här guiden (create a usb stick on windows), finns inte någon orsak att jag ska skriva en ny guide på det steget eftersom guiden var perfekt, jag använde Rufus som dom rekommenderade i guiden, fungerade bra för mig.

 

Installation Ubuntu Server

När detta är klart är det bara att koppla in USB minnet i datorn, alternativt skivan. Jag valde att ta bilder på skärmen och lägger in dessa i kronologisk ordning. När du startar datorn kan du behöva ändra vilken ordning enheterna bootar från, välj att skivan eller USB minnet ska vara det första.

Nu kanske du undra varför jag inte kör med Debian? jo tanken är att man med hjälp av den här guiden även ska kunna sätta upp en server i Azure, Amazon eller Google där Ubuntu server finns med som standard. Det är även möjligt att installera det i Hyper-v och Vmware. Det kan hjälpa dom som inte har möjlighet till publik ip eller har enheter uppkopplade på många olika platser. Men mer om detta senare i höst 🙂

*** om du öppnar en bild så kommer den automatiskt att gå bild för bild neröver.

Välj att installera Ubuntu server
Välj det Språk du känner passar, jag tog Svenska.
Ange land.
Låt Ubuntu identifera tangenterna
Svara ja
Svara Ja
Svara Nej
Fortsätt
Enheter installeras nu..
Välj det nätverks som passar din dator, jag valde mitt nätverkskort för kablat nät.
Välj ett vettigt namn på servern.
Ange ett namn för de nya kontot.
Ange användare id.
Skriv ett starkt och bra lösenord.
Jag valde att inte kryptera eftersom jag är ute efter all prestanda som gick att få.
Min tidzoon stämde bra.
jag hade gjort en testinstallation tidigare, du kanske inte får det här valet.
Den fick ta bort allt gammalt jag hade sedan tidigare
Nu skrivs allt över som fanns på min dator, så det går inte att ångra sig efter det här steget..
Jag valde hela min disk (var automatiskt allt förvalt)
Svarade sedan ja att den fick göra alla ändringar som behövdes.
Nu installeras lite mer saker..
Hemma har jag inte någon proxy, så vida du inte har det så är det bara att trycka fortsätt.
Nu installeras och hämtas filer och uppdateringar.
För att underlätta och alltid få det senaste automatiskt valde jag mittersta valet.
jag adderade ”Manual package selection”, ”Standard system utilities” samt OpenSSH server (behövs för att fjärra den)
Nu valde jag att den fick skriva att datorn alltid skulle boota från disken.
Jag valde att den fysiska disken skulle nyttjas, inte USB minnet som fanns under installationsfasen.
NU är det bara att ta ur minnet / skivan och starta om. Du har nu installerat ubuntu!

Om allt gått vägen så har du nu installerat Ubuntu server på din dator / bärbara dator. Nu fortsätter jag att göra installationen av de komponenter jag kommer att använda mig av i höst.

Konfiguration av Ubuntu Server

Nu är det läge att verifiera att allt är uppdaterat, detta görs med följande två kommandon:

# Uppdatering av Ubuntu
sudo bash
apt-get update && apt-get upgrade -y
# jag passade även på att installera Htop, vilket är ett verktyg för att se hur mycket resurser som nyttjas
apt-get install htop

 

Installation Node-Red

# att installera node red fungerade bra på följande sätt:

sudo apt-get install nodejs-legacy

sudo apt-get install npm

sudo npm install -g --unsafe-perm node-red node-red-admin

sudo ufw allow 1880

## testa nu om det fungerar genom att köra
node-red


Svara J och sedan tryck på Enter för att påbörja installationen.
Installationen av npm går relativt snabbt.
Om allt gått som det är tänkt så borde du se följande

Nu är inte Node-Red uppsatt att starta som tjänst,  men det görs enkelt med följande steg:

# börja med att skapa och editera node-red.service med kommondot nedan.

sudo nano /etc/systemd/system/node-red.service

# i den filen lägger du till:

[Unit]
Description=Node-RED
After=syslog.target network.target

[Service]
ExecStart=/usr/local/bin/node-red-pi --max-old-space-size=128 -v
Restart=on-failure
KillSignal=SIGINT

# log output to syslog as 'node-red'
SyslogIdentifier=node-red
StandardOutput=syslog

# non-root user to run as  (((( Välj här samma namn som ditt konto, så vida du inte skapar ett annat ( de tre raderna med texten "noden" ändras till ditt anvid )
WorkingDirectory=/home/noden/
User=noden
Group=noden
		
[Install]
WantedBy=multi-user.target

### tryck sedan ctrl+x och Y

skriv sedan följande för att lägga till det som tjänst och sedan starta det:

sudo systemctl enable node-red

sudo systemctl start node-red

Nu går det att surfa till Http://dittIP:1880, du kanske inte möts av alla flöden som på bilden, men nu kan du börja bygga egna! 🙂

Mitt vera flöde som jag byggde innan jag hittade Home Assistant

Jag fick problem att kontot inte hade behörigheter i mappen, fick därför gå till:

/home/ispep/.node-red och köra kommandot (obs tänk på att ispep motsvarar ditt anvid!):

chown ispep:ispep *

Källa: https://www.digitalocean.com/community/tutorials/how-to-connect-your-internet-of-things-with-node-red-on-ubuntu-16-04

 

Installation av InfluxDB

InfluxDB (extern länk) är en ”time series database”, vilket är en typ av databas optimerad för grafer och händelser, har tidigare använt och skrivit om den i mina Raspberry PI guider, troligen är det InfluxDB som skrivit sönder mina minneskort på löpande band tillsammans med strömavbrott… Till saken hör att jag loggar LITE mer än man borde, sedan 2016-12-03 har jag skrivit mer än 8.226.271 rader med sensorinformation.

InfluxDB används sedan som en datorkälla till Grafana, vilket presenterar datat i snygga grafer.

För att undvika att gå ifrån min Raspberry PI guide allt för mycket så väljer jag att göra samma konfiguration även på Ubuntu servern, då går det att nyttja framtida guider oavsett om du valt att göra installationen på en Raspberry pi eller Ubuntu.

### Börja med att installera InfuxDB

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
		
echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
		
sudo apt-get update && sudo apt-get install influxdb
		
## öppna nu och konfigurera din Installation med:
		
sudo nano /etc/influxdb/influxdb.conf

Nu lägger du in följande text i filen:

# editera följande tre rader genom att ta bort  "#" tecknet. 
				 
# [http]
	# Determines whether HTTP endpoint is enabled.
	enabled = true
				 
	# The bind address used by the HTTP service.
	bind-address = ":8086"
				 
	# Determines whether HTTP authentication is enabled.
	auth-enabled = false
				 
	# The default realm sent back when issuing a basic auth challenge.
	# realm = "InfluxDB"
				 
	# Determines whether HTTP request logging is enable.d
	# log-enabled = true
				 
# För att sedan spara tryck ctrl+x och sedan J och enter

Nu är grundkonfigurationen gjord, för att starta om tjänsten så den läses skriver du:

service influxd restart

 

Konfiguration av en databas i InfluxDB

Nu är det läge att göra en databas som sedan kommer att nyttjas genom serien, jag kommer att döpa den till ”db_automatiserar” det är fritt att döpa den till vad som helst. Men tänk på att alla mina script och guider kommer att peka på namnet ovan i framtiden.

### börja med att starta verktyget med kommandot nedan

sudo influx

### skriv sedan EXAKT samma som nedan (förutom databasnamnet db_automatierar, det kan du välja ett eget om du vill			 			 

CREATE DATABASE db_automatiserar
show databases
exit

# Nu har du en databas klar.

För att testa om allt gått som tänkt kan du öppna en webbläsare och surfa till ip adressen servern har (vet du inte adressen kan du skriva:  ip addr | grep inet

Genom att sedan surfa in till adressen samt http://IpadressenDuJustFick:8086  borde du få en sida med ett fel, vilket den här gången är helt ok

Influx redo att ta emot data.

 

För att skicka in data till databasen från  Ubuntu prompten kan du skriva:

###
# Följande rad skickar in ett värde till din databas, tänk på att db_automatiserar behöver ändras om du bytt namn på databasen 

curl -i -XPOST "http://localhost:8086/write?db=db_automatiserar&precision=s" --data-binary 'test,sensornamn=Demo temperatur=50 '

# för att sedan se om detta är lagrat i databasen skriver du 

influx -execute 'SELECT * FROM test' -database db_automatiserar

#

Detta var allt du behövde göra för att få en standardinstallation av influxdb, i min powershellmodul för hemautomation har jag gjort en enkel funktion för att skicka data till influxDB från Windows

https://www.automatiserar.se/powershell-modul-for-hemautomation/

 

Installation av Grafana

Grafana är en Open Source produkt för att visa grafer från olika datorkällor, jag har valt att koppla min implementation mot just InfluxDB. Det finns många fler datorkällor att välja mellan, men jag kommer att fokusera på just InfluxDB.

# Börja med följande två kommandon för att gå till mappen "opt" samt ladda 
# ner grafana binären 

cd /opt
sudo wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.4.3_amd64.deb

#

När detta är gjort är det dags att installera komponenter som behövs.

# för att sedan utföra själva installationen och utföra de krav som behövs körs följande:

sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_4.4.3_amd64.deb
	
# Sedan startade jag den med:
	
sudo /bin/systemctl start grafana-server
	
# För att lägga till så den autostartar vid omstart
	
sudo systemctl enable grafana-server.service
	
# Klart!  nu bör du kunna surfa till http://dinIpAdress:3000
# login och lösenord är admin / admin

När du väl fått in data i grafana går det att få grafer som ovan med ytterst lite arbete. Men mer om det kommer i guider under hösten 🙂

 

Installation av Mosquitto

Mosquitto är en kö hanterare som jobbar enligt Publish / subscribe, dvs en enhet kan skicka eller ta emot ett meddelande under en specifik kö. Det som gör att jag valde MQTT från Mosquitto är dels att den är Open Source, men även att den är sjukt snabb och skalar bra! Använder den tillsammans med Home Assistant, Node-red

# Börja att Installera komponenterna
sudo apt-get install mosquitto mosquitto-clients

# skapa konfigurationsfilen och öppna den för editering med raderna nedan
sudo touch /etc/mosquitto/conf.d/mosquitto.conf		
sudo nano /etc/mosquitto/conf.d/mosquitto.conf
	
# fyll på med följande info:

# --- start ---- 
# Config file for mosquitto
		 
user mosquitto
max_queued_messages 200
message_size_limit 0
allow_zero_length_clientid true
allow_duplicate_messages false
		 
listener 1883
autosave_interval 900
autosave_on_changes false
persistence true
persistence_file mosquitto.db
allow_anonymous false
password_file /etc/mosquitto/passwd

## avsluta och spara genom att trycka CTRL+X sedan Y och Enter

Nu är installationen gjord och det är dags att sätta ett lösenord för att få skicka och ta emot på kön.

# Jag väljer att skapa en användare som heter hemautomation, om du väljer att 
# ändra till något annat tänk då på att ändra i script och annat i mina guider framöver

sudo mosquitto_passwd -c /etc/mosquitto/passwd hemautomation

# sätt ett bra lösenord...
# ta sedan bort den gamla loggfilen 
sudo rm /var/log/mosquitto/mosquitto.log

# starta sedan om tjänsten 
sudo systemctl restart mosquitto

# KLART!

 

Installation Home Assistant

Nu börjar vi komma till det roliga! Home Assistant är ett ”nav” som kopplar ihop olika hemautomationslösningar. Jag använder den själv tillsammans med Vera, Ikeas Trådfri och många andra system. Den största fördelen med just Home Assistant (hass) är att den körs i Python, vilket är ett språk som finns till både Windows, Linux och Mac. Vilket gör att man kan installera den där man har möjlighet. Utöver det så integrerar och fungerar den med otroligt många system. med några få rader konfiguration aktivera funktioner. Jag kommer att uppdatera och utöka min guide på Home Assistant inom en snar framtid med allt roligt jag gjort med min lösning på Ubuntu servern.

Installationen:

# nu ska det bara vara att klistra in all kod rakt av och göra en installation så
# Jag har valt att göra installationen i Virtualenv för att undvika störningar från andra system som kör python
sudo mkdir /srv
cd /srv
sudo apt-get install python3 python3-venv python3-pip
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
sudo su -s /bin/bash homeassistant 
cd /srv/homeassistant
python3 -m venv homeassistant_venv
source /srv/homeassistant/homeassistant_venv/bin/activate
pip3 install homeassistant		
pip install --upgrade pip
exit
# Klart med första delen 

För att nu få den att automatiskt starta när Ubuntu server startar om kör du in följande konfiguration

# Gå in i rätt mapp och skapa filen som ska få HASS att starta automatiskt
cd /etc/systemd/system
sudo touch homeassistant.service
sudo nano homeassistant.service
		 
# Nu står du med en öppen fil, följande information ska ingå i den:
### klistra in detta (hoppa över ### raderna):
[Unit]
Description=Home Assistant
After=network.target
		 
[Service]
Type=simple
User=homeassistant
ExecStartPre=source /srv/homeassistant/homeassistant_venv/bin/activate
ExecStart=/srv/homeassistant/homeassistant_venv/bin/hass -c "/home/homeassistant/.homeassistant"
Restart=on-failure
		 
[Install]
WantedBy=multi-user.target
Alias=homeassistant.service
		 
### SLUT
### för att sedan spara trycker du CTRL+X och sedan "Y" för att spara. 

### Nu kan du testa att köra följande två rader för att ladda om det som en tjänst

sudo systemctl --system daemon-reload
sudo systemctl start homeassistant.service

# om allt gått vägen kan du surfa till http://dittIP:8123

 

TRÅDFRI

För att sedan få tillgång till Trådfri i min installation av Home Assistant behövde jag göra följande

	sudo apt-get install libtool
### Källa: https://home-assistant.io/components/tradfri/ 
	
sudo apt-get install autoconf	
git clone --depth 1 --recursive -b dtls https://github.com/home-assistant/libcoap.git
cd libcoap
./autogen.sh
./configure --disable-documentation --disable-shared --without-debug CFLAGS="-D COAP_DEBUG_FD=stderr"
Make
sudo make install

# nu borde det vara möjligt att starta om Home Assistant tjänsten och skriva lösenord till trådfi

Powershell

Jag har tidigare lagt en hel del jobb på hemautomationsmodulen jag nämner en bit upp därför passar jag på att även installera Powershell 6.X beta

Detta görs på följande sätt:

# lägg till så det går att använda Apt-get för att hämta Powershell.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -		
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list
		
apt-get update		
apt-get install -y powershell
		
### Mer än så behövdes inte 
### Starta powershell med följande rad:
Powershell
		
# Skriv sedan raden nedan för att installera modulen jag skrivit som finns på 
# https://www.powershellgallery.com/packages/AutomatiserarSE/
Install-module automatiserarse

# Klart nu är du förberedd med Powershell med!

I dagsläget använder jag inte modulen allt för frekvent på Linux, det mesta som körs där går via Node-Red, men det kan bli aktuellt i framtiden.

 

Gilla vår sida och dela den till fler. Ge tips på vad som kan göras bättre eller vad mer som borde finnas i guiden.

Som vanligt gör vi detta för att det är roligt att dela med sig och att man lär sig nya saker, vi har snart hållit på i 3 år, så passa på att kolla in arkivet vi skapat. https://www.automatiserar.se/arkiv/

Är du intresserad av att veta när guiden uppdateras, välja att prenumerera på ändringar i just den här guiden en bit ner på sidan.

// Ispep

15 reaktioner på ”Guide: Så installerar du Ubuntu Server för Hemautomation”

  1. Mycket spännande!
    Jag har idag en Ubuntu-server igång som primärt lagrar video från övervakningskameror. Antar att Home Assistant etc inte kräver så mycket för att kunna köra detta på samma server?
    Har en Vera Plus för Hemautomationen, samt IKEA Trådfri. Kan man integrera dessa mha Home Assistant? Funkar det även att hantera Apple Homekit?

    1. Home Assistant drar inte mycket alls och är nog perfekt att installera där. Jag har integrerat både Vera och Trådfri till min Home assisntat på Ubuntu server. Kan starkt rekommendera det.

      // Ispep

  2. Tack för en bra guide!

    Stötte på ett problem med autostart av HA.
    I ”/etc/systemd/system/homeassistant.service” bör följade rad
    ”ExecStartPre=source /srv/homeassistant/homeassistant_venv/bin/activate”
    ändras till
    ”ExecStartPre=source /home/homeassistant/.homeassistant”

    1. Tackar!
      Blev ju tvungen att kontrollera, och helt rätt den har inte startat upp automatiskt! (Startar ju aldrig om den tydligen)
      Ska korrigera det där steget i guiden, stort tack för att du såg det och skrev vad som löste felet.

      // Ispep

  3. Väldans klyftigt och öppnar nya spännande möjligheter! Testar just på en Nuc enl ovan (+Home Assistant guiden), går som tåget! Har dessutom tryckt in Domoticz på samma burk med gott resultat. Lurar nu på att även lägga in ”HA Bridge” för flexiblare Alexa integrering, har det i dag på en Pi3 och styr enkelt rätt kul saker med rösten. Någon som fått Vera integrationen till Home Assistant att fungera? På alla Vera sensorerna får jag bara ”Unknown” som värde på allt från temperatur till energiförbrukning. Switchar och PIR funkar klockrent.

    1. Hej och tackar!

      Tror den där buggen dök upp i version 0.53.0, uppdaterade nyss min till senaste versionen 0.55.0, då försvann problemet med dom där ikonerna står som ”Unknown”.
      Om du har lust får du gärna dela med dig med hur du gör de där stegen med Alexa, vi kör ju som en tävling om Somfy One och det där låter som ett bra bidrag 🙂

      *** Verkar som att den slutade fungera med Trådfri istället tyvärr :/
      okt 08 19:10:29 XXXX XXX[1447]: 2017-10-08 19:10:29 ERROR (MainThread) [homeassistant.components.tradfri] Looks like something isn’t installed!

      // Ispep

    1. Tack och jag kolla in den så fort jag hinner, har som inte hunnit med mig på den senaste tiden..
      Och stort tack för tipset, uppskattas verkligen!

      // Ispep

  4. Hej!
    Får inte Node-Red att fungera med websockets.
    Gjort precis som i din tutorial men får ”Error: invalid url” när den körs automatiskt.
    Startar jag den med ”node-red” från ssh så fungerar det….

    1. Hej
      vad får du för meddelande om du enbart kör:
      sudo systemctl start node-red

      Antar att du testat att starta om ett varv med?

      // Ispep

  5. Pingback: Guide: Hemautomation med Node-Red |

  6. Pingback: Allt om Vera och VeraSecure |

  7. Hej
    Har följt denna guide och den var ju kanon som vanligt när det gäller dina guider 🙂
    Jag får dock inte Mosquitto att autostarta, måste varje gång skriva ”Mosquitto” i terminalfönstret för att den ska starta, har du ev någon lösning på det? Har uppgraderat till 18.04.
    Har du någon lösning på hur man släcker skärmen på laptopen som ubuntu är installerat på? Har så jag kan stänga skärmen utan att datorn går ner i sleep, men skärmen fortsätter vara igång.

    1. Tackar! Har planer på att gå upp till version 18.04 med, i sambamd med det tänkte jag uppdatera den här guiden med. Ska kolla på om jag skrivit något fel i guiden så fort jag hinner med. I annat fall blir det när jag uppdaterar guiden för nästa version
      // Ispep

      1. Ett litet varning, när jag uppgraderade från 16.04 med ”sudo do-release-upgrade” så tog installationen bort grafana av någon anledning, jag hade dock version ”grafana_5.2.4_amd64.deb.”

Lämna ett svar till Ispep Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *