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

berlands strømoptimalisering


Anbefalte innlegg

ET-kurve er et begrep som benyttes ved oppfølging av næringsbygg. Energi-Temperatur står det for og har en oppløsning per uke, dvs. totalt energibruk ift. snitt ukestemperatur.
Se om det kanskje kan gi enklere vurderinger. Eksempel https://goo.gl/images/cd7G2M Kurven har en stigning for oppvarming, flater ut ved typisk 10-13 grader C og vil bøye oppover igjen ved typisk 18 grader C (hvis man har kjøling)


Sent from my iPhone using Tapatalk

Lenke til kommentar
Del på andre sider

Et tilsvarende ET-plot for huset mitt ser slik ut:

 5a9d91b86abdb_Screenshotfrom2018-03-0519-50-33.png.5808ae51c37886b02df28b5166c965e7.png

og er veldig kompatibel med plottet du lenket til iceball, men det illustrerer at jeg har hentet inn mindre forbruksdata (17 uker) enn jeg påstod i første post. Jeg har Smappee-data for ca. ett år liggende hos Smappee-skyen, men har bare fra data fra i høst liggende lokalt.

 

Datagrunnlaget for ET-plott er det samme som det jeg bruker for optimaliseringen, men man må inn på samme tidsskala som strømprisvariasjonene, og så må man også få eksplisitt inn i modellen hvordan strømforbruket responderer på endring i innetemperatur.

  • Like 2
Lenke til kommentar
Del på andre sider

Det er ikke meningen å holde koden hemmelig, men den er ikke triviell å sette i drift for andre. Hvis noen har lyst å forsøke selv så deler jeg villig. Det er kun Python-kode, og man trenger en Python-Tibber modul (samt Tibber-abbonnement for API-tilgang) eventuelt tilgang til framtidas strømpriser på annet vis. Temperaturværmelding fra yr er noen få linjer med Python og en XML-modul. Du trenger et interface til ditt eget smarthussystem, jeg bruker en Python-OpenHAB modul, men det er ikke mange linjene som må endres for å tilpasse noe annet så lenge Python har en vei inn i systemet ditt. Dernest er det Pandas-biblioteket som er arbeidshesten i koden, så for å kunne debugge og modifsere selv så er det en fordel å kunne det. Uten masing venter jeg noen dager for å se om noen bugfikser hjelper littegranne. Det er krevende å sjekke og verifisere koden da den er så avhengig av øyeblikkets tilstand, som aldri gjentar seg. Kode for automatisk testing hadde selvsagt vært kjekt, men det har jeg ikke laget.

  • Like 1
Lenke til kommentar
Del på andre sider

Etter at man har gjort implementasjonen, så begynner man å tenke. Jeg har regnet på papir på hva som er kriteriet for hvorvidt det er lurt å forvarme huset i en billig time, gitt en modell for strømforbruk. Resultatet var at det for mitt hus, så vil det lønne seg å forvarme når prisen pr. time stiger med mer enn ca 10% (inkludert nettleie). Det er ikke sikkert at dette tallet varierer fryktelig mye fra hus til hus, så andre kan sikkert bruke samme kriterie, og lage seg noen enklere regler for forvarming (enn min brute-force python-kode som bruker flere minutter på å finne svaret). 

 

Høy varmekapasitet i huset (mye betong f.eks) og/eller god isolasjon gjør at 10%-tallet blir lavere (det skal mindre til for at det lønner seg) og dårlig isolasjon gjør at tallet øker. De matematisk inklinerte kan ta en titt på utregningen som er forsøkt ført inn i vedlagte jupyter-dokument (pdf).

Forvarmingsanalyse.pdf

 

Et resultat av analysen var at jeg skjønte at nettleien også måtte inkluderes i optimaliseringen, det var den ikke i første post, så den har overestimert sparepotensialet noe.

Endret av berland
  • Like 2
Lenke til kommentar
Del på andre sider

11 timer siden, berland skrev:

Resultatet var at det for mitt hus, så vil det lønne seg å forvarme når prisen pr. time stiger med mer enn ca 10% (inkludert nettleie). Det er ikke sikkert at dette tallet varierer fryktelig mye fra hus til hus

Tror jeg skal fyre opp en liten MonteCarlo-simulering på dette, basert på timepriser og utetemperatur. 

 

Basert på magefølelsen, så er det ikke sikkert 10% er så dårlig gjettet, nei! :) 

 

Spørsmål: Hva er da en mest fornuftig trigger.

- Differansen mellom forrige time og nåværende time?

- Differansen mellom nåværende time og neste time?

 

Den siste sant? Hvis man skal bruke det til forvarming?

Lenke til kommentar
Del på andre sider

9 timer siden, Moskus skrev:

Tror jeg skal fyre opp en liten MonteCarlo-simulering på dette, basert på timepriser og utetemperatur. 

 

