berland Skrevet 4. oktober 2018 Skrevet 4. oktober 2018 Med utgangspunkt i at jeg fikk på plass temperaturovervåking av varmtvannstanken min nylig, så har ting ballet på seg. Først litt bilder fra temperaturloggingsprosjektet Strips er klippet av etter bildet ble tatt og så har jeg isolert det inne. Koden på ESP8266 er laget med Arduino IDE, og med eksempelkode for D18B20. Temperaturene leses av flere ganger i sekundet, men data sendes kun over MQTT hvis det skjer en stor nok endring, og uansett hvert minutt. 1 Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 Temperaturdataene visualiserer jeg i Grafana (lagret i InfluxDB), og jeg har også programmert en snutt i OpenHAB for å detektere om det tappes vann. Dette er indikert med rødt bakgrunn i plottet under. Trigger for å tro at det tappes er at både varmtvannsutløpet øker i temperatur og kaldtvannet minker i temperatur. Det var en prøvelse å få programmert disse derivert-funksjonene i OpenHAB sin Xtend. Grønt er temperaturmåler på varmtvannet som tappes fra tank. Gult er temperaturmåler nedstrøms på varmtvannet og er etter blandeventilen. Blått er kaldtvann inn (det ligger også lilla bakgrunn i tidsperioden der varmeelementet er på) rule "Varmtvannstapping" when Item Varmtvannsbereder_ut_diff changed or Item Vartmvannsbereder_kaldtinn_diff changed then if (Varmtvannsbereder_tapper.state == NULL) { Varmtvannsbereder_tapper.postUpdate(OFF) } if (Varmtvannsbereder_ut_diff.state > 0.015 && Varmtvannsbereder_kaldtinn_diff.state < -0.015) { if (Varmtvannsbereder_tapper.state == OFF) { logInfo("Varmtvann", "det tappes") Varmtvannsbereder_tapper.postUpdate(ON) } } if (Varmtvannsbereder_ut_diff.state < -0.05 && Varmtvannsbereder_kaldtinn_diff.state > 0) { if (Varmtvannsbereder_tapper.state == ON) { logInfo("Varmtvann", "stillstand") Varmtvannsbereder_tapper.postUpdate(OFF) } } end rule "Varmtvannsderiverte varmt ut" when Item Varmtvannsbereder_ut changed then var foo = Varmtvannsbereder_ut.lastUpdate().getMillis() var deltatid = (now.getMillis() - foo)/1000.0 var deltatemp = ((Varmtvannsbereder_ut.state as DecimalType) - (Varmtvannsbereder_ut.previousState.state as DecimalType)) var diff = deltatemp / deltatid if (deltatid > 1) { Varmtvannsbereder_ut_diff.postUpdate(diff) } end 1 Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 Så ble det noen lange kvelder med å tenke på hvordan jeg kan styre dette mot pris, samtidig som at man skal ha varmt nok vann i springen (og unngå legionella). Diverse lesing på nettet gjør at jeg finner ut hvordan jeg sjekker og justerer temperaturinnstillingen på tanken ved å finne skruen som holdt plastdekselet i bunn fast. Termostatinnstillingen er en liten skrue nede til venstre i bildet. Det er selvsagt også irriterende hvor lett det hadde vært å stikke en temperatursensor inni her, så hadde jeg også fått måling av temperatur som var uavhengig av tapping. Men, det viktige her er at jeg finner at tanken var innstilt på 60 grader (nedre grense i forhold til legionella). Jeg setter den opp til 75 (den går ikke høyere) dette gir meg umiddelbart 15 grader mer å spille på i forhold til å utsette oppvarming av vann. 2 Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 Intelligens som i maskinlæring innebærer som regel bare noe statistikk. Jeg har noen måneders logg fra en Aeotec Smart Switch og dernest en Aeotec Heavy Duty Switch som har stått på tanken. Utifra kumulativt-forbruk gjennom hvert døgn, kan jeg beregne type-profiler for når varmtvannstanken står på: Dataene kategoriserte jeg etter om huset er i feriemodus, hverdag eller helg. Ferie-linja (blå) burde vært flat, men jeg har ikke samlet nok data til det, så derfor bruker jeg den røde linja i praksis for ferie-modus. Enheten på y-aksen er kWh, og angir da hvor mye strøm varmtvannstanken vanligvis bruker i gitte time. Utifra dataene leser jeg at vi står opp tidligere på hverdager enn i helger, men det skjer mer dusjing på kvelden i helgene enn på hverdager. Oscillasjonen på dagtid i helg er kanskje ikke reell, men bare symptom på lite data. Ferie-tallet (på 0.148 kWh) betyr også at varmtvannstanken i snitt taper 148 W til rommet kontinuerlig når den ligger på 60 grader. Etter at jeg setter igang med styring av tank, så kan jeg ikke lenger bruke strømmåleren for å forbedre bruksprofilen, siden den blir styrt av pris og ikke bruk. Det kan hende det er mulig å forbedre profilen med bruk av deteksjon av vamrtvannstappingen senere, men det er heller ikke sikkert at det trengs. Profilen kan selvsagt også håndtegnes etter behov. Tanken videre er å bruke dette for å predikere hvor mye varmtvann som brukes de neste timene, og dermed predikere hva som er temperatur på tanken om X antall timer. 1 Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 # Varmekapasitet for vann Cv = 4187 #J/kg oC (I tabeller oftest oppgitt med grader Kelvin; gjerne kJ/kg K - der 1K = 1oC) # Regn om til watt-timer: # * 1J = 1 Ws; # * 3600J = 3600 Ws = 1W * 3600s = 1Wh # * 4189J = (4189/3600)Wh = 1,163Wh # * 1liter vann veier ca. 1,0 kg Cv = 1.163055556 #Wh/kg oC liter = 194 effekt = 2700 grader = 75 - 5 # antar 5 grader inntak.. oppvarmingstid = Cv * liter / effekt * grader print("Oppvarmingstid {:.2f}".format(oppvarmingstid,"%d") + " timer") print("Energimengde i varm tank {:.2f} KWh".format(Cv * liter * grader/1000)) Jeg bruker "energimengde" i tanken (relativt kaldtinntaket) som begrep i styringen/optimaliseringen. Med tallene over får jeg at oppvarmingstid blir 5.85 timer hos meg, og energimengde på varm tank er 15.79 kWh. "Energimengde" på tanken kan regnes tilbake til temperatur, som kan sammenlignes med temperaturen jeg måler. Dette klarer jeg verifisere at stemmer (ved å se på hvor mange grader målt temperatur har steget etter at elementet har vært innekoblet f.eks. 40 minutter). Så å sette en nedre grense på energimengde jeg tillatter i tanken, så betyr det en nedre temperaturgrense. Akkurat hva jeg skal bruke som energigrense har jeg noe tilfeldig satt til 11 kWH for øyeblikket - jeg skal se an noen dager om dette er for høyt eller for lavt, det tilsvarer ca 55 grader på tanken. Hvis tanken er påskrudd i to sammenhengende timer, så vet jeg da at den ca vil nå makstemperatur (2.7 kW * 2 timer + 11 = 15.4 kWh), men jeg er uansett langt over legionellagrensa. 2 Siter
xibriz Skrevet 4. oktober 2018 Skrevet 4. oktober 2018 Dette blir jeg å kopiere ved neste anledning Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 Algoritmen som gjør selve jobben er ikke lengre enn dette: daymode = 'Hverdag' data['onoff'] = 0 data['energycontent'] = 0 data['consumption'] = 0 lowerlimit = 11 effect = 2.7 insulationloss = data['Ferie_midlet'].mean() data.loc[data.index.values[0], 'energycontent'] = 16.08 while data.energycontent.min() < lowerlimit: onhours = data.onoff.astype(int).sum() + 1 data.loc[data.nsmallest(onhours, 'NOK/KWh').index.values,'onoff'] = '1' for row in data.index.values[:-1]: newenergycontent = data.loc[row, 'energycontent'] - data.loc[row, daymode] newenergycontent = int(data.loc[row, 'onoff']) * (effect - insulationloss) + newenergycontent data.loc[row+1, 'energycontent'] = min(newenergycontent, 15.79) for row in data.index.values[:-1]: data.loc[row, 'consumption'] = int(data.loc[row, 'onoff']) * \ round(data.loc[row+1, 'energycontent'] - data.loc[row, 'energycontent'] + data.loc[row, daymode],3) Dette er Python-kode med bruk av pandas-biblioteket, der jeg jobber på en tabell kalt 'data' som inneholder en rad for hver time 24 timer fram i tid. Tabellen inneholder prisinformasjon, og bruksprofilen er limt inn. Øyeblikkets energiinnhold er estimert fra temperaturmåling, og blir startpunkt for algoritmen. Jeg starter med å kun sette tanken på den billigste timen, og estimerer energiinnhold for hver time framover. Hvis denne en gang kommer under 11, så starter jeg forfra med å ha den på de to billigste timene, helt fram til at jeg er over 11 kWh i alle timer framover. Når dette er ferdig, så skrur jeg av eller på berederen utifra om 'onoff' er 0 eller 1 i første rad. I tillegg trengs det litt kode for å hente prisdata fra Tibber (pyTibber på github, installeres med pip) Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 Eksempelberegning fra just nu: Her er tabellen med alle data, og et tilhørende plott 1 Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 Satt opp mot optimalisering av husoppvarming, så er dette ganske motsatt. Matematisk sett er det ingen grunn til å forholde seg til forskjell på dyreste og billigste time, så til og med med disse grisekjedelige dagene med bare høy pris kontinuerlig gjennom døgnet, så vil berederen min være mer avskrudd enn på. Et tilleggselement til algoritmen kunne selvsagt være å legge til mer komfort (øke minimumstallet fra 11) hvis det er lite å hente, men det er ikke sikkert at det vil være noen merkbar økning i komfort. Det gjenstår å finne ut hvordan jeg kan beregne "hvor mye jeg sparer". Heavy-duty-switchen og elektrikerbesøk er sunk cost, så å sette i verk styring som dette er nå en enkel beslutning. Men hvordan beregne besparelse? Jeg beregner forventet kostnad i hver time framover, og kan summere det og sette det opp mot hva typeprofilen hadde brukt framover i tid. Men siden siste rad i tabellen min ikke ender på maksimalt energiinnhold, kan jeg ikke sammenligne. Hvilken times pris skal jeg bruke for å korrigere det? Bakover i tid er det kanskje enklere, så om noen måneder er det nok mulig å beregne hva jeg hadde brukt uten smart-styring, og sammenligne med det som faktisk er brukt. Siter
Marhil Skrevet 4. oktober 2018 Skrevet 4. oktober 2018 Flott prosjekt! Venter på elektriker selv for å montere en Heavy duty switch. Har kjøpt inn deler for temperaturovervåking, venter bare på overskudd... [emoji846]Tanken min står i et kjellerrom der tempen varierer, 18 grader på sommeren og kanskje 8-12 grader vinterstid. Vet dette er waste av energi på vinteren, men tanken holder vel i alle fall rommet frostfritt.Finnes det en funksjon av overflateareal og delta av temperatur inne i tanken/romtemp jeg kan bruke for å beregne energitap? Sent fra min BLA-L29 via Tapatalk Siter
berland Skrevet 4. oktober 2018 Forfatter Skrevet 4. oktober 2018 Varmetapet (i watt) vil være lineært i temperaturforskjell. Man kan løse varmeledningsligningen for en sylinder for å finne ut hvordan formen påvirker, men siden dette ikke er noe du får gjort noe med, er det enklere å estimere det fra målinger. Jeg har lite forskjell mellom vinter og sommertemperatur i vaskerommet, så jeg vil kanskje ikke klare se dette utifra temperaturlogg og forbrukslogg, du vil kunne se denne lineære sammenhengen. Hos meg har jeg 22 grader i vaskerommet i snitt siste halvår, og tanken har holdt 60 grader - forskjell på 38 grader. Jeg beregner 148 W når huset er forlatt, og da mister tanken 148W/38grader = 3.9W/grad. Hvis det var 10 grader om vinteren, ville jeg da tapt 3.9*50 = 194 W gjennom isolasjonen. Siden jeg vet temperatur inni tank og utenfor kunne jeg forsåvidt enkelt korrigert for dette i koden over, men hos meg vil det nok ha lite å si. 1 Siter
berland Skrevet 5. oktober 2018 Forfatter Skrevet 5. oktober 2018 Et forsøk på estimat av besparelse: Ta typeprofilen, finn ut hvor mye den koster med kommende priser. Flytt så samme antall kWh over til de timene som er valgt til å være på, og beregn hva samme antall kWh koster i de timene, skaler til 24 timer (antall tilgjengelige timer med priser varierer mellom 12 og 36) og sammenlign tallene. Dette blir en prediksjon av besparelse som jeg kan beregne løpende. For øyeblikket estimerer jeg da til å spare hele 7 øre de neste 24 timene (!) Men så er prisforskjellen bare 5-6 øre fra billigste til dyreste så dette er uansett en bortkastet dag.. 1 Siter
berland Skrevet 3. desember 2018 Forfatter Skrevet 3. desember 2018 (endret) Etter drøye 2 måneder, så har jeg gjennomsnittlig estimert døgnbesparelse på 51 øre (!) Endret 3. desember 2018 av berland 1 Siter
Moskus Skrevet 3. desember 2018 Skrevet 3. desember 2018 1 time siden, berland skrev: Etter drøye 2 måneder, så har jeg gjennomsnittlig estimert døgnbesparelse på 51 øre (!) Altså rundt 15 kr i løpet av en måned! En pakke tyggi er jo utmerket det og... ... men det er rart, jeg ville tro besparelsen er vesentlig høyere enn det hvis man unngår de 8 dyreste timene i døgnet, f.eks. Men det kan også være et mål om at strømprisen denne høsten egentlig har vært ganske flat, med lite variasjon mellom snitt og peak-tid. Siter
Teza Skrevet 3. desember 2018 Skrevet 3. desember 2018 Følger. Off topic: Usikker på besparinger på varmtvannsberedere, tror nesten det er mer å spare på å slå av smarthusprodukter Da jeg reiser endel prøvde jeg tidligere å måle hvor lenge jeg måtte være borte, før det lønte seg å slå av varmtvannstanken. Det ble da kun tatt hensyn til kWh forbruk, og prøvde å redusere det totale strømforbruket så mye som mulig. Kom frem til at jeg måtte være borte i ca. 2,5 døgn, før jeg begynte å spare på at tanken var avslått. Det går med mye energi for å varme opp en tank med kaldt vann. Da må man også huske å slå på tanken endel timer før man kommer hjem, så man slipper å måtte dusje i kaldt vann. Siter
Moskus Skrevet 3. desember 2018 Skrevet 3. desember 2018 38 minutter siden, Teza skrev: Usikker på besparinger på varmtvannsberedere Jeg tror sparingen med normale strømpriser er stor, på grensen til enorm. Men denne høsten har vi hatt nærmest flate priser, så det er jo ikke så interessant når man bruker strøm på varmtvann... Siter
Teza Skrevet 3. desember 2018 Skrevet 3. desember 2018 Godt mulig du har rett i det, er tross alt en av de største forbrukerne i huset. For min del er det svært lite varmtvann som blir brukt, i forhold til en familie. Siter
berland Skrevet 3. desember 2018 Forfatter Skrevet 3. desember 2018 3 timer siden, Moskus skrev: Men det kan også være et mål om at strømprisen denne høsten egentlig har vært ganske flat, med lite variasjon mellom snitt og peak-tid. Det har de, derfor er de tatt med i plottet over. Maksbesparelse pr. døgn er på 2 kr og 50 øre for noen få dager med stor variasjon (nedi 20 øre om natta), og det er ikke utenkelig at en slik variasjon kan bli normalt, hjulpet av en eller annen form for effekttariff. Da snakker vi ihvertfall rundt tusenlappen i året. Bruker man mer varmtvann er det selvsagt mer å spare. Siter
Moskus Skrevet 4. desember 2018 Skrevet 4. desember 2018 10 timer siden, berland skrev: Maksbesparelse pr. døgn er på 2 kr og 50 øre for noen få dager med stor variasjon (nedi 20 øre om natta), og det er ikke utenkelig at en slik variasjon kan bli normalt, hjulpet av en eller annen form for effekttariff. Da snakker vi ihvertfall rundt tusenlappen i året. Det ser iallfall mer fornuftig ut for meg. Siter
berland Skrevet 6. desember 2018 Forfatter Skrevet 6. desember 2018 (endret) Fikk endelig stappet inn en temperatursensor på fornuftig sted i tanken. Som nevnt i post nr 3 i tråden, så går det jo an å få noe på innsida av isolasjonen. Jeg tok derfor en innkapslet D18B20 ferdigmontert på 3 meters kabel (125 grader står det skrevet på kabelen, så da tror jeg den tåler det), og ved hjelp av en pinne dyttet den 30-40 cm oppover på innsiden av isolasjonen. Tanken sin termostat er stilt på 75 grader, den sensoren regner jeg med sitter i bunn sammen med termostaten, for dette nye termometeret har målt opp til 81 grader. Temperaturmålingen (rødt under) fra tanken er veldig brukandes! Dette kan man gjøre analyser på om man vil, og jeg kan gjøre litt marginale forbedringer på algoritmen som optimaliserer. WAF synker litt når det blir synlig hvem som hadde billigst dusj av klokkeslettene 07:00 og 17:00 Endret 6. desember 2018 av berland 2 Siter
Morten B Skrevet 10. desember 2018 Skrevet 10. desember 2018 @berlandHva er de andre grafene? Har du tempmåler på inn/ut-rørene dine? Siter
berland Skrevet 10. desember 2018 Forfatter Skrevet 10. desember 2018 22 minutter siden, Morten B skrev: @berlandHva er de andre grafene? Har du tempmåler på inn/ut-rørene dine? Ja, se bildene øverst til tråden. Siter
Morten B Skrevet 10. desember 2018 Skrevet 10. desember 2018 2 minutter siden, berland skrev: Ja, se bildene øverst til tråden. Kan jeg skylde på at det er tidlig på morgenen i tillegg til at det er mandag? Siter
berland Skrevet 10. desember 2018 Forfatter Skrevet 10. desember 2018 5 timer siden, Morten B skrev: Kan jeg skylde på at det er tidlig på morgenen i tillegg til at det er mandag? Den er god! Sensorene på rørene er forsåvidt ikke godt for annet enn deteksjon av tapping som smaker mer av overvåkning enn nytte. Nå som jeg fikk en sensor plassert på fornuftig plass er de overflødige i forhold til nytteverdi. Det er nå den nye sensoren sine data som brukes i koden som kjører hver time for å planlegge når tanken skal varme vann. 1 Siter
Norseman Skrevet 21. januar 2019 Skrevet 21. januar 2019 Strømprisene svinger mye for tiden. Har du noen estimater over hva man sparer på slike dager? I dag svinger min strømpris fra 67 øre til 111,5 øre med Tibber. 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.