Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Enkel matematikk med sensorverdier


Anbefalte innlegg

Driver så smått å leker med en overgang fra Homeseer til HA. 

I homeseer har jeg et "event" som trigges kl 23:59.

Det tar målerstand på strømmåleren (fra tibber) og lagrer til "this_day_meter" devicen (f.eks this_day_meter = 165214)

Deretter gjøres følgende subtraksjon, this_day_usage = this_day_meter - last_day_meter.

Til slutt settes last_day_meter = this_day_meter (sånn at devicen har rett verdi til neste gang eventet kjører, dagen etter.

 

Hvor begynner jeg i HA for å lage et slikt script/automasjon? Og hvordan skriver jeg slike operasjoner.

Etter å ha drevet 2-3 dager i strekk med HA så skjønner jeg at det er VELDIG kritisk på identering og slikt i yaml koden. Bare det å sette opp et enkelt "card" i lovelace er jo krevende nok :)

Lenke til kommentar
Del på andre sider

  • 2 uker senere...

Jeg vil tro den "nye" Energi-visningen tar hånd om akkurat det du ber om. Legg inn 

sensor.accumulated_consumption_*gateadresse*

som forbruksentitet i Strømnettforbruk, så sørger HA for å holde statistikken for deg. Du finner oppsettet for Energi i konfigurasjonsmenyen.

Endret av egronnes
Lenke til kommentar
Del på andre sider

Hei.

 

Jeg fikk problem med tibber sin akkumulerte time verdi i dag.

"sensor.accumulated_consumption_current_hour_dinadresse"

Denne er utilgjengelig etter oppgradering til siste versjon av operativsystemet.

 

Det førte til at PID styringen brøt sammen på grunn av manglende data.

 

Det jeg gjorde var å bruke pyscript til å lage den nødvendige sensor verdien jeg trengte.

 

Hvorfor pyscript?

Fordi jeg får masse "float" feil og advarsler dersom jeg bruker template. Har forsøkt å få dette bort uten å lykkes 100%. Det ser ut til at  Home assistant holder på og ender opplegget, uten at jeg har fått med med detaljene rund det. Sånn at jeg regner med mer flere sensorer jeg har bryter sammen i januar oppgraderingen.

 

Det å bruke pyscript ser ut til å fingere veldig bra.

 

Du kan bruke tilsvarende metode som under til å oppnå det du ønsker.

 

@stigvi og/eller andre forum-entusiaster har noen fine eksempler i andre innlegg som gir deg litt informasjon om hvordan du setter opp input_number.

 

Det er helt sikkert rom for forbedringer i eksempelet under.(Ble gjort i bilen på vei til shopping senteret) ;)

 

Eksempel på kode: (oppdatert)

last_sample = 0
state.persist('pyscript.acc_d_startofhour')
acc_d_startofhour = float(input_number.acc_d_startofhour)
acc_sample = 0
 
@time_trigger("shutdown")
def every_shutdown():
#    global acc_d_startofhour
    pyscript.acc_d_startofhour = float(input_number.acc_d_startofhour)
 
@time_trigger("period(midnight, 60 min)")
def every_1_hour():
    global acc_d_startofhour
    global acc_sample
    acc_sample = float(sensor.accumulated_consumption_neshadlene_75)
    input_number.acc_d_startofhour = float(acc_sample)
 
@time_trigger("period(midnight, 5 sec)")
def every_5_seconds():
    global acc_d_startofhour
    global last_sample
    last_sample = float(sensor.accumulated_consumption_neshadlene_75) - float(input_number.acc_d_startofhour)
    sensor.acc_energy_consumption_thishour = float(last_sample)

 

Endret av Joffe
Lenke til kommentar
Del på andre sider

Energy delen løste egentlig problemet mitt ja. 

Men det alltids kjekt å vite hvor man faktisk koder ting. Automations har jeg sett på, men jeg finner ikke enkelt ut hvordan man gjør utregninger og tilegner nye verdier/states.

 

Koden du postet @Joffe, hvor legger du den? Jeg har ikke fått problemer med tibber etter oppdateringen som kom i helgen. Men ser at jeg mistet kontakt med Pulse i 4-5 timer i natt. Lurer litt på om jeg skal bytte ut pulse med en zigbee modul. Futurehome sin skal vist virke bra.

Lenke til kommentar
Del på andre sider