Basert på magefølelsen, så er det ikke sikkert 10% er så dårlig gjettet, nei! :) 

 

Spørsmål: Hva er da en mest fornuftig trigger.

- Differansen mellom forrige time og nåværende time?

- Differansen mellom nåværende time og neste time?

 

Den siste sant? Hvis man skal bruke det til forvarming?

Den siste ja.

 

Hvis klokka nå er 15:00, og du vet at kl. 16:00 så stiger prisen med mer enn 10% relativt prisen nå (kl. 15:00), så vil det lønne seg å varme så mye mellom 15:00 og 16:00  at forbruket mellom 16:00 og 17:00 er null. Termostatverdi mellom 15 og 16 kan (må) da settes høyere enn hva den skal være mellom 16 og 17.

 

Det kan hende det også lønner seg å forvarme mellom 14:00 og 15:00 pga. prisøkningen som kommer kl. 16:00  men den formelen har jeg ikke regnet ut analytisk. Koden min finner sannsynligvis ut om det er tilfelle.

Lenke til kommentar
Del på andre sider

Det er kjedelige dager, her er bilde fra optimaliseringen som ble gjort i natt (og med temperaturprofil som har blitt fulgt i løpet av dagen). Besparelse ett øre!

 

2018-03-09-0103.thumb.png.f36b08e96c01354e74678c668690dcff.png

 

Her er det ikke annet å gjøre enn å håpe på mange og store kabler til utlandet for å få til større prissvingninger, samt en eller annen form for ikke-konstant nettleie!

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

Kodesnutten som lager strømforbruksmodellen kan kanskje brukes av flere, hvis man har influxdb som datalager, eller har en annen måte å få dataene over til Pandas.

 

def analyse_history():
    """Extract historical data from InfluxDB and build bilinear 
    model for power usage as a function of indoor and outdoor temperature
    
    returns a sklearn model.
    """
    from influxdb import DataFrameClient
    from sklearn import linear_model

    pdclient = DataFrameClient('influxservernavn', influx_port, '', '', 'openhab_db')
    indoormeasurename = u'Sensor_fraluft_temperatur'
    outdoormeasurename = u'Netatmo_ute_temperatur'
    powermeasurename = u'Smappee_avgW_5min'
    outdoor = pdclient.query("select mean(value) from " + outdoormeasurename +
        " group by time(1h)")[outdoormeasurename]
    outdoor.columns = [outdoormeasurename]
    indoor = pdclient.query("select mean(value) from " + indoormeasurename +
        " group by time(1h)")[indoormeasurename]
    indoor.columns = [indoormeasurename]
    power = pdclient.query("select mean(value) from " + powermeasurename +
        " group by time(1h)")[powermeasurename]
    power.columns = [powermeasurename]
    dataset = pandas.concat([indoor, outdoor, power], axis=1).dropna()
    dataset['indoorvsoutdoor'] = dataset[indoormeasurename] - dataset[outdoormeasurename]
    dataset['indoorderivative'] = dataset[indoormeasurename].diff()
    dataset.dropna(inplace=True) # Drop edge NaN due to diff()

    # Linear regression:
    lm = linear_model.LinearRegression()
    X = dataset[['indoorderivative', 'indoorvsoutdoor']]
    y = dataset[[powermeasurename]]

    model = lm.fit(X, y)
    print("How much can we explain? %.2f" % model.score(X, y))
    print("Coefficients %s" % str(model.coef_))
    return model

Hos meg blir 'score' på modellen bare 26%, som ikke er særlig høyt. Ved å ha ute og innetemperatur som uavhengige variabler klarer jeg oppnå 38% forklaringsgrad, men etter noe tenking, så har jeg kommet til at det bare beskriver gamle data og er ikke like interessant når man skal predikere (det betyr f.eks. at når innetemperatur er høy, så er vi hjemme og bruker varmtvann og komfyr samtidig, og den effekten har du ikke lyst å ha inn i forvarmingsregnestykket). Fysikk tilsier at strømforbruket skal være lineært i de to størrelsene jeg bruker, og det trumfer støyen i dataene.

 

Denne snutten kjører nå hver time for meg, og strømoptimaliseringen vil således hele tiden oppdatere seg (om enn marginalt). Maskinlæring!

 

Endret av berland
  • Like 3
Lenke til kommentar
Del på andre sider

  • 2 uker senere...

