Populært innlegg berland Skrevet 5. mars 2018 Populært innlegg Skrevet 5. mars 2018 Jeg laget for to uker siden en liten(?) kode for å optimalisere strømforbruket med tanke på strømutgifter (ikke strømforbruk) for å ta hensyn til varierende pris gjennom døgnet (og siden jeg for et par uker siden fikk timesavlesning gjennom ny måler fra BKK og strømregning hos Tibber). Grunntanken er å forvarme huset når prisen er billig. For å kunne gjøre dette må man ha en modell av huset som beskriver strømforbruk som funksjon av husets tilstand (temperatur) og hvilken temperatur man ønsker. Jeg har i et halvt år samlet strømforbruk hvert 5. minutt og samtidig logget temperatur. Ved å se på midlere strømforbruk for hver time og sammenligne det med temperaturer og temperaturendring over hver time så kan man bygge en modell på dette (hvis jeg gjentar denne analysebiten kontinuerlig, så kan det kalles maskinlæring). Jeg bruker da sklearn i Python til å lage en (multi)lineær modell som predikerer strømforbruk utifra temperaturendring og differanse mellom ute og innetemperatur. Det er betydelig med støy i denne modellen, se plott av alle dataene mine her: Som en bilineær modell i Python, så implementerer jeg den slik, dette blir nesten analogt med de rette linjene i plottet over: def hourly_power_usage(tmpincrease, insideoutsidediff): """This function could do multlinear regression on the dataset or use finished regression coefficients. It answers what power (in KwH) is needed for the whole house to reach the delta temperature in one hour. """ # from sklearn import linear_model # model = lm.fit(X, y) # X = [inne_diff, inne_diff_ute], y=Smappee5minavg(hour)] coef = [2.150, 0.189] # beware W vs KW intercept = 0.5735 return coef[0] * tmpincrease + coef[1] * insideoutsidediff + intercept Her er det tallene 2.150 og 0.189 kW som man kan tolke: 2150 er ekstraeffekten som kreves for å øke temperaturen med en grad i løpet av en time, samt at man må legge på 189W for hver grad differanse det er på ute og inne, og blir et mål på hvor godt huset er isolert. Kaldere utetemperatur gir høyere pådrag på 189-koeffisienten. I tillegg passer det modellen å legge på 573 watt uansett hvordan temperaturforholdene er. Når denne modellen er på plass, så kan man ved å kjenne framtidas strømpris, framtidas temperaturbehov (ønsket termostatinnstilling) og framtidas utetemperatur (yr) estimere strømforbruk og tilhørende kostnad. I tillegg kan man få tilpasset start av oppvarming for å møte et framtid temperaturønske. Jeg har delt "optimaliseringen" i to deler. Først en kodesnutt som flytter oppvarming tidligere i tid i tilfelle estimert effektpådrag blir for stort. Hvis man skal hoppe fra 18 grader til 25 grader i ett jafs, så tilsier modellen et effektuttak på omtrent 14KW. Jeg har ikke nok variabel effekt (Multireg x 5 (snart 10) + varmepumpe) til å klare dette, så det betyr at jeg må starte en eller to timer tidligere. Koden er enkel brute-force som øker termostatverdien timen forut for høyt estimert effektuttak og gjør dette omigjen helt til effektuttaket går under en viss grenseverdi. Resultatet av det steget ligger i den blåe linja i plottene lenger nede, kalt 'Kwh-adjusted'. Neste steg er optimalisering - her gjør jeg det med hjemmelaget brute-force (jeg tror optimaliseringsteknikken kalles 'simulated annealing'). Jeg øker temperaturen med 0.5 grader på tilfeldige tidspunkt (untatt i nedkjøliingsperioder) og rekalkulerer kostnad. Hvis en viss temperaturøkning resulterer i redusert kostnad, bevares forslaget, ellers forkastes det. Dette gjøres iterativt, og endel ganger omigjen for å øke sannsynligheten for at man ender opp på et globalt minimum. Resultatet blir som man kan se i plottet under. Optimaliseringen gjentas hver time, og jeg har justert antall iterasjoner slik at det tar ca 1 minutt å kjøre. Her kan man se blå kurve som startpunkt, og rød kurve som ferdig produkt. I natt har altså huset tenkt å begynne med forsiktig oppvarming allerede klokka ett for å på billigst mulige måte klare holde 25 grader mellom 7 og 8 i morgen tidlig når prisen er 80 øre (25 grader er 'master-termostat', faktiske termostater har en viss delta i forhold til denne utifra rommets behov). Det regnes også ut hvor mye man sparer på optimaliseringen, akkurat i denne perioden er det hele 2.37 kr (det er mye i forhold til det jeg har sett de i ukene dette har vært i drift..). (i plottet ser man at jeg også skrur av varmtvannstank i døgnets tre-fire dyreste timer) Så, virker det? Vel, jeg har ikke kontroll på alt effektuttak ennå (venter på 5 stk multireg som skal monteres av elektriker), men jeg er ihvertfall i stand til å observere historisk strømforbruk og pris som ser slik ut: og gjetter på at akkurat her har jeg spart noen titalls øre 19 Siter
iceball Skrevet 5. mars 2018 Skrevet 5. mars 2018 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 Siter
berland Skrevet 5. mars 2018 Forfatter Skrevet 5. mars 2018 Et tilsvarende ET-plot for huset mitt ser slik ut: 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. 2 Siter
berland Skrevet 6. mars 2018 Forfatter Skrevet 6. mars 2018 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. 1 Siter
berland Skrevet 8. mars 2018 Forfatter Skrevet 8. mars 2018 (endret) 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 8. mars 2018 av berland 2 Siter
Moskus Skrevet 9. mars 2018 Skrevet 9. mars 2018 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? Siter
berland Skrevet 9. mars 2018 Forfatter Skrevet 9. mars 2018 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. Siter
berland Skrevet 9. mars 2018 Forfatter Skrevet 9. mars 2018 (endret) 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! 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 9. mars 2018 av berland 1 Siter
berland Skrevet 9. mars 2018 Forfatter Skrevet 9. mars 2018 (endret) 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 9. mars 2018 av berland 3 Siter
berland Skrevet 23. mars 2018 Forfatter Skrevet 23. mars 2018 (endret) 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. Endret 23. mars 2018 av berland Siter
berland Skrevet 22. januar 2019 Forfatter Skrevet 22. januar 2019 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. Siter
berland Skrevet 22. januar 2019 Forfatter Skrevet 22. januar 2019 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å. Siter
Moskus Skrevet 23. januar 2019 Skrevet 23. januar 2019 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? Siter
berland Skrevet 23. januar 2019 Forfatter Skrevet 23. januar 2019 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?? Siter
nhmariend Skrevet 23. januar 2019 Skrevet 23. januar 2019 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. Siter
arneolav Skrevet 23. januar 2019 Skrevet 23. januar 2019 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. Siter
Moskus Skrevet 23. januar 2019 Skrevet 23. januar 2019 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. Siter
arneolav Skrevet 24. januar 2019 Skrevet 24. januar 2019 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. Siter
berland Skrevet 24. januar 2019 Forfatter Skrevet 24. januar 2019 Alle de kostnadseffektive tiltakene for isolasjon er stort sett gjort allerede, så jeg har ikke mye å gå på, heller ikke takhøyde. Så huset må nok leve med dagens isolasjonsgrad. Siter
Anbefalte innlegg
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.