On 11/12/2021 at 17:55, egronnes said:

Jeg vil tro den "nye" Energi-visningen tar hånd om akkurat det du ber om. Legg inn 

sensor.accumulated_consumption_*gateadresse*

som forbruksentitet i Strømnettforbruk, så sørger HA for å holde statistikken for deg. Du finner oppsettet for Energi i konfigurasjonsmenyen.

Dette fungerer ikke optimalt med Tibber Pulse som kilde. Målingene blir 1 time forskjøvet. Det ser ut som om @stigvi har tatt opp dette her, men virker som han taler for døve ører...

Lenke til kommentar
Del på andre sider

Hillmar skrev (8 minutter siden):

Dette fungerer ikke optimalt med Tibber Pulse som kilde

Det gjelder egentlig alle dippedutter som videresender info fra HAN porten. Måleren rapporterer forbrukt energi etter at timen er ferdig og sånn som Home Assistant er lagd, så blir det feil. Jeg skal foreslå noe bedre, men venter til et mer gunstig tidspunkt enn rett etter en release av en ny versjon. 

  • Thanks 1
Lenke til kommentar
Del på andre sider

stigvi skrev (4 timer siden):

Det gjelder egentlig alle dippedutter som videresender info fra HAN porten. Måleren rapporterer forbrukt energi etter at timen er ferdig og sånn som Home Assistant er lagd, så blir det feil. Jeg skal foreslå noe bedre, men venter til et mer gunstig tidspunkt enn rett etter en release av en ny versjon. 

For meg ser det ut som at den akkumulerte døgn verdien er live og akkumulerer fortløpende med oppdatering på rundt 2-3 sekunder.

 

Eller tar jeg feil der?

 

image.png.ec403fe259ce5c9a4aabec9ed52f6d31.png

Lenke til kommentar
Del på andre sider

Gjelsvik skrev (8 timer siden):

Energy delen løste egentlig problemet mitt ja. 

Men det alltids kjekt å vite hvor man faktisk koder ting. Automations har jeg sett på, men jeg finner ikke enkelt ut hvordan man gjør utregninger og tilegner nye verdier/states.

 

Koden du postet @Joffe, hvor legger du den? Jeg har ikke fått problemer med tibber etter oppdateringen som kom i helgen. Men ser at jeg mistet kontakt med Pulse i 4-5 timer i natt. Lurer litt på om jeg skal bytte ut pulse med en zigbee modul. Futurehome sin skal vist virke bra.

Hei igjen, @Gjelsvik

Dersom du installerer HACS integrasjonen.

Du installerer også studio code server integrasjonen.

gjennom "HACS" kan du igjen installere en custom integrasjon som heter pyscript.

Når du har kommet så langt at pyscript er installert. Da kan du åpne Studio Code Server og manøvrere deg inn i pyscript-mappen.

I pyscript-mappen må du ha en fil som heter config.yaml. Der legger du inn scriptene du ønsker skal kjøre.

En annen fil du trenger dersom du foreksempel skal kjøre PID løsningen til @stigvi er, requirements.txt. Her må  du legge inn eventuelle "pakker" du ønsker å kjøre.

Scriptene kan du sortere under en undermappe som kalles "scripts". (Altså feks, pyscript/scripts/PID_regulering/PID_regulering.py)

 

Du finner en del god informasjon rundt omkring på dette forumet. Du vil også finne god informasjon på pyscript integrasjonens informasjonssider(github).

 

NB: Jeg oppdaterer det endelige scriptet jeg enda med og som fungerer som tenkt.

 

 

Endret av Joffe
  • Like 1
Lenke til kommentar
Del på andre sider

Går det ann å bruke en av de andre sensorene som Tibber integrasjonen lager?

 

sensor.accumulated_consumption__adresse oppdateres jo hvert 2. sekund ca.

 

sensor.last_meter_consumption_adresse oppdateres en gang i timen.

3 hours ago, Joffe said:

Hei igjen, @Gjelsvik

Dersom du installerer HACS integrasjonen.

Du installerer også studio code server integrasjonen.

gjennom "HACS" kan du igjen installere en custom integrasjon som heter pyscript.

Når du har kommet så langt at pyscript er installert. Da kan du åpne Studio Code Server og manøvrere deg inn i pyscript-mappen.

