![]() |
Met.no gir deg en pen værmelding, synes jeg. |
27 desember 2024
Været - Din første integrasjon
11 desember 2024
Lag en pen strømgraf
Du kan få en finfin og detaljert oversikt over strømforbruket ditt i HA dersom du tar deg tid til å lære deg litt kode. Du må ha tilgang til forbruksdata fra strømmåleren din, ellers trenger du ikke noe ekstrautstyr.
![]() |
Du kan tegne pene grafer med Apexcharts. |
OBS: Denne saken forutsetter at du har grunnleggende kjennskap til koding i Yaml og kjenner til hvordan sensorer og slikt fungerer.
Jeg har en enhet på HAN-porten i strømskapet mitt som leser av forbruket. Gjennom Tibber-integrasjonen får jeg en sensor i HA som heter tibber_pulse_<adresse>_accumulated_consumption_current_hour. Dette er motoren i systemet.
Strømprisen får jeg fra Nordpool-integrasjonen i HA. Den installeres via Hacs; det er kommet en ny integrasjon med desember-oppdateringen av HA, men den avviker noe fra Hacs-versjonen, og jeg har ikke byttet ennå.
Hos meg ser sensoren slik ut: nordpool_kwh_no5_nok_3_05_025. Jeg bor i Bergen og får strømprisen fra område 05. Jeg henter ut prisen i NOK/kWh (ikke øre) og med mva.
La oss begynne med disse to sensorene, og lage en ny sensor som gir prisen på forbrukt strøm løpende per time og så nullstiller seg. Hos meg ser koden slik ut. Du må erstatte sensornavnene med dine egne, selvsagt.
Koden finner du her i et eget dokument som er litt enklere å kopiere fra.
totalpris_forbrukt_strom_nok:
friendly_name: "Totalpris forbrukt strøm i NOK"
unique_id: "totalpris_forbrukt_strom_nok"
unit_of_measurement: "NOK"
value_template: >
{% set spotpris = states('sensor.nordpool_kwh_no5_nok_3_05_025') | float(0) %}
{% set forbruk = states('sensor.tibber_pulse_<adresse>_accumulated_consumption_current_hour') | float(0) %}
{% set time = now().hour %}
{% set maned = now().month %}
{% set er_dagtid = (6 <= time < 22) %}
{% if maned in [1, 2, 3] %}
{% set nettleie = 0.5025 if er_dagtid else 0.3786 %}
{% else %}
{% set nettleie = 0.5925 if er_dagtid else 0.4652 %}
{% endif %}
{% set totalpris_per_kwh = spotpris + nettleie %}
{% set forbruk_nok = totalpris_per_kwh * forbruk %}
{{ forbruk_nok | round(2) }}
Her er også nettleien lagt inn, den vil variere etter hvor du bor, men dette er satsene for Bergen.
Nå har vi altså brutto strømkostnad for hver time. Fra denne kostnaden skal vi trekke fra strømstøtten slik at vi får en nettopris. Du får refundert 90 prosent av strømprisen som er over 73 øre/kWh, eller 0,9125 NOK, fra staten. Dermed må vi lage en sensor som regner ut fratrekket dersom prisen kommer over støttegrensen. Husk at det ikke er rabatt på nettleien, så du må bruke spotpris fra Nordpool som utgangspunkt. Da blir utregningen slik:
totalpris_etter_stromstotte_nok:
friendly_name: "Totalpris etter strømstøtte i NOK"
unique_id: "totalpris_etter_stromstotte_nok"
unit_of_measurement: "NOK"
value_template: >
{% set totalpris = states('sensor.totalpris_forbrukt_strom_nok') | float(0) %}
{% set spotpris = states('sensor.nordpool_kwh_no5_nok_3_05_025') | float(0) %}
{% set forbruk = states('sensor.tibber_pulse_<adresse>_accumulated_consumption_current_hour') | float(0) %}
{% set terskelverdi = 0.9125 %}
{% set overstigende_pris = spotpris - terskelverdi %}
{% set stromstotte_per_kwh = (overstigende_pris * 0.9) if spotpris > terskelverdi else 0 %}
{% set stromstotte = stromstotte_per_kwh * forbruk %}
{{ (totalpris - stromstotte) | round(2) }}
Jeg ser at noen av variabelnavnene mine kan være mer entydige, men du kan døpe dem om slik du ønsker.
Om du lurer på bruken av float(0), bruker jeg dette når jeg henter inn verdier fra sensorer som jeg ikke selv kontrollerer. De sikrer at verdien fra sensoren konverteres til et flyttall, som jeg kan bruke i beregninger, og at verdien settes til 0 dersom en sensor returnerer en strengverdi med "none" eller "Mikke Mus" (ikke fullt så vanlig).
Round(2) gir et pent formatert kronebeløp med to desimaler - husk at vi bruker NOK gjennomgående, og ikke øre.
Da har vi to sensorer vi kan bruke som utgangspunkt for en pen graf i apexchart. I tillegg henter jeg strømforbruket for hver time rett fra Tibber-sensoren. Koden jeg bruker ser slik ut:
type: custom:apexcharts-card
graph_span: 24h
header:
title: Strømkost inkl nettleie og med/uten strømstøtte
show: true
show_states: false
apex_config:
chart:
type: bar
legend:
show: true
position: bottom
horizontalAlign: center
labels:
useSeriesColors: true
fontSize: 12
xaxis:
type: datetime
labels:
datetimeFormatter:
hour: HH:mm
series:
- entity: sensor.totalpris_forbrukt_strom_nok
type: column
name: Strømkost før støtte
group_by:
func: max
duration: 1h
yaxis_id: Pris
color: red
- entity: sensor.totalpris_etter_stromstotte_nok
type: column
name: Strømkost etter støtte
group_by:
func: max
duration: 1h
yaxis_id: Pris
color: orange
- entity: sensor.tibber_pulse_<adresse>_accumulated_consumption_current_hour
type: line
name: Strømforbruk
group_by:
func: avg
duration: 1h
yaxis_id: Strømforbruk
color: "#2a6bcc"
stroke_width: 2
yaxis:
- id: Pris
min: 0
decimals: 2
opposite: true
- id: Strømforbruk
min: 0
decimals: 1
opposite: false
Noen viktige poeng:
graph_span angir hvor langt tilbake grafen skal vise.
show_states angir om sensorverdiene skal vises i toppen av grafen og dersom legend_show: true vises sensorverdiene under grafen.
Siden vi er interessert i maksverdiene for hver time, bruker vi func: max i group_by.
Under yaxis kan vi sette minimumsverdi til 0 på begge sider, men la maksverdien være dynamisk, ved ikke å angi den.
Jeg er ingen ekspert på apexcharts, og har fått hjelp av ChatGPT til å lage denne, men leser man dokumentasjon og prøver og feiler, er det utrolig hva man får til.
Lykke til! Legg gjerne igjen en kommentar her eller på Face dersom du finner feil eller har forbedringer.
04 desember 2024
Å finne dingser som virker
Zigbee-dingser er heldigvis billige. Om du kjøper noe som ikke virker, er det ingen katastrofe.
Det var mest spennende med Namron-termostatene som kostet nesten 4.500 kroner ferdig montert (2.750 i montasje pluss 800 kroner per termostat.)
Termostatene var det umulig å prøve før de var installert. Hvordan det gikk, kan du lese lenger ned i saken.
Men kjøper du en temperatur/fukt-sensor til en hundrelapp eller en røykvarsler til to hundre, kan du leve med tapet. Trøsten er at det går an å google. Som regel har andre kjøpt det samme før og testet det. Stol på at deres erfaringer også vil være dine.
Noen dingser som virker fint hos meg:
Smartplugger fra Develco
Dings som virker. |
Temperatursensorer fra Ewelink/Sonoff
![]() |
Virker også. |
Disse koster en hundrelapp per stykk, og gir deg temperatur og luftfuktighet der de blir plassert. De drives av et knappcellebatteri og varer et år, minst. Er de pålitelige? Jeg har sjekket dem mot andre sensorer, og avviket er ikke stort. Så om du kan tåle +/- en grad i forskjell, er de mer enn gode nok. De er enkle å koble opp og virker som de skal - en no-brainer i Zigbee-nettverket ditt. Her er den siste versjonen som jeg nettopp kjøpte fra AliExpress. De er litt mer strømlinjeformet i designet enn de forrige, og Sonoff skryter av en batterilevetid på 4 år. Vi får se!
![]() |
Virker etterhvert. |
Jeg prøvde et abonnement fra Homely for en tid tilbake, men syntes ikke det virket slik det skulle og sa det opp. Da satt jeg igjen med en del utstyr, som heldigvis viste seg å være Zigbee, deriblant en del røykvarslere fra Develco. Disse er litt mer vriene - de lar seg koble opp, men det ser tilsynelatende ut som de fryser når de skal konfigureres. Det er imidlertid bare å vente litt, når den rette quirken blir funnet, virker de finfint. De rapporterer røyk (selvsagt) men også temperatur, slik at du får en temperaursensor med på kjøpet. Selges også under navnet Frient og Wattle, men søk på typebetegelsen SMSZB-120 - det er samme enheten.
![]() |
Virker veldig bra! |
Varmekablene i gulvet i underetasjen i rekkehuset vårt ble styrt av noen gamle elektromekaniske Microtemp-termostater. Det var enten for varmt eller for kaldt, og strømforbruket var alt for høyt. Da Elektromimportøren klinket til med tilbud for et par år siden, og også tilbød installasjon, slo jeg til. Termostatene lot seg koble opp på samme sted som de gamle, og da elektrikeren hadde gått, var det med spenning (sic) jeg prøvde å pare dem med Home Assistant og ZHA. I begynnelsen var det fiasko, fordi instruksjonene for å sette dem i paringsmodus ikke var riktige. Disse enhetene må resettes helt - først da dukker de opp som en ny enhet i ZHA. Men da eksponerer de heldigvis en haug med kontroller, mer enn nok til å kunne styre dem på en fornuftig måte. Termostat-kortet i Lovelace fanger opp de nødvendige kontrollene, og så er det bare å begynne å programmere automasjoner. Termostatene jeg kjøpte er siden erstattet av en nyere modell: Jeg vet ikke om de virker like bra. Disse har modellnummer 4512737.
28 november 2024
Hva pokker er Zigbee?
Har du syslet med hjemmeautomasjon, vil du ha støtt på begrepet Zigbee. Her forklarer jeg hva det er og hvordan du kan bruke det i Home Assistant.
"Zigbee er en trådløs kommunikasjonsprotokoll designet for smarte hjem og IoT-enheter, som gir pålitelig og energieffektiv dataoverføring. Den bruker et mesh-nettverk, der enheter kan kommunisere direkte eller via andre enheter for å nå målet. Zigbee er kjent for lavt strømforbruk, god rekkevidde og muligheten til å koble mange enheter sammen."
Slik forklarer ChatGPT hva Zigbee er, men sannheten er litt mer kompleks.
Fordelene:
- Zigbee er ekstremt strømsparende. En temperatursensor med et knappcellebatteri kan vare i et år.
- Zigbee lager sine egne nett. Alle enheter du plugger inn i 220V fungerer som nav, og er med på å utvide nettverket.
- Enhetene er billige. Kjøper du fra Ali Express eller tilsvarende blir det enda billigere.
Ulempene: Det finnes flere standarder, og ikke alle snakker med hverandre. Og selv om en enhet bruker den rette standarden, er det ikke sikkert at alle egenskapene med en enhet blir tilgjengelig for Home Assistant.
Vi vil gjerne ha Zigbee-enheter som følger Zigbee 3.0 og profilen ZHA - Zigbee Home Automation. Denne skal være bakoverkompatibel med tidlige versjoner - men er det ikke alltid.
ZHA-integrasjon for meg
Jeg bruker ZHA-integrasjonen i Home Assistant. Jeg vil at alle mine enheter skal kobles opp direkte mot Zigbee-kontrolleren, og ikke via en tredjepart. (Jeg gjør et unntak for NetAtmo-enheten min.) Dette følger av min KISS-doktrine: Gjør du det mer komplekst, blir det (nesten) alltid mindre stabilt.
ZHA-integrasjonen er basert på Zigbee Home Automation-profilen, slik at alle Zigbee-enheter i utgangspunktet skal virke her. Men gjør de det?
Denne listen kan hjelpe deg litt på vei. Men det er ikke nødvendigvis alt som står her som virker. Og ikke alt som virker, står her.
IKEA og Sonoff er bra
Jeg har gode erfaringer med Zigbee-enhetene til Ikea, de lar seg koble direkte opp uten noen egen hub eller kontroller. Det samme gjelder Sonoff/Ewelink sine enheter (billig fra AliExpress!), og noen fra Develco. En røykvarsler fra Heiman lot seg også integrere. De to Namron-termostatene jeg bruker i gang og vindfang nede var også enkle å sette opp - men jeg har hørt at nyere versjoner er mer tricky.
Quirks hjelper deg
Siden Home Assistant er basert på åpen kode, finnes det utviklere som jobber med å tilpasse Zigbee-enheter som ikke oppfører seg i henhold til standard. De lager såkalte quirks, som hjelper ZHA med å “oversette” enhetens spesifikke oppførsel til en standardisert form som Home Assistant kan forstå og bruke. Dette skjer automagisk - når du har installert en enhet, søker Home Assistant i en database og setter opp en quirk dersom den finnes.
PS: Mange har sagt at zigbee2MQTT er løsningen på de ulike Zigbee-enhetene og trøbbelet med å Home Assistant/ZHA til å snakke med dem. Zigbee2MQTT skal fungere som en bro mellom Zigbee-enhetene og Home Assistant, og oversetter Zigbee-meldinger til MQTT, som Home Assistant-systemet kan forstå. Kanskje jeg oppgraderer til dette? Da vil jeg i så fall kjøpe en Zigbee-kontroller nr 2, siden ZHA og zigbee2MQTT krever hver sin. Eller kanskje jeg skal vente på den nye standarden Thread/Matter, som jeg skal skrive om i et senere innlegg?
27 november 2024
Bruk en NUC eller mini-PC til Home Assistant
Første generasjon Home Assistant hos meg kjørte på en Raspberry PI, og du kan lese hvorfor jeg ikke syntes det var noen god idé her. Etter utallige krasj og ustabilitet fant jeg fram en NUC som har ligget i boden og bestemte meg for å sette opp systemet på den.
![]() |
Jeg fant en NUC i boden. |
Det finnes en egen side dedikert til å sette opp HA på x86-64 maskiner. Siden beskriver to måter å sette opp HA på, den ene er å boote maskinen fra en USB-stick med Ubuntu og så installere derfra. Jeg fikk ikke tillatelse til å skrive til disken på denne måten, så da ble det metode 2: Åpne kabinettet og skru ut disken, koble den til Macbook Proen min med en USB til SATA-adapter og deretter kopiere HA-imaget til disken med Balena Etcher.
Du må ha skjerm og tastatur
Uansett hvilken metode du bruker, må du koble en skjerm og et tastatur til maskinen når du booter for første gang, blant annet fordi du må sette opp wifi og et par andre parametere. Jada, folkens: Her kan du kjøre wifi samtidig med en zigbee/Z-Wave-dongle! Det gir deg blant annet helt andre muligheter for plassering av maskinen.
Jeg holder fortsatt på Zigbee, så jeg kjøpte en Home Assistant Connect ZBT-1 USB-dongle til maskinen. Den produseres av de som lager Home Assistant, og du kan lese mer om den her. Den lover fremtidig støtte for Thread og Matter, som ser ut til å bli de nye felles standardene for hjemmeautomasjon. Mer om det siden!
Jeg fikk lirket ut noen av konfigurasjonsfilene fra det gamle PI-baserte systemet, men ingen backup. Dermed var det å begynne med blanke ark, noe som ga meg anledning til å sette opp systemene mine på nytt. I skrivende stund (november 2024) har systemet kjørt uten feilslag i to uker, og har bare rebootet når jeg har bedt om det.
Det er en helt ny verden
Fordelene er et mye kjappere og mer responsivt system, som restarter på 15-20 sekunder der PIen brukte minutter. Heng og kræsj er det også slutt på. Så vil mange si at det er overkill å bruke en egen PC til Home Assistant, og at du kan bruke den samme PCen til andre ting. Og det er sikkert riktig. Men da introduserer vi mange feilkilder og mer kompleksitet = lavere driftssikkerhet. Dette skal rusle og gå og bare restarte når jeg ber om det. Og strengt tatt har jeg ikke bruk for noen andre servere i huset. Alt annet jeg holder på med ligger i en eller annen sky, og det er jeg happy med. KISS er et godt prinsipp: Keep It Simple Stupid.
Home Assistant trenger en solid maskin som ikke er en Raspberry Pi
Jeg har kjørt Home Assistant på Raspberry Pi i noen år. Nå har jeg skiftet til en ordentlig maskin, og det bør du også gjøre.
![]() |
Leketøy eller produksjonsmaskin? |
Ingen harddisk
Pi’en har ikke noen harddisk, men bruker et micro SD-kort i stedet. Det gjør den enkel å sette opp, du bruker en SD-kort-leser (som mange har i maskinen), putter mikrokortet inn i en adapter og deretter inn i leseren, og så laster du ned hele filsystemet fra nettet i form av et image og overfører det med f eks Balena Etcher. Se gjerne her for fremgangsmåte.
Du må ha en dings i dingsen
Men. Dersom du vil ha Zigbee-enheter i huset ditt som du kan styre med Home Assistant, må du ha en tilleggsmodul. Du kan enten kjøre en USB-dongle eller en såkalt Zigbee-hat som monteres inne i Pi'en. Jeg valgte det siste, og det medførte litt ekstra bryderi. Selve den fysiske installasjonen er enkel nok, men for å få den til å virke skikkelig, må du slå av wifi og bluetooth på PIen. Det må gjøres når PIen booter, og det betyr at du må redigere en fil som ligger i boot/config.txt på SD-kortet i PIen.
Jeg styrte lenge med dette, men fikk det til. Nerdene kan søke på nettet og finne ut hvordan, men det er noen tips her.
Nå virker zigbee-hat’en, men du må ha kablet nett til Pi’en (siden wifi er koblet ut). Det legger begrensinger på plasseringen, men er selvsagt løsbart.
Mer og mer ustabilt
En større ulempe er at Pi’en over tid ble mer og mer ustabil og oftere og oftere kræsjet uten å restarte. Løsningen var å «svenske» den, altså å trekke ut strømmen. Jeg byttet SD-kort, siden disse blir slitt ved bruk, men det hjalp heller ikke. Til slutt var den så ustabil at jeg bare med nød og neppe fikk tatt backup av de viktigste filene før jeg foretok barmhjertighetsdrap på den. Backup funket heller ikke. Jeg aner ikke hvorfor den ble så dårlig på slutten, det finnes sikkert noe i loggfilene, men det er av akademisk interesse.
Løsningen lå i boden
Poenget er at applikasjonen som skal styre strøm og lys og alarmer og andre virksomhetskritiske funksjoner i heimen må ha en robust plattform. Det er ikke en Pi. Derfor gikk jeg ut i boden og fant Intel NUCen som jeg kjøpte til et annet prosjekt for et par år siden. De første ukene har den kjørt aldeles knirkefritt, og jeg anbefaler alle å bytte til en slik maskin eller noe tilsvarende. Hvordan jeg satt den opp, kan du lese her.