<% '============= Create and Open Database Connection ============= 'OPEN THE DATABASE If blnConnectToDB Then dim blnDBconnectionDown blnDBconnectionDown = false Err.Clear on error resume next set dbConn = Server.CreateObject("ADODB.Connection") 'Open the Connnection 'dbConn.Open Application("dbConn_ConnectionString") dbConn.Open "DSN=PostgreSQL30", "eere_news", "33reNews" ''New Error trapping. KC added 2/23/2012 If Err.Number <> 0 Then ''Response.Write (Err.Description& "

") dbConn.Close Set dbConn = nothing blnDBconnectionDown = true End If On Error GoTo 0 ''error trapping not working here KC removed 2/23/2012 ''tmpDBErrorNativeError = 0 '' For Each dbErr In dbConn.Errors '' strErrMsg = strErrMsg & _ '' "Source: " & dbErr.Source & vbCrLF & _ '' "Description: " & dbErr.Description & vbCrLF & _ '' "SQL State: " & dbErr.SQLState & vbCrLF & _ '' "NativeError: " & dbErr.NativeError & vbCrLF & _ '' "Number: " & dbErr.Number & vbCrLF & vbCrLF '' tmpDBErrorNativeError = dbErr.NativeError '' Next '' If (dbConn.Errors.Count > 0) AND (tmpDBErrorNativeError <> 5703) Then '' dbConn.Close '' Set dbConn = nothing '' blnDBconnectionDown = true '' Response.write(strErrMsg) '' Response.end '' End If dim arrErrors() Redim arrErrors(2,0) End If '============================================================== Public Function GetRS2(myCommand) On Error GoTo 0 'objConn: local connection object 'objRS: local recordset object 'objComm: command object passed in to the function Dim objConn, objRS, blnErrorLogged, objComm 'Create the command object Set objComm = Server.CreateObject("ADODB.Command") Set objComm = myCommand 'Create the connection object Set objConn = Server.CreateObject("ADODB.Connection") 'Open the connection object objConn.Open "DSN=PostgreSQL30", "eere_news", "33reNews" 'Set the active connection objComm.ActiveConnection = objConn 'Create the recordset object Set objRS = Server.CreateObject("ADODB.Recordset") 'Set the cursor location for disconnected recordsets 'objRS.CursorLocation = adUseClient 'Turn on error handling for just a second ' On Error Resume Next 'Open the recordset 'objRS.Open SQL, objConn, adOpenStatic, adLockOptimistic Set objRS = objComm.Execute 'Response.Write "State = " & objRS.State & "
" 'objRS.MoveLast 'objRS.MoveFirst 'Response.Write "Count = " & objRS.RecordCount & "
" 'Response.End 'Check for an error ' If Err.Number <> 0 Then ' Response.Write "Database Error Occured

" ' Response.Write "Error #" & Err.Number & "
" ' Response.Write Err.Description & "

" ' Response.Write "SQL:
" ' Response.Write SQL ' Response.End ' End If 'Turn off error handling ' On Error GoTo 0 'Disconnect the recordset 'Set objComm.ActiveConnection = Nothing 'Close the connection 'objConn.Close 'Set the connection to Nothing 'Set objConn = Nothing 'Set the Command to Nothing 'Set objComm = Nothing 'Return the recordset Set GetRS2 = objRS On Error Resume Next End Function '=============================================================== Function GetRS(sSQL) 'Declarations dim rs 'Create Recordset Object set rs = Server.CreateObject("ADODB.Recordset") If blnConnectToDB Then 'Open Recordset based on SQL rs.Open sSQL, dbConn, 1, 3, 1 End If 'Return Recordset set GetRs = rs End Function '=============================================================== Function ExecSQL(sSQL) 'Open the Command Object dim lRecordsAffected dbConn.Execute sSQL, lRecordsAffected 'Return the Records Affected ExecSQL = lRecordsAffected End Function '======================================================================== Function sendEmail(strFrom,strTo,strSubject,strMessage) Dim sch ' Schema sch = "http://schemas.microsoft.com/cdo/configuration/" Set cdoConfig = CreateObject("CDO.Configuration") With cdoConfig.Fields .Item(sch & "sendusing") = 2 .Item(sch & "smtpserver") = "mxrelay.doe.gov" .update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = cdoConfig .From = strFrom .To = strTo .Subject = strSubject .TextBody = strMessage .Send End With Set cdoMessage = Nothing Set cdoConfig = Nothing End Function Function removeBadChars(tmpString) tmpString = Replace(tmpString , "<", "") tmpString = Replace(tmpString , ">", "") tmpString = Replace(tmpString , "'", "") tmpString = Replace(tmpString , """", "") tmpString = Replace(tmpString , ";", "") tmpString = Replace(tmpString , "(", "") tmpString = Replace(tmpString , ")", "") removeBadChars = tmpString End Function %> <% 'If there is a mobile version of this site, check the user_agent, and forward to 'the mobile version of the site (unless cookie or querystring var is set) if "true" = "true" then tmpSeeFullPage = Mid(Request.Querystring("m"),1,1) if ((isMobile) and (tmpSeeFullPage <> "1")) then tmpMobileURL = Request.servervariables("HTTP_URL") tmpMobileFileName = mid(tmpMobileURL, InStrRev(tmpMobileURL, "/")+1) tmpMobileURL = Left(tmpMobileURL, InStrRev(tmpMobileURL, "/")) tmpMobileURL = tmpMobileURL & "m/" & tmpMobileFileName Response.Clear Response.Redirect(tmpMobileURL) end if end if %>

<% ''This code is strictly when a user clicks on a left nav and needs to be forwarded to another site/program/office if ("" <> "") then Response.Clear Response.Redirect ("") end if %>

Energy Cost Calculator for Electric and Gas Water Heaters


Vary equipment size, energy cost, hours of operation, and /or efficiency level.

INPUT SECTION
Input the following data (if any parameter is missing, calculator will set to default value). Defaults
Type of Water Heater    Electric
Average Daily Usage (gallons per day)*    gallons 64*
Energy Factor†    0.92 (electric)
0.61 (gas)
Energy Cost  $ /  $0.06 per kWh
$.60 per therm
Quantity of Water Heaters to be Purchased    unit(s) 1 unit
* See assumptions for various daily water use totals.
† The comparison assumes a storage tank water heater as the input type. To allow demand water heaters as the comparison type, users can specify an input EF of up to 0.85; however, 0.66 is currently the best available EF for storage water heaters.

OUTPUT SECTION
Performance per Water Heater Your
Choice
Base
Model
FEMP
Recommended
Level
Best
Available
New Energy Factor             
Annual Energy Use             
Annual Energy Costs $<> $ $ $
Lifetime Energy Costs $ $ $ $
Lifetime Energy Cost Savings $ $ $ $
Lifetime Energy Cost Savings for Water Heater(s) $ $ $ $

Your selection of a water heater using gallon(s) per day will have a $ energy cost savings per water heater over an estimated 13 year life expectancy compared to the model.

Assumptions

  • "Base model" has an efficiency that just meets the national minimum standard for gas and electric water heaters.
  • Lifetime energy cost is the sum of the discounted value of the annual energy costs based on assumed water heater life of 13 years.
  • Future electricity price trends and a discount rate of 3.2% are based on Federal guidelines.
  • $0.09 per kWh for electricity is the Federal average price in the U.S.
  • $0.93 per therm for gas is the Federal average price in the U.S.
  • Hot Water usage estimates:
    • Average shower (8 minutes) = 10 gallons of hot water
    • Average clothes washer (one load) = 7 gallons of hot water
    • Average dishwasher (one load) = 6 gallons of hot water
    • Average kitchen faucet flow = 2 gpm
    • Average bathroom faucet flow = 0.5 gpm
    • Average daily usage = 64 gallons of hot water

Disclaimer
This cost calculator is a screening tool that estimates a product's lifetime energy cost savings at various efficiency levels. Maintenance and installation costs do not vary significantly among the same product having different efficiencies; so, these costs are not included in this calculator tool. For a detailed life-cycle cost analysis, FEMP has developed a tool called Building Life-Cycle Cost (BLCC). This downloadable tool allows the user to vary interest rates, installation costs, maintenance costs, salvage values, and life expectancy for a product or an entire energy project.