Det er ikke gitt hvordan framtidas prismodell blir. Avhengig av om nettleie vil straffe høyt instantanforbruk hardere enn dyre timer, så kan det forandre helt på om det lønner seg å nattsenke og dagsenke. Jeg har fundert på om det kan programmeres en alternativ optimalisering som styrer varmekabler ikke primært etter temperaturer (gjennom termostater), men etter effekt (gitt at man vet hvor mye effekt man bør dra på med til ethvert tidspunkt). Maks døgngjennomsnitt i vinter i huset mitt har vært 6 kW, så da er det kanskje realistisk å stramme seg inn til et tenkt nettleieabonnement på 6 kW.  En funksjonalitet i koden jeg lagde for forvarming av hus, var å også forvarme hvis effekten i en viss time går over en grenseverdi (pr. i dag satt til 10 kW). Strammer jeg den inn til 5 kW som betyr at jeg ikke lar huset mitt bruke mer enn dette for å varme opp, så ender koden min opp med å ikke foreslå nattsenking i det hele tatt (men noe dagsenking - pr. nå skjønner jeg ikke helt hvorfor det ble dagsenking men ikke nattsenking i dette tilfellet). 

 

Kostnaden pr. døgn ved å gå til ikke-nattsenking er her 6-7 kr, så dette er definitivt ikke lurt i dag. Disse kronene må man få tilbake i redusert nettleie for at dette skal ha noe for seg.

 

latestsetpointopt.thumb.png.f6743aba38eecaa410848aff614db495.png

Endret av berland
Lenke til kommentar
Del på andre sider

  • 9 måneder senere...

Noe oppdatering etter en høst med lite variasjon i priser og lite forvarming. Grensa for hvor mye strømprisen må stige har senket seg til 6% hos meg, jeg har byttet "temperatursensoren" til maskinlæringen fra stuetemperatur, til fraluftstemperaturen i ventilasjonsanlegget. Denne gir et bedre tall på temperaturen i hele huset. Denne temperatursensoren faller 2 grader ved natt og dagsenking.  I 6% prisstigning som krav, så tilsvarer det en utregnet U-verdi for hele huset på ca 0.5. 

 

Irriterende nok har jeg også en annen virtuell temperatursensor som hele tiden gir middelverdi av et par utvalgte temperatursensorer (Group:AVG i OpenHAB). Denne vandrer bare 1-1.5 grad mellom dag/natt-senking, og komfort (termostatene settes 5 grader ned natt/dagtid). Kjører jeg maskinlæring på denne, så trengs det bare 1.5%, som tilsier at jeg omtrent hver dag skal gjøre forvarming pga. pris. Dette tror jeg ikke gir et riktig bilde av hva som er lønnsomt.

 

Jeg trekker ut varmtvannstanken sitt forbruk fra regnestykket, spesielt etter at jeg begynte med å kun ha den på om natta, ellers vil den lage mye støy til maskinlæringen. Varmepumpa har jeg også prøvd å kompensere for virkningsgrad, da den kilowatten av totalt strømforbruk som brukes av varmepumpa gir mye mer varme i forhold til kilowatten som brukes av varmekabler. Det har likevel ikke gjort underverker med modellen.

Lenke til kommentar
Del på andre sider

En liten vurdering av søndag som var, hvor strømprisene var (rekord?)høye for sesongen:

 

Først jobben datamaskinen gjorde klokka tre natt til søndag for hvordan den trodde strømforbruket skulle være, og den fant ut at det var 18 øre (!) å spare pga prisøkningen kl. 17:00.

 

Av diverse årsaker (vanskelige) så ombestemmer den seg kl 15:00 for å starte forvarming akkurat da og ikke kl 16:00 som den nattlige analysen tilsa, det ser jeg igjen i faktisk strømforbruk i Grafana-plottet under. 

 

Pga. forvarmingen får jeg et voldsomt forbruk i to timer (og ja, det merkes at det blir godt og varmt ;), høy WAF når man forklarer at dette er for å spare penger) Men i forhold til den maskinlærte planen over, så faller ikke strømforbruket til null i oppvarming i de dyre timene. Og da er jeg redd at besparelsen ikke er tilstede, det er mer fristende å tro at forvarmingen heller bidro til 10 Kwh ekstra forbruk (og desto mer behagelig temperatur).

 

Alle varmekabeltermostatene uten gulvsensor er medskyldig i dette. Heatit med luftsensor er som kjent ikke noe særlig, og den vil ikke skru seg av etter en time med forvarming, og de har jeg endel av. I tillegg har jeg underdimensjonerte gulvkabler i kjellergang som trenger stå på kontinuerlig hele dagen for å holde lunk i gulvet. Dette passer dårlig sammen med forvarming, for at forvarming skal ha noe for seg, må man ha mulighet for å guffe på.

1239972514_Screenshotfrom2019-01-2222-23-06.thumb.png.4740441d722eea4325d6ca21d4121854.png

1230026691_Screenshotfrom2019-01-2222-26-03.png.1747572fe510a4a16b4ab51349ca9261.png

Lenke til kommentar
Del på andre sider

11 timer siden, berland skrev:

