Del 3 – Installera InfluxDB och Grafana på Home Assistant

Nu har vi kommit till del 3 om Home Assistant i vår serie Guide För Nybörjare Med Fokus På Home Assistant Och Homey. Där samlar vi allt som behövs för att du ska komma igång.

I det här avsnittet ska vi fokusera på att ta hand om data och i framtiden kunna skapa värde av det. Och när vi säger data så är det i praktiken all typ av information som Home Assistant genererar runt sensorer. Vi kommer här visa hur du steg för steg installerar InfluxDB och Grafana. Finns det intresse så kan vi även skapa en film till vår Youtube kanal (extern länk), följ oss gärna där så vi ser att den tid vi lägger där är av värde.

När det gäller att skapa värde av data så har InfluxDB och Grafana varit den primära lösningen under många år för oss. Risken om data inte presenteras och analyseras är att den börjar dra till sig damm och bli dålig, precis som på hårddisken på bilden ovan 😉

Nu finns det några möjligheter här, den första är att helt enkelt fortsätta använda Home Assistants inbyggda lösning för att spara data. Den har utvecklats väldigt mycket sedan projektet startade. Men vi har många bra orsaker till varför du bör köra igång med InfluxDB och Grafana, så följer du serien så kommer du märka det.

Nu kommer vi inte i det här inlägget hinna visa så mycket hur du använder Grafana, men vi kommer återkomma till det i serien.

Vill du veta när det kommer mer roligt på bloggen, men kanske inte har tid att kolla den hela tiden? Prenumerera då på inlägg från bloggen, då får du en hela inlägget på mail varje gång vi publicerar.

Meny

Bakgrund

När vi ställer oss frågan om det InfluxDB och Grafana verkligen behövs så är det inte längre ett helt självklart svar. Men när vi började runt 2014 så fanns inte möjligheterna alls i Home Assistant. Speciellt om behoven att ställa olika typer av information mot varandra. MEN de senaste åren har Home Assistant fått BRA stöd att visa snygga och informerande grafer. Så här kanske du själv behöver ta en funderare på om det är värt att använda Grafana.. Om du hoppar ner till ”Presentera grafer i Grafana från Home Assistants data” så kan du se att de mest grundläggande graferna nu går enkelt att göra i Home Assistant.

För att lagra information över tid och minska risken att den försvinner så tycker vi att InfluxDB har varit en bra lösning med. Det andra alternativet är att nyttja något som heter MariaDB, detta är dock något som vi själva ännu inte haft behov av att göra. Men du som läser det här kanske har en annan åsikt och kan lyfta fram bra orsaker till att även använda den tillsammans med InfluxDB.

Nu kommer vi gå vidare med att använda InfluxDB och Grafana i den här serien, dvs vi kommer lagra alla sensor händelser från Home Assistant över tid där. Detta gör att vi i framtiden kan kolla och analysera händelser visuellt med verktyget Grafana. Vilket skapar möjlighet att bygga en dashboard fokuserat på data och trender.

När vi testar hur Bluetooth displayen LYWSD03MMC fungerar så är grafana en perfekt lösning, där kan vi märka upp olika händelser i vår data. De streckade blå vertikala linjerna där vi flyttade sensorn. Och än så länge så måste vi säga att sensorn är värd de ~60kr vi betalade för dom. På bilden nedan är den sensorn som genererat data:t ovan.
Graferna i Grafana på bilden ovanför den här kommer från två olika Bluetooth sensorer av den här typen LYWSD03MMC. När det gäller just att både få data och samtidigt kunna logga så är det här den mest prisvärda lösning vi hittat ännu! Jämför vi dom med Xiaomi Aqara så kostar dom 1/3 av vad en Aqara kostar. Men vi ska tillägga att dom har helt olika användningsområden och kompletterar varandra riktigt bra!

Men utan att ha skapat grafer och jämfört med Xiaomi Aqara så hade vi inte vetat hur ofta den skickar data, hur den diffar från tex Aqara sensorn. Så för att dra slutsatser och analysera förändringar är Grafana en mycket bra lösning.

Vad är InfluxDB?

