Vi hjälper dig skapa ett smartare och tryggare hem.

Med Grafana kan du enkelt visa hur signalstyrkan på respektive Zigbee2mqtt sensor haft över tid.

Förbättra Zigbee-nätverkets förutsättningar med Grafana

Under året jobbar vi med att skriva en guide för nybörjare med fokus på Home Assistant och Homey. I den här delen kommer vi fokusera på vad du kan göra med Open source lösningen Grafana för att skapa grafer. Målet är att inspirera dig och visa hur vi använder Grafana, just i det här inlägget fokuserar vi på våra Zigbee sensorers signalstyrka.

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

Problemet vi löser med innehållet i inlägget är hur du felsöker sporadiskt fungerande Zigbee sensorer över tid. Vi hoppas du uppskattar innehållet och inspirerar dig att börja med ännu ett verktyg som kan förbättra din vardag och effektivisera dina hemautomationer. Inlägget utgår från Zigbee2MQTT, men oavsett kontroller så kan du tillämpa tekniken vi beskriver så länge du kan få ut signalstyrkan till MQTT eller InfluxDB.

Zigbee2mqtt och en karta över Zigbee-nätverket.
Kartan är genererad i Zigbee2mqtt och visar hur våra sensorer kommunicerar med SONOFF Zigbee USB 3.0 stickan. Ett tips innan du fortsätter läsa om hur du använder Grafana för felsökning i Zigbee, kontrollera att du har så bra förutsättningar som möjligt för ditt Zigbee nät. Så börja läsa vår guide om hur du planerar och optimerar ditt Zigbee nät.

Den bild du ser ovan från Zigbee2Mqtt visar hur vårt Zigbee-nätverk mår när kartan genereras. Något som ger oss information om vilka enheter en Zigbee sensor meshar (hoppar) via för att nå våran Zigbee koordinator (USB stickan). Kartan ger oss en uppfattning om hur bra signal sensorn hade och vilka vägar den kunde ta. Men den ger oss inte någon information om hur nätverket mår över tid.

Nu kommer vi beskriva hur vi går tillväga för att skapa förutsättningarna. Något som gör att vi får signalstyrkan över tid och löser det problemet.

Komponenter vi använder

Följande tekniker kommer vi testa i kombination med Homey och Home Assistant.

Alla de delar du behöver för att själv kunna skapa graferna finns beskrivna i länkarna nedan. Är du däremot bara intresserad av att få inspiration om vad du kan göra med grafana så fortsätt läsa.

  • Home Assistant ( vårt primära hemautomationssystem )
  • Zigbee2mqtt ( hanterar vår Sonoff Zigbee sticka och Zigbee enheter)
  • Mosquitto MQTT ( kö som Zigbee2mqtt skickar data till )
  • Node-Red ( Lyssnar på mosquitto mqtt kön för zigbee2mqtt, skickar data till influxDB )
  • InfluxDB ( lagrar data över tid i en tidsseriedatabas)
  • Grafana ( ger oss ett verktyg att analysera och presentera data över tid )

Börja samla data

Hemautomation med Node-Red

För att kunna förbättra förutsättningarna så kan vi börja lyssna på vad Zigbee2mqtt skickar via Mosquitto MQTT med hjälp av Node-Red. Bilden nedan visar det flöde i Node-Red som lyssnar och sorterar fram signalstyrkan. Det skickas sedan vidare till vår tidsserie databas InfluxDB. Nu kan den den här typen av data skickas automatiskt till InfluxDB utan Node-Red från Home Assistant, men vi vill visa exempel på hur det går att lyssna på MQTT direkt med.

Med hjälp av ett flöde i Node-Red så lyssnar vi på allt som kommer på topic:en Zigbee2MQTT i Mosquitto MQTT. Vi gör några modifieringar på informationen för att sortera fram det vi är intresserade av. Vi har i flödet ett extra block för att veta hur mycket MQTT som skickas varje sekund.

I blocket strax innan ”loggning” så väljer vi att designa vårt InfluxDB paket så här: ”tag1” är namnet på vår sensor, och ”tag2” är signalstyrkan. Den informationen kommer vi sedan använda i Grafana för att skapa en automatisk dashboard.

msg.payload = [{
    signalstyrka: msg.payload.linkquality,
},
{
    tag1:msg.topic.split("/")[1],
    tag2:"Signalstyrka"
}];
return msg;

Visa innehållet från InfluxDB i Grafana

Den information vi skickar från Node-Red till InfluxDB är taggad med producerande system. Vilket gör att vi i Grafana kan skapa en vy som visar hur många meddelanden som totalt skrivits till Mosquitto MQTT under en period, dessutom från varje källa. Detta är smidigt sätt att se om vi överbelastar eller när någpt i tiden händer i vårt system.

Insåg när vi zoomade ut till ett tidsintervall på de senaste 7 dagarna att det har passerat mer än en halv miljon meddelanden! Att kunna hantera den här mängden information utan något graf verktyg är omöjligt.

Tycker du innehållet på vi skapar är intressant? Men vill slippa manuellt hålla koll på när det kommer något nytt, passa då på att prenumerera på bloggen. Då får du hela inlägget på mail när vi publicerar något nytt. Dvs du behöver inte besöka sidan alls för att ta till dig vårt innehåll, men vi ser gärna att du kommenterar och kommer med tips på bloggen ändå.

Information om signalstyrka

Att över tid kunna se vilken signalstyrka en sensor har som medel underlättar planering och felsökning av Zigbee sensorer i nätet. Bilden ovan visar de senaste 7 dagarna från alla våra sensorer i Zigbee2mqtt.

Om du funderar varför vi använder så kryptiska namn H001L på våra sensorer så är det för att fritt kunna flytta dom utan att behöva döpa om dom. Vi hanterar nämligen de flesta filter med hjälp av vilket rum en sensor sitter i. Hela bakgrunden till namnsättningarna hittar du här.

Nu har vi all information vi behöver och kan skapa ett filter inne i Grafana för att visa alla Zigbee sensorer och vilken signalstyrka dessa har. Bilden ovan ger oss ett medel på de senaste 7 dagarna från varje Zigbee sensor. Den graf vi där byggt upp baserar sig på inställningarna nedan. Nu kommer den här frågan inte fungera för dig så vida du inte har valt att skicka din InfluxDB data som vi gör i Node-Red.

SELECT last(”signalstyrka”) FROM ”msg.data” WHERE (”tag2” = ’Signalstyrka’) AND $timeFilter GROUP BY time($__interval), ”tag1” fill(none)

Frågan vi ställer mot databasen är inte något komplicerad, utan vi säger att alla enheter med ”tag2” som matchar signalstyrka ska tas fram. Sedan väljer vi att presentera informationen i signalstyrka. För att sedan få varje sensor att dyka upp så använder vi ”tag1” som innehåller namnet på våra sensorer under Group By.

I panel vi nyss skapade så väljer vi nu att lägga till en tidslinje. Där kommer vi nu välja att bara hämta data om signalstyrka och presentera i grafen. Så redan nu har vi en enkel visuell graf som ändras utifrån vilket tidsintervall vi väljer att visa. Som du ser nedanför så har vi en del Zigbee enheter som har problem, det är nu något vi kommer försöka ändra på om det går.

Med den här grafen i Grafana få vi in nya sensorer automatiskt i vyn. Så lägger vi till en ny sensor i Zigbee2mqtt så dyker den automatiskt upp här. Vi får dessutom en graf för varje sensor utöver medelvärdet under tidsintervallet.

Analysera flera sensorer

Alla Zigbee sensorers signalstyrka de senaste 7 dagarna. Den här vyn skapar inte så stort värde med alla sensorer aktiverade, men vill du se hur några enheter tillsammans beter sig så kan du här välja ut några specifika och få dom som en graf.

Nu räcker dock inte det här för att kunna avgöra om Zigbee enheter har tillfälliga problem, eller om det är någon förutsättning runt om som påverkat. Så vi skapar kopia av den befintliga grafen och ändrar från ”Stat” till ”Time series”, förutom det så gör vi inte någon ändring av innehållet. När vi sedan sparar får vi en mycket rörig graf som ovan.

Genom att byta från ”stat” till ”Time Series” så får vi en helt ny graf typ

Nu är den grafen vi just skapade inte något som ska användas visuellt för att exponera alla sensorer. Utan vi är intresserad av kunna kolla på någon utvald sensor över tid. Det gör vi genom att klicka på namnet nere på sensorn. Genast så filtreras alla andra sensorer bort från grafen och vi får lätt att visuellt se hur sensorn beter sig över tid.

En sensors signalstyrka de senaste 7 dagarna, här kan vi zooma ut och in på olika tidsspann. Vi kan dessutom visa fler sensorer som graf samtidigt för att hitta mönster.

Så nu kan vi börja spåra olika sensorer och över tid se hur dom beter sig tillsammans. Vilket gör att vi nu har ännu ett sätt att analysera och avgöra om det tex behövs en extra strömsatt enhet. Sen kan vi avgöra om det gjorde skillnad rätt snabbt. Grafen går att förbättra ännu mer genom att presentera namnen nedan för som en tabell. Vi kan fortfarande välja en specifik sensor om vi behöver. Men vi kan dessutom sortera på signalstyrkan i grafen.

Med en liten justering så blir det genast mycket mer användbart. Att presentera varje sensor med namn och signalstyrka ger ett enkelt sätt att välja ett intervall och sortera fram vilka sensorer som har en låg signalstyrka och fokusera endast på dom.

Väljer vi nu att sortera grafen på dålig signal som nedan, då kan vi enkelt leta fram alla sensorer och bara presentera dom i grafen, då kan vi avgöra om det finns ett mönster för dom sensorerna. Eller om det bara är så att dom har slumpmässigt dålig signal.

Som bilden visar så har vi haft en hel del sensorer som har mycket låg signalstyrka. Något som vi nu håller på att åtgärda genom att

Nu kan vi sedan ändra olika intervall på när vi vill kontroller signalstyrkan för våra Zigbee enheter. Skulle du se mönster som att på kvällarna när alla är hemma att signalstyrkan går ner, då kan du fundera om 2.4Ghz wifi ligger på en kanal som krockar med ditt Zigbee näts kanal.

Med informationen om vårt Zigbee-nätverk från Zigbee2mqtt och graferna i grafana så kan vi nu dra bättre slutsatser om vad olika problem kan bero på.

Kommande inlägg?

Här väljer vi att avrunda inlägget och publicera, vi lyckades inte få till mer innehåll än hit den här veckan. Men vi hoppas du fick inspiration och börjar få upp lite idéer på hur du kan använda grafana som ett analyseringsverktyg.

Vi har ännu inte hunnit bygga klart grafen för vår automatiska bevattning av gurkorna.

Vi kommer inom kort uppdatera vårt inlägg om hur vi övervakar och bevattnar vår gurka, då kommer det bli en hel del automationer vi bygger med med hjälp av data från Grafana. Där använder vi dessutom flertalet av Bluetooth sensorerna LYWSD03MMC, och även dom ska vi via mer om i grafana.

För att få en display och slippa ta upp telefonen så använder vi sensorn LYWSD03MMC, den kostar strax över ~70 kr och än så länge ett mycket bra komplement till Xiaomi Aqara sensorerna.

Rekommenderad läsning

Länk inom bloggenVad hittar du på inlägget
https://automatiserar.se/test-av-luftrenaren-starkvind-fran-ikea/Nu när pollen säsongen kommit igång så kanske en smart luftrenare kan vara ett bra bra hjälpmedel.
https://automatiserar.se/guide-home-assistant/Här hittar du en samling med allt vi har på bloggen om Home Assistant
https://automatiserar.se/guide-for-nyborjare-med-fokus-pa-home-assistant-och-homey/Här har vi en aktuell steg för steg guide för att komma igång med både Home Assistant och Homey. Där finns all info som behövs för att sätta upp de förutsättningar som behövs för att följa det vi skriver om på bloggen.
https://automatiserar.se/automatisera-tradgarden-och-bevattningen/Vill du veta mer om hur du kan använda Gardena City Gardening inför kommande inlägg, då kan du spana in det här inlägget. Där finns det redan nu en mängd information och dessutom mer information om Mi Flora.
https://automatiserar.se/optimera-din-luftvarmepump-med-hemautomation/Tycker du det verkar intressant med att använda sensordata för att se vart du skulle tjäna på att investera. Det här inlägget berättar om hur vi optimerade vår luftvärmepump utifrån elpriser, värme och andra faktorer. Något som sparar oss pengar automatiskt nu.
https://automatiserar.se/test-av-underhallsfri-myggfangare/Sommaren börja närma sig och Myggen är något som många redan nu säkerligen börjar fundera på. För något år sedan skrev vi ett längre inlägg om en underhållsfri myggfångare.
https://automatiserar.se/philipshueoutdoorsensor/För att få bättre koll på vad som händer ute och i trädgården så kan Philips Hues utomhussensor vara en mångsidig lösning att läsa mer om. Den har rörelse, temperatur och ljus och dessutom riktigt tillförlitlig!
https://automatiserar.se/fa-koll-pa-fuktighet-och-temperatur-med-lywsd03mmc/Letar du en riktigt prisvärd display så kan det här genomgången av LYWSD03MMC vara en bra start. vi köpte 5st för ~250 kr tidigare. Nu är detta en Bluetooth sensor, men vi ser att det protokollet börjar få stora framgångar inom flera projekt.
https://automatiserar.se/guide-home-assistant-och-esphome/Och börjar du leta efter projekt med Bluetooth, då bör du spana in ESPHome. Där lägger Home Assistant projektet stort fokus. och vi använder det för att ta in våra Bluetooth sensorer längre bak på gården nu med.
https://automatiserar.se/test-tibber-pulse-p1-en-bra-investering/När det gäller att se elförbrukning så har vi sett många som kör Tibber Pulse P1, och även vi har gjort det. Men på grund allt strul så letade vi en annan lösning. Och vi hittade där en lösning för att köra den mot en lokal MQTT!
https://automatiserar.se/vad-ar-athom-homey-bridge/Tycker du det verkar jobbigt och dyrt att komma igång med smarta hem? Då kan inlägget om Homey Bridge vara något att läsa på om. Den lösningen kräver mycket mindre av dig som användare än tex Home Assistant. Den har däremot begränsningar och en månadskostnad.

Kommentarer

Ett svar till ”Förbättra Zigbee-nätverkets förutsättningar med Grafana”

  1. Vore nice om du kunde posta node-red flödet i json så man bara kan copy/paste för att lära sig. Eller om du visar hur man på ett enkelt sätt filtrerar ut signalstyrkan i grafana om man redan har kopplat mqtt till home assistant.

Lämna ett svar

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