I pyscript-mappen må du ha en fil som heter config.yaml. Der legger du inn scriptene du ønsker skal kjøre.

En annen fil du trenger dersom du foreksempel skal kjøre PID løsningen til @stigvi er, requirements.txt. Her må  du legge inn eventuelle "pakker" du ønsker å kjøre.

Scriptene kan du sortere under en undermappe som kalles "scripts". (Altså feks, pyscript/scripts/PID_regulering/PID_regulering.py)

 

Du finner en del god informasjon rundt omkring på dette forumet. Du vil også finne god informasjon på pyscript integrasjonens informasjonssider(github).

 

NB: Jeg oppdaterer det endelige scriptet jeg enda med og som fungerer som tenkt.

 

 

Se der ja, det var forståelig og fint.

 

Nå er det jo imidlertid litt over en uke siden jeg installerte HA, først som test i en vm. Dette har tatt litt av etter det, så nå er det installert på en dedikert liten boks (Dell/Wyse tynnklient, med SSD) HACS, og en rekke integrasjoner er installert. 

 

Skal dykke litt inn i scripting, (jeg kommer fra homeseer) og der var ting veldig låst til at man må scripte alt som ikke er helt A4. Men har sett nå at i HA så er man fri til å gjøre beregninger mer on-the-fly.. f.eks 

value: {{ states('sensor.test1') | int + states(''input_number.test2)| int }}

Syntaksen her er fortsatt ny for meg, men lærer vel så lenge man lever.

 

NodeRed integrasjonen ga meg også en skikkelig "Aha". - Fatter ikke at node red har gått meg hus forbi alle disse årene.

 

Foreløpig kjører jeg en homeseer integrasjon, slik at homeseer står med alle zwave og zigbee enhetene. Litt fordi jeg har lest HA er dårlig på zwave, og litt fordi jeg ikke har lyst å bygge opp hele zigbee og zwave nettene på nytt.

  • Like 1
Lenke til kommentar
Del på andre sider

2 hours ago, Gjelsvik said:

Går det ann å bruke en av de andre sensorene som Tibber integrasjonen lager?

 

sensor.accumulated_consumption__adresse oppdateres jo hvert 2. sekund ca.

 

sensor.last_meter_consumption_adresse oppdateres en gang i timen.

Testet med sensor.accumulated_consumption__adresse nå. Denne treffer bedre, +/- 0,02 kWh.

Antar at det er verdien vi får inn som sensor.last_meter_consumption_adresse som benyttes av nettselskap og strømselskap for beregning ifm. fakturering, så HELT riktig blir det ikke. Men godt nok til å hjelpe til å få en oversikt.

 

Takk for tipset til både @Gjelsvik, og @Joffe som var inne på det samme.

  • Like 1
Lenke til kommentar
Del på andre sider

Hillmar skrev (7 timer siden):

Testet med sensor.accumulated_consumption__adresse nå. Denne treffer bedre, +/- 0,02 kWh.

Antar at det er verdien vi får inn som sensor.last_meter_consumption_adresse som benyttes av nettselskap og strømselskap for beregning ifm. fakturering, så HELT riktig blir det ikke. Men godt nok til å hjelpe til å få en oversikt.

 

Takk for tipset til både @Gjelsvik, og @Joffe som var inne på det samme.

Så flott.

 

Husk at accumulated_consumption_adresse resetter seg selv til 0 hvert døgn ved midnatt. Det må man ta høyde for.

Tar man det med i betraktning fungerer den ganske greit til å få relativt nøyaktige målinger og beregninger.

 

Tibber hadde en sensor tidligere med ferdig timesverdi. Denne forsvant ut av integrasjonen nå ved siste oppdatering.

Om den kommer tilbake vet jeg ikke. Vi ser.

 

Edit:

@stigvi, Når det gjelder saken om at verdier kommer på feil time. Det vil jeg tro er relatert til at de kommer inn under søylen for den timen vi lagrer/oppdaterer dem her i HA.

Det var en interessant problemstilling . Men løsningen er å lagre data i buffer i tidsrommet (xx:59:5x), avhengig av hvor lang tid det tar å lagre data.

 

Jeg ser at problemet er vanskelig å unngå dersom man man bruker data som dukker opp i feil time.

Man blir jo da veldig avhengig av at Tibber faktisk er oppe og kjører som normalt hele tiden.

 

Endret av Joffe
  • Like 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.