Källa till bilden: https://raw.githubusercontent.com/influxdata/influxdb/master/assets/influxdb-logo.png
InfluxDB – En tidseriedatabas (källa – https://raw.githubusercontent.com/influxdata/influxdb/master/assets/influxdb-logo.png )

Som vi nämnde är InfluxDB (extern länk) en Open Source tidseriedatabas, vilket är något som är optimerat för att lagra och snabbt visa information över tid. Det finns en mängd funktioner för att städa data över tid med, men vi väljer att behålla så mycket data som möjligt i den.

InfluxDB är bättre anpassad för den här typen av uppgift än den inbyggda databasen i Home Assistant, dessutom kommer vi i framtiden skapa fler databaser för att låta Node-Red skicka in data med. Nu är vår användning av InfluxDB i den här serien än så länge mycket enkel. Vi kommer skapa en databas och sedan låta Home Assistant skicka all information om sensorer dit.

Installera InfluxDB med Home Assistant

Att installera och konfigurera InfluxDb är i dagsläget en relativt enkel sak. Men för säkerhets skull så ha för vana att göra en backup av din Home Assistant och kopiera ut backup filen. Detta eftersom vi kommer justera InfluxDB att ta emot loggdata från Home Assistant.

  • Tänk på att den här lösningen inte är att rekommendera på en installation där du lagrar på minneskort. Tex Raspberry pi som lagrar direkt på minneskort. I vår serie så har vi valt en SSD och därav kommer vi inte lida av att lagringen blir sönderskriven direkt.
  • Du bör fundera över hur länge du vill lagra din information innan den ska tillåtas att tunnas ut. I vår lösning så har vi satt att den får lagra i evigheter.

Innan du kör igång så säkerställ att du gjort en backup och kopierat ut allt externt från din Home Assistant. Detta gör du under Inställningar / system / Säkerhetskopior.

Steg 1 – Installera tillägget InfluxDB med Home Assistant.

Börja med att gå till ”inställningar / tillägg” och sök fram tillägget InfluxDB.

Välj att lägga till influxdb
Under tillägg hitta du ”InfluxDB”, om du är fundersam på varför du inte ser zigbee2mqtt så kan du läsa vårt förutgående inlägg.
När vi gör vår installation så är det InfluxDB version 4.5.0 som gäller, men versionen på InfluxDB brukar påverka installationen i stort. Så välj att installera InfluxDB.

Innan du startar InfluxDB så ska du gå till inställningar och bocka ur ”SSL”. När det är gjort så trycker du spara. Vi kommer inte välja att exponera vår InfluxDB utanför Home Assistant så därav väljer vi att inte ha ett dedikerat SSL certifikat för den tjänsten.

Nu är det bara att avvakta till den är installerad och sedan trycka på start. Under uppstart kan det ta ~1-5 minuter beroende på hårdvara. Vill du slippa chansa på när den är klar så kan du kolla loggarna för InfluxDB, där kommer du se ”Starting NGINX” när den är redo.

När du ser Starting NGINX så kan du gå tillbaka till startsidan för InfluxDB och öppna webbgränssnittet

När du öppnat ditt webbgränssnitt för InfluxDB så ska vi skapa 2 saker. En databas och en användare, nu kommer vi inte använda den här InfluxDB till annat än just Home Assistant, så vi kommer ge vår användare ”all” på behörigheter på databasen.

Skapa en databas till InfluxDB för Home Assistant

I webbgränssnittet för InfluxDB så finns det en krona som på bilden där ska vi börja med att skapa en databas.

Vi väljer under ”Users” att skapa en användare som heter ”Hass” och sedan sätta permissions ”ALL”, utan den inställningen så fick vi inte kontot att kunna skriva till databasen. OBS skriv upp vilket lösenord du väljer, tex i någon lösenordshanterare.

Under databases så väljer vi att skapa en ny databas med namnet ”homeassistant”, eller om du vill ha ett eget namn, men tänk då på att använda det namnet i kommande steg i guiden. Den databasen vi skapade kommer ta emot data från Home Assistants alla sensorer snart.

När vi skapade databasen så valde vi medvetet att sätta ”duration” till oändligt, dvs nyttja default. För vi vill inte att några värden ska försvinna och vi vet att det finns tillräckligt med utrymme för all data.

Nu är det dags att få Home Assistant att skicka all sensorinformation till InfluxDB, detta gör du genom att öppna upp Configuration.yaml och sedan kopiera in texten nedanför bilden.

Nu använder vi oss av File Editor som vi installerade i den förutgående delen av vår guide – installera file editor. Du ska där lägga in följande information i Configuration.yaml (Filen hittar du under /config/configuration.yaml )

Beroende på hur du valt att döpa din användare på InfluxDB och databas så behöver du här kontrollera att det är det du anger nedan. OBS du ska helst undvika att lägga lösenordet i den här filen, istället bör du använda en separat fil för detta. Men vår tanke är att i framtiden lägga till sätt att öka säkerheten och minska exponeringen av lösenordet. Så för tillfället kan du göra så här så vida du inte redan vet hur du gör detta 🙂

InfluxDB konfiguration för Home Assistant
influxdb:
  host: a0d7b954-influxdb
  port: 8086
  database: homeassistant
  username: Hass
  password: <Dittlösenord>
  max_retries: 3
  default_measurement: state

Sedan sparar du inställningen ovan och startar om din Home Assistant. Skulle du efter omstart hitta något liknande som nedan i loggfilen så är det något som inte gick som tänkt. Kolla då igenom felmeddelandet och kolla om något av stegen ovan misstas.

Ett lätt sätt att se om allt gick vägen är att gå in under Inställningar / system / Loggar, och skulle du få upp något som ovan så vet du att någon av de inställningar du gjort inte blev rätt. Ser du däremot inte några fel för InfluxDB så kan du fortsätta. Felet ovan berodde på att vi initialt inte gett användaren Hass i InfluxDB ”ALL” på behörigheterna.

Om du tagit dig hit utan att fått något fel så har du nu en fungerande installation av InfluxDB!

Vad är Grafana?

Grafana logga från: https://raw.githubusercontent.com/grafana/grafana/main/docs/logo-horizontal.png

Grafana är ett Open Source verktyg för att presentera data visuellt. Med hjälp av den så går det snabbt att dra slutsatser eller skapa larm utifrån mönster i data.

När vi skrev om hur vi sparat pengar med hjälp av smarta investeringar hemma så baserade sig många av de besluten på data som vi summerade i Grafana – Här finns det inlägget – Spara Pengar Med Hemautomation. Vi lagrar ofta sensorinformation över mycket långa tidsintervall, något som gör att vi snabbt kan skapa en graf och dra slutsatser om en investering skulle löna sig. Bilden nedan visade oss hur el-patronen i vår panna fick jobba ibland. När vi sedan tog ut den här informationen över något år så såg vi att en varmvattenberedare skulle betala av sig själv på bara något år!

När pannan stannar...
När vi kör el-patronen till pannan så trodde vi inte det skulle vara igång så ofta…

Med Grafana så skapar du enkelt gränssnitt som kan innehålla komplexa kombinationer av ditt data (tex sensor data). Detta gör dessutom att du kan skapa larm om data beter sig på ett visst sätt över en tidsperiod mm.

När vi började skriva den här delen så insåg vi att Grafana har funnits i vår smarta hem lösning nästan sedan starten, redan 2016 skrev vi en guide för att installera InfluxDB och Grafana på en Raspberry PI 2 (OBS-Ej gällande guide!), då krävdes det en mängd kommandon och script för att installera allt. Nu 2023 gör vi motsvarande igen och då behöver vi bara kopiera lite konfiguration! Så den stora skillnaden är att det mesta idag är plug and play. Något som vi inte direkt kan säga att det var när vi startade bloggen 2014, då var det mängder med kommandon, script och konfigurationer bara för att starta något enkelt.

Installera Grafana på Home Assistant

Som vi nämnde ovan så är det nu några klick för att installera Grafana, så vi kommer därför lägga till information här om hur du kopplar grafana mot InfluxDB och får tillgång till dina Home Assistant data.

Under tillägg / tilläggsbutiken så hittar du Grafana. Välj att installera den, när det är klart så bockar du i vakthund och visa i sidofältet.

Detta var allt som behövdes för att installera Grafana! Nu behöver du bara starta den och sedan lägga till några datakällor. Om du kollar under ”logg” i Grafana vyn så kan du där se att den förbereder en hel del saker. Men när du ser Starting NGINX så är gränssnittet redo att öppnas.

Koppla Influxdb databasen i Grafana

Nu är det dags att lägga till så Grafana har någon information att presentera, vi kopplar den mot den nyinstallerade InfluxDB som finns i Home Assistant. Här kanske det inte är lika lätt att komma igång om du inte vet vad du söker, så vi kommer nu visa hur du kopplar på din databas och får tillgång till all sensorinformation.

När du öppnar grafana så har du en ikon längst upp (till vänster om Home ser du ikonen), tryck på den så får du se menyn på bilden. Om du sedan går vidare ner till Configuration och data sources så ska vi koppla så Grafana får läsa från InfluxDB databasen som vi tidigare skapade.
Under Data sources väljer vi ”Add data source”.
Här väljer vi InfluxDB som databas.

Nu får du själv välja om namnet vi angav nedan ”homeassistantDATA” var bra eller om du vill sätta något eget där. För den informationen kommer vi se när vi skapar grafer inne i Grafana sedan. Så det värdet kan du själv sätta till vad du vill. och under ”HTTP” så anger du URL:en nedan

Ange följande URL under HTTP: http://a0d7b954-influxdb:8086 (det är en pekare till din lokala installation av influxDB)

När du sedan scrollar en bit längre ner så har du Database, där ska du nu ange Databasen du skapade, användarnamnet och lösenord. när det är klart så trycker du sedan på Save and test

När du sparar dina inställningar så bör du sedan mötas av ”datasoruce is working, X measurements found”, här beror antalet den hittar på hur mycket din Home Assistant har hunnit skicka in i InfluxDB. Men i och med detta så har du nu en kopplad grafana med.

Grattis! Nu har du förhoppningsvis en massa rolig data att börja analysera 🙂 Och skulle det inte gått så bra som vi skrev utan att något strulade, skriv då en kommentar så ser vi om det går att lösa eller om det finns fler saker att ta höjd för.

Presentera grafer i Grafana från Home Assistants data

Nu kommer vi till den del som du kanske skulle vilja se en djupdykning på? Då får du säga till, för vi kommer bara visa nu hur du skapar några enklare grafer utifrån data:t vi får från Home Assistant.

Vi börjar med att gå på menyn där det är fyra stycken fyrkanter till vänster. Sedan går du på ”New” längst till höger och skapar en New Dashboard.
Sen väljer vi att ”Add a new panel”

Nu när allt är på plats så väljer vi att söka fram en av de två sensorer vi inkluderade i Zigbee2Mqtt i förutgående avsnitt av Home Assistant. Den bild du ser nedan är den vy där du börjar skapar graferna till din data.

  • Längst upp till höger väljer du vilken typ av graf du är intresserad av.
  • Under Data source så bör vår ”HomeAssistantData” vara förmarkerad.
  • Under ”FROM” så har vi där valt ”C” (grader) och under ”Where” så sökte vi fram entity_id b001_temperature.
  • under ”SELECT” så väljer vi ”temperature” och sedan till höger om det värdet så väljer vi ”last()”, dvs det sista värdet jämt.
Så med lite kopplingar i gränssnittet så skapade vi snabbt följande information från våra två Zigbee sensorer.

Och som vi nämnde tidigare så går det att skapa gränssnitt även i Home Assistant. Så skapar vi en liknande graf direkt i Home Assistant så ser det ut så här. MEN i den här vyn tycker vi att det är svårt att analysera informationen och märka händelser i datat. Så för oss är grafana något som behövs för att kunna dra slutsatser från data.

Här är ett liknande gränssnitt skapat i Home Assistant, så är du ute efter att bara presentera information i realtid så är frågan om Grafana och InfluxDB är rätt väg att gå.

Skulle du däremot ha stora mängder sensorer och blandade mål med dessa. DÅ kommer inte Home Assistant idag att räcka till (tror vi iaf), för bilden nedan visar hur vi analyserar vårt hus och sensorer. Grafen nedan är under 7 dagar och baserad på en mängd olika sensorer och protokoll.

Den här bilden kommer från vår ”stora” installation av Home Assistant hemma, där kan vi dra en mängd slutsatser när något händer hemma.

Vill du ha mer information om Grafana?

Nu fanns det inte tillräckligt med tid att skapa film den här veckan till inlägget, dock spelat in en hel del material. Nu hoppas vi att den här kom igång guiden för InfluxDB och Grafana ändå gav ett värde och att du fick idéer på vad du kommer kunna göra. För vi ser det här som den första biten, vi kan uppdatera inlägget med mer information om intresset finns.

Vill du se en film om Grafana? Skriv en kommentar på något av våra sociala medier och börja följa vår Youtube kanal. Vi ser att intresset finns och att fler och fler följer den (extern länk). Men desto fler som följer den visar att vi borde prioritera den informationskanalen när vi skapar material.

Sen vill vi som vanligt tacka alla er läsare som kommer med feedback och tips på det vi borde gör på bloggen. Utan er hade det inte varit någon idé att hålla på, så stort tack till alla er läsare!

2 reaktioner på ”Del 3 – Installera InfluxDB och Grafana på Home Assistant”

  1. Peter Ahlqvist

    Jag ville använda Homeassistant bl a tillsammans med ett antal hembyggda sensorer som kommunicerar via MQTT, sparas i InfluxDB och presenteras i Grafana.
    Det visar sig att InfluxDB inte fungerar utan Telegraf och Telegraf finns inte till Raspberry Pi 4. Vad är InfluxDB bra för till Raspberry Pi?
    Jag får Mosquitto MQTT Broker att fungera med min sensor men bara för EN signal! EMQX broker hade ju varit trevligt att prova men den finns ju heller inte till Raspberry Pi.
    När jag läser om Homey PRO verkar det som många av dess appar får dåliga omdömen. Inte roligt att betala högt pris för nya problem. Är det en lika dålig lösning som Homeassistant så återstår väl inget annat än att utveckla något eget med kommunikation via sockets i stället.

  2. Patrik Carlsson

    Installerade en influxdb instans på proxmox som var v2,
    och terminologin och inställningarna är olika – jag vet inte heller om jag skulle installera komponenten men jag kollade i dokumentationen för den och lade till inställningarna i configuration.yaml:
    influxdb:
    api_version: 2
    ssl: false
    host:
    port: 8086
    organization:
    bucket: homeassistant
    token:
    max_retries: 3
    default_measurement: state
    tags:
    source: HA

Lämna en kommentar

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