Instant hot water taps: Here's everything you ever needed to know
Instant hot water taps are a space-saving, time-saving addition that will change the way you use your kitchen. Find out everything you need to know.
FreemarkerView[template=/jar:id:contentproperty:/Themes/insinkerator/templates/insinkerator-templates.jar/archive!/META-INF/resources/WEB-INF/templates/insinkerator/com.coremedia.blueprint.common.contentbeans/Page._additionalHead.ftl]
com.coremedia.blueprint.cae.contentbeans.PageImpl$$[navigation=com.coremedia.blueprint.cae.contentbeans.CMChannelImpl[id=7519628], content=com.coremedia.blueprint.cae.contentbeans.CMChannelImpl[id=7519628]]
Error rendering view
Current store context is not set.
com.coremedia.blueprint.cae.contentbeans.PageImpl$$ com.coremedia.objectserver.dataviews.DataView com.coremedia.dispatch.HasCustomType com.coremedia.blueprint.cae.contentbeans.PageImpl com.coremedia.blueprint.common.contentbeans.Page com.coremedia.blueprint.cae.contentbeans.AbstractPageImpl com.coremedia.blueprint.common.contentbeans.AbstractPage com.coremedia.blueprint.common.datevalidation.ValidityPeriod com.coremedia.objectserver.dataviews.AssumesIdentity java.lang.Object
com.coremedia.objectserver.view.ViewException: Error rendering view at com.coremedia.objectserver.view.ViewUtils.rethrow(ViewUtils.java:344) at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:154) at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:184) at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:124) at com.coremedia.objectserver.view.freemarker.impl.CAEFreemarkerFacadeImpl.include(CAEFreemarkerFacadeImpl.java:159) at jdk.internal.reflect.GeneratedMethodAccessor288.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1552) at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73) at freemarker.core.MethodCall._eval(MethodCall.java:62) at freemarker.core.Expression.eval(Expression.java:101) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100) at freemarker.core.DollarVariable.accept(DollarVariable.java:63) at freemarker.core.Environment.visit(Environment.java:383) at freemarker.core.Environment.visitAndTransform(Environment.java:514) at freemarker.core.CompressedBlock.accept(CompressedBlock.java:42) at freemarker.core.Environment.visit(Environment.java:383) at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:889) at freemarker.core.Environment.invokeMacro(Environment.java:825) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) at freemarker.core.Environment.visit(Environment.java:347) at freemarker.core.Environment.visit(Environment.java:353) at freemarker.core.Environment.process(Environment.java:326) at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:150) at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428) at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:184) at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:124) at com.coremedia.objectserver.view.freemarker.impl.CAEFreemarkerFacadeImpl.include(CAEFreemarkerFacadeImpl.java:159) at jdk.internal.reflect.GeneratedMethodAccessor288.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1552) at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73) at freemarker.core.MethodCall._eval(MethodCall.java:62) at freemarker.core.Expression.eval(Expression.java:101) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100) at freemarker.core.DollarVariable.accept(DollarVariable.java:63) at freemarker.core.Environment.visit(Environment.java:383) at freemarker.core.Environment.visitAndTransform(Environment.java:514) at freemarker.core.CompressedBlock.accept(CompressedBlock.java:42) at freemarker.core.Environment.visit(Environment.java:383) at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:889) at freemarker.core.Environment.invokeMacro(Environment.java:825) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) at freemarker.core.Environment.visit(Environment.java:347) at freemarker.core.Environment.visit(Environment.java:353) at freemarker.core.Environment.process(Environment.java:326) at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:150) at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:122) at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:113) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:334) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:336) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:336) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422) at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:113) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:334) at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422) at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:152) at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:109) at com.coremedia.objectserver.view.BeanView.renderMergedOutputModel(BeanView.java:63) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084) at com.coremedia.objectserver.web.DispatcherServlet.doDispatch(DispatcherServlet.java:69) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.coremedia.livecontext.fragment.FragmentContextProvider.doFilter(FragmentContextProvider.java:71) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.coremedia.blueprint.cae.filter.PreviewViewFilter.doFilterInternal(PreviewViewFilter.java:48) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.coremedia.blueprint.cae.filter.SiteFilter.doFilter(SiteFilter.java:54) at com.emerson.globalization.web.filter.VirtualSiteFilter.doFilter(VirtualSiteFilter.java:40) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.coremedia.livecontext.preview.PreviewMarkerFilter.doFilter(PreviewMarkerFilter.java:35) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.coremedia.blueprint.livecontext.ecommerce.filter.CommerceConnectionFilter.doFilter(CommerceConnectionFilter.java:44) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.coremedia.blueprint.cae.filter.SiteFilter.doFilter(SiteFilter.java:54) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.emerson.blueprint.component.cae.csrf.CsrfLegacyTokenGetterFilter.doFilterInternal(CsrfLegacyTokenGetterFilter.java:19) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.coremedia.blueprint.cae.filter.RequestRejectedExceptionFilter.doFilter(RequestRejectedExceptionFilter.java:41) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1787) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: com.coremedia.blueprint.base.livecontext.ecommerce.common.NoStoreContextAvailable: Current store context is not set. at com.coremedia.blueprint.base.livecontext.ecommerce.common.CurrentStoreContext.lambda$get$0(CurrentStoreContext.java:31) at java.base/java.util.Optional.orElseThrow(Optional.java:408) at com.coremedia.blueprint.base.livecontext.ecommerce.common.CurrentStoreContext.get(CurrentStoreContext.java:31) at com.emerson.web.taglib.EmersonFreemarkerFacade.getStoreContext(EmersonFreemarkerFacade.java:552) at jdk.internal.reflect.GeneratedMethodAccessor373.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1552) at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73) at freemarker.core.MethodCall._eval(MethodCall.java:62) at freemarker.core.Expression.eval(Expression.java:101) at freemarker.core.ReturnInstruction.accept(ReturnInstruction.java:38) at freemarker.core.Environment.visit(Environment.java:383) at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:889) at freemarker.core.Environment.invokeMacro(Environment.java:825) at freemarker.core.Environment.invokeFunction(Environment.java:841) at freemarker.core.MethodCall._eval(MethodCall.java:65) at freemarker.core.Expression.eval(Expression.java:101) at freemarker.core.Assignment.accept(Assignment.java:134) at freemarker.core.Environment.visit(Environment.java:347) at freemarker.core.Environment.visit(Environment.java:353) at freemarker.core.Environment.process(Environment.java:326) at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:150) ... 196 more
Right now, it seems like there’s a new must-have kitchen gadget every week. Yet in a world where your fridge can order groceries for you and your smartphone can switch on the toaster, it can sometimes be tricky to spot what’s genuinely useful. Amid the whirlwind of show-off innovation there are certain things that will make a tangible difference to your day-to-day life. InSinkErator’s instant hot water tap is one of them.
It’s easy to start wondering if you could have written a bestselling novel in all the minutes you’ve wasted waiting for the kettle to boil, but the statistics speak for themselves. We waste over £68 million a year by overfilling the kettle, and 67% of us overfill it every time we use it. As well as water bills, there’s electricity to consider – how many times have you re-boiled the kettle because you started making tea and got distracted?
The kettle’s been there on the worktop for as long as anyone can remember, so most of us have never really thought to question it. But take a look at yours – especially against a backdrop of environmental concerns and waste reduction efforts – and the millions of kettles sitting in kitchens all over the country start to seem a bit dated.
Many kitchen inventions seem to be pro-laziness (who knew it was so hard to scribble down a shopping list?), but an instant hot water tap does much more than give you an extra two minutes of dozing before your morning coffee. Not only is it a space-saving, money-saving, time-saving alternative to your kettle – it will streamline the kitchen, bringing countless benefits to cooking, cleaning and hosting in the most important room in your home...
It’s quick, convenient and easy. With the pull of a lever, an instant hot water tap will dispense filtered, steaming, near-boiling water whenever you need it. It works a lot like an electric shower, taking water from your property’s mains supply and rapidly heating it with an electrical element – all within a heavily insulated storage tank.
Most instant hot water taps will give you water that’s somewhere between 96°c and 99°c. That’s just below boiling point (100°c) and brings much the same benefit without burning your coffee beans – really, there’s no day-to-day need for your “boiling” water to actually be at 100°c.
All of InSinkErator’s instant hot water taps can be fitted to your existing kitchen sink, and our popular 3N1 or 4N1 can replace the main tap altogether by offering regular hot and cold water too. Certain models offer cold, filtered water from the same dispenser as the near-boiling water – a handy alternative to the bulky filter jugs that sit inside the fridge door.
Easy to install for anyone who’s handy with a spanner, it will become an unobtrusive and stylish addition to the area around your sink. The filter and tank will fit comfortably into the cupboard underneath. This reduces chlorine, lead, turbidity and other unpleasant tastes and odours to deliver the purest water possible.
The benefits of an instant hot water tap go far beyond an extra-quick cuppa. If you get one installed you won’t believe how many jobs around the kitchen – big and small – are made easier with near-boiling water at your fingertips.
InSinkErator’s instant hot water taps are manufactured to the highest quality and come in six elegant and functional models, so you’re sure to find one that suits your kitchen.
4N1 Touch Steaming Hot Water Tap
Introduced in 2019, this might just be the tap we’re most proud of. With premium Italian design and cutting-edge manufacturing processes, it provides steaming hot water, filtered cold water and regular hot and cold water – all with the pull of a lever.
You can even get filtered cold water with our industry-leading touch button that responds immediately to the touch of your fingers. With a range of finishes to suit any kitchen, the 4N1 touch comes in three shapes – choose a U, J or L shape.
Choice of finishes: Chrome, brushed stainless steel or velvet black
3N1 Steaming Hot Combined Main Tap
This tap will become the heart of your kitchen, replacing your main mixer tap and dispensing regular hot and cold water alongside our steaming hot speciality.
Choice of finishes: Chrome, brushed stainless steel or anthracite
HC3300 Steaming Hot & Cold Water Tap
Ranked as one of the best instant hot water taps around, the HC3300 sits comfortably alongside your main tap and dispenses steaming hot water as well as filtered cold water.
Choice of finishes: Chrome or brushed stainless steel
This tap is a sleek, neat addition to your sink if you’re just looking for pure steaming hot water dispensed with a single lever. It will sit alongside your existing tap.
Choice of finishes: Chrome or brushed stainless steel
HC1100 Steaming Hot & Cold Water Tap
With two separate levers, this slim tap will sit discreetly alongside your existing tap and dispense steaming hot water and filtered cold water whenever you need them.
Choice of finishes: Chrome or brushed stainless steel
At the touch of a single lever, this simple tap will sit stylishly over your sink alongside your existing tap and deliver steaming hot water whenever you need it.
Choice of finishes: Chrome or brushed stainless steel
Considering they place potentially scalding hot water at the heart of your kitchen, it’s understandable to have concerns. A curious toddler or even a guest trying to wash their hands could start tinkering with your kitchen taps unsupervised, so safety is a top priority in the design of any instant hot water tap. All InSinkErator’s taps come with a sturdy, built-in safety catch to prevent near-boiling water from being dispensed by accident.
This catch has to be pressed down before turning the lever at all – and water will only pour out for as long as the catch is depressed. Let go, and the tap will immediately spring into the off position. It’s simple enough to use one-handed and fill up your cup, yet subtle enough that you or anyone else would be highly unlikely to release steaming hot water by accident.
You can’t accidentally drop or knock over an instant hot water tap, and – unlike kettles – they’re insulated, so the outside of them won’t get dangerously hot even during use. They also dispense water at a slightly lower pressure than a regular hot or cold tap. This takes some of the force out of the water flow and ensures that splashing and spitting are kept to a minimum as the water falls.
Buying and installing a high-quality InSinkErator instant hot water tap and tank comes at a price that reflects the difference it will make. We also recommend that you put in a replacement filter every 6 to 8 months in order to keep your water pure and great-tasting. But splashing out on these doesn’t mean it’s a costly purchase in the long run. If you’re currently using your kettle several times a day, you’ll quickly find that you’re making significant savings by using a tap instead.
On average, an instant hot water tap will cost you no more than a few pence per day to keep running. Boiling a full kettle just once costs 2.5 pence – and even if you don’t fill it to the brim very often, if (like 67% of people) you’re a regular over-filler, you can imagine how quickly repeated use of a kettle can push costs up to more than a few pence daily.
That’s just the electricity bill – think how much you’ll save on your water bill just by using the right amount. An instant hot water tap encourages careful use of water, as no one’s going to stand with their finger on the catch letting it run down the sink. Without a kettle to overfill, one mug of tea becomes only one mug’s worth of water. Over time, this will inevitably make for a drastic reduction in your consumption. It might even make you more aware of your water usage habits in other parts of the home, too, making for some real savings.