diff --git a/HotWaterManager.h b/HotWaterManager.h index 1b0af49..5afb79e 100644 --- a/HotWaterManager.h +++ b/HotWaterManager.h @@ -181,7 +181,7 @@ // Structure definitions struct rom_t { - uint16_t epromchk; uint8_t brightness; uint8_t disptimeout; uint16_t vreq; uint16_t vfloat; uint16_t voff; int16_t pause; bool fahrenheit; int16_t tmin; int16_t ttarget; + uint16_t epromchk; uint8_t brightness; uint8_t disptimeout; uint16_t vreq; uint16_t vfloat; uint16_t voff; int16_t pause; boolean fahrenheit; int16_t tmin; int16_t ttarget; int16_t tsanity; int16_t tmax; int16_t tsandays; int16_t tnosan; uint16_t calibration; int16_t pumpdelta; uint16_t pumpafterrun; uint16_t hwv_timer; bool vmul; uint8_t hwv_pwm; uint8_t pumpMode; uint8_t ledmode; bool lcdglow; uint8_t holdon; uint8_t nightbright; uint8_t nightsensor; uint8_t relaypwm; bool altfunc; }; diff --git a/HotWaterManager.ino b/HotWaterManager.ino index 1fd8e7c..5bf0b99 100644 --- a/HotWaterManager.ino +++ b/HotWaterManager.ino @@ -516,7 +516,7 @@ void loop() { menuedit=!menuedit; // Long press is either exit or entry of a setup function lcd.clear(); // Show the associated menu option - printMenu(menusel-100,menuedit); + printMenu(menusel-100,menuedit,rom.fahrenheit); if(!menuedit && romdirty) { // We are not in edit mode but made the rom "dirty"? if(freset) @@ -564,8 +564,8 @@ void loop() { lcd.clear(); // Are we editing a setup menu item? if(menuedit) { // Are we in edit mode? - editItem(menusel-100); // Edit the item - printMenu(menusel-100,menuedit); + editItem(menusel-100, rom.vmul); // Edit the item + printMenu(menusel-100,menuedit,rom.fahrenheit); } else { // Not in edit mode if(menusel>=99) { // Are we in the setup menu? nextMenuItem(); // Advance to the next menu item @@ -582,7 +582,7 @@ void loop() { } else { // No button was pressed if(menusel>=100 && menuedit && getPgmVal(&menu[menusel-100].code)==MENU_SHOW) { lcd.setCursor(0,0); - printMenu(menusel-100,menuedit); // This menu option has no timeout + printMenu(menusel-100,menuedit,rom.fahrenheit); // This menu option has no timeout } else { if(menusel && seconds()-menuseltimer>(MENUTIMEOUT)) { @@ -669,7 +669,7 @@ void processmodes() { lcd.print(F("Tank ")); } - printTemperature(readtemp(src),1); // Display the temperature + printTemperature(readtemp(src),1,rom.fahrenheit); // Display the temperature if(tempdata[src].failures) // If we failed to receive valid data from the sensor... lcd.write('?'); // ... indicate this with a question mark... else // ... othersiwse... @@ -898,8 +898,8 @@ void heaterState(boolean state) { // Take care of the relay PWM if it has been configured if(state && rom.relaypwm<100 && digitalRead(HEATER) && seconds()-lastChange>2) - analogWrite12V(HEATER,rom.relaypwm); - + analogWrite(HEATER,((uint16_t)rom.relaypwm*255)/100);// Set the PWM to the desired percentage. + // If we want to change state, do so only after at least some time has passed since the last change if((!state && seconds()-lastChange>rom.holdon) || (state && seconds()-lastChange>HOLD_OFF)) { if(state) // If we switch the heater on... @@ -907,11 +907,7 @@ void heaterState(boolean state) { if(digitalRead(HEATER)!=state) { // Need to change the heater state? lastChange=seconds(); delay(20); - if(state) - analogWrite12V(HEATER,100); // Set heater output to 100% - else - analogWrite12V(HEATER,0); // Set heater output to 0% -// digitalWrite(HEATER,state); // Switch the heater + digitalWrite(HEATER,state); // Switch the heater if(rom.hwv_timer && !hwv && state) // If we have a HWV and it is not on, and we switch on the heater... setHWV(true,HWVBLEED); // ... switch on the HWV to equalize the pressure } @@ -931,28 +927,11 @@ void setHWV(bool state, uint16_t hwvtmr) { } hwv=state; // Register the new state if(state) // We want to switch it on - analogWrite12V(HWV,rom.hwv_pwm); // Use PWM for this + analogWrite(HWV,((uint16_t)rom.hwv_pwm*255)/100); // Use PWM for this else // Otherwise digitalWrite(HWV,LOW); // Switch it off } - -void analogWrite12V(uint8_t port,uint8_t percent) { - if(percent>=100) { - digitalWrite(port,HIGH); // Set port to high so we can read back port state - if(rom.vmul) // If 24V - analogWrite(port,127); // Set an initial value of 50%. - } else { - uint16_t val = ((uint16_t)percent*256)/100; - if(rom.vmul) // In case of 24V - val/=2; // Divide PWM by 2 - analogWrite(port,val); - } - if(!percent) // If we want to switch it completely off - digitalWrite(port,LOW); // Do a digitalWrite -} - - // This routine will keep track whether there is a legionella chance boolean sanitycheck() { static boolean sancounting=false; @@ -1026,7 +1005,7 @@ void fptr_showTemp() { lcd.setCursor(9,1); tempdata[0].mmaTemp.samples=0; tempdata[0].mmaTemp.sum=0; - printTemperature(readtemp(0),1); + printTemperature(readtemp(0),1,rom.fahrenheit); } void fptr_pumpsource() { @@ -1048,9 +1027,9 @@ void fptr_pumpsource() { void fptr_showtemps() { lcd.setCursor(5,1); if(sensors.useDS && sensors.temphwa[1][0]) { - printTemperature(readtemp(0),0); + printTemperature(readtemp(0),0,rom.fahrenheit); lcd.print(" "); - printTemperature(readtemp(1),0); + printTemperature(readtemp(1),0,rom.fahrenheit); } else { lcd.print("N/A"); swapTsens=false; @@ -1123,7 +1102,7 @@ void fptr_serialnr() { #endif -void printMenu(uint8_t item, boolean edit) { +void printMenu(uint8_t item, boolean edit, boolean fahrenheit) { uint8_t code = getPgmVal(&menu[item].code); uint16_t value = getRomValue(code,item); @@ -1147,7 +1126,7 @@ void printMenu(uint8_t item, boolean edit) { if(code & (MENU_8 | MENU_16)) { if(code & MENU_FLOAT) if(code & MENU_TEMP) - printTemperature(value,0); + printTemperature(value,0,fahrenheit); else lcd.print((float) ((float)value/pow(10.0,(float)(code & MENU_FLOAT))), code & MENU_FLOAT); else @@ -1188,7 +1167,7 @@ uint16_t getRomValue(uint8_t code, uint8_t item) { } -void editItem(uint8_t item) { +void editItem(uint8_t item, bool vmul) { uint8_t code = getPgmVal(&menu[item].code); if(code==MENU_SHOW) @@ -1202,7 +1181,7 @@ void editItem(uint8_t item) { romdirty=true; // Remember to save changes in EEPROM - if(code & MENU_VOLTS && rom.vmul) { // If some voltage menu option is selected and we operate on a 24V system... + if(code & MENU_VOLTS && vmul) { // If some voltage menu option is selected and we operate on a 24V system... step*=2; max*=2; min*=2; // Multiply all voltage steps, minimums and maximums by two. } @@ -1234,7 +1213,7 @@ void nextMenuItem() { menusel=100; // Reached the last one, rewind to the first one fn=getPgmVal(&menu[menusel-100].sfx); } while((rom.altfunc && ( fn & NOALT)) || (!rom.altfunc && (fn & FNALT)) ); - printMenu(menusel-100,menuedit); + printMenu(menusel-100,menuedit,rom.fahrenheit); } @@ -1382,8 +1361,8 @@ const char* pgmLcdPrint(const char *txt) { } -void printTemperature(int16_t value,uint8_t precision) { - if(rom.fahrenheit) { +void printTemperature(int16_t value,uint8_t precision, boolean fahrenheit) { + if(fahrenheit) { lcd.print(((float)value*0.18)+32.0,precision); lcd.print("\xDF""F"); if(precision && (float)value*0.18+32.0<100) diff --git a/Installation_Basic.kicad_sch b/Installation_Basic.kicad_sch deleted file mode 100644 index 5a35a1f..0000000 --- a/Installation_Basic.kicad_sch +++ /dev/null @@ -1,1710 +0,0 @@ -(kicad_sch - (version 20231120) - (generator "eeschema") - (generator_version "8.0") - (uuid "592e3240-d716-41b6-a898-92e809a57c6b") - (paper "A4") - (lib_symbols - (symbol "Connector:Conn_Plug_2P" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "P" - (at -7.112 8.636 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "Conn_Plug_2P" - (at 0.254 -8.89 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at -4.572 -0.254 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "2 Pins non-protected generic plug " - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "2P mains plug wall" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "CEE*7/2* CEE*7/16* CEE*7/17* NEMA*1?15* SN?441011*Type?11*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Conn_Plug_2P_0_1" - (circle - (center 0 0) - (radius 5.08) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "Conn_Plug_2P_1_1" - (rectangle - (start -7.62 7.62) - (end 7.62 -7.62) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - (circle - (center -3.175 0) - (radius 0.635) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (circle - (center 3.175 0) - (radius 0.635) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (pin power_in line - (at 10.16 5.08 180) - (length 2.54) - (name "L" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_out line - (at 10.16 -5.08 180) - (length 2.54) - (name "N" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Device:Battery" - (pin_numbers hide) - (pin_names - (offset 0) hide) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "BT" - (at 2.54 2.54 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "Battery" - (at 2.54 0 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "" - (at 0 1.524 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 1.524 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Multiple-cell battery" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "batt voltage-source cell" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Battery_0_1" - (rectangle - (start -2.286 -1.27) - (end 2.286 -1.524) - (stroke - (width 0) - (type default) - ) - (fill - (type outline) - ) - ) - (rectangle - (start -2.286 1.778) - (end 2.286 1.524) - (stroke - (width 0) - (type default) - ) - (fill - (type outline) - ) - ) - (rectangle - (start -1.524 -2.032) - (end 1.524 -2.54) - (stroke - (width 0) - (type default) - ) - (fill - (type outline) - ) - ) - (rectangle - (start -1.524 1.016) - (end 1.524 0.508) - (stroke - (width 0) - (type default) - ) - (fill - (type outline) - ) - ) - (polyline - (pts - (xy 0 -1.016) (xy 0 -0.762) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 -0.508) (xy 0 -0.254) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 0) (xy 0 0.254) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 1.778) (xy 0 2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0.762 3.048) (xy 1.778 3.048) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 1.27 3.556) (xy 1.27 2.54) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "Battery_1_1" - (pin passive line - (at 0 5.08 270) - (length 2.54) - (name "+" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 -5.08 90) - (length 2.54) - (name "-" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Device:Fuse" - (pin_numbers hide) - (pin_names - (offset 0) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "F" - (at 2.032 0 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "Fuse" - (at -1.905 0 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at -1.778 0 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Fuse" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "fuse" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "*Fuse*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Fuse_0_1" - (rectangle - (start -0.762 -2.54) - (end 0.762 2.54) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 2.54) (xy 0 -2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "Fuse_1_1" - (pin passive line - (at 0 3.81 270) - (length 1.27) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 -3.81 90) - (length 1.27) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Sensor_Temperature:DS18B20" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "U" - (at -3.81 6.35 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "DS18B20" - (at 6.35 6.35 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Package_TO_SOT_THT:TO-92_Inline" - (at -25.4 -6.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf" - (at -3.81 6.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Programmable Resolution 1-Wire Digital Thermometer TO-92" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "OneWire 1Wire Dallas Maxim" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "TO*92*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "DS18B20_0_1" - (rectangle - (start -5.08 5.08) - (end 5.08 -5.08) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - (circle - (center -3.302 -2.54) - (radius 1.27) - (stroke - (width 0.254) - (type default) - ) - (fill - (type outline) - ) - ) - (rectangle - (start -2.667 -1.905) - (end -3.937 0) - (stroke - (width 0.254) - (type default) - ) - (fill - (type outline) - ) - ) - (arc - (start -2.667 3.175) - (mid -3.302 3.8073) - (end -3.937 3.175) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -3.937 0.635) (xy -3.302 0.635) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -3.937 1.27) (xy -3.302 1.27) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -3.937 1.905) (xy -3.302 1.905) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -3.937 2.54) (xy -3.302 2.54) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -3.937 3.175) (xy -3.937 0) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -3.937 3.175) (xy -3.302 3.175) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -2.667 3.175) (xy -2.667 0) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "DS18B20_1_1" - (pin power_in line - (at 0 -7.62 90) - (length 2.54) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at 7.62 0 180) - (length 2.54) - (name "DQ" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 0 7.62 270) - (length 2.54) - (name "V_{DD}" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - ) - (wire - (pts - (xy 142.24 92.71) (xy 81.28 92.71) - ) - (stroke - (width 0.762) - (type default) - (color 194 0 0 1) - ) - (uuid "002e419c-5997-4f0e-a220-ac4fae14d5e9") - ) - (wire - (pts - (xy 158.75 92.71) (xy 158.75 124.46) - ) - (stroke - (width 0.762) - (type default) - (color 194 0 0 1) - ) - (uuid "01f6aa3c-7a69-4e72-9b0b-6ffd831974dd") - ) - (wire - (pts - (xy 92.71 153.67) (xy 92.71 156.21) - ) - (stroke - (width 0.762) - (type default) - (color 167 125 0 1) - ) - (uuid "020c15ad-d040-43ef-894c-b4ea7c447117") - ) - (wire - (pts - (xy 74.93 104.14) (xy 74.93 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "02761911-00f2-4b8f-ad23-8f26d17f75b1") - ) - (wire - (pts - (xy 55.88 52.07) (xy 55.88 101.6) - ) - (stroke - (width 0.762) - (type default) - (color 0 0 0 1) - ) - (uuid "092c9e78-efd8-41a4-96b6-eca86b2b0231") - ) - (wire - (pts - (xy 109.22 161.29) (xy 86.36 161.29) - ) - (stroke - (width 0.762) - (type default) - (color 167 125 0 1) - ) - (uuid "0b13c74d-a33a-4a4e-b5d2-3c3764bb0d01") - ) - (wire - (pts - (xy 43.18 35.56) (xy 43.18 101.6) - ) - (stroke - (width 0.762) - (type default) - (color 194 0 0 1) - ) - (uuid "1972816c-846d-4703-85eb-57c5bcdb3ca7") - ) - (polyline - (pts - (xy 69.85 58.42) (xy 83.82 58.42) - ) - (stroke - (width 0) - (type default) - ) - (uuid "22ecf3f0-5dc4-4e0d-a026-2ccceae191b6") - ) - (polyline - (pts - (xy 83.82 57.15) (xy 69.85 57.15) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2e183c90-66fc-4cda-8bed-27eb5844af83") - ) - (wire - (pts - (xy 86.36 139.7) (xy 86.36 151.13) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "2fcee9f1-4a79-4c00-ab56-f31efb30e73a") - ) - (wire - (pts - (xy 88.9 55.88) (xy 152.4 55.88) - ) - (stroke - (width 0.762) - (type default) - (color 64 48 0 1) - ) - (uuid "3e8986e7-899c-4970-892d-8e42326202ea") - ) - (wire - (pts - (xy 49.53 104.14) (xy 49.53 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "43ec71a8-d42f-4c6c-b758-03c5514ea7cd") - ) - (wire - (pts - (xy 109.22 59.69) (xy 109.22 161.29) - ) - (stroke - (width 0.762) - (type default) - (color 167 125 0 1) - ) - (uuid "4eb28901-996c-4c67-b4d7-053f3f09bc31") - ) - (wire - (pts - (xy 49.53 52.07) (xy 49.53 101.6) - ) - (stroke - (width 0.762) - (type default) - (color 194 194 0 1) - ) - (uuid "520161dd-4842-490d-ab66-afa9667eab08") - ) - (wire - (pts - (xy 88.9 59.69) (xy 104.14 59.69) - ) - (stroke - (width 0.762) - (type default) - (color 64 48 0 1) - ) - (uuid "53bd85e2-7758-4c47-948f-ceec8b79e351") - ) - (wire - (pts - (xy 54.61 35.56) (xy 43.18 35.56) - ) - (stroke - (width 0.762) - (type default) - (color 194 0 0 1) - ) - (uuid "575d98ee-8df2-4667-810e-d419202d2089") - ) - (wire - (pts - (xy 46.99 43.18) (xy 46.99 52.07) - ) - (stroke - (width 0.762) - (type default) - (color 194 194 0 1) - ) - (uuid "59370c46-fbcf-4308-bb08-4738d7796ec6") - ) - (wire - (pts - (xy 86.36 153.67) (xy 86.36 161.29) - ) - (stroke - (width 0.762) - (type default) - (color 167 125 0 1) - ) - (uuid "5e93dae6-b5a7-4879-804b-4aac424c7c75") - ) - (wire - (pts - (xy 68.58 104.14) (xy 68.58 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "6821ac1b-6e42-4c9f-a514-581678d777c1") - ) - (wire - (pts - (xy 133.35 125.73) (xy 133.35 130.81) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "6b5c6f1b-47aa-4359-bf11-02ca6391756f") - ) - (wire - (pts - (xy 104.14 156.21) (xy 104.14 59.69) - ) - (stroke - (width 0.762) - (type default) - (color 167 125 0 1) - ) - (uuid "77d02756-0129-4ebd-a89a-cd5d57a07ed5") - ) - (polyline - (pts - (xy 69.85 59.69) (xy 69.85 58.42) - ) - (stroke - (width 0) - (type default) - ) - (uuid "78ed8db2-b9b1-4363-8948-4fd7982d94a1") - ) - (wire - (pts - (xy 158.75 125.73) (xy 158.75 130.81) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "7ad89941-0e3f-429d-b8b2-b5ebb893e98e") - ) - (wire - (pts - (xy 62.23 104.14) (xy 62.23 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "80362f80-d33d-46c6-8452-7276f797ecd9") - ) - (polyline - (pts - (xy 69.85 57.15) (xy 69.85 55.88) - ) - (stroke - (width 0) - (type default) - ) - (uuid "8112458a-b431-4fa2-a013-241dc34ea78c") - ) - (wire - (pts - (xy 92.71 139.7) (xy 92.71 151.13) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "84f3b682-9135-4fea-8591-8977a374fdae") - ) - (wire - (pts - (xy 43.18 104.14) (xy 43.18 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "9314b755-e9f7-413e-a404-fb4a6fd97121") - ) - (wire - (pts - (xy 133.35 97.79) (xy 87.63 97.79) - ) - (stroke - (width 0.762) - (type default) - (color 0 0 0 1) - ) - (uuid "9ba73c45-0744-486d-8604-1406d37d5b71") - ) - (wire - (pts - (xy 55.88 104.14) (xy 55.88 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "9d832ea3-7e6d-4173-9553-d1c6ff8cef49") - ) - (wire - (pts - (xy 87.63 104.14) (xy 87.63 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "b14cd8a2-49b8-4056-9e11-39d07612e051") - ) - (polyline - (pts - (xy 85.09 59.69) (xy 69.85 59.69) - ) - (stroke - (width 0) - (type default) - ) - (uuid "b60613df-9bb9-40cd-b913-5853c46d12d8") - ) - (wire - (pts - (xy 158.75 92.71) (xy 149.86 92.71) - ) - (stroke - (width 0.762) - (type default) - (color 194 0 0 1) - ) - (uuid "c6e7b70b-2405-4e1f-b9fe-78969a705299") - ) - (wire - (pts - (xy 92.71 156.21) (xy 104.14 156.21) - ) - (stroke - (width 0.762) - (type default) - (color 167 125 0 1) - ) - (uuid "dbf5bb51-bbae-40a5-92d7-6c8a269069c7") - ) - (wire - (pts - (xy 81.28 92.71) (xy 81.28 101.6) - ) - (stroke - (width 0.762) - (type default) - (color 194 0 0 1) - ) - (uuid "dc674e60-1a13-4613-9266-80ae63ec0872") - ) - (wire - (pts - (xy 46.99 52.07) (xy 49.53 52.07) - ) - (stroke - (width 0.762) - (type default) - (color 194 194 0 1) - ) - (uuid "e04313ae-60a3-48a1-93ed-71ee00c73a17") - ) - (polyline - (pts - (xy 69.85 55.88) (xy 85.09 55.88) - ) - (stroke - (width 0) - (type default) - ) - (uuid "e5dcc08a-bf26-4748-9490-914532e80fd3") - ) - (wire - (pts - (xy 87.63 97.79) (xy 87.63 101.6) - ) - (stroke - (width 0.762) - (type default) - (color 0 0 0 1) - ) - (uuid "eaeb7532-d812-4c9b-9402-89078472e2f0") - ) - (wire - (pts - (xy 133.35 97.79) (xy 133.35 124.46) - ) - (stroke - (width 0.762) - (type default) - (color 0 0 0 1) - ) - (uuid "f06c3290-dc6d-4fc3-b0bc-6bd352490e6c") - ) - (wire - (pts - (xy 109.22 59.69) (xy 152.4 59.69) - ) - (stroke - (width 0.762) - (type default) - (color 64 48 0 1) - ) - (uuid "faaae127-cfd0-400d-ab44-d8ab12f4a718") - ) - (wire - (pts - (xy 81.28 104.14) (xy 81.28 115.57) - ) - (stroke - (width 0.762) - (type default) - ) - (uuid "fcca36dd-4f2e-495b-8aa4-57f078658d62") - ) - (polyline - (pts - (xy 83.82 58.42) (xy 83.82 57.15) - ) - (stroke - (width 0) - (type default) - ) - (uuid "fdffff9b-a1d2-47d8-84bd-b10eaf4c016f") - ) - (rectangle - (start 36.83 110.49) - (end 99.06 144.78) - (stroke - (width 0.508) - (type default) - ) - (fill - (type none) - ) - (uuid 0f6d9cce-6633-4eae-87cd-9249d7418d6f) - ) - (rectangle - (start 64.77 27.94) - (end 86.36 63.5) - (stroke - (width 0.508) - (type default) - ) - (fill - (type none) - ) - (uuid e32188d5-6965-4769-bc07-c00a929ccb19) - ) - (rectangle - (start 129.54 128.27) - (end 162.56 144.78) - (stroke - (width 0.508) - (type default) - ) - (fill - (type none) - ) - (uuid fb39197b-65f7-46fe-a0f1-21f283b63cd0) - ) - (text "D" - (exclude_from_sim no) - (at 74.93 118.11 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "1064d342-b27c-4848-b2aa-a07f73d32b04") - ) - (text "HotWaterManager" - (exclude_from_sim no) - (at 56.388 137.414 0) - (effects - (font - (size 2.032 2.032) - (italic yes) - ) - ) - (uuid "333daaab-3dab-4ce2-8adb-02e2072e0557") - ) - (text "Relay" - (exclude_from_sim no) - (at 92.71 133.858 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "3457a8b3-5fa2-4764-88f0-4510d36f15d0") - ) - (text "Temperature\nSensor" - (exclude_from_sim no) - (at 48.514 31.242 0) - (effects - (font - (size 2.032 2.032) - (italic yes) - ) - ) - (uuid "3589d449-1eab-4916-9577-d86b5ac0545b") - ) - (text "Relay" - (exclude_from_sim no) - (at 86.614 133.858 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "55d8ec31-a2c3-48b2-acc4-d9ecfddf8098") - ) - (text "Control" - (exclude_from_sim no) - (at 68.58 123.444 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "5fec24b4-896e-4a41-97a7-94fb1e2337a9") - ) - (text "+" - (exclude_from_sim no) - (at 158.75 133.858 0) - (effects - (font - (size 3.81 3.81) - (thickness 0.762) - (bold yes) - ) - ) - (uuid "6413bac1-db7a-4629-83b7-76ebc8d108b8") - ) - (text "Pwr+" - (exclude_from_sim no) - (at 81.026 121.92 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "6ee76a9d-77b2-445a-959b-4077d1d8b6ac") - ) - (text "Aux" - (exclude_from_sim no) - (at 62.484 120.142 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "6fa1b835-b6cf-4f65-8a18-fa2f073aeb75") - ) - (text "-" - (exclude_from_sim no) - (at 133.096 134.112 0) - (effects - (font - (size 3.81 3.81) - (bold yes) - ) - ) - (uuid "863ccb35-dee6-4405-a802-6b2a13292b1e") - ) - (text "Water\nHeater" - (exclude_from_sim no) - (at 75.184 34.29 0) - (effects - (font - (size 2.032 2.032) - (italic yes) - ) - ) - (uuid "9da388f7-6876-4794-81be-2b07d35a4c80") - ) - (text "Tsens-" - (exclude_from_sim no) - (at 55.88 123.444 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "a305e4f8-347d-4cb8-bdd5-e2ad721f0d33") - ) - (text "Wall\nSocket" - (exclude_from_sim no) - (at 162.814 43.688 0) - (effects - (font - (size 2.032 2.032) - (italic yes) - ) - ) - (uuid "d8000346-e4ff-4dbe-90fe-873f535fb69f") - ) - (text "Tsens+" - (exclude_from_sim no) - (at 43.18 123.444 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "db12d8f5-f1bb-4583-89a7-0cbf3ea3282b") - ) - (text "TsensDat" - (exclude_from_sim no) - (at 49.53 124.968 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "e1b51c99-004c-4eb8-8895-bde7614821cd") - ) - (text "Pwr-" - (exclude_from_sim no) - (at 87.122 121.92 90) - (effects - (font - (size 2.54 2.54) - (thickness 0.508) - (bold yes) - ) - ) - (uuid "fcbdcb24-b81c-4aaa-bed1-02c7d50ca92e") - ) - (symbol - (lib_id "Connector:Conn_Plug_2P") - (at 163.83 58.42 180) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "647da9b1-e341-40b8-b32d-d7f0c64b10da") - (property "Reference" "P1" - (at 172.72 57.1499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - (hide yes) - ) - ) - (property "Value" "Conn_Plug_2P" - (at 172.72 59.6899 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - (hide yes) - ) - ) - (property "Footprint" "" - (at 168.402 58.166 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 163.83 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "2 Pins non-protected generic plug" - (at 163.83 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "2" - (uuid "76ff1627-ca5d-4348-8543-d66389cd3f8b") - ) - (pin "1" - (uuid "395e6d2a-fdcc-45a3-9c1a-dfc1f3bf9290") - ) - (instances - (project "" - (path "/592e3240-d716-41b6-a898-92e809a57c6b" - (reference "P1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Temperature:DS18B20") - (at 55.88 43.18 0) - (mirror y) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "a74351c6-2f6c-4937-a787-54b6e5bd5123") - (property "Reference" "U1" - (at 62.23 41.9099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - (hide yes) - ) - ) - (property "Value" "DS18B20" - (at 57.15 34.798 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - (hide yes) - ) - ) - (property "Footprint" "Package_TO_SOT_THT:TO-92_Inline" - (at 81.28 49.53 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf" - (at 59.69 36.83 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Programmable Resolution 1-Wire Digital Thermometer TO-92" - (at 55.88 43.18 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "318a6d46-0902-4484-82a3-732f09265c3a") - ) - (pin "3" - (uuid "1e5b3756-52e6-4c96-910e-6d5a87259081") - ) - (pin "2" - (uuid "53f7edeb-43ac-477e-972b-49155242a87e") - ) - (instances - (project "Installation" - (path "/592e3240-d716-41b6-a898-92e809a57c6b" - (reference "U1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:Fuse") - (at 146.05 92.71 270) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "aff6dc4e-9e54-41bb-8329-a4dbb0afc7d7") - (property "Reference" "F2" - (at 146.05 99.06 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "Fuse" - (at 146.05 90.17 90) - (effects - (font - (size 2.032 2.032) - (bold yes) - (italic yes) - ) - ) - ) - (property "Footprint" "" - (at 146.05 90.932 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 146.05 92.71 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Fuse" - (at 146.05 92.71 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3f50884f-90b1-4bd8-a600-21fc87b500ca") - ) - (pin "2" - (uuid "ce99cd6c-6d18-4374-be5d-eb48fd8ebf18") - ) - (instances - (project "Installation" - (path "/592e3240-d716-41b6-a898-92e809a57c6b" - (reference "F2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:Battery") - (at 146.05 137.16 270) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "fa424fb9-2e89-44d3-9e34-e4f905e64253") - (property "Reference" "BT1" - (at 146.6215 129.54 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "Battery" - (at 145.796 132.334 90) - (effects - (font - (size 2.032 2.032) - (bold yes) - (italic yes) - ) - ) - ) - (property "Footprint" "" - (at 147.574 137.16 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 147.574 137.16 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Multiple-cell battery" - (at 146.05 137.16 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "2" - (uuid "38da8d47-c100-4cf3-a953-c6dc24a3615a") - ) - (pin "1" - (uuid "8d658495-8e41-421f-9901-9a73465e6223") - ) - (instances - (project "Installation" - (path "/592e3240-d716-41b6-a898-92e809a57c6b" - (reference "BT1") - (unit 1) - ) - ) - ) - ) - (sheet_instances - (path "/" - (page "1") - ) - ) -)