Men i forhold til den maskinlærte planen over, så faller ikke strømforbruket til null i oppvarming i de dyre timene. Og da er jeg redd at besparelsen ikke er tilstede, det er mer fristende å tro at forvarmingen heller bidro til 10 Kwh ekstra forbruk (og desto mer behagelig temperatur).

Dette overrasker meg litt, og må derfor spørre: Hvordan er oppvarmingen din? Hva er den basert på? Vannbåren varme, elektriske kabler i betong, luft-til-luft varmepumpe? 

Lenke til kommentar
Del på andre sider

9 timer siden, Moskus skrev:

Dette overrasker meg litt, og må derfor spørre: Hvordan er oppvarmingen din? Hva er den basert på? Vannbåren varme, elektriske kabler i betong, luft-til-luft varmepumpe? 

 

Jeg har luft-luft vp i hovedetasje, som dekker nesten hele etasjen. I underetasje er det varmekabler i betong, med ukjent mengde isolasjon under, og stort sett uten nedstøpt temperatursensor til termostatene.

 

Jeg tror på utregningen min om hva som skal til av prisendring for lønnsom forvarming, men det er ikke sikkert det gjelder for alle varmekablene. Kanskje kan jeg ikke betrakte hele huset som en enhet, men må regne detaljert på hver varmekabelkurs. En varmekabel i kjeller som kanskje har dårlig med isolasjon under seg vil kanskje kreve f.eks. 20% prisstigning for at det skal være noe poeng med forvarming, ikke 6% som for hele huset. Fordi den dårlige isolasjonen gjør at varmen fra forvarming forsvinner nedover i stedet for å gradvis avgi varme til rommet i de dyre timene.

 

Varmekabler på bad i hovedetasje krever sannsynligvis mye mindre enn 6% prisstigning, fordi her er det oppvarmet rom under, så det er ingenting som går tapt. Her kan jeg kanskje kjøre samme algoritme som varmtvannstanken min. Varmepumpa tror jeg også det gjelder for, kanskje også med mindre enn 6% prisstigning, den har vanligvis noe ekstra effekt å dra på med under forvarming, og den responderer med lavere effekt i etterkant av forvarming. NB For varmepumpe så har man lavere COP ved høyere effekt, som motvirker lønnsomheten til forvarming.

 

Jeg har lyst på passivhusstandard! Hvordan kan jeg få til 30 cm isopor under sålen et 60 år gammelt hus uten å være uheldig med fyrstikker og gravemaskin??

Lenke til kommentar
Del på andre sider

Hjelper det ikke en del om du får isolasjon ned fra veggen og utover bakken litt så det ikke kommer kulde inn under huset ?

Har ikke målt på det selv, men jg la 7cm plater utenpå mur og ca1,2 meter utover når jeg fikk ny drenering.

Virker en del bedre.

Lenke til kommentar
Del på andre sider

1 time siden, berland skrev:

Hvordan kan jeg få til 30 cm isopor under sålen et 60 år gammelt hus uten å være uheldig med fyrstikker og gravemaskin??

Det er ikke umulig, men neppe lønnsomt.

....

Hvis du har tilstrekkelig takhøyde, da kan du legge et lag isolasjon oppå eksisterende gulv, så mye du synes redusert takhøyde tillater.

Ja, det drar en rekke problemer med seg, men er mulig.

(Du MÅ ikke ha 2,40 i kjeller/underetasje).

Du kan isolere kjellermur innvendig og utvendig. Alt hjelper.

Isoleringen vil normalt fungere så lenge huset eksisterer (og trekker ikke strøm). 

....

For noen år siden isolerte jeg kjellermuren utvendig med 5 cm, fra topp mur og ned 120cm. 

Dette faller sammen med isolering av loft, vegger, skifting av vinduer etc.

Strømforbruk er mer enn halvert.

Lenke til kommentar
Del på andre sider

1 time siden, berland skrev:

Jeg har lyst på passivhusstandard!

Husk at passivhus koster penger, ganske mye penger. Det holder ikke med vanlige isolerglass (selv om et vanlig "hakket over standard"-vindu ikke er så aller verst lenger).

 

1 time siden, berland skrev:

Hvordan kan jeg få til 30 cm isopor under sålen et 60 år gammelt hus uten å være uheldig med fyrstikker og gravemaskin??

Burde kunne gjøres for 2-400.000 kr, men det er avhengig av "mye".

 

Men man skal spare mye strøm før det lønner seg. ;) 

Lenke til kommentar
Del på andre sider

14 timer siden, berland skrev:

Jeg har lyst på passivhusstandard!

Det er laaangt dit, men du kan ta en titt på loftet og se om det er plass for å legge på ekstra isolasjon. 

Det er arbeide du fint kan gjøre selv og koster lite, særlig i forhold til nytte. 

Det er et sted å begynne.

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.