CINXE.COM
Heat Pump Assisted Water Heater Technology Could Make Big Lift | Utility Dive
<!DOCTYPE html> <html class="no-js" dir="ltr" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="robots" content="nofollow"> <title>Heat Pump Assisted Water Heater Technology Could Make Big Lift | Utility Dive</title> <meta name="description" content="Utility industry news and analysis for energy professionals."/> <meta property="fb:pages" content="511735792306612"> <script data-cfasync="false"> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('consent','default',{ 'ad_storage':'denied', 'analytics_storage':'denied', 'ad_user_data':'denied', 'ad_personalization':'denied', 'personalization_storage':'denied', 'functionality_storage':'granted', 'security_storage':'granted', 'wait_for_update': 500 }); gtag("set", "ads_data_redaction", true); </script> <script data-cfasync="false" src="https://cmp.osano.com/AzqdtLT8Mqkut2TZ/bdeb2f70-056f-4937-961a-e9db412e4c7a/osano.js"></script> <style> .osano-cm-widget{display: none;} </style> <script data-cfasync="false"> window.Osano.cm.addEventListener("osano-cm-script-blocked", function (item) { console.log("Script blocked: " + item); }); window.Osano.cm.addEventListener("osano-cm-cookie-blocked", function (item) { console.log("Cookie blocked: " + item); }); </script> <script> window.dive_location = "NonEU"; window.dive_limit_data_processing = false; </script> <!-- ====== FAVICONS ======= --> <link rel="icon" type="image/x-icon" sizes="any" href="/favicon.ico?v=2" /> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=2"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=2"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=2"> <link rel="manifest" href="/site.webmanifest?v=2"> <link rel="mask-icon" href="/safari-pinned-tab.svg?v=2" color="#5bbad5"> <meta name="msapplication-TileImage" content="/mstile-150x150.png?v=2"> <meta name="msapplication-TileColor" content="#603cba"> <meta name="theme-color" content="#ffffff"> <link rel="alternate" type="application/rss+xml" title="Utility Dive - Latest News Feed" href="https://www.utilitydive.com/feeds/news/"/> <meta property="og:site_name" content="Utility Dive" /> <meta property="og:title" content="Heat Pump Assisted Water Heater Technology Could Make Big Lift | Utility Dive"/> <meta property="og:type" content="website" /> <meta property="og:url" content="https://www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/" /> <meta property="og:image" content="http://res.cloudinary.com/dmgi9movl/image/upload/v1731015398/press_release/assets/header_images/calnext-logo_momeih.jpg" /> <link rel="stylesheet" href="/static/css/dive_app.css?330116211124"> <script> // Initialize dataLayer empty array for GTM events window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'site': 'Utility Dive', }); // wrapper function to push GTM events to dataLayer pushGTMEvent = (eventObject) => { // if window.datalayer is not defined, then set to an empty array window.dataLayer.push(eventObject); }; </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-55G8WRR');</script> <!-- End Google Tag Manager --> <script> let eventParams = {}; const gtmEventObject = { event: 'page.content', 'page.content': { v:11, // seer version ...eventParams } }; window.pushGTMEvent(gtmEventObject); </script> <script type="module" src="/static/js/dist/lyticsHelper.bundle.js?520216211124" ></script> <script type="text/javascript" src="/static/js/ad_blocker_recovery.js?160016291122"></script> <!-- These are the 2 necessary scripts for the ad recovery message to work --> <script async src="https://fundingchoicesmessages.google.com/i/pub-8553262192892817?ers=1" nonce="RORABhIXgMhQdZXbks8fZQ"></script> <script nonce="RORABhIXgMhQdZXbks8fZQ">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script> <!-- If the ad recovery message is blocked, this script shows a backup error message asking users to allow ads --> <script>(function(){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ 'use strict';var aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}},ba="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},k;if("function"==typeof Object.setPrototypeOf)k=Object.setPrototypeOf;else{var m;a:{var ca={a:!0},n={};try{n.__proto__=ca;m=n.a;break a}catch(a){}m=!1}k=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null} var p=k,q=function(a,b){a.prototype=ba(b.prototype);a.prototype.constructor=a;if(p)p(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.v=b.prototype},r=this||self,da=function(){},t=function(a){return a};var u;var w=function(a,b){this.g=b===v?a:""};w.prototype.toString=function(){return this.g+""};var v={},x=function(a){if(void 0===u){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(d){r.console&&r.console.error(d.message)}u=b}else u=b}a=(b=u)?b.createScriptURL(a):a;return new w(a,v)};var A=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};var B={},C=null;var D="function"===typeof Uint8Array;function E(a,b,c){return"object"===typeof a?D&&!Array.isArray(a)&&a instanceof Uint8Array?c(a):F(a,b,c):b(a)}function F(a,b,c){if(Array.isArray(a)){for(var d=Array(a.length),e=0;e<a.length;e++){var f=a[e];null!=f&&(d[e]=E(f,b,c))}Array.isArray(a)&&a.s&&G(d);return d}d={};for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(f=a[e],null!=f&&(d[e]=E(f,b,c)));return d} function ea(a){return F(a,function(b){return"number"===typeof b?isFinite(b)?b:String(b):b},function(b){var c;void 0===c&&(c=0);if(!C){C={};for(var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],f=0;5>f;f++){var h=d.concat(e[f].split(""));B[f]=h;for(var g=0;g<h.length;g++){var l=h[g];void 0===C[l]&&(C[l]=g)}}}c=B[c];d=Array(Math.floor(b.length/3));e=c[64]||"";for(f=h=0;h<b.length-2;h+=3){var y=b[h],z=b[h+1];l=b[h+2];g=c[y>>2];y=c[(y&3)<< 4|z>>4];z=c[(z&15)<<2|l>>6];l=c[l&63];d[f++]=""+g+y+z+l}g=0;l=e;switch(b.length-h){case 2:g=b[h+1],l=c[(g&15)<<2]||e;case 1:b=b[h],d[f]=""+c[b>>2]+c[(b&3)<<4|g>>4]+l+e}return d.join("")})}var fa={s:{value:!0,configurable:!0}},G=function(a){Array.isArray(a)&&!Object.isFrozen(a)&&Object.defineProperties(a,fa);return a};var H;var J=function(a,b,c){var d=H;H=null;a||(a=d);d=this.constructor.u;a||(a=d?[d]:[]);this.j=d?0:-1;this.h=null;this.g=a;a:{d=this.g.length;a=d-1;if(d&&(d=this.g[a],!(null===d||"object"!=typeof d||Array.isArray(d)||D&&d instanceof Uint8Array))){this.l=a-this.j;this.i=d;break a}void 0!==b&&-1<b?(this.l=Math.max(b,a+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(c)for(b=0;b<c.length;b++)a=c[b],a<this.l?(a+=this.j,(d=this.g[a])?G(d):this.g[a]=I):(d=this.l+this.j,this.g[d]||(this.i=this.g[d]={}),(d=this.i[a])? G(d):this.i[a]=I)},I=Object.freeze(G([])),K=function(a,b){if(-1===b)return null;if(b<a.l){b+=a.j;var c=a.g[b];return c!==I?c:a.g[b]=G([])}if(a.i)return c=a.i[b],c!==I?c:a.i[b]=G([])},M=function(a,b){var c=L;if(-1===b)return null;a.h||(a.h={});if(!a.h[b]){var d=K(a,b);d&&(a.h[b]=new c(d))}return a.h[b]};J.prototype.toJSON=function(){var a=N(this,!1);return ea(a)}; var N=function(a,b){if(a.h)for(var c in a.h)if(Object.prototype.hasOwnProperty.call(a.h,c)){var d=a.h[c];if(Array.isArray(d))for(var e=0;e<d.length;e++)d[e]&&N(d[e],b);else d&&N(d,b)}return a.g},O=function(a,b){H=b=b?JSON.parse(b):null;a=new a(b);H=null;return a};J.prototype.toString=function(){return N(this,!1).toString()};var P=function(a){J.call(this,a)};q(P,J);function ha(a){var b,c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document,d=null===(b=c.querySelector)||void 0===b?void 0:b.call(c,"script[nonce]");(b=d?d.nonce||d.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",b)};var Q=function(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)},R=function(a){this.g=a||r.document||document};R.prototype.appendChild=function(a,b){a.appendChild(b)};var S=function(a,b,c,d,e,f){try{var h=a.g,g=Q(a.g,"SCRIPT");g.async=!0;g.src=b instanceof w&&b.constructor===w?b.g:"type_error:TrustedResourceUrl";ha(g);h.head.appendChild(g);g.addEventListener("load",function(){e();d&&h.head.removeChild(g)});g.addEventListener("error",function(){0<c?S(a,b,c-1,d,e,f):(d&&h.head.removeChild(g),f())})}catch(l){f()}};var ia=r.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ja=r.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),ka=r.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu"),la=function(a,b,c){this.h=a;this.j=new R(this.h);this.g=null;this.i=[];this.l=!1;this.o=b;this.m=c},V=function(a){if(a.h.body&&!a.l){var b= function(){T(a);r.setTimeout(function(){return U(a,3)},50)};S(a.j,a.o,2,!0,function(){r[a.m]||b()},b);a.l=!0}},T=function(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.h.body.appendChild(d);a.i.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=ma(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=ma(0,10,0,10,0,10);b.style.display= "flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,85).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Q(a.j.g,"IMG");d.className=A();d.src=ia;d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ja;var h=X(a);h.textContent=ka;Y(a, e,f);Y(a,e,h);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.h.body.appendChild(a.g);b=W(1,5);for(c=0;c<b;c++)d=X(a),a.h.body.appendChild(d),a.i.push(d)},Y=function(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)},W=function(a,b){return Math.floor(a+Math.random()*(b-a))},ma=function(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f, 255)).toString()+")"},X=function(a){a=Q(a.j.g,"DIV");a.className=A();return a},U=function(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(na(a),T(a),r.setTimeout(function(){return U(a,b-1)},50))},na=function(a){var b=a.i;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];b=c?c.call(b):{next:aa(b)};for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.i=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};var pa=function(a,b,c,d,e){var f=oa(c),h=function(l){l.appendChild(f);r.setTimeout(function(){f?(0!==f.offsetHeight&&0!==f.offsetWidth?b():a(),f.parentNode&&f.parentNode.removeChild(f)):a()},d)},g=function(l){document.body?h(document.body):0<l?r.setTimeout(function(){g(l-1)},e):b()};g(3)},oa=function(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};var L=function(a){J.call(this,a)};q(L,J);var qa=function(a){J.call(this,a)};q(qa,J);var ra=function(a,b){this.l=a;this.m=new R(a.document);this.g=b;this.i=K(this.g,1);b=M(this.g,2);this.o=x(K(b,4)||"");this.h=!1;b=M(this.g,13);b=x(K(b,4)||"");this.j=new la(a.document,b,K(this.g,12))};ra.prototype.start=function(){sa(this)}; var sa=function(a){ta(a);S(a.m,a.o,3,!1,function(){a:{var b=a.i;var c=r.btoa(b);if(c=r[c]){try{var d=O(P,r.atob(c))}catch(e){b=!1;break a}b=b===K(d,1)}else b=!1}b?Z(a,K(a.g,14)):(Z(a,K(a.g,8)),V(a.j))},function(){pa(function(){Z(a,K(a.g,7));V(a.j)},function(){return Z(a,K(a.g,6))},K(a.g,9),K(a.g,10),K(a.g,11))})},Z=function(a,b){a.h||(a.h=!0,a=new a.l.XMLHttpRequest,a.open("GET",b,!0),a.send())},ta=function(a){var b=r.btoa(a.i);a.l[b]&&Z(a,K(a.g,5))};(function(a,b){r[a]=function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];r[a]=da;b.apply(null,d)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ra(window,O(qa,window.atob(a)))).start()});}).call(this); window.__h82AlnkH6D91__("WyJwdWItODU1MzI2MjE5Mjg5MjgxNyIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi04NTUzMjYyMTkyODkyODE3Il0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hVc0lBMXlKVmRQQWNGaXJQX1lGUTdENkpIZVNZUGV6bWNOM216TmJmYWhldlNobXpBVHkzVzlPLU5LV3MyNkx5cWVXRUx3YnRhZzN1MnZEWHVkZnFFSkVRXHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFVoRGZtbFAtR2RTZUhBa1lVY2VmWTFQYXh1cDNFdmhndlJDNVM4bms3S2t1TElaUXBFQ05VZTIySUNjcGx4eF9oeVlveHJTdy1iU3FjUkhKZWwyWU1NalFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFgzMm02dWJvVVVwaXJ1b1VQMmhkY2R1S2U5S0pzaDlGRDloMDlWOTlYTkpyZkVTRW5HNzh4Vm0yUDZXdjBDNmkwMXZ4Ui11V25ZVVdlWEI3dmNCd1c5cFFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFh0cXRhOEVpaV9LUVI4VHNLaDFVUGJ5TFlnNU1ocDFqdVNFemltQVFFeDFjRDJxalJhTjNDM21hSkt1VkVqdGZ5bTZjSXg5emVaLU5IazZMbTE5QjB1ZGdcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUZzFOVE15TmpJeE9USTRPVEk0TVRjXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi04NTUzMjYyMTkyODkyODE3LmpzP3VzcXBcdTAwM2RDQUUiXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4V0QtdnVGQVVZRE9STnItSmY2SnJGSGhYYU1QNlo5NG1CTjFyQ2g5M1FvdVNLSmtJcFBlLW1Uc2NpdHNWOEZ0aUdIdzBFZ1QtOEMzbHpFblJMczduZ0pQQVx1MDAzZFx1MDAzZCJd"); </script> <script src="/static/js/jquery_360.min.js?543516150322"></script> <script> // waitForTriggerHandler() is library for queuing up javascript to be stored and then executed when a trigger // function is called. You can push() any number of functions which will be stored unless and until trigger() // is called. Once trigger() is called any future functions that you push() in will be executed immediately. // It is safe to call .trigger() multiple times. Any arguments passed to .trigger() will also be passed along // to the associated function function waitForTriggerHandler() { var function_queue = []; var trigger_arguments = []; this._triggered = false; this.push = function(fn) { if (this._triggered) { // just run it immediately if handler has already been triggered fn.apply(null, trigger_arguments); } else { // otherwise add to the queue to run later function_queue.push(fn); } }; this.trigger = function() { // any arguments passed to trigger(foo, bar, baz) will also be passed along to functions in the queue // first convert any arguments to an array trigger_arguments = Array.prototype.slice.call(arguments); while (function_queue.length){ // for each function in the queue, pop it off and then execute it while passing in any // args that may have been passed to trigger(). function_queue.pop().apply(null, trigger_arguments); // The "null" above is for the value of "this". // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#Parameters } this._triggered = true; } } // set up waitToLoadAds handler window.waitToLoadAds = new waitForTriggerHandler(); // We set up the triggers for this below, they depend on whether we're loading lytics on the page </script> <script type="text/javascript"> // This token is here for test_lytics_snippet.py test: lytics-is-enabled window.googletag = window.googletag || {}; googletag.cmd = googletag.cmd || []; // initialize callback (source: https://learn.lytics.com/product-docs/lytics-javascript-tag/receiving-data-from-lytics) !function(){"use strict";var o=window.jstag||(window.jstag={}),r=[];function n(e){o[e]=function(){for(var n=arguments.length,t=new Array(n),i=0;i<n;i++)t[i]=arguments[i];r.push([e,t])}}n("send"),n("mock"),n("identify"),n("pageView"),n("unblock"),n("getid"),n("setid"),n("loadEntity"),n("getEntity"),n("on"),n("once"),n("call"),o.loadScript=function(n,t,i){var e=document.createElement("script");e.async=!0,e.src=n,e.onload=t,e.onerror=i;var o=document.getElementsByTagName("script")[0],r=o&&o.parentNode||document.head||document.body,c=o||r.lastChild;return null!=c?r.insertBefore(e,c):r.appendChild(e),this},o.init=function n(t){return this.config=t,this.loadScript(t.src,function(){if(o.init===n)throw new Error("Load error!");o.init(o.config),function(){for(var n=0;n<r.length;n++){var t=r[n][0],i=r[n][1];o[t].apply(o,i)}r=void 0}()}),this}}(); // custom init + lytics default install tag from https://activate.getlytics.com/connect?aid=2751 // see https://learn.lytics.com/understanding/product-docs/lytics-javascript-tag/configuration#configuration-options var lyticsCid = '44fda7674f94228540d8fba6786f9770'; console.log('You are using the Lytics Prod account'); jstag.init({ src: `https://c.lytics.io/api/tag/${lyticsCid}/latest.min.js`, pageAnalysis: { dataLayerPull: { disabled: true } } }); jstag.pageView(); (function(){ var sailthru_cookie, sailthru_user_id; function read_cookie(cookieName) { var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)'); var sMatch = (' '+document.cookie).match(re); if (cookieName && sMatch) return unescape(sMatch[1]); return ''; } sailthru_cookie = read_cookie('sailthru_hid'); if (sailthru_cookie.length > 56) { sailthru_user_id = sailthru_cookie.slice(32,56); jstag.send({ st_profile_id: sailthru_user_id }); } })(); jstag.call('entityReady', waitToLoadAds.trigger); setTimeout(waitToLoadAds.trigger, 1000); // also trigger lytics if it's taking too long waitToLoadAds.push(function (lytics_data) { // lytics_data won't be defined if lytics failed to load correctly. In that case // we don't need to set any segments. if (lytics_data && lytics_data.segments) { googletag.cmd.push(function() { googletag.pubads().setTargeting("LyticsSegments", lytics_data.segments); }); } }); function getUID(id) { window.dataLayer.push({'user_id': id}); }; jstag.getid(getUID); </script> <script type="text/javascript" src="/static/js/mailcheck.min.js?192616240919"></script> <script type="text/javascript" src="/static/js/dive_mailcheck.js?192616240919"></script> <script src="/static/js/app.js?040116120224"></script> <script type="text/javascript"> var divecounter_settings = {}; </script> <script type="text/javascript" src="/static/js/divecounter.js?261616040423"></script> <script type="text/javascript"> // Special unbounce signup thing for google traffic. Test with ?test_unbounce in the URL // Note: divecounter must already be loaded. Only enabled on pages that would normally have signup ads // Note: showSignupAd is always off if prestitial is enabled! if ((typeof divecounter !== "undefined") && ($(window).width() > 640)) { var test_unbounce = (window.location.href.indexOf("?test_unbounce")>=0); var force_unbounce = (window.location.href.indexOf("signupbounce=1")>=0) || (window.location.href.indexOf("utm_campaign=Linked-HR")>=0) || (window.location.href.indexOf("utm_source=outbrain")>=0); if (test_unbounce || force_unbounce || (document.referrer.match(/^https?:\/\/(www\.google\.|news\.google\.|t\.co|twitter\.com|www\.facebook\.com)/i) && divecounter.getOption('showSignupAd') && divecounter.canShow(1,1)) ) { // dyanmically load ouibounce.js only on pages where its needed $.getScript("/static/js/ouibounce.min.js?102717100918", function(){ // Once ouibounce.js loads, call the script // We're reusing divecounter's modal instead of OuiBounce's modal code (that's why we pass it 'false') var _ouibounce = ouibounce(false, { aggressive: test_unbounce, // ignore cookie in test mode cookieName: '_viewedOuiBounce', // underscored cookies should be ignored by Varnish callback: function() { divecounter_open_ad(); } }); }); } // end should show unbounce } // end divecounter defined </script> <script type="text/javascript"> // Load analytics.js (universal analytics) first (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); // set all the variables that are per-session or per-visit ga( 'create', 'UA-19684343-16', 'auto', {'name': 'orig'}, {'siteSpeedSampleRate': 2} ); // Set the same variables for aggregate data profile ga( 'create', 'UA-19684343-45', 'auto', {'name': 'agg'}, {'siteSpeedSampleRate': 2} ); //GA.js for tracking outbound links function trackOutboundLink(link, category, action, redirect) { try{ ga('orig.send', 'event', category, action); } catch(err) {} try{ ga('agg.send', 'event', category, action); } catch(err) {} //Timer to prevent redirect before processing data - not necessary if opening tab in new window if(redirect){ setTimeout(function(){ document.location.href = link.href; }, 100); } } $(document).ready(function() { $(".outboundlink").click(function() { trackOutboundLink(this, 'outboundlink', this.link, this.target != '_blank'); }); }); var diveSendPageviewEvent = true; if (diveSendPageviewEvent === true) { ga('orig.send', 'pageview'); ga('agg.send', 'pageview'); console.log('Queued sending of the pageview event to Google Analytics.'); } else { console.log('Sending the Google Analytics pageview event is disabled for this page.'); } // Actually track outbound links // Not sure if this is being used? var trackOutboundRegisterLink = function (url) { ga('agg.send', 'event', 'event_register', url, 'Registered for event', {'hitCallback': function () { document.location = url; } }); }; // Not sure if this is being used? var trackOutboundWebsiteLink = function (url) { // No need to manually change document.location; website opens in new tab ga('agg.send', 'event', 'event_website', url, 'Visited event site'); }; </script> <script type="module" src="/static/js/dist/googleAnalyticsHelper.bundle.js?520216211124" ></script> <script type="text/javascript"> function read_cookie(cookieName) { var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)'); var sMatch = (' '+document.cookie).match(re); if (cookieName && sMatch) return unescape(sMatch[1]); return ''; } var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.addEventListener('load', function(e) { // we only pass the template this context variable on newsposts let informaData = false; if (window.IIRISTracker) { var sailthru_id = read_cookie('sailthru_hid'); if (sailthru_id.length > 56) { sailthru_id = sailthru_id.slice(32,56); } var notProduction = 'False' === 'True'; var domain = 'www.utilitydive.com'.split('.')[1]; // on non-prod environment, there is specific collector domain to send the data to. var cDomain = notProduction ? 'com-informa-prod1.mini.snplow.net' : 'c.' + domain + '.com' // removed .com previous line var cfg = { config: { td: {}, snowplow: { context: {} } } }; cfg.config.idsource = 'sailthruid'; cfg.config.snowplow.appId = domain; cfg.config.snowplow.cDomain = cDomain; cfg.config.td.lob = 'it'; cfg.config.td.domain = domain; cfg.config.snowplow.contentTagEnabled = !!informaData cfg.config.snowplow.context = informaData window.IIRISTracker.initConfig(cfg); window.IIRISTracker.setTrackingUID(sailthru_id); var irisEvt = new Event('trackerLoaded'); window.dispatchEvent(irisEvt); } else { window.addEventListener('trackerLoaded', function(evt) { if(window.IIRISTracker) { window.IIRISTracker.setTrackingUID(sailthru_id); } }); } }); script.src = 'https://static.iris.informa.com/widgets/v3.0/iris-t.js'; document.getElementsByTagName('head')[0].appendChild(script); </script> <script type="text/javascript"> jQuery.browser = {}; (function () { jQuery.browser.msie = false; jQuery.browser.version = 0; if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) { jQuery.browser.msie = true; jQuery.browser.version = RegExp.$1; } })(); </script> <!-- for modal signup form --> <script type="text/javascript" src="/static/js/jquery.simplemodal.divefork.min.js?093716120922"></script> <style> /* dynamic style overrides based on DB go here*/ </style> <link rel="canonical" href="https://www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/" /> <link rel="preload" href="/static/css/dive_pressrelease_app.css?330116211124" as="style" onload="this.onload=null; this.rel='stylesheet';"> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script src="/static/js/dist/signupDataGam.bundle.js?520216211124"></script> <script type="text/javascript" src="/static/js/dist/adTemplates.bundle.js?520216211124"></script> <script> var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; // Build the site_logos object to be later referenced in house ads const site_logos = {}; site_logos['diveapi'] = { domain: 'diveapi', site_name: "API Site", alt_text: "API Site logo", is_current_site: false, white: { png: "None", svg: "None", }, black: { png: "None", svg: "None", } }; site_logos['agriculturedive'] = { domain: 'agriculturedive', site_name: "Agriculture Dive", alt_text: "Agriculture Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_black.svg", } }; site_logos['automotivedive'] = { domain: 'automotivedive', site_name: "Automotive Dive", alt_text: "Automotive Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_black.svg", } }; site_logos['bankingdive'] = { domain: 'bankingdive', site_name: "Banking Dive", alt_text: "Banking Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_black.svg", } }; site_logos['biopharmadive'] = { domain: 'biopharmadive', site_name: "BioPharma Dive", alt_text: "BioPharma Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_black.svg", } }; site_logos['cfo'] = { domain: 'cfo', site_name: "CFO.com", alt_text: "CFO.com logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_white.svg", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_black.svg", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_black.svg", } }; site_logos['cfodive'] = { domain: 'cfodive', site_name: "CFO Dive", alt_text: "CFO Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_black.svg", } }; site_logos['ciodive'] = { domain: 'ciodive', site_name: "CIO Dive", alt_text: "CIO Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_black.svg", } }; site_logos['constructiondive'] = { domain: 'constructiondive', site_name: "Construction Dive", alt_text: "Construction Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_black.svg", } }; site_logos['cstoredive'] = { domain: 'cstoredive', site_name: "C-Store Dive", alt_text: "C-Store Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_black.svg", } }; site_logos['customerexperiencedive'] = { domain: 'customerexperiencedive', site_name: "CX Dive", alt_text: "CX Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_black.svg", } }; site_logos['cybersecuritydive'] = { domain: 'cybersecuritydive', site_name: "Cybersecurity Dive", alt_text: "Cybersecurity Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_black.svg", } }; site_logos['educationdive'] = { domain: 'educationdive', site_name: "Education Dive", alt_text: "Education Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_black.svg", } }; site_logos['esgdive'] = { domain: 'esgdive', site_name: "ESG Dive", alt_text: "ESG Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_black.svg", } }; site_logos['facilitiesdive'] = { domain: 'facilitiesdive', site_name: "Facilities Dive", alt_text: "Facilities Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_black.svg", } }; site_logos['fashiondive'] = { domain: 'fashiondive', site_name: "Fashion Dive", alt_text: "Fashion Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_black.svg", } }; site_logos['fooddive'] = { domain: 'fooddive', site_name: "Food Dive", alt_text: "Food Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_black.svg", } }; site_logos['grocerydive'] = { domain: 'grocerydive', site_name: "Grocery Dive", alt_text: "Grocery Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_black.svg", } }; site_logos['healthcaredive'] = { domain: 'healthcaredive', site_name: "Healthcare Dive", alt_text: "Healthcare Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_black.svg", } }; site_logos['highereddive'] = { domain: 'highereddive', site_name: "Higher Ed Dive", alt_text: "Higher Ed Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_black.svg", } }; site_logos['hoteldive'] = { domain: 'hoteldive', site_name: "Hotel Dive", alt_text: "Hotel Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_black.svg", } }; site_logos['hrdive'] = { domain: 'hrdive', site_name: "HR Dive", alt_text: "HR Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_black.svg", } }; site_logos['k12dive'] = { domain: 'k12dive', site_name: "K-12 Dive", alt_text: "K-12 Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_black.svg", } }; site_logos['legaldive'] = { domain: 'legaldive', site_name: "Legal Dive", alt_text: "Legal Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_black.svg", } }; site_logos['manufacturingdive'] = { domain: 'manufacturingdive', site_name: "Manufacturing Dive", alt_text: "Manufacturing Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_black.svg", } }; site_logos['marketingdive'] = { domain: 'marketingdive', site_name: "Marketing Dive", alt_text: "Marketing Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_black.svg", } }; site_logos['medtechdive'] = { domain: 'medtechdive', site_name: "MedTech Dive", alt_text: "MedTech Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_black.svg", } }; site_logos['mobilemarketer'] = { domain: 'mobilemarketer', site_name: "Mobile Marketer", alt_text: "Mobile Marketer logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_black.svg", } }; site_logos['multifamilydive'] = { domain: 'multifamilydive', site_name: "Multifamily Dive", alt_text: "Multifamily Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_black.svg", } }; site_logos['packagingdive'] = { domain: 'packagingdive', site_name: "Packaging Dive", alt_text: "Packaging Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_black.svg", } }; site_logos['paymentsdive'] = { domain: 'paymentsdive', site_name: "Payments Dive", alt_text: "Payments Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_black.svg", } }; site_logos['pharmavoice'] = { domain: 'pharmavoice', site_name: "PharmaVoice", alt_text: "PharmaVoice logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_black.svg", } }; site_logos['proformative'] = { domain: 'proformative', site_name: "Proformative", alt_text: "Proformative logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_black.svg", } }; site_logos['restaurantdive'] = { domain: 'restaurantdive', site_name: "Restaurant Dive", alt_text: "Restaurant Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_black.svg", } }; site_logos['retaildive'] = { domain: 'retaildive', site_name: "Retail Dive", alt_text: "Retail Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_black.svg", } }; site_logos['smartcitiesdive'] = { domain: 'smartcitiesdive', site_name: "Smart Cities Dive", alt_text: "Smart Cities Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_black.svg", } }; site_logos['socialmediatoday'] = { domain: 'socialmediatoday', site_name: "Social Media Today", alt_text: "Social Media Today logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_color.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_color.svg", } }; site_logos['supplychaindive'] = { domain: 'supplychaindive', site_name: "Supply Chain Dive", alt_text: "Supply Chain Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_black.svg", } }; site_logos['truckingdive'] = { domain: 'truckingdive', site_name: "Trucking Dive", alt_text: "Trucking Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_black.svg", } }; site_logos['utilitydive'] = { domain: 'utilitydive', site_name: "Utility Dive", alt_text: "Utility Dive logo", is_current_site: true, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_black.svg", } }; site_logos['wastedive'] = { domain: 'wastedive', site_name: "Waste Dive", alt_text: "Waste Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_black.svg", } }; // Get the dive domain and return the dive logo object, or null if it doesn't exist in site_logos function getDivesiteLogoObject(link_url, alt_domain='') { let dive_domain; // Split link URL on 'adurl=' and take what comes after as the ad url const ad_url = decodeURIComponent(link_url.split('adurl=')[1]); // Split on . to get an array of hostname segments const dive_domain_array = new URL(ad_url).hostname.split('.'); // Retrieve the second to last element of the hostname array, which should always be the domain dive_domain = dive_domain_array[dive_domain_array.length - 2] if (alt_domain) { // If alt_domain has been specified, normalize it. i.e. "HR Dive", "http://hrdive.com", etc. => "hrdive" // This will override the link url's domain. dive_domain = alt_domain.replace(/\s+/g, '').replace(/^(https?:\/\/)?(www\.)?|\.com.*|\?.*|#.*/gi, '').toLowerCase(); } // Return the site logos object for this domain if it exists, or null if it does not if (site_logos[dive_domain]) { return site_logos[dive_domain]; } else { // Fallback logo const url_prefix = "https://d12v9rtnomnebu.cloudfront.net/divesite/responsive_ad_assets/small_logos/"; return { domain: 'industrydive', site_name: 'Industry Dive', alt_text: 'Industry Dive logo', white: { svg: url_prefix + 'industrydive-small-white.svg', png: url_prefix + 'industrydive-small-white.png', }, black: { svg: url_prefix + 'industrydive-small-black.svg', png: url_prefix + 'industrydive-small-black.png', } } } } eventer(messageEvent, function (e) { var key = e.message ? "message" : "data"; var data = e[key]; var eventName = data.message || 'ignore'; if (eventName == 'adContentAvailable') { var $ad_element; $ad_element = $('div').filter('[data-container-ad-unit-id="' + data.adUnit + '-' + window.dfp_visibility + '"]'); $ad_element.hide() var nativeAdEditorialSelector = '.sidebar .hybrid-ad-wrapper .native-ad-editorial'; var nativeAdEditorialExists = $(nativeAdEditorialSelector).length > 0; if ( nativeAdEditorialExists ) { $(nativeAdEditorialSelector).closest('.hybrid-ad-wrapper').addClass('native-ad-editorial-sidebar-border'); } // Inline homepage ad $('.feed-item-ad .hybrid-ad-wrapper a').each(function (index, element) { window.updateGamAdUrl(element, 'inline'); }); // Editorial native ad sidebar // NOTE: must go before inline native ad to ensure correct location added $('.sidebar .native-ad.editorial a').each(function (index, element) { window.updateGamAdUrl(element, 'sidebar'); }); // Editorial native ad inline $('.native-ad.editorial a').each(function (index, element) { window.updateGamAdUrl(element, 'inline'); }); // Sidebar ad $('.sidebar .hybrid-ad-wrapper a').each(function (index, element) { window.updateGamAdUrl(element, 'sidebar'); }); } }, false); var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; googletag.cmd.push(function () { var desktopWidth = 1024; if (window.innerWidth >= desktopWidth) { window.dfp_visibility = 'desktop'; } else { window.dfp_visibility = 'mobile'; } var dfpDisplayConfiguration = { "prestitialEnabled": false, "leaderboardEnabled": true, "sidebarAdsEnabled": true, "visibility": window.dfp_visibility }; if (window.dfp_visibility == 'desktop') { if (typeof prestitialAds == 'object' && prestitialAds.pageIsPrestitialEligible()) { googletag.defineSlot('/21662595662/utilitydive/utilitydiveprestitial', [[500, 300], [640, 480]], 'paychekgoeshere').addService(googletag.pubads()); } if (dfpDisplayConfiguration.leaderboardEnabled) { googletag.defineSlot('/21662595662/utilitydive/utilitydiveleaderboard', [[970, 180], [728, 90], [970, 90]], 'dfp-leaderboard-desktop').addService(googletag.pubads()); googletag.pubads().addEventListener('slotRenderEnded', function (event) { if ((event.slot.getAdUnitPath() === '/21662595662/utilitydive/utilitydiveleaderboard' || event.slot.getAdUnitPath() === '/21662595662/utilitydive/utilitydiveleaderboard') && !event.isEmpty ) { $(window).blur(function () { if (document.activeElement === $('#dfp-leaderboard-desktop iframe')[0] || document.activeElement === $('#dfp-leaderboard-desktop iframe')[0]) { try { localStorage.setItem('leaderboard_signup_path', document.location.pathname); } catch (e) { // local storage could not be available due to privacy settings or something } } }); } }); } if (dfpDisplayConfiguration.sidebarAdsEnabled) { googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid1', [[300, 250], 'fluid', [160, 600]], 'dfp-hybrid1-desktop').addService(googletag.pubads()); } googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid2', [[300, 250], 'fluid'], 'dfp-hybrid2-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid3', [[300, 250], 'fluid'], 'dfp-hybrid3-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid4', [[300, 250], 'fluid'], 'dfp-hybrid4-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid1', ['fluid'], 'dfp-thankyouhybrid1-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid2', ['fluid'], 'dfp-thankyouhybrid2-desktop').addService(googletag.pubads()); } else { googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid1', [[300, 250], 'fluid'], 'dfp-hybrid1-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid2', [[300, 250], 'fluid'], 'dfp-hybrid2-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid3', [[300, 250], 'fluid'], 'dfp-hybrid3-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid4', [[300, 250], 'fluid'], 'dfp-hybrid4-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid1', ['fluid'], 'dfp-thankyouhybrid1-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid2', ['fluid'], 'dfp-thankyouhybrid2-mobile').addService(googletag.pubads()); } if ((typeof divecounter !== "undefined") && (divecounter.getData().is_subscriber)) { googletag.pubads().setTargeting("is_subscriber", "yes"); } var site = window.location.host; googletag.pubads().setTargeting("site", site); var first_path = window.location.pathname.split( '/' )[1]; googletag.pubads().setTargeting("first_path", first_path); // Set ad targeting on the trendline to show the ads designated for it var isTopicPage = window.location.pathname.indexOf('/topic/') !== -1; if(isTopicPage) { googletag.pubads().setTargeting('is_topics_page', 'true'); } googletag.pubads().setCentering(true); googletag.pubads().collapseEmptyDivs(false); // Whether to collapse the slots even before the ads are fetched. googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> <script>window.fallbackAds = '[{\u0022adType\u0022: \u0022editorial_native_ad\u0022, \u0022link\u0022: \u0022/trendline/grid\u002Dresiliency/84/?utm_source\u003DUD\u0026utm_medium\u003DNativeFB\u0026utm_campaign\u003DTrendlineFB\u0022, \u0022label\u0022: \u0022Trendline\u0022, \u0022image\u0022: \u0022https://imgproxy.divecdn.com/57dAC3UOL8k7gTBlts\u002Duej7iNdCWknmcZq7S4zNe0HI/g:ce/rs:fit:212:100/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy01MTE3Mzg1My5qcGc\u003D.webp\u0022, \u0022attribution\u0022: \u0022\u0022, \u0022headline\u0022: \u0022How utilities are ensuring grid resilience\u0022, \u0022ctaText\u0022: \u0022Access now\u0022, \u0022description\u0022: \u0022Utilities and grid operators are facing\u005Cu00a0increasing threats\u005Cu00a0from climate change as well as\u005Cu00a0cyber and physical attacks, and are deploying a variety of responses to meet the rising challenges.\u0022}]'</script> <script type="module" src="/static/js/dist/onBoardDiagnostics.bundle.js?520216211124" ></script> <!-- NEW RELIC SYNTHETICS CANARY --> </head> <body class="pressrelease"> <!-- Accessibility skip-nav link --> <a href="#skip-link-target" class="button button--loud skip-nav-link" tabindex="1">Skip to main content</a> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-55G8WRR" height="0" width="0" style="display:none;visibility:hidden"> </iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="signup-inter" class="modal_dialog" style="display:none;"> <form id="signup-inter-form" class="form-basic" name="signup-inter-form" action="/signup/" method="POST"> <input type="hidden" name="signup_box_location" value="interstitial"> <input type="hidden" name="signup_initial_url_path" value=""> <h1> Don't miss tomorrow's electric utility industry news </h1> <p class="interstitial-text"> Let Utility Dive's free newsletter keep you informed, straight from your inbox. </p> <p class="form-error__message" id="interstitial-error"></p> <div id="form-interstitial"> <input type="email" name="email" placeholder="Work email address" class="email" required id="id_c20eb8_email"> <div id="newsletter-list-section"> <ul id="id_c20eb8_site_newsletters" class="list-no-bullets"> <li><label for="id_c20eb8_site_newsletters_0"><input type="checkbox" name="site_newsletters" value="2" class="list-no-bullets" id="id_c20eb8_site_newsletters_0"> Daily Dive <span class="secondary-label">M-F</span></label> </li> <li><label for="id_c20eb8_site_newsletters_1"><input type="checkbox" name="site_newsletters" value="41" class="list-no-bullets" id="id_c20eb8_site_newsletters_1"> Storage Weekly <span class="secondary-label">Every Tuesday</span></label> </li> <li><label for="id_c20eb8_site_newsletters_2"><input type="checkbox" name="site_newsletters" value="13" class="list-no-bullets" id="id_c20eb8_site_newsletters_2"> Load Management Weekly <span class="secondary-label">Every Wednesday</span> <p class="newsletter-partner">In partnership with</p><img class="newsletter-partner" loading="lazy" src="https://imgproxy.divecdn.com/HKJu6uVJPTX-d4gNw7YugKLYlbufnSe1qe3AQsV_fzc/raw:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL3RodW1ibmFpbHMvbmV3c2xldHRlcl9saXN0cy9QTE1BX2xvZ28ucG5n"></label> </li> <li><label for="id_c20eb8_site_newsletters_3"><input type="checkbox" name="site_newsletters" value="25" class="list-no-bullets" id="id_c20eb8_site_newsletters_3"> Renewable Energy Weekly <span class="secondary-label">Every Thursday</span> <p class="newsletter-partner">In partnership with</p><img class="newsletter-partner" loading="lazy" src="https://imgproxy.divecdn.com/1hVbXLb-Spzm3NFCLfhzZiKL8f7i8_ELUv7ZmwPTSYc/raw:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL3RodW1ibmFpbHMvbmV3c2xldHRlcl9saXN0cy9zZXBhX2xvZ28uanBn"></label> </li> </ul> </div> <div id="interstitial-consent-container"> <input name="user_consent" value="1" id="id_user_consent" type="checkbox"> <span> By signing up to receive our newsletter, you agree to our <a href="https://www.industrydive.com/terms-of-use/" target="_blank">Terms of Use</a> and <a href="https://www.industrydive.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime. </span> </div> </div> <input id="signup-inter-submit" class="email_submit submit button" type="submit" data-role="none" value="Subscribe today"> </form> </div> <!-- leaderboard --> <div class="leaderboard-wrap"> <div class="hide-small show-large"> <div data-container-ad-unit-id="/21662595662/utilitydive/utilitydiveleaderboard-desktop"></div> <div id='dfp-leaderboard-desktop' style="min-height: 90px"> <script> waitToLoadAds.push(function() { googletag.cmd.push(function() { if (window.dfp_visibility == 'desktop') { googletag.display('dfp-leaderboard-desktop'); } }) }); </script> </div> </div> </div> <div class="page-container"> <header role="banner"> <nav id="top" class="site-menu" aria-label="Site menu"> <div class="site-menu-inner"> <!-- logo --> <div class="pub-logo-wrapper"> <a href="/" class="analytics t-dash-navigation"> <img class="pub-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_black.svg" alt="Utility Dive" height="28"> </a> </div> <!-- desktop menu, not visible on mobile/tablet --> <div class="menu-content-wrapper"> <ul class="desktop-menu-main"> <li> <a href="/deep-dive/" class="nav-menu-item analytics t-deepdive-navigation">Deep Dive</a> </li> <li> <a href="/opinion/" class="nav-menu-item analytics t-opinion-navigation">Opinion</a> </li> <li> <a href="/library/" class="nav-menu-item analytics t-library-navigation">Library</a> </li> <li> <a href="/events/" class="nav-menu-item analytics t-events-navigation">Events</a> </li> <li> <a href="/press-release/" class="nav-menu-item analytics t-press-releases-navigation">Press Releases</a> </li> <li class="topics top-nav-dropdown-item"> <button class="nav-menu-item topics-dropdown-item"> Topics <span class="dropdown-toggle-arrow"></span> </button> </li> </ul> <!-- mobile menu toggle icon, not visible on desktop --> <a href="/signup/?signup_location=header" class="nav-menu-item nav-signup-button mobile-nav-signup-button analytics t-signup-navigation button"> Sign up </a> <button class="mobile-menu-toggle"> <img src="/static/img/menu_icons/menu.svg?273117231121" alt="menu" loading="lazy"> </button> <!-- newsletter and search, only shown on desktop --> <ul class="desktop-menu-sub list-no-bullets"> <li> <button class="search-toggle search-button-front analytics t-search-navigation-top"> <img src="/static/img/menu_icons/search.svg?320116291121" alt="search" width="16" height="16" loading="lazy"> <span class="sub-link">Search</span> </button> </li> <li> <a href="/signup/?signup_location=header" class="nav-menu-item nav-signup-button desktop-nav-signup-button analytics t-signup-navigation button"> <img src="/static/img/email_icons/mail.svg?273117231121" width="16" height="11" loading="lazy" alt=""> Sign up </a> </li> </ul> </div> </div> </nav> </header> <div class="menu-search js-search-hide"> <div class="menu-search-inner-wrapper row"> <form action="/search/" method="GET" data-ajax="false"> <label for="search-desktop"> <span class="screen-reader-text search">Search</span> </label> <input id="search-desktop" type="search" name="q" placeholder="Search" data-role="none"> <button type="submit" value="" data-role="none" class="search-button-front analytics t-search-navigation-drawer"> <img src="/static/img/menu_icons/search.svg?320116291121" alt="search" height="16" width="16" loading="lazy"> </button> <img class="close" src="/static/img/menu_icons/close.svg?273117231121" width="16" height="16" alt="close search" loading="lazy"> </form> </div> </div> <nav class="topics menu-bar" aria-label="Menu bar"> <ul class="list-no-bullets"> <li> <a class="analytics t-topic-navigation-Generation" href="/topic/Generation/">Generation</a> </li> <li> <a class="analytics t-topic-navigation-transmission-distribution" href="/topic/transmission-distribution/">T&D</a> </li> <li> <a class="analytics t-topic-navigation-grid-security-reliability" href="/topic/grid-security-reliability/">Grid Reliability</a> </li> <li> <a class="analytics t-topic-navigation-building-transportation-electrification" href="/topic/building-transportation-electrification/">Electrification</a> </li> <li> <a class="analytics t-topic-navigation-demand-response" href="/topic/demand-response/">Load Management</a> </li> <li> <a class="analytics t-topic-navigation-solar" href="/topic/solar/">Renewables</a> </li> <li> <a class="analytics t-topic-navigation-storage" href="/topic/storage/">Storage</a> </li> <li> <a class="analytics t-topic-navigation-distributed-energy" href="/topic/distributed-energy/">DER</a> </li> <li> <a class="analytics t-topic-navigation-policy" href="/topic/policy/">Regs</a> </li> <li> <a class="analytics t-topic-navigation-market-news" href="/topic/market-news/">Corp News</a> </li> </ul> </nav> <script type="module" src="/static/js/dist/navSignupHelper.bundle.js?520216211124" ></script> <script> window.siteName = 'Utility Dive'; </script> <div class="search-overlay"></div> <div class="page-wrapper"> <div class="page-inner-wrapper" id="skip-link-target"> <script src="/static/js/jquery.ui.widget.js" type="text/javascript"></script> <script src="/static/js/jquery.iframe-transport.js" type="text/javascript"></script> <script src="/static/js/jquery.fileupload.js" type="text/javascript"></script> <script src="/static/js/jquery.cloudinary.js" type="text/javascript"></script> <script type='text/javascript'> $.cloudinary.config({"api_key": "516981353162248", "cloud_name": "dmgi9movl"}); </script> <section class="pressrelease-written-content "> <div class="header"> <div class="header__background-top"></div> <div class="row"> <div class="header__back-link"> <a href="/press-release/">← Press Releases</a> <div class="clear-fix"></div> </div> <div class="header__wrapper"> <div class="header__wrapper__background-middle"></div> <div class="large-2 medium-2 large-push-9 medium-push-9 columns"> </div> <div class="large-offset-1 medium-offset-1 large-9 medium-9 large-pull-3 medium-pull-3 columns"> <h1 class="heading-02 header__wrapper__title">Heat Pump Assisted Water Heater Technology Could Make Big Lift</h1> <h2 class="header__wrapper__subheader">New Technology Lowers Prices for Food Service Operations to Electrify</h2> <div class="header__wrapper__secondary-label"> PRESS RELEASE FROM <a href="https://calnext.com">ENERGY SOLUTIONS</a> </div> </div> </div> </div> </div> <div class="background-bottom"></div> <article class="content"> <div class="row"> <div class="large-4 medium-4 columns"> <div class="content__publish-date">November 07, 2024</div> <div class="content__contacts-divider"></div> <ul class="social-icon-list"> <li> <a href="http://www.linkedin.com/shareArticle?mini=true&url=https%3A//www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/&title=Heat%20Pump%20Assisted%20Water%20Heater%20Technology%20Could%20Make%20Big%20Lift" aria-label="Share article to Linkedin" class="social-icon"> <img src="/static/img/social_icons/article_page/linkedin.svg?092716141024" alt="Post to LinkedIn"> <span class="social-icon__text">post</span> </a> </li> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A//www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/" aria-label="Share article to Facebook" class="social-icon"> <img src="/static/img/social_icons/article_page/facebook.svg?440116200824" alt="Share on Facebook"> <span class="social-icon__text">share</span> </a> </li> <li> <a href="https://twitter.com/intent/tweet?text=Heat%20Pump%20Assisted%20Water%20Heater%20Technology%20Could%20Make%20Big%20Lift%20https%3A//www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/%20via%20@UtilityDive" aria-label="Share article to X/Twitter" class="social-icon"> <img src="/static/img/social_icons/article_page/x.svg?092716141024" alt="Post on X"> <span class="social-icon__text">post</span> </a> </li> <li> <a href="javascript:window.print()" aria-label="Print article" class="social-icon js-social-icon-print"> <img src="/static/img/social_icons/article_page/print.svg?440116200824" alt="Print this page"> <span class="social-icon__text">print</span> </a> </li> <li> <a href="/cdn-cgi/l/email-protection#aa95f9dfc8c0cfc9de97e2cfcbde8f989afadfc7da8f989aebd9d9c3d9decfce8f989afdcbdecfd88f989ae2cfcbdecfd88f989afecfc9c2c4c5c6c5cdd38f989ae9c5dfc6ce8f989ae7cbc1cf8f989ae8c3cd8f989ae6c3ccde8ccbc7da91e8c5ced397c2dededad98f99eb8585dddddd84dfdec3c6c3ded3cec3dccf84c9c5c785dad8cfd9d987d8cfc6cfcbd9cf85989a989e9b9b9a9d87c2cfcbde87dadfc7da87cbd9d9c3d9decfce87ddcbdecfd887c2cfcbdecfd887decfc9c2c4c5c6c5cdd387c9c5dfc6ce87c7cbc1cf87c8c3cd87c6c3ccde85" aria-label="Share article with email" class="social-icon"> <img src="/static/img/social_icons/article_page/email.svg?092716141024" alt="Email this page"> <span class="social-icon__text">email</span> </a> </li> </ul> <div class="content__contacts-header">Press Contacts</div> <div class="content__contacts-wrapper"> <div class="content__contacts-wrapper__contact"> <div class="content__contacts-wrapper__contact__name">Jennifer Moffatt</div> <div class="content__contacts-wrapper__contact__email"><a href="/cdn-cgi/l/email-protection#e2888f8d8484839696a2878c8790859bcf918d8e97968b8d8ccc818d8f"><span class="__cf_email__" data-cfemail="492324262f2f283d3d092c272c3b2e30643a26253c3d202627672a2624">[email protected]</span></a></div> <div class="content__contacts-wrapper__contact__phone">5037099406</div> </div> </div> </div> <div class="large-7 medium-8 end columns"> <div class="content__image__wrapper"> <img alt="{{press_release.company_name}} header image" class="cld-responsive content__image" data-src="https://res.cloudinary.com/dmgi9movl/image/upload/dpr_auto,w_auto/v1731015398/press_release/assets/header_images/calnext-logo_momeih.jpg"/> </div> <div class="content__text"> <span class="content__text__location"><strong>OAKLAND, Calif. — </strong></span><p>Reliable hot water is critical for restaurants for preparing food and washing dishes and equipment, as well as hand washing. However, water heating is one of the biggest energy users in restaurants. Heating water for restaurant use accounts for 16 percent of all commercial gas usage in California<a href="https://energycentral.com/c/ee/heat-pump-assisted-water-heater-technology-could-make-big-lift#_ftn1">[1]</a>. Food service buildings are among the highest intensive energy users on a per-square-foot basis, largely because of their hot water usage. Foodservice operations may soon feel the pressure to electrify. The California Air Resources Board is analyzing proposed zero-emission GHG standards for new space and water heaters. It is currently planned for consideration in 2025 with any implementation beginning in 2030, and would only be applicable to the purchase of new equipment.</p> <p>Doing so will be difficult, particularly for existing restaurants. Many food service operations, especially small and independent businesses, do not have the space for the size of a storage tank that would be required for a heat pump water heater. Restaurants in California, as with most states, are legally required to have sufficient hot water to meet all these demands under peak conditions.</p> <p>In response to these challenges, an emerging technology, the heat pump-assisted water heater, is gaining traction. It is designed to meet this existing gap between what the market needs and the cost and challenges of installing available heat pump water heaters. It is geared to meet the needs of existing food service businesses that want to be able to transition to a heat pump while still retaining the benefits of their current water heating system.</p> <p>With funding from CalNEXT – California’s statewide emerging technology initiative – the TRC Advanced Energy team recently published a report, <a href="https://calnext.com/wp-content/uploads/2023/07/ET22SWE0019_Final_Report.pdf">“Market Potential for Heat Pump Assisted Hot Water Systems in Foodservice Facilities.”</a> This report, which TRC Advanced Energy developed with research support from Frontier Energy and Energy Solutions, assesses the benefits and challenges of adopting heat pump-assisted water heater technology for a range of food service establishments.</p> <p>“Heat pump-assisted water heaters are a solution that we have available today,” said Amin Delagah, Associate Director of Research and Consulting for TRC Advanced Energy, an environmental services provider. “Heat pump water heater adoption rates in restaurants are still very low due to a lack of familiarity, space and electrical capacity requirements and primarily, the health department water heater sizing regulatory barrier, but the heat pump assist concept is a solution that we can move forward today to overcome these barriers.”</p> <p>The heat pump-assisted water heater, as its name suggests, is designed to operate in series with an existing water heater, which makes it attractive for restaurants that do not want to overhaul their current system completely. During down times for the business, the existing heater would maintain the recirculation temperature of already heated water in its system. During off hours, the heat pump-assisted water heater would produce sufficient hot water to restock the system. Because the existing heater is already large enough to meet food service needs during business hours, the heat pump-assisted water heater system can be built to fit the available space, even if it is undersized.</p> <p>The benefits of using a heat pump-assisted water heater are similar to those of a heat pump: improved energy efficiency and possibly lower long-term energy costs, although cost issues largely depend on the type of system being replaced. Natural gas fuel, which is used by 90 percent of food service operations for water heating, is currently cheaper than electricity in most of California.</p> <p>Heat pump systems also provide cooling as a byproduct, which could be useful to counteract kitchen heat.</p> <p>Heat pump-assisted water heaters are designed to address the big disadvantage of heat pump water heaters for restaurants – the longer time needed to heat the water from cold. One workaround is a much larger tank, but floor space is typically at a premium in restaurants, making this workaround unappealing for many food service operations. For a heat pump water heater to meet health department requirements, it would need a much bigger tank than its gas-fired counterpart (because the gas-fired water heater can heat water faster).</p> <p>Heat pump-assisted water heaters may also be cheaper to install than a conventional, retrofitted heat pump water heater system, and the heat pump-assisted water heater does not need to meet these sizing regulations because the legacy water heater still functions as a backup system. At this point, the technology is still emerging and has not been installed commercially, but the authors estimate that initial costs for the heat pump water heater that acts as the assist, including installation, could range between $6,000 to $20,000. This amount, while significant, is still much cheaper than what it could cost a full-service restaurant to install a heat pump water heater capable of meeting water demands, which could well exceed $100,000. </p> <p>“The costs for heat pump assisted heat pumps are largely driven by the electrical work and the space required, and there may be incentives available to offset these,” Delagah said.</p> <p>Another benefit is that because the heat pump-assisted water heater is a backup system, it does not require health department approval, making the process simpler. Both heat pump water heaters and heat pump-assisted water heaters also have the additional operational benefit of being able to benefit from time-of-use rates and the additional cooling they could provide for kitchens.</p> <p>“This year in October, it was 95 degrees in the Bay Area,” Delagah said. “There are new California OSHA<a href="https://energycentral.com/c/ee/heat-pump-assisted-water-heater-technology-could-make-big-lift#_ftn1">[1]</a> rules on the books for indoor temperatures – if your facilities are over an 82°F temperature indoors, you have to provide cooling centers for employees. That’s becoming an emerging concern for restaurants to meet a new heat illness standard.”</p> <p>On the downside, the higher upfront costs will likely still be a significant barrier to the adoption of heat pump-assisted water heaters, even if they are relatively less expensive than heat pump water heaters.</p> <p>One big hurdle is that health departments, by and large, are not familiar with the technology – and may be more resistant to its approval. The relatively high price of electricity in California, compared with gas, may be another barrier. Yet regulations and the need to decarbonize are moving closer, with California’s 2030 deadlines for reducing its overall greenhouse gas emissions by 40 percent, in comparison with 1990 levels. Restaurants are well positioned to be the public face of doing their part.</p> <p>“This is great equipment for restaurants that are thinking about positioning themselves for where things are going in terms of air quality regulations,” Delagah said. “If you’re a chain restaurant, you should probably be trying this out, kicking the tires a bit, and preparing for what your solution is going to be when there is a mandate.”</p> <p> </p> <p><em>1. This statistic comes from earlier research conducted by the same author, “Energy Efficiency Potential of Gas-Fired Commercial Water Heating Equipment in Foodservice Facilities” (Delagah and Fisher 2009),</em></p> <p><em>2. </em><a href="https://www.dir.ca.gov/dosh/heatillnessinfo.html"><em>https://www.dir.ca.gov/dosh/heatillnessinfo.html</em></a></p> <p>To learn more about this project, read the <a href="https://calnext.com/wp-content/uploads/2023/07/ET22SWE0019_Final_Report.pdf">report </a>on the CalNEXT website. </p> <p> </p> </div> <div class="content__company-boilerplate"> <div class="content__company-boilerplate__hash">###</div> <div class="content__company-boilerplate__header">About</div> <div class="content__company-boilerplate__text"><p>About <a href="https://calnext.com/">CalNEXT</a></p> <p>CalNEXT is a statewide initiative to identify, test, and grow electric technologies and delivery methods to support California’s decarbonized future. CalNEXT is funded by the ratepayers of California investor-owned utilities and provides a means for studying emerging technologies and energy-efficiency innovations that have the potential to save energy via utility programs and/or market support. </p></div> </div> <div class="content__divider"></div> <ul class="social-button-list"> <li> <a href="http://www.linkedin.com/shareArticle?mini=true&url=https%3A//www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/&title=Heat%20Pump%20Assisted%20Water%20Heater%20Technology%20Could%20Make%20Big%20Lift" class="social-button" title="Post"> <img src="/static/img/social_icons/article_page/linkedin.svg?092716141024" alt="Post to LinkedIn"> </a> </li> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A//www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/" class="social-button" title="Share"> <img src="/static/img/social_icons/article_page/facebook.svg?440116200824" alt="Share on Facebook"> </a> </li> <li> <a href="https://twitter.com/intent/tweet?text=Heat%20Pump%20Assisted%20Water%20Heater%20Technology%20Could%20Make%20Big%20Lift%20https%3A//www.utilitydive.com/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/%20via%20@UtilityDive" class="social-button" title="Post"> <img src="/static/img/social_icons/article_page/x.svg?092716141024" alt="Post to X"> </a> </li> <li> <a href="javascript:window.print()" class="social-button js-social-button-print" title="Print"> <img src="/static/img/social_icons/article_page/print.svg?440116200824" alt="Print this page"> </a> </li> <li> <a href="/cdn-cgi/l/email-protection#7a45290f18101f190e47321f1b0e5f484a2a0f170a5f484a3b090913090e1f1e5f484a2d1b0e1f085f484a321f1b0e1f085f484a2e1f1912141516151d035f484a39150f161e5f484a371b111f5f484a38131d5f484a36131c0e5c1b170a4138151e0347120e0e0a095f493b55550d0d0d540f0e1316130e031e130c1f54191517550a081f090957081f161f1b091f55484a484e4b4b4a4d57121f1b0e570a0f170a571b090913090e1f1e570d1b0e1f0857121f1b0e1f08570e1f1912141516151d035719150f161e57171b111f5718131d5716131c0e55" class="social-button" title="Email"> <img src="/static/img/social_icons/article_page/email.svg?092716141024" alt="Email this page"> </a> </li> </ul> </div> </div> </article> </section> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script> // The following sets up responsive breakpoints for serving Cloudinary images. // 101 and 202 correspond to the company logo sizes, 400 and 800 correspond to the header image sizes. // The dpr='auto' setting on individual image placements will double any of the above sizes on hidpi screens. // The more breakpoints we serve, the more Cloudinary transformations we will have to pay for, so add with caution. $.cloudinary.config({ cloud_name: '', breakpoints: [101, 202, 400, 800] }); $.cloudinary.responsive(); </script> </div> <!-- ends page-inner-wrapper --> <section class="pre-footer"> </section> <hr class="footer-hr"> <footer> <div class="custom-article-footer"> <div class="row columns"> <div class="footer-grid"> <div class="footer-links"> <a href="https://www.industrydive.com"> <img class="pub-logo-footer" src="https://d12v9rtnomnebu.cloudfront.net/logo/corporate/ID_black.svg" alt="Industry Dive Logo" height="28" loading="lazy"/> </a> <ul class="social-icon-list social-icon-list__footer"> <li> <a href="https://www.linkedin.com/company/utility-dive-energy-and-utility-news" aria-label="Industry Dive LinkedIn" class="social-icon-footer analytics t-sitefooter-linkedin"> <img src="/static/img/social_icons/article_page/linkedin.svg?092716141024"> </a> </li> <li> <a href="https://www.facebook.com/utilitydive/" aria-label="Industry Dive Facebook" class="social-icon-footer analytics t-sitefooter-facebook"> <img src="/static/img/social_icons/article_page/facebook.svg?440116200824"> </a> </li> <li> <a href="https://twitter.com/UtilityDive" aria-label="Industry Dive X/Twitter" class="social-icon-footer analytics t-sitefooter-twitter"> <img src="/static/img/social_icons/article_page/x.svg?092716141024"> </a> </li> <li> <a href="https://www.utilitydive.com/feeds/news/" aria-label="Industry Dive RSS feed" class="social-icon-footer analytics t-sitefooter-rss"> <img src="/static/img/social_icons/article_page/rss.svg?440116200824"> </a> </li> </ul> </div> <div class="link-wrapper"> <div class="footer-links"> <h4 class="uppercase-heading-01">Explore</h4> <ul class="list-no-bullets"> <li> <a href="/about/" class="analytics t-about-sitefooter">About</a> </li> <li> <a href="/editors/" class="analytics t-editors-sitefooter">Editorial Team</a> </li> <li> <a href="/contact/" class="analytics t-feedback-sitefooter">Contact Us</a> </li> <li> <a href="/signup/?signup_location=footer-list&signup_path=/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/" class="analytics t-signup-sitefooter">Newsletter</a> </li> <li> <a href="/selfservice/article-licensing/submit/" class="analytics t-licensing-sitefooter">Purchase Licensing Rights</a> </li> <li> <a class="analytics t-pr-sitefooter-all" href="/press-release/">Press Releases</a> </li> <li> <a href="/what-we-are-reading/" class="analytics t-wwr-sitefooter">What We're Reading</a> </li> </ul> </div> <div class="second-column"> <div class="footer-links"> <h4 class="uppercase-heading-01">Reach our audience</h4> <ul class="list-no-bullets"> <li> <a href="/advertise/" class="analytics t-advertising-sitefooter">Advertising</a> </li> <li> <a class="analytics t-pr-sitefooter-all" href="/press-release/get-started/">Post a press release</a> </li> <li> <a class="analytics t-pr-sitefooter-all" href="/opinion/">Submit an opinion piece</a> </li> <li> <a class="analytics t-events-sitefooter-start" href="/selfservice/event-listings/contact">Promote an event</a> </li> </ul> </div> <div class="footer-links"> <h4 class="uppercase-heading-01">Related Publications</h4> <ul class="list-no-bullets"> <li> <a href="https://www.smartcitiesdive.com/" class="analytics t-sitefooter-related-smart-cities-dive">Smart Cities Dive</a> </li> <li> <a href="https://www.wastedive.com/" class="analytics t-sitefooter-related-waste-dive">Waste Dive</a> </li> </ul> </div> </div> </div> </div> </div> </div> </footer> <hr class="footer-hr"> <div class="baseline-footer-wrapper"> <div class="informa-brand"> <!--?xml version="1.0" encoding="UTF-8"?--> <svg id="SVGRoot" width="500" height="162" version="1.1" viewBox="0 0 500 162" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <linearGradient id="linearGradient20775" x1="-24.025" x2="19.204" y1="-161.85" y2="-207.91" gradientTransform="matrix(1.4283 0 0 1.4283 268.58 476.51)" gradientUnits="userSpaceOnUse"> <stop stop-color="#061d41" offset="0"></stop> <stop stop-color="#061d42" stop-opacity=".6549" offset=".232"></stop> <stop stop-color="#051d40" stop-opacity=".56078" offset=".41621"></stop> <stop stop-color="#061c40" stop-opacity=".49804" offset=".61283"></stop> <stop stop-color="#061c40" stop-opacity=".35686" offset=".73858"></stop> <stop stop-color="#051f3e" stop-opacity=".19216" offset=".84133"></stop> <stop stop-color="#002449" stop-opacity=".054902" offset=".92525"></stop> <stop stop-color="#002449" stop-opacity=".054902" offset="1"></stop> </linearGradient> <linearGradient id="linearGradient20795" x1="-4.8824" x2="58.082" y1="-141.2" y2="-141.2" gradientTransform="matrix(1.4283 0 0 1.4283 268.6 476.54)" gradientUnits="userSpaceOnUse"> <stop stop-color="#061d41" offset="0"></stop> <stop stop-color="#223358" stop-opacity=".85098" offset=".098161"></stop> <stop stop-color="#3b486e" stop-opacity=".55686" offset=".18261"></stop> <stop stop-color="#535d82" stop-opacity=".4" offset=".26261"></stop> <stop stop-color="#656e8e" stop-opacity=".31765" offset=".33879"></stop> <stop stop-color="#77819f" stop-opacity=".21569" offset=".40636"></stop> <stop stop-color="#79809f" stop-opacity=".26275" offset=".46157"></stop> <stop stop-color="#495478" stop-opacity=".54902" offset=".5371"></stop> <stop stop-color="#26365c" stop-opacity=".66667" offset=".6699"></stop> <stop stop-color="#26375b" stop-opacity=".76863" offset=".80174"></stop> <stop stop-color="#13264b" stop-opacity=".9098" offset=".88553"></stop> <stop stop-color="#061d41" offset="1"></stop> </linearGradient> <linearGradient id="linearGradient20785" x1="10.56" x2="51.569" y1="-165.47" y2="-148.21" gradientTransform="matrix(1.4283 0 0 1.4283 268.58 476.51)" gradientUnits="userSpaceOnUse"> <stop stop-color="#061d41" offset="0"></stop> <stop stop-color="#061d42" stop-opacity=".6549" offset=".1618"></stop> <stop stop-color="#051d40" stop-opacity=".56078" offset=".34338"></stop> <stop stop-color="#061c40" stop-opacity=".49804" offset=".54217"></stop> <stop stop-color="#061c40" stop-opacity=".35686" offset=".66063"></stop> <stop stop-color="#051f3e" stop-opacity=".19216" offset=".78691"></stop> <stop stop-color="#002449" stop-opacity=".054902" offset=".89046"></stop> <stop stop-color="#002449" stop-opacity=".054902" offset="1"></stop> </linearGradient> </defs> <metadata> <rdf:rdf> <cc:work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"></dc:type> <dc:title></dc:title> </cc:work> </rdf:rdf> </metadata> <g transform="translate(-226.26 -174.1)"> <g fill="#061d41"> <path d="m433.38 241.62c-3.5038 0-6.3829-2.822-6.3829-6.3791s2.8792-6.3829 6.3829-6.3829 6.3791 2.8258 6.3791 6.3829-2.8754 6.3791-6.3791 6.3791m5.9945 50.686h-11.951v-46.269h11.951z"> </path> <path d="m477.3 292.31v-27.958c0-5.0614-0.5408-10.485-6.7371-10.485-3.4162 0-7.9101 1.4662-10.968 3.2143v35.228h-11.947v-46.265h11.947v4.6044c4.1398-3.0353 10.694-6.0706 15.816-6.0706 9.6163 0 13.836 7.1675 13.836 16.281v31.45z"> </path> <path d="m601.54 254.52c-3.5152 0.35038-7.2893 2.3003-10.344 4.0446v33.743h-11.951v-46.261h11.951v5.507c4.1321-3.0353 10.69-5.507 15.813-5.507v8.687s-2.9782-0.46083-5.4689-0.21328"> </path> <path d="m549.89 293.5c-15.276 0-23.452-9.4754-23.452-24.835 0-15.542 8.1767-24.096 23.452-24.096 14.822 0 23.452 9.0146 23.452 24.096 0 15.451-8.0853 24.835-23.452 24.835m0-40.655c-8.7175 0-11.593 8.4661-11.593 16.003 0 7.5445 2.6088 16.925 11.593 16.925 9.0793 0 11.68-9.2887 11.68-16.925 0-7.5369-2.963-16.003-11.68-16.003"> </path> <path d="m669.05 292.31v-27.958c0-5.1528-1.0816-10.485-7.1903-10.485-3.142 0-6.6457 1.4662-9.3421 3.2143 0.27039 1.1997 0.35799 2.4869 0.35799 3.778v31.45h-11.947v-27.958c0-5.0614-0.62838-10.485-6.8285-10.485-3.0582 0-6.8323 1.4662-9.3497 3.2143v35.228h-11.951v-46.265h11.951v4.6044c3.778-3.0353 9.9819-6.0706 14.735-6.0706 5.1262 0 9.1669 2.1099 11.505 6.8971 4.3149-2.9439 10.964-6.8971 16.174-6.8971 9.7039 0 13.836 7.1675 13.836 16.281v31.45z"> </path> <path d="m715.48 285.5c-3.2334 4.5054-9.2545 8.0015-14.735 8.0015-7.4569 0-13.84-5.0614-13.84-13.059 0-15.085 16.353-16.829 27.767-17.29v-2.7611c0-5.2404-4.2236-7.9063-9.0755-7.9063-4.4901 0-9.3421 0.63981-13.661 2.1137v-5.149c4.8557-3.0391 10.336-4.8748 16.087-4.8748 8.9841 0 18.239 3.9531 18.239 14.533v33.198h-10.782zm-16.982-6.8018c0 4.1398 2.6088 7.0761 6.6495 7.0761 5.0309 0 9.5249-4.3188 9.5249-9.563v-6.6228c-5.3013 0.28182-16.174 2.2089-16.174 9.1098"> </path> <path d="m520.32 236.2c1.5043 0 3.0658 0.14472 4.5815 0.36942v-5.2975c-2.9744-1.5538-6.2572-2.525-9.6125-2.525-10.606 0-15.001 7.3579-15.001 17.294h-5.5146v8.0548h5.5146l0.0876 38.206h12.035v-38.206h12.492v-8.0548h-12.579c0-5.8878 1.3482-9.841 7.9977-9.841"> </path> </g> <g fill="#061d41" fill-rule="evenodd" shape-rendering="auto"> <path d="m381.26 248.68c-2.4473 5.7e-4 -4.5519 1.4664-5.4845 3.568-0.38853 1.002-0.5029 1.8671-0.50214 2.798 1e-3 1.4426-0.0436 2.876-0.13391 4.2961-2.2793 35.836-31.958 64.081-68.38 64.081-37.915 0-68.523-30.608-68.523-68.523 0-1.6651 0.0792-3.3112 0.19528-4.9461h-12.007c-0.0999 1.6378-0.16738 3.2836-0.16738 4.9461 1e-5 44.387 36.114 80.499 80.501 80.499 42.933 0 78.125-33.783 80.384-76.164 0.0765-1.4352 0.0818-2.8815 0.11438-4.3352 0.0166-0.73955-0.17802-1.5025-0.30408-2.1229-0.79532-2.3817-3.0446-4.0986-5.6937-4.098z" color="#000000" color-rendering="auto" image-rendering="auto" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"> </path> <path d="m306.7 197.44c-0.88702-4.9e-4 -1.7724 0.34162-2.4884 0.59142-1.6476 0.85112-2.766 2.5696-2.7646 4.536 1e-3 1.7596 0.89642 3.3156 2.2624 4.2319 1.0349 0.56984 1.9875 0.91995 2.9905 0.92338 26.184 0.0893 47.302 21.117 47.302 47.302 0 1.5398-0.073 3.0621-0.21587 4.5636l10.251 0.79182c0.16357-1.7636 0.2472-3.5499 0.2472-5.3554 0-31.742-25.842-57.567-57.584-57.584zm-52.471 52.105c-2.4386-6.7e-4 -4.4709 1.6825-4.9851 3.9669-0.12083 0.53679-0.12789 1.0361-0.12832 1.512-5e-3 5.2759 0.70622 10.388 2.0408 15.246l10.155-1.9255c-1.2353-4.2224-1.9022-8.692-1.9127-13.32-2e-3 -0.69049-0.14382-1.4219-0.33476-2.042-0.62601-2.033-2.5892-3.4362-4.8345-3.4369z" color="#000000" color-rendering="auto" image-rendering="auto" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"> </path> <path d="m281.67 229.68c-6.5492 6.4699-10.616 15.447-10.616 25.347 0 7.0626 2.0718 13.653 5.6379 19.198l0.86758 1.2693c0.8646 1.2649 2.0641 2.1192 3.5457 2.1201 2.2281 1e-3 4.0346-1.8058 4.0339-4.0338-3.7e-4 -1.0655-0.50216-2.016-1.1744-2.8427-0.5747-0.70663-1.0534-1.5768-1.512-2.4103-2.1674-3.9394-3.4006-8.4678-3.4006-13.301 0-7.7048 3.1245-14.644 8.1787-19.64z" color="#000000" color-rendering="auto" image-rendering="auto" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"> </path> </g> <g fill="#071b40" fill-opacity=".29804" fill-rule="evenodd"> <g stroke-width="1.3525"> <path d="m291.86 206.48a5.1041 5.1041 0 0 1 -5.1041 5.1041 5.1041 5.1041 0 0 1 -5.1041 -5.1041 5.1041 5.1041 0 0 1 5.1041 -5.1041 5.1041 5.1041 0 0 1 5.1041 5.1041z"> </path> <path d="m274.75 217.8a5.1041 5.1041 0 0 1 -5.1041 5.1041 5.1041 5.1041 0 0 1 -5.1041 -5.1041 5.1041 5.1041 0 0 1 5.1041 -5.1041 5.1041 5.1041 0 0 1 5.1041 5.1041z"> </path> <path d="m263.36 234.81a5.1041 5.1041 0 0 1 -5.1041 5.1041 5.1041 5.1041 0 0 1 -5.1041 -5.1041 5.1041 5.1041 0 0 1 5.1041 -5.1041 5.1041 5.1041 0 0 1 5.1041 5.1041z"> </path> </g> <g stroke-width="1.0687"> <path d="m320.64 285.07a4.0328 4.0328 0 0 1 -4.0328 4.0328 4.0328 4.0328 0 0 1 -4.0328 -4.0328 4.0328 4.0328 0 0 1 4.0328 -4.0328 4.0328 4.0328 0 0 1 4.0328 4.0328z"> </path> <path d="m301.02 285.09a4.0328 4.0328 0 0 1 -4.0328 4.0328 4.0328 4.0328 0 0 1 -4.0328 -4.0328 4.0328 4.0328 0 0 1 4.0328 -4.0328 4.0328 4.0328 0 0 1 4.0328 4.0328z"> </path> <path d="m336.5 273.53a4.0328 4.0328 0 0 1 -4.0328 4.0328 4.0328 4.0328 0 0 1 -4.0328 -4.0328 4.0328 4.0328 0 0 1 4.0328 -4.0328 4.0328 4.0328 0 0 1 4.0328 4.0328z"> </path> </g> <g stroke-width="1.5897"> <path d="m312.8 180.37a5.9989 5.9989 0 0 1 -5.9989 5.9989 5.9989 5.9989 0 0 1 -5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 5.9989z"> </path> <path d="m332.03 182.94a5.9989 5.9989 0 0 1 -5.9989 5.9989 5.9989 5.9989 0 0 1 -5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 5.9989z"> </path> <path d="m350.06 190.37a5.9989 5.9989 0 0 1 -5.9989 5.9989 5.9989 5.9989 0 0 1 -5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 5.9989z"> </path> <path d="m365.49 202.19a5.9989 5.9989 0 0 1 -5.9989 5.9989 5.9989 5.9989 0 0 1 -5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 5.9989z"> </path> <path d="m377.25 217.59a5.9989 5.9989 0 0 1 -5.9989 5.9989 5.9989 5.9989 0 0 1 -5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 5.9989z"> </path> <path d="m384.78 235.81a5.9989 5.9989 0 0 1 -5.9989 5.9989 5.9989 5.9989 0 0 1 -5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 -5.9989 5.9989 5.9989 0 0 1 5.9989 5.9989z"> </path> </g> </g> <g fill-rule="evenodd" shape-rendering="auto"> <path d="m295.46 175.21c-39.056 5.5116-69.203 39.138-69.203 79.69h11.979c0-34.643 25.557-63.171 58.89-67.839z" color="#000000" color-rendering="auto" fill="url(#linearGradient20775)" image-rendering="auto" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"> </path> <path d="m354.02 255.05c0 26.184-21.117 47.302-47.302 47.302-22.44 0-41.114-15.509-46.034-36.426l-10.01 2.4168c6.0075 25.359 28.875 44.292 56.044 44.292 31.742 0 57.584-25.842 57.584-57.584z" color="#000000" color-rendering="auto" fill="url(#linearGradient20795)" image-rendering="auto" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"> </path> <path d="m306.7 219.37c-10.191 0-19.404 4.3099-25.911 11.201l5.893 5.3366c5.0292-5.267 12.128-8.5393 20.018-8.5393 15.319 0 27.651 12.335 27.651 27.654 0 3.852-0.78457 7.5121-2.1955 10.838l7.3396 3.116c1.8342-4.2892 2.8538-9.0054 2.8538-13.954 0-19.642-16.007-35.652-35.649-35.652z" color="#000000" color-rendering="auto" fill="url(#linearGradient20785)" image-rendering="auto" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"> </path> </g> </g> </svg> <div> Industry Dive is an Informa business </div> </div> <div class="baseline-footer"> © 2024 <a href="http://www.industrydive.com">Industry Dive</a>. All rights reserved. | View our <a href="http://www.industrydive.com/industries/">other publications</a> | <a href="http://www.industrydive.com/privacy-policy/">Privacy policy</a> | <a href="http://www.industrydive.com/terms-of-use/">Terms of use</a> | <a href="http://www.industrydive.com/takedown-policy/">Take down policy</a>. <br> <a href="#" onclick="Osano.cm.showDrawer('osano-cm-dom-info-dialog-open')">Cookie Preferences / Do Not Sell</a> </div> </div> </div> </div> <!-- mobile menu, not visible on desktop, must go AFTER footer --> <nav class="mobile-menu"> <div class="mm-top-bar"> <button class="mobile-menu-toggle"> <img src="/static/img/menu_icons/close.svg?273117231121" width="20" height="20" alt="close menu"/> </button> <div class="mm-search"> <form action="/search/" method="GET" data-ajax="false"> <label for="search-mobile"> <span class="screen-reader-text">Search</span> <input id="search-mobile" type="search" name="q" placeholder="Search" data-role="none"> </label> <button type="submit" value="" data-role="none" class="search-button-front analytics t-search-navigation-mobile"> <img src="/static/img/menu_icons/search.svg?320116291121" width="15" height="15" alt="search"> </button> </form> </div> </div> <ul class="mm-list list-no-bullets"> <li> <a href="/" class="analytics t-dash-navigation-mobile"> <span>Home</span> </a> </li> <li class="mm-accordion"> <button> <span>Topics</span> <span class="accordion-toggle-arrow"> <img src="/static/img/menu_icons/chevron_down.svg?102717100918" width="16" height="9" alt="down arrow" loading="lazy"> </span> </button> <ul class="list-no-bullets"> <li> <a class="analytics t-topic-navigation-mobile-Generation" href="/topic/Generation/">Generation</a> </li> <li> <a class="analytics t-topic-navigation-mobile-transmission-distribution" href="/topic/transmission-distribution/">T&D</a> </li> <li> <a class="analytics t-topic-navigation-mobile-grid-security-reliability" href="/topic/grid-security-reliability/">Grid Reliability</a> </li> <li> <a class="analytics t-topic-navigation-mobile-building-transportation-electrification" href="/topic/building-transportation-electrification/">Electrification</a> </li> <li> <a class="analytics t-topic-navigation-mobile-demand-response" href="/topic/demand-response/">Load Management</a> </li> <li> <a class="analytics t-topic-navigation-mobile-solar" href="/topic/solar/">Renewables</a> </li> <li> <a class="analytics t-topic-navigation-mobile-storage" href="/topic/storage/">Storage</a> </li> <li> <a class="analytics t-topic-navigation-mobile-distributed-energy" href="/topic/distributed-energy/">DER</a> </li> <li> <a class="analytics t-topic-navigation-mobile-policy" href="/topic/policy/">Regs</a> </li> <li> <a class="analytics t-topic-navigation-mobile-market-news" href="/topic/market-news/">Corp News</a> </li> </ul> </li> <li> <a href="/deep-dive/" class="analytics t-deepdive-navigation-mobile"> <span>Deep Dive</span> </a> </li> <li> <a href="/opinion/" class="analytics t-opinion-navigation-mobile"> <span>Opinion</span> </a> </li> <li> <a href="/library/" class="analytics t-library-navigation-mobile"> <span>Library</span> </a> </li> <li> <a href="/events/" class="analytics t-events-navigation-mobile"> <span>Events</span> </a> </li> <li> <a href="/press-release/" class="analytics t-press-releases-navigation-mobile"> <span>Press Releases</span> </a> </li> </ul> <section class="signup mm-signup"> <div class="row"> <div class="large-9 medium-10 medium-centered columns"> <h3 class="display-heading-03 display-heading-03--loud">Get Utility Dive in your inbox</h3> <p class="subhead">The free newsletter covering the top industry headlines</p> <form class="form js-form-email-validate" name="signup" action="/signup/" method="POST"> <label for="id_18a089_email" class="email-input js-email-input"> <span class="screen-reader-text">Email:</span> <input type="email" name="email" placeholder="Work email address" class="email" required id="id_18a089_email"> </label> <input type="hidden" name="signup_box_location" value="integrated_menu"> <input type="hidden" name="signup_initial_url_path" value="/press-release/20241107-heat-pump-assisted-water-heater-technology-could-make-big-lift/"> <input type="hidden" name="js_enabled" value="0" id="id_18a089_js_enabled"> <ul class="signup-list list-no-bullets"> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-2" type="checkbox" name="site_newsletters" value="2" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-2"> <span class="newsletter-title">Daily Dive</span> <span class="secondary-label">M-F</span> </label> </li> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-41" type="checkbox" name="site_newsletters" value="41" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-41"> <span class="newsletter-title">Storage Weekly</span> <span class="secondary-label">Every Tuesday</span> </label> </li> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-13" type="checkbox" name="site_newsletters" value="13" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-13"> <span class="newsletter-title">Load Management Weekly</span> <span class="secondary-label">Every Wednesday</span> </label> </li> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-25" type="checkbox" name="site_newsletters" value="25" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-25"> <span class="newsletter-title">Renewable Energy Weekly</span> <span class="secondary-label">Every Thursday</span> </label> </li> <li> <label><span class="screen-reader-text">Select user consent:</span></label> <input type="checkbox" name="user_consent" id="id_user_consent-integrated_menu" value="1" class="checkbox"/> <label for="id_user_consent-integrated_menu"> <span class="signup-user-consent_box"> <span> By signing up to receive our newsletter, you agree to our <a href="https://www.industrydive.com/terms-of-use/" target="_blank">Terms of Use</a> and <a href="https://www.industrydive.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime. </span> </span> </label> </li> </ul> <button class="button button--medium signup-button" type="submit" value="Sign up">Sign up</button> <script type="module" src="/static/js/dist/sendEmailToLytics.bundle.js?520216211124" ></script> <label class="error email_error" style="display:none;">A valid email address is required.</label> <label class="error newsletter-error" style="display:none;">Please select at least one newsletter.</label> </form> </div> </div> </section> </nav> <!-- Track signups for Facebook Conversions API --> <script type="module" src="/static/js/dist/signupValidation.bundle.js?520216211124" ></script> <script type="module" src="/static/js/dist/gtmEvents.bundle.js?520216211124" ></script> <!-- Convert straight quotes to curly --> <script type="module" src="/static/js/dist/smartQuotes.bundle.js?520216211124" ></script> <script src="//platform.twitter.com/oct.js" type="text/javascript"></script> <script type="text/javascript"> if(typeof twttr !== 'undefined' && typeof twttr.conversion !== 'undefined') { twttr.conversion.trackPid('l6gv6', { tw_sale_amount: 0, tw_order_quantity: 0 }); } else { window.console && console.log && console.log('twttr undefined; Unable to track twitter retargeting'); } </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://analytics.twitter.com/i/adsct?txn_id=l6gv6&p_id=Twitter&tw_sale_amount=0&tw_order_quantity=0" /> <img height="1" width="1" style="display:none;" alt="" src="//t.co/i/adsct?txn_id=l6gv6&p_id=Twitter&tw_sale_amount=0&tw_order_quantity=0" /> </noscript> <script> // Set cookie if we're on mobile app. Expire if we're not. This affects // which template is used to display the site to the user. $(document).ready(function() { // Get integer value of mobileapp param from URL and default to 0 if it doesn't exist var mobileapp = ''; // Set cookie if mobileapp is 1 or 2 or expire cookie if mobileapp == 0 if (mobileapp == '0') { document.cookie = 'mobileapp=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } else if (mobileapp == '1' || mobileapp == '2') { document.cookie = 'mobileapp=' + mobileapp + '; path=/;'; } // There's no need to immediately load or preload print.css since it's not needed on page // load. Therefore, load it when the document is ready var stylesheet=document.createElement("link"); stylesheet.setAttribute("rel", "stylesheet"); stylesheet.setAttribute("type", "text/css"); stylesheet.setAttribute("media", "print"); if (window.location.pathname.includes('trendline')) { stylesheet.setAttribute("href", "/static/css/print_trendline.css?300116211124"); } else { stylesheet.setAttribute("href", "/static/css/print.css?300116211124"); } document.getElementsByTagName("head")[0].appendChild(stylesheet); }); </script> <!-- Sailthru Horizon --> <!-- <script type="text/javascript" src="https://ak.sail-horizon.com/horizon/v1.js"></script> --> <script src="https://ak.sail-horizon.com/spm/spm.v1.min.js"></script> <script type="text/javascript"> $(function() { // Sailthru Personalization Engine Setup var sailthru_setup = { customerId: '12ab35a80530ffa5450add9c09f5de04', domain: 'horizon.utilitydive.com', spider: false }; if (window.Sailthru) { Sailthru.init(sailthru_setup); } }); </script> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e718b73f9ed6bc9',t:'MTczMjM2ODk1MS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>