27 desember 2024

Været - Din første integrasjon

Met.no gir deg en pen værmelding, synes jeg.
Du har fått installert Home Assistant på en plattform som fungerer, og nå er det tid for å fylle systemet med innhold. En god start er å hente inn værdata fra Meteorologisk institutt. 

Dette er en enkel og nyttig integrasjon som gir deg innsikt i været rett i Home Assistant-grensesnittet.

Hva er en integrasjon?
Home Assistant bruker integrasjoner for å hente data fra eksterne kilder. En integrasjon er i praksis et grensesnitt som eksponerer data fra kilden til Home Assistant. Når du installerer en integrasjon, får du tilgang til enheter og entiteter som enten kan:
Observeres, som sensorer (f.eks. temperatur, vindhastighet).
Styres, som brytere (f.eks. smartplugger eller lamper).

Ved å kombinere data fra sensorer med strømbrytere kan du bygge kraftige automatiseringer, som for eksempel en termostat. Men la oss starte med det grunnleggende.
Her legger du til integrasjonen.


Hvordan legge til en integrasjon?
For å legge til en integrasjon i Home Assistant:
1. Gå til Innstillinger i venstremenyen.
2. Klikk på Enheter og tjenester. Her finner du en oversikt over integrasjoner, enheter og entiteter.
3. Trykk på den blå knappen nede til høyre som heter “Legg til integrasjon”.

Dette åpner en liste over integrasjoner som Home Assistant støtter offisielt.

Tips: Det finnes også noe som heter Home Assistant Community Store (HACS), som gir tilgang til brukerlagde integrasjoner og tilleggsfunksjoner. Dette dekker vi i en senere artikkel.

Installer Met.no-integrasjonen
1. Søk etter og velg Met.no fra listen.
2. Følg veiledningen for å legge til integrasjonen.
3. Når installasjonen er fullført, har du nå værdata fra Meteorologisk institutt (met.no) tilgjengelig i Home Assistant.

Denne integrasjonen bruker API-et som met.no tilbyr. (API står for Application Programming Interface og er en måte for systemer å dele data og funksjoner.)

Vis værdata i dashbordet
For å vise værdata fra met.no på dashbordet ditt:
1. Opprett et nytt kort i Home Assistant-dashbordet.
2. Velg korttypen “Værmelding”.
3. Angi hvilken entitet værmeldingen skal hente data fra. Vanligvis vil denne entiteten ha et navn som “Forecast Home” eller lignende.

Merk: Hvis du har andre værtjenester installert, kan du velge mellom dem også. Jeg anbefaler å bruke værdataene fra met.no for pålitelige prognoser.

Hva med andre værtjenester?
Selv om met.no gir gode prognoser, kan det være nyttig å kombinere data fra ulike tjenester:
OpenWeatherMap (OWM):
Gir detaljerte værdata som enkeltsensorer (f.eks. temperatur, luftfuktighet, vindhastighet).
Kan brukes til sanntidsdata, mens du henter langtidsprognoser fra met.no.

Ved å kombinere disse to tjenestene kan du for eksempel bruke OpenWeatherMap for nåværende værforhold og met.no for fremtidsvarsler.

Oppsummering
Met.no-integrasjonen er en perfekt start for å hente værdata inn i Home Assistant. Du kan bruke værdataene til alt fra enkle dashbordkort til avanserte automatiseringer. Når du er klar, kan du utforske andre værtjenester som OpenWeatherMap for å utvide funksjonaliteten enda mer.


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. 

Den måler forbruket hver klokketime, og nullstiller seg etter 59 minutter og 59 sekunder. Så begynner den på nytt. Siden strømprisen settes for hver time, er dette ideelt.

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.
Kjøpt i Norge, og gir deg et 220V uttak du kan slå av og på. Jeg har gjennomsnittlig betalt 100-300 kroner for disse, og de er ofte på salg. Pluggene gir deg en av/på bryter og noen sensorer som blant annet viser forbruk gjennom kontakten. Disse settes opp med en egen quirk som  sikrer god funksjonalitet. En quirk er en liten kodebit som Home Assistant setter opp slik at enheten skal virke bedre. OBS: Når du setter opp en Zigbee-enhet som drives på 220 volt, vil den fungere som en ruter som utvider nettet ditt. Derfor er det smart å sette opp slike plugger rundt om kring - selv om de nødvendigvis ikke brukes. OBS 2: Alt som skal kobles inn i strømnettet MÅ være godkjent for bruk i Norge. Det vil i praksis si at det må være kjøpt i Norge eller et annet EU/EØS-land og oppfylle kravene til elektrisk utstyr som skal tilkobles det norske strømnettet.


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!

Røykvarsler fra Develco
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.

Termostater fra Namron
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.

Jeg har flere dingser - det kommer flere innlegg om dem :)