![]() |
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.