@@ -46,7 +46,7 @@ SSD1306AsciiAvrI2c oled;
4646#define ROOF_START_TEMPERATURE 22
4747#define WATER_STOP_TEMPERATURE 28
4848
49- float running = 0 ;
49+ float startTempWater = 0 ;
5050
5151// ------------------------------------------------------------------------------
5252void setup () {
@@ -171,6 +171,9 @@ boolean decidePump(float roofTemp, float waterTemp) {
171171
172172void loop () {
173173 int loopsWithoutProbe = 0 ; // count the loops to set a probe every ~10 mins
174+ int numLoops = 0 ;
175+ int addedTemp = 0 ;
176+ float startTempWater = 0 ;
174177 while (true ) {
175178 // toggle led to show activity
176179 digitalWrite (onboardLed, !digitalRead (onboardLed));
@@ -182,23 +185,29 @@ void loop() {
182185 Serial.print (" water temperature is: " );
183186 float tempWater = getTemperature (waterThermometer);
184187 Serial.println (tempWater);
188+ // Save the (start) water temperature
189+ if (numLoops == 1 ) {
190+ startTempWater = tempWater;
191+ }
185192
186193 oled.print (" d:" );
187194 oled.print (tempRoof);
188195 oled.print (" w:" );
189196 oled.print (tempWater);
190- oled.print (" p :" );
191- oled.println (running );
197+ oled.print (" a :" );
198+ oled.println (addedTemp );
192199
193200 setRelay (tempRoof, tempWater);
194201 boolean ledOn = !digitalRead (pumpRelay);
195202 digitalWrite (pumpActiveLed, ledOn);
196203 delay (30000 );
197204 if (ledOn) {
198- running += 0.5 ;
205+ addedTemp = tempWater - startTempWater;
206+ numLoops += 1 ;
199207 }
200208 else {
201- running = -1 ;
209+ addedTemp = 0 ;
210+ numLoops = 0 ;
202211 loopsWithoutProbe++;
203212 if ( loopsWithoutProbe == 20 ) {
204213 doProbe = true ;
0 commit comments