Din varukorg är för närvarande tom!
Tekniker som hjälper dig skapa ett smartare och tryggare hem.
Del 3 – Förstå YAML och skapa sensorer i Hass.io
Vi har nu kommit till en tråkig del i Home Assistant, dvs hur ”kodar” man YAML och vad är det? Vi insåg att det kommer behövas sensor som så många som möjligt har tillgång till för att kunna följa och göra automationer i våra kommande guider. I del ett av vår Home Assistant guide inkluderade vi en Philips Hue brygga, från den kommer vi nyttja en Philips Hue rörelsesensor. Men alla har troligen inte någon Hue, därför hoppas vi att många har Rasberry PI och därigenom kan få sensorer (CPU temperatur & GPU temperatur, disk mm) så fler kan följa steg för steg i guiderna framöver med.
2023-02-26 – När det gäller hantering av Yaml och skapa sensorer i din Home Assistant installation så håller vi nu 2023 på att bygga upp en helt uppdaterad serie från start till mål – Guide För Nybörjare Med Fokus På Home Assistant Och Homey. Vi går igenom steg för steg så du kan bygga upp allt till en riktigt snygg lösning även om du är expert.
Vill du förstå YAML och skapa sensorer så kan du även fortsätta i befintligt inlägg, för mycket av informationen är aktuell här med
Genom att göra det hoppas vi att så många som möjligt kan testa de automationer vi kommer skiva om kommande inlägg. Våra guide bygger på HASS.IO, detta för att så många som möjligt lätt ska komma igång och kunna fokusera just på Automation.
- Vi kommer här gå igenom grunderna för att förstå sig på YAML, och vilka regler som gäller för att använda det till Home Assistant.
- Förklara hur du installerar Configurator och förklara vad det är och hur den fungerar.
- Visa steg för steg hur den YAML kod som behövs för att presentera sensorinformationen på bilden nedan.
Vill du se alla delar i vår serie så har vi samlat en övergripande meny här: https://www.automatiserar.se/hass-nyaguider/
Meny
Vi fortsätter där Del 2 slutade
I den föregående delen av vår guide på Home Assistant skapade vi ett modernt gränssnitt och började presentera sensorer från Philips Hue. Har du följt den så bör du ha ett liknande gränssnitt som filmen nedan visar. Vi kommer nu fortsätta att skapa ännu en flik dedikerad för alla som använder Rasberry PI. Även om du inte använder Rasberry PI för din installation så läs igenom nästa del. Den bygger upp den YAML kod som vi senare kommer dela upp och förklara steg för steg. Och innan du påbörjar en förändring, ta för vana att göra en backup och export av din konfiguration.
Skapa ett Rasberry PI kort i Lovelace UI
För alla som följer den här guiden och använder en Rasberry PI, följ gärna det här steget med om du vill kunna presentera din Rasberry PI:s driftstatus som vi gjorde på bilden i toppen av inlägget. Vill du inte presentera informationen, utan bara är ute efter att få tillgång till sensorerna så kan du hoppa vidare i guiden. Är du osäker på hur du jobbar med LoveLace UI så kan du läsa den andra delen av vår Home Assistant guide, där fokuserar vi helt på just LoveLace UI
Kom igång med Configurator
För att kunna editera och ändra konfigurationen i Home Assistant utan SSH (fjärrstyrning från en annan dator till HASS) eller SMB shares (utdelad mapp från din HASS) så kommer vi använda ett tillägg som heter Configurator. Den tillåter dej att hantera din Home Assistant konfiguration direkt i webbläsaren, formatet man arbetar med kallas YAML (Ett format som ska vara lättläst enligt WIKI – extern länk). Home Assistant har även en guide på hur man lägger till Configurator (extern länk)
Installera Configurator
Vi kommer att återkomma mer till vad ”Add-ON store i kommande inlägg. Men enkelt förklarat så är det färdigpaketerade tillägg till Home Assistant, all konfiguration samlas sedan till tillägget. Detta gör att kravet på Python och Linux kunskap inte behöver vara lika stor. Det gör även att man snabbt kan komma igång med nya tillägg. Vi kommer skriva en del om just deCONZ framöver med eftersom vi har en Conbee sticka (hårdvara för att prata Zigbee).
Vi kommer nytta en färdig paketering av ”Configurator” för att i webbläsaren kunna ändra i regelverket för Hass.io.
Nu har du installerat ett tillägg till HASS.IO, mycket enkelt och smidigt till skillnad mot hur det har varit tidigare. Kollar man en bit ner i listan i Add-ON store så finns även ett av våra favoritverktyg när det gäller automation i listan, nämligen Node-RED. Vi har här skrivit en kom igång för just Node-Red. Känner du att du redan nu vill testa mer avancerad automation så rekommenderar vi att du testar Node-Red addon:et. Annars kan du avvakta på våra kommande guider, vi kommer skriva mer om Node-Red och kombination med HASS.IO snart.
Så fungerar Configurator
En viktig del när det gäller att hantera HASS.IO är möjligheten att editera .YAML filer, till en början så kommer vi skriva om just hantering via webbläsaren för att hålla det så enkelt som möjligt. Har du följt steget innan så bör du nu ha ”Configurator” till vänster i menyn. Öppna den och klicka sedan på mapp ikonen som vi ringat in med en röd ring. Vill du göra en djupdykning i YAML så har Home Assistants sida en bra guide här (extern länk)
Vi har fram tills nu inte alls nämnt något om den viktigaste filen ”configuration.yaml”. Den filen är den kanske viktigaste filen i hela Home Assistant ( rätta mig om jag har fel), men ändrar du innehåll i den filen utan att uppfylla reglerna som YAML kräver så startar inte din Home Assistant längre. Därför är det extra viktigt att verifiera att din konfiguration gick rätt till innan du sparar.
Inte för att skärmas, men ha för vana att kopiera ut texten du har i configuration.yaml till anteckningar, skulle du bli osäker på vad du ändrat eller helt vill ångra dig så kan du återställa därifrån sedan. Nu finns det även skydd i Configurator som validerar det du skrivit in innan du sparar. Ska du göra mycket ändringar så kan det även vara på plats att göra en SNAPSHOT via menyn HASS.IO / SNAPSHOT / full snapshot och sedan ladda ner den lokalt.
Börja med att i fil menyn som öppnades välja ”configuration.yaml”, när du väljer den kommer du troligen se ett liknande resultat som den rödmarkerade ringen på bilden nedan. Vi kommer fokusera på den filen till en början för att inte göra det mer komplicerat än det behöver. När vi kommit en bit längre i den här serien så kommer vi börja dela upp och skriva configurationen i egna YAML filer, dvs vi vi börja inte nu med att dela upp det i egna yaml filer för att hålla det så enkelt som möljligt.
Lägg till konfiguration för Rasberry PI
För alla som kör sin Hass.IO installation på Rasberry pi så kommer följande steg vara möjligt att utföra, har du valt att köra din installation virtuellt kan du hoppa över att utföra just det här stegen, men läs dom gärna. Vi visar och förklarar hur vi lägger till tillägg för att läsa status från vår Rasberry PI och hur Configurator fungerar.
Vi kommer börja med att lägga till en komponent (integration) som heter ”systemmonitor” (länk till home assistants sida med mer info). Bilden nedan visar hur dokumentationen för en integration ser ut på Home Assistants hemsida. Vi valde den här komponenten eftersom vi googlat oss till att den ska fungera riktigt bra på en Rasberry PI och göra precis det vi vill, vilket är att läsa ledig disk, cpu mm från Rasberry pi och göra dom tillgängliga i Home Assistant. Vi kunde tyvärr inte få allt via den här, så två delar kommer att hämtas via
Nedan har vi nu lagt till konfiguration för både Systemmonitor och även två script för att läsa ut temperatur från Processor och GPU på Rasberry PI. Vi har där medvetet valt att skriva ”fel” i konfigurationen. All information är helt rätt, men det finns felande mellanslag (vilket är något YAML är mycket noga med!). Configurator ger då en röd varning längst upp till höger att något inte är korrekt skrivit i vår Configuration.yaml
Bilden nedan har vi tagit bort de felande mellanslagen till vänster om ”value_template” på rad 34, vilket gör att den röda cirkeln med en varning nu bytts till en grön cirkel.
# Automatisear.se:s kod för att få upp alla Rasberry PI sensorer:
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
# base_url: example.duckdns.org:8123
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
sensor:
- platform: systemmonitor
resources:
- type: disk_use_percent
arg: /home
- type: memory_free
- type: memory_use
- type: last_boot
- type: processor_use
- type: load_1m
- type: swap_use
- platform: command_line
name: GPU Temperature
command: "/opt/vc/bin/vcgencmd measure_temp"
unit_of_measurement: "°C"
value_template: '{{ value | replace("temp=", "") | replace("''C", "") }}'
- platform: command_line
name: CPU Temperature
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(1) }}'
# Klart
Vi kommer förklara mer i detalj vad detta innebär en bit ner, börja med att kopiera in koden ovan och se om du får en grön bockruta i din Home Assistant. Vi har testat den mot vår egna och den verifierades korrekt.
När du gjort ändringar i Configuration.yaml krävs det i regel en omstart av HASS för att få inställningen att tillämpas. upp till höger i din Home Assistant finns ett kugghjul som gör att du kan köra ”relade core” eller ”Restart Hass”. För att slippa felsöka något som helt enkelt inte tillämpats i Home Assistant så brukar jag ha för vana att trycka ”restart HASS”. Då får jag även en kvittens att min konfiguration fungerar även efter en omstart. Risken finnas att ens installation går prefekt tills den startas om, och då uppkommer något problemen.
Förklaring av YAML
Vi inser själv att det kommer behövas en förklaring om vad YAML är och hur det det används i Home Assistant. Vi kommer utgå från dokumentationen vi läser på Home assistants info om YAML. Vi förenklar och förklara de delar vi använder till en början. Vilket gör att det kan vara värt att gå in på länken och själv skumma igen om du upplever att vi missat att tagit med något viktigt, skulle det vara så skriv gärna en kommentar så försöker vi uppdatera.
En ”komponent” är det som återfinns längst till vänster utan mellanslag, i exemplet ovan är ”tts:”, ”group:”,”automation:”, ”script:”, ”sensor:” komponenter. En komponent är kärnan som logisk funktionalitet till underliggande ”plattformar”.
komponenten ”sensor:” som vi använder för att lyfta fram sensorerna från Raspberry PI är grunden, vi väljer sedan att hämta sensorer från plattformarna ”systemmonitor” och två från plattformen ”command_line”. Det är med hjälp av plattform som mjukvara eller hårdvara anropas. Vi kommer förklara steg för steg hur YAML koden i bilden ovan är uppbyggd om en liten stund.
Regler för att skriva YAML
Som vanligt finns det regler att förhålla sig till, annars kommer HASS att i värsta fall inte starta korrekt om fel YAML sparas, det finns vissa regler i hur formateringen av YAML ska se ut .
- YAML gör skillnad på stora och små tecken.
- För att skriva en kommentar och dokumentera YAML kod så används ”#” tecknet längst till vänster på en rad, detta signalerar att det är en kommentar och att det inte ska behandlas som kod av HASS.
- Den första regeln är att inte använda ”TAB” tecken, den indenteringen till vänster du ser är 2 mellanslag. YAML använder det för av avgöra vilken nivå inställningen skrivits på.
- En lista (flera av samma typ) i YAML börjar med ett minustecken ( – ), varje samling baserar sig på ”key – value”, dvs en nyckel och värdet för den nyckeln.
Förklaring av vår YAML rad för rad.
Vi skrev i delen ”Lägg till konfiguration för Rasberry PI” en bit upp den YAML kod som vi använder i det här inlägget. Den koden bryter vi nu ner rad för rad och hoppas i och med det ge en inblick i YAML och formateringen. Verkar det konstigt så skriv gärna en kommentar eller tipsa på hur det kan göras bättre. Den första och andra delen av YAML koden är det som HASS kommer med default.
# Första delen av YAML koden:
# Automatisear.se:s kod för att få upp alla Rasberry PI sensorer:
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
# base_url: example.duckdns.org:8123
Som du ser ovan så börjar alla rader förutom ”default_config” med ett ”#” tecken, detta gör att den enda delen Hass tolkar som kod är ”default_config”. I vårt exempel så har vi inte gjort något alls, men följande laddas in automatiskt: automation, clound, config, frontend, history (och en massa till!, hela listan finns här: Default config Hass hemsida.
Bara genom att ha raden ”default_config” så får vi massor med möjligheter i HASS.
# Andra delen av YAML koden:
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
I den andra delen ovan laddas nu tts: in, tts står för Text to Speech. Vilket är möjligheten att få text uppläst, på vår Instagram visade vi ett exempel med Homey tidigare. Vi kommer inte nyttja detta i vårt exempel, utan vi låter det stå kvar i konfigurationen så länge.
# tredje delen av koden
sensor:
- platform: systemmonitor
resources:
- type: disk_use_percent
arg: /home
- type: memory_free
- type: memory_use
- type: last_boot
- type: processor_use
- type: load_1m
- type: swap_use
# Slut del 3
Under sensor i del 3 har vi flera enheter vi vill använda, därför krävs det att vi nyttjar ett ”-” tecken, dvs – platform: systemmonitor. För att veta vad som är möjligt att göra med just System monitor så behöver man läsa på om integrationen ”System Montitor”. Vi tog relatit mycket som standard från länken och valde att kolla hur många % av disken som används av ”/home”.
Konfigurationen för att få veta just disk blir då följande i punktlistan nedan. Eftersom vi är ute efter mer än bara disk_use_procent så behöver ”type” börja med ett minustecken ”-type”, detta talar om att det rör sig om fler än en konfiguration.
- -type: disk_use_percent
- arg: /home
Vi skriver nu in alla ”-type” vi är intresserad av och sedan fortsätter med nästa plattform. Nu kommer vi köra två ”script” för att få fram temperaturer från vår rasbbery PI 4, orsaken att vi vill ha CPU & GPU temperaturen övervakad är för att värme är ett problem med RPI4 med original firmware.
# Fjärde delen av vår YAML kod
- platform: command_line
name: GPU Temperature
command: "/opt/vc/bin/vcgencmd measure_temp"
unit_of_measurement: "°C"
value_template: '{{ value | replace("temp=", "") | replace("''C", "") }}'
- platform: command_line
name: CPU Temperature
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(1) }}'
# Klart
Åter igen så börjar vi med två mellanslag och ”- platform: command_line”. Command line Sensor (länk till Hass info) gör det möjligt att ta resultat från ett script eller en applikation som ett sensorvärde. Efter lite googlande hittade vi ett bra sätt att få tillbaka korrekta GPU och CPU temperaturer, vi hittade informationen på Home assistants community sida. Detta gjorde att vi inte behövde köra trial and error för att själva komma fram till något likande.
- name: GPU Temperature – Detta är vad du kommer se som sensornamn i din Home Assistant installation.
- command: ”/opt/vc/bin/vcgencmd measure_temp” – koden som ska köras när sensorn exekveras.
- unit_of_measurement: ”°C” – Här säger vi till att vi vill få resultatet precenterat som celcius
- value_template: ’{{ value | replace(”temp=”, ””) | replace(””C”, ””) }}’ – med hjälp av en template så kan vi beräkna om resultaet och sätta ”°C”
Vi behöver förkara ”unit_of_measurement” mer än vad vi gör här, men snabbt förklarat så är det en ”template sensor” med hjälp av den så kan man använda ”value_template” för att ändra värdet vi fick i ”command” till vårt önskade format.
Normalt så ligger vår RPI 4 nu på ~50 grader utan allt för hård belastning med helt passiv kylning.
Nu börjar vår egna YAML kod dyka upp, det är inte något avancerat alls, men med hjälp av formateringen så får vi nu i ett ”Sensor card” (länk till vårt lovelace UI) får vi nu fram last_boot, load_1m, memory_free osv. Alla dessa är nu samlade under ”sensor”, som du ser i listan har vi även tillgång till CPU temperatur och Hue röreselsesensorn.
För att nu bygga gränssnittet vi presenterar nedan så använder du Sensor Card Configuration och väljer sensorerna i listan ovan. I länken till del 2 i vår serie om Hass ser du hur sensor Card konfigureras.
Nu har det blivit en hel del skrivande och den här guiden börjar bli relativt lång, vi väljer därför att avrunda och påbörja nästa del som är automationer i Home Assistant, egentligen skulle det ha varit den här delen, men vi väljer att lägga det som del 4 i vår serie. Hoppas du uppskattar tiden vi lägger på att skriva den här serien 🙂
Hjälpa Automatiserar.se
Vad tyckte du om del 3 av guiden? Missade vi något eller var det saker som du inte höll med på, kanske var steg som inte fungerade för dig? Det kanske finns bättre sätt att göra det på än det vi gjorde? Tipsa i så fall här eller i vår Facebook grupp.
Är du intresserad av att se vad som händer mellan våra inlägg så kan du följa oss på vårt Instagram (länk till vårt Instagram konto), där försöker vi dela vad som händer och är på gång. Är du intresserad av att diskutera eller få tips från andra så kan du gå med i vår Facebook grupp (länk till Facebook gruppen) som riktar sig till alla som tycker det är roligt med smarta hem och automation. Följ och gilla gärna vår sida på facebook med (länk till automatiserar på facebook). Vi har även en Patreon sida (extern länk) för dom som vill supporta oss löpande, eller swisha en slant till en kaffe på 0705470065 medan vi skriver på nästa inlägg om du uppskattade den här guiden.
Vi försöker tipsa hur du själv kommer igång och automatiserar. Vi kör sidan helt på fritiden och är helt oberoende och gör detta för att det är roligt, vill du hjälpa Automatisear.se, dela, gilla och följer sidan så får vi motivation att göra ännu mer 🙂
// Markus
I mer än 10 år har Markus Jakobsson delat med sig av erfarenhet inom smarta hem på bloggen. Markus har testa det mesta och lärt sig massor på vägen, kunskaper och erfarenheter han delat med dig här på bloggen.
Favoriter inom smarta hem just nu:
Xiaomi Mi Flora
Raspberry Pi 5
Homey
Home Assistant
Displayen LYWSD03MMC
Hoppas du uppskattade innehållet och fick nytta kunskapen vi delat med oss på Automatiserar.se.
Stort tack för att du tog dig tid att läsa vårt inlägg.
Med vänliga hälsningar Markus Jakobsson
Allt går att automatisera!
Har du precis börjat med smarta hem eller redan kommit en bit på resan? Läs mina dedikerade guider om smarta hem. Dom ger dig kunskaper och insikter som hjälper dig fatta rätt beslut i din resa.
Kommentarer
3 svar till ”Del 3 – Förstå YAML och skapa sensorer i Hass.io”
Jätte bra guide
Vet ni eller någon annan som läser tråden om jag kan skapa en räknare i HA
Jag skulle vilja räkna hur många gånger en tempraturgivare har varit över 30 grader
Varför: Tanken är att se hur många gånger jag har eldat i vedspisen 🙂Kan jag använda Statistics Sensor samt typ variabel
Tack för en bra sida
Hej, lite kommentarer från läsare Dan L. Har kopierat ngn text för och ger justerings förslag 🙂
1. ”- type” i nedan text blir tydligare för läsaren/mig (mellanslaget alltså)
tlistan nedan. Eftersom vi är ute efter mer än bara disk_use_procent så behöver “type” börja med ett minustecken “-type”, detta talar om att det rör sig om fler än en konfiguration.2. Skulle vara intressant att få förklarat varför GPU o CPU temperaturen inte finns som – type under System Monitor utan kräver script, som ju nu blir något nytt för mig/läsaren. Jag inser så klart att det är så HA är uppbyggt men kanske man enkelt kan förklara varför dessa två senare inte ingår…..
Ja det var det 🙂 Tusen tack för del 3!! Ser fram mot del 4. Vet ni när?
Mvh
Dan LEtt tips är att Configurator är ersatt med File Editor
mvh
agron
Intressanta sensorer på bloggen
Jag har testat många sensorer på bloggen, här ser du några av dom. Är du intresserad av att veta vad vi tycker om respektive sensor så klicka på bilden för att få veta mer.
Vill du lära dig mer om smarta hem
och inte riskera missa några nyheter?
prenumerera då på bloggen via mail.
Taggar:
Gör ditt hem Smartare med några av dessa tillbehör
Jag har testat många enheter som gör min vardag lite enklare och smartare, vissa bra och vissa mindre bra. Många är helt vanliga enheter som fått smarta funktioner eller tekniker installerad. Något som jag sedan försöker använda för att göra familjens vardag enklare och vårt hem smartare. Är du intresserad av att se vad du kan göra med dessa enheter så klicka på bilden för att läsa mer om hur vi upplever den.
Gateway / Kontrollers & mjukvaror
Det finns idag en uppsjö tekniker och enheter på marknaden, tyvärr så finns det inte någon perfekt lösning ännu, utan varje lösning har sina styrkor och svagheter. För att du lättare ska kunna välja vilket spår som passar dig så har jag samlat alla tekniker jag testat och en bra sammanfattning om dom. Utifrån det kan du själv avgöra vad du anser mest lämpat. Är du osäker på vart du ska börja så kolla in min nybörjarguide om smarta hem, där får du tips på vad du ska leta efter och fundera över innan du kör igång.
Lämna ett svar