EcoRenovator  

Go Back   EcoRenovator > Improvements > Renovations & New Construction
Advanced Search
 


Blog 60+ Home Energy Saving Tips Recent Posts


Reply
 
Thread Tools Display Modes
Old 09-07-14, 04:10 PM   #31
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

and yet more code

Code:
void LogQuick()
{
  tmElements_t tm;
  int D;
  int M;
  int Y;
  int H;
  int Mn;
  int S;
  RTC.read(tm);
  D = int(tm.Day);
  M = int(tm.Month);
  Y = int(tmYearToCalendar(tm.Year));
  H = int(tm.Hour);
  Mn = int(tm.Minute);
  S = int(tm.Second);
  dataString = " ";


  dataString = String(Y);
  dataString += "-";
  dataString += String(M);
  dataString += "-";
  dataString += String(D);
  dataString += " ";
  dataString += String(H);
  dataString += ":";
  dataString += String(Mn);
  dataString += ":";
  dataString += String(S);
  dataString += ",";
  dataString += String(Buffer, 2);
  dataString += ",";
  dataString += String(DhwH, 2);
  dataString += ",";
  dataString += String(DhwL, 2);
  dataString += ",";
  dataString += String(Outside, 2);
  dataString += ",";
  dataString += String(ChImm);
  dataString += ",";
  dataString += String(DHwImm);
  dataString += ",";
  dataString += String(ChFlow, 2);
  dataString += ",";
  dataString += String(ChRet, 2);
  dataString += ",";
  dataString += String(HpFlow, 2);
  dataString += ",";
  dataString += String(HpRet, 2);
  dataString += ",";
  dataString += String(HpLPM, 1);
  dataString += ",";
  dataString += String(HpWattsIn);
  dataString += ",";
  dataString += String(HpWattsOut);
  dataString += ",";
  dataString += String(HpCOP);
  dataString += ",";
  dataString += String(HpChAct);
  dataString += ",";
  dataString += String(ChPump);
  dataString += ",";
  //dataString += String(HpHourlyDC);
  //dataString += ",";
  //dataString += String(HpDailyDC);
  //dataString += ",";
  //dataString += String(HpWeeklyDC);
  //dataString += ",";
  dataString += String(ShowerRecIn, 2);
  dataString += ",";
  dataString += String(ShowerRecOut, 2);
  dataString += ",";
  dataString += String(ShowerLPM);
  dataString += ",";
  dataString += String(WCtarget, 2);
  dataString += ",";
  dataString += String(DailyKWh);
  dataString += ",";
  dataString += String(HpMinsRun);
  dataString += ",";
  //dataString += String(G1Setpoint);
  //dataString += ","; 
  //dataString += String(G2Setpoint);
  //dataString += ",";
  //dataString += String(G3Setpoint);
  //dataString += ",";
  //dataString += String(G4Setpoint);
  //dataString += ",";
  //dataString += String(G5Setpoint);
  //dataString += ",";
  //dataString += String(G6Setpoint);
  //dataString += ",";
  //dataString += String(F1Setpoint);
  //dataString += ",";
  //dataString += String(F2Setpoint);
  //dataString += ",";
  //dataString += String(F3Setpoint);
  //dataString += ",";
  //dataString += String(F4Setpoint);
  //dataString += ",";
  //dataString += String(G1Temp);
  //dataString += ",";
  //dataString += String(G2Temp);
  //dataString += ",";   
  //dataString += String(G3Temp);
  //dataString += ",";
  //dataString += String(G4Temp);
  //dataString += ",";
  //dataString += String(G5Temp);
  //dataString += ",";
  //dataString += String(G6Temp);
  //dataString += ",";
  //dataString += String(G1Hum);
  //dataString += ",";
  //dataString += String(G2Hum);
  //dataString += ",";
  //dataString += String(G3Hum);
  //dataString += ",";
  //dataString += String(G4Hum);
  //dataString += ",";
  //dataString += String(G5Hum);
  //dataString += ",";
  //dataString += String(G6Hum);
  //dataString += ",";
  //dataString += String(G1VP);
  //dataString += ",";
  //dataString += String(G2VP);
  //dataString += ",";
  //dataString += String(G3VP);
  //dataString += ",";
  //dataString += String(G4VP);
  //dataString += ",";
  //dataString += String(G5VP);
  //dataString += ",";
  //dataString += String(G6VP);
  //dataString += ",";
  //dataString += String(F1Temp);
  //dataString += ",";
  //dataString += String(F2Temp);
  //dataString += ",";
  //dataString += String(F3Temp);
  //dataString += ",";
  //dataString += String(F4Temp);
  //dataString += ",";
  //dataString += String(F1Hum);
  //dataString += ",";
  //dataString += String(F2Hum);
  //dataString += ",";
  //dataString += String(F3Hum);
  //dataString += ",";
  //dataString += String(F4Hum);
  //dataString += ",";
  //dataString += String(F1VP);
  //dataString += ",";
  //dataString += String(F2VP);
  //dataString += ",";
  //dataString += String(F3VP);
  //dataString += ",";
  //dataString += String(F4VP);


  File dataFile = SD.open("quicklog.csv", FILE_WRITE);

  // if the file is available, write to it:
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // print to the serial port too:
    //Serial.println(dataString);
  }  
  // if the file isn't open, pop up an error:
  else {
    //Serial.println("error opening quicklog.txt");
  } 

}

void LogSlow()
{
  tmElements_t tm;
  int D;
  int M;
  int Y;
  int H;
  int Mn;
  int S;
  RTC.read(tm);
  D = int(tm.Day);
  M = int(tm.Month);
  Y = int(tmYearToCalendar(tm.Year));
  H = int(tm.Hour);
  Mn = int(tm.Minute);
  S = int(tm.Second);
  dataString = " ";

Ormston is offline   Reply With Quote
Old 09-07-14, 04:11 PM   #32
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

Hopefully the last code

Code:
  dataString = String(Y);
  dataString += "-";
  dataString += String(M);
  dataString += "-";
  dataString += String(D);
  dataString += " ";
  dataString += String(H);
  dataString += ":";
  dataString += String(Mn);
  dataString += ":";
  dataString += String(S);
  dataString += ",";
  dataString += String(Buffer, 2);
  dataString += ",";
  dataString += String(DhwH, 2);
  dataString += ",";
  dataString += String(DhwL, 2);
  dataString += ",";
  dataString += String(Outside, 2);
  dataString += ",";
  dataString += String(HpMinsRunY);
  dataString += ",";
  dataString += String(DailyKWh);
  dataString += ",";
  //dataString += String(ChImm);
  //dataString += ",";
  //dataString += String(DHwImm);
  //dataString += ",";
  //dataString += String(HpFlow, 2);
  //dataString += ",";
  //dataString += String(HpRet, 2);
  //dataString += ",";
  //dataString += String(HpLPM, 1);
  //dataString += ",";
  //dataString += String(HpWattsIn);
  //dataString += ",";
  //dataString += String(HpWattsOut);
  //dataString += ",";
  //dataString += String(HpCOP);
  //dataString += ",";
  //dataString += String(HpChAct);
  //dataString += ",";
  //dataString += String(ChPump);
  //dataString += ",";
  //dataString += String(HpHourlyDC);
  //dataString += ",";
  //dataString += String(HpDailyDC);
  //dataString += ",";
  //dataString += String(HpWeeklyDC);
  //dataString += ",";
  //dataString += String(G1Setpoint);
  //dataString += ","; 
  //dataString += String(G2Setpoint);
  //dataString += ",";
  //dataString += String(G3Setpoint);
  //dataString += ",";
  //dataString += String(G4Setpoint);
  //dataString += ",";
  //dataString += String(G5Setpoint);
  //dataString += ",";
  //dataString += String(G6Setpoint);
  //dataString += ",";
  //dataString += String(F1Setpoint);
  //dataString += ",";
  //dataString += String(F2Setpoint);
  //dataString += ",";
  //dataString += String(F3Setpoint);
  //dataString += ",";
  //dataString += String(F4Setpoint);
  //dataString += ",";
  //dataString += String(G1Temp);
  //dataString += ",";
  //dataString += String(G2Temp);
  //dataString += ",";   
  //dataString += String(G3Temp);
  //dataString += ",";
  //dataString += String(G4Temp);
  //dataString += ",";
  //dataString += String(G5Temp);
  //dataString += ",";
  //dataString += String(G6Temp);
  //dataString += ",";
  //dataString += String(G1Hum);
  //dataString += ",";
  //dataString += String(G2Hum);
  //dataString += ",";
  //dataString += String(G3Hum);
  //dataString += ",";
  //dataString += String(G4Hum);
  //dataString += ",";
  //dataString += String(G5Hum);
  //dataString += ",";
  //dataString += String(G6Hum);
  //dataString += ",";
  //dataString += String(G1VP);
  //dataString += ",";
  //dataString += String(G2VP);
  //dataString += ",";
  //dataString += String(G3VP);
  //dataString += ",";
  //dataString += String(G4VP);
  //dataString += ",";
  //dataString += String(G5VP);
  //dataString += ",";
  //dataString += String(G6VP);
  //dataString += ",";
  //dataString += String(F1Temp);
  //dataString += ",";
  //dataString += String(F2Temp);
  //dataString += ",";
  //dataString += String(F3Temp);
  //dataString += ",";
  //dataString += String(F4Temp);
  //dataString += ",";
  //dataString += String(F1Hum);
  //dataString += ",";
  //dataString += String(F2Hum);
  //dataString += ",";
  //dataString += String(F3Hum);
  //dataString += ",";
  //dataString += String(F4Hum);
  //dataString += ",";
  //dataString += String(F1VP);
  //dataString += ",";
  //dataString += String(F2VP);
  //dataString += ",";
  //dataString += String(F3VP);
  //dataString += ",";
  //dataString += String(F4VP);


  File dataFiles = SD.open("slowlog.csv", FILE_WRITE);

  // if the file is available, write to it:
  if (dataFiles) {
    dataFiles.println(dataString);
    dataFiles.close();
    // print to the serial port too:
    //Serial.println(dataString);
  }  
  // if the file isn't open, pop up an error:
  else {
    //Serial.println("error opening slowlog.txt");
  } 

}

void weathercomp()
{
  float ost;


  ost = 20 - Outside;
  WCtarget = ((WCcurve * 0.16 * ost) + 20);
  WCtarget += WCofset;
  //if (Uptime >= 2) WCtarget += predictCorrection;   
  
  if (WCtarget > 35) 
  {
    WCtarget = 35;
  }
  if (Outside > 14) 
  {
    WCtarget = 10;
  }
  int HeatDisable = digitalRead(heatsw);
   if (HeatDisable == true) //Disable heating for summer
  {
        if (Buffer < (18)) {
        //Heating off
        HpChAct = false;
        digitalWrite(R4W, LOW);
        }
      if (Buffer > (19.5)) {
        //Heating ON
        HpChAct = true;
        digitalWrite(R4W, HIGH);
      }
  }
    if (HeatDisable == false) {//Disable heating for summer
    
      
      
     
      if (Buffer > (WCtarget + 1)) {
        //Heating off
        HpChAct = false;
        }
      if (Buffer < (WCtarget - 1)) {
        //Heating ON
        HpChAct = true;
      }
      digitalWrite(R4W, LOW);
    }
    
    if (heatWater == true) {
      digitalWrite(R4W, LOW);
    }   
}
Steve
Ormston is offline   Reply With Quote
Old 09-08-14, 03:03 PM   #33
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

Realised i forgot to post the floor screed pics.





Floor edge showing damp proof membrane and insulation between screed and wall.



We laid around 5m³ of screed over 45m² floor area covering approx 700m of PEX.

This huge thermal mass along with the abysmal output of the heatpump dictates how we can run the heating.
Turn it on in autumn.
Turn it off in spring.

I did try a 2C night setback(2C flow temp to the floor) when it was around 5C outside, it took 5 hours for the water to drop by that 2C and the heatpump kicked in again.
The heatpump run continuously for around 30 hours to get the house back up to temp. Throughout this test the minimum air temp seen on the ground floor was 18C.

The KW/h meter i installed to monitor the heatpump usage clocked up 1700KW/h between 25th Nov 2013 and 30th March 2014.
Not bad considering this is for heat and hot water and for the first 6-8 weeks of this period i was still fine tuning the weather compensation so the house regularly sat at 23C!

Steve
Attached Thumbnails
Click image for larger version

Name:	DSCF8177.jpg
Views:	1133
Size:	116.4 KB
ID:	4645   Click image for larger version

Name:	DSCF8182.jpg
Views:	1143
Size:	115.2 KB
ID:	4646   Click image for larger version

Name:	DSCF8185.jpg
Views:	1111
Size:	143.3 KB
ID:	4647  
Ormston is offline   Reply With Quote
The Following User Says Thank You to Ormston For This Useful Post:
Daox (09-08-14)
Old 09-14-14, 04:27 PM   #34
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

Making a few changes to my home energy monitoring system(which will be added to this thread at some point) and noticed just how long it takes for the heatpump to start outputting heat after startup.

Heatpump started at 19:02, by 19:03 it was outputting -1350W(yes minus 1.35KW and taking heat out of the tank it's supposed to be heating!)

At 19:05 it's still stealing 81W from the tank.

19:07 and five mins of drawing 1KW+ and we're at COP 1.
Power in 1193W, output 1193W

19:11 and almost at COP 2, output 2453W

19:21, output up to 2718w. From here on the input and output rise very slowly with water temp and peak at 2862W out.

When the tank reaches temp the water pump runs on for another couple of mins and we get some of our energy back.

From this we can see exactly why short cycling of a heat pump is bad and every effort should be made to extend run times even at the cost of some efficiency.
I'm sure a very similar thing happens in oil boilers that have a large internal mass to heat before giving out anything useful.

Steve

Attached Thumbnails
Click image for larger version

Name:	HeatPumpRamp.jpg
Views:	1074
Size:	66.7 KB
ID:	4666  
Ormston is offline   Reply With Quote
The Following User Says Thank You to Ormston For This Useful Post:
buffalobillpatrick (09-18-14)
Old 09-23-14, 01:58 PM   #35
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

For as long as I can remember I've never been the liveliest person first thing in the morning, it usually takes 10-15 mins in the shower to bring my brain up to operating temperature for the day.

With this in mind it seemed like a good idea to try and recover some of that wasted heat gurgling down the drain whilst my eyes slowly gained focus.

I'd seen references to various grey water heat recovery systems and decided to try a vertical recovery pipe.
The claims by the commercial manufacturers of these items are of around 60% recovery.
Thinking of a decent electric shower being 9-10KW i should be able to recover 5+KW right?

After the fright of seeing the cost of these products (over £450 ) at 5KW recovered i would need to be in the shower for 750 hours just to break even!
I ordered some materials and set about making my own:
1.8m length of 4" 16g aluminium pipe
2 x 30m coils of 3/8 aluminium fuel line
glassfibre resin
copper powder
a few plumbing fittings i had lying around.

I cut the coils of 3/8 tube in half and wrapped them around the 4" pipe.







Steve
Attached Thumbnails
Click image for larger version

Name:	WP_000541.jpg
Views:	437
Size:	275.2 KB
ID:	4673   Click image for larger version

Name:	WP_000542.jpg
Views:	917
Size:	370.1 KB
ID:	4674   Click image for larger version

Name:	WP_000544.jpg
Views:	930
Size:	272.0 KB
ID:	4675   Click image for larger version

Name:	WP_000546.jpg
Views:	907
Size:	303.5 KB
ID:	4676  
Ormston is offline   Reply With Quote
Old 09-23-14, 02:09 PM   #36
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

The gaps between the outer coils and the downpipe were filled with glassfibre resin with copper powder added to aid heat transfer, i've no idea if it helps but seemed like a good idea at the time.

The 4 coils were joined with compression fittings to 10mm copper pipe which was then combined to a single 15mm copper pipe at either end.

The main downpipe through which waste water flows was reduced to 1 1/2" plastic waste pipe at each end to connect to the shower trap.

The whole assembly is then wrapped with fibreglass insulation held on with aluminium tape.










Steve
Attached Thumbnails
Click image for larger version

Name:	WP_000551.jpg
Views:	914
Size:	319.3 KB
ID:	4677   Click image for larger version

Name:	WP_000556.jpg
Views:	915
Size:	546.5 KB
ID:	4678   Click image for larger version

Name:	WP_000558.jpg
Views:	917
Size:	523.6 KB
ID:	4679   Click image for larger version

Name:	WP_000565.jpg
Views:	921
Size:	414.4 KB
ID:	4680  
Ormston is offline   Reply With Quote
Old 09-23-14, 03:00 PM   #37
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

As this is experimental i wanted to be able to isolate/remove it with little hastle if necessary.

I thought the easiest thing was to have it connected only to the shower, as such it only has the waste shower water flowing through it and the cold feed to the shower mixer flows the other way around the coils.

So far it has proved almost completely useless.
At best it recovers 150W!

With a materials cost of £90ish it will take 5000hours in the shower to pay back.

Why is it such a failure?

Firstly i was over optimistic with the amount of energy available to be recovered.

My theoretical 9-10KW shower will not pour 9-10KW down the drain, some of it is used to bring my brain up to temperature, some of it fills the bathroom with steam, some of it heats the wall tiles and shower tray and so on.
Guessing now but it's probably more like 3 or 4 KW flowing down the drain and at a much lower temp than it exits the shower head. (20C measured at the top of the recovery pipe)

So it should still be possible to recover maybe 1.5-2KW.

The main issue with my installation is the fact than i'm trying to heat the cold feed to the shower mixer and as i only heat the hot water tank to 50C most of the time it takes hardly any cold water to dilute down to a normal shower temp. By the end of a shower the tank is often under 30C and probably taking no cold water to dilute.

At some point i intend to re-pipe the recovery coil into the cold feed to the water tank and see how well it works with a decent flow rate.

Steve
Ormston is offline   Reply With Quote
Old 09-23-14, 07:42 PM   #38
Mikesolar
Master EcoRenovator
 
Mikesolar's Avatar
 
Join Date: Aug 2012
Location: Toronto
Posts: 958
Thanks: 40
Thanked 158 Times in 150 Posts
Default

Oh boy, where shall I start. First, copper has double the heat transfer of aluminum. Second, the tubing is flattened around the drain tube so that there is almost 100% contact between the water line and the drain line. From the pictures, I would estimate 10% contact at most. Copper impregnated or not, it is still a plastic that binds the tubes together and plastics have a much lower heat transfer ability.

Darn, eh.....
Mikesolar is offline   Reply With Quote
Old 09-24-14, 03:05 AM   #39
Ormston
Apprentice EcoRenovator
 
Join Date: Mar 2013
Location: UK
Posts: 131
Thanks: 13
Thanked 35 Times in 32 Posts
Default

Quote:
Originally Posted by Mikesolar View Post
Oh boy, where shall I start. First, copper has double the heat transfer of aluminum. Second, the tubing is flattened around the drain tube so that there is almost 100% contact between the water line and the drain line. From the pictures, I would estimate 10% contact at most. Copper impregnated or not, it is still a plastic that binds the tubes together and plastics have a much lower heat transfer ability.

Darn, eh.....
I did want to use copper but it simply isn't readily available above 2" and the costs would be prohibitive.

Realised at the time the contact area wasn't great and tried to make up for it with the copper/resin mix.

So far I've not given the heat exchanger a fair chance, during a shower only 0.1L/m flows up it and it heats that to 20C.
Once I get it piped into the hot water inlet I'll have more results.

It's an experiment, when we get round to extending the house it will be either moved or removed depending on how well it works.

Have just re-run the numbers and for a purchased heat exchanger to pay back will take 34 years for resistance heated water and much longer with a heat pump.

Have you any experience with these things working or is it a case of a good idea that's just not viable?

Steve
Ormston is offline   Reply With Quote
Old 09-24-14, 06:24 AM   #40
Mikesolar
Master EcoRenovator
 
Mikesolar's Avatar
 
Join Date: Aug 2012
Location: Toronto
Posts: 958
Thanks: 40
Thanked 158 Times in 150 Posts
Default

Yes, I have installed a number of them. They were invented here in Canada so the the govt body CMHC NRC has lots of test data on them and has been promoting them since the early 90s.

3" or 4" drainage copper is quite available here. Not sure why i wouldn't be there. Your plumbing supplier must have it. I'm not liking the use of aluminum tube for the water lines as it is quite reactive and not generally used for potable water.

Mikesolar is offline   Reply With Quote
The Following User Says Thank You to Mikesolar For This Useful Post:
Ormston (09-24-14)
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 10:20 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Ad Management by RedTyger
Inactive Reminders By Icora Web Design