Lumi+ Electric Shower (2025)

My Basket

Loading...

My Basket

Loading...

Are you sure?

Are you sure you want to remove this item from your shopping cart?

Checkout using your account

Checkout as a new customer

Creating an account has many benefits:

  • See order and shipping status
  • Track order history
  • Check out faster

Create an Account

Lumi+ Electric Shower (51)

Main image Lumi+ Electric Shower (52)

2 Year Warranty

New for 2024

Lumi+ Electric Shower (54)

Easy Installation

Safe Touch

LED Lighting

Exquisite mirror finish and lighting illuminates the room.

Exquisite mirror finish seamlessly complements your bathroom decor, while the lighting strip indicator illuminates the room with a touch of style.

  • Technical Specification

Loading...

Trustpilot

“Brilliant products and outstanding customer service that is so rare to find these days.”

- Jon Haynes
  • Aqualisa introduces the next step in modern shower design with the Lumi+ Electric Shower. Crafted for luxury and functionality, this shower elevates your daily routine into an indulgent experience. The exquisite mirror finish seamlessly complements your bathroom decor, while the lighting strip indicator illuminates the room with a touch of style. Customise your shower with invigorating sprays using the 5-spray handset, equipped with rub clean nozzles.

    The dynamic lighting strip keeps you informed of water conditions, and safety comes first with over-temperature protection. Phased shutdown reduces limescale build up and flexible water entry and cable points ensure easy installation. Available in 8.5kW, 9.5kW, and 10.5kW models, choose the ideal power level for your needs. Elevate your daily ritual with the Lumi+ Electric Shower. Experience the perfect blend of style, performance, and safety.

  • Lumi+ Electric Shower (55)
  • Lumi+ Electric Shower (56)

Technical Specification

  • Power

    8.5KW / 9.5KW / 10.5KW

  • Minimum pressure

    0.085 MPa (0.85 bar) Recommended: 1 bar

  • Maximum pressure

    1.0 MPa (10 bar)

  • Recommended maximum pressure

    3 bar

  • Water entry points

    Right hand side and left hand side: top, bottom, side and rear

  • Cable entry points

    Right hand side and left hand side: top, bottom and rear

  • Inlet fitting connections

    15mm compression or push fit elbow

  • Outlet fitting connections

    1/2” BSP thread

  • Electric requirements

    Supply voltage 230 – 240V, MCB rating : 8.5KW and 9.5KW - 40A 10.5KW - 45/50A

  • Water system

    Mains cold system

  • Features

    Lighting/illumination features
    Push button start/stop
    Gel hanger
    Rotary controls (power control rotary control)
    Safety features: phased shut down, over temperature protection
    Low pressure indicator
    Smooth satin hose - 1500mm x 11mm
    105mm handset, 5 spray patterns

  • Colour

    Mirror with illumination

  • Guarantee period

    Shower unit – 2 years
    Shower head and kit – 2 years

  • Approvals

    CE Marking, BEAB, European Water Label, ERP Directive, WRAS

Lumi+ Electric Shower (57)

View Data Sheets

View our datasheets page to see product datasheets for all of our SKUs.

View Data Sheets

Lumi+ Electric Shower (58)

User Guides

Download or view Product User Guides

Read our user guides which will help you understand your new Shower and how to maximise all the benefits.

View User Our Guides

Lumi+ Electric Shower (59)

Installation Guide

All Aqualisa Installation Guides

Complete step by step guides to help install your new Smart Digital Shower.

View and Download Installation Guides

Other Popular Showers

View, configure and buy, Smart, Electric or Mixer Showers online now.

Customer Support Hub

How can we help you?

Whether it's a quick question about your new shower or you have a technical query, give our UK based Customer Support team a call on 01959 560010 or start a Live Chat with us. We'll be happy to help.

01959 560010 Live Chat enquiries@aqualisa.co.uk

Lumi+ Electric Shower (75)

Are you sure?

Are you sure you want to remove this item from your shopping cart?

` + this.$refs.debug.innerHTML; } }, initSlider() { this.slideEls = this.$el.querySelectorAll('.slide'); // Slider setup this.getCurrentOptions(); this.setSlideWidth(); this.setSlidePadding(); this.setActiveSlides(); if (this.currentOptions.infinite) this.setStartPosition(); }, initSwipeEvents() { const slider = this.$refs.slider; let startX, startY, distX, distY, swipeDistance, isDragging = false; const startDrag = (pageX, pageY) => { this.debug('startDrag') // Prevent swipe when sliding if (this.swipeDisabled) return; startX = pageX; startY = pageY; isDragging = true; swipeDistance = 0; slider.classList.remove('transition-transform', 'duration-500'); }; const onDrag = (pageX, pageY) => { this.debug('onDrag') if (isDragging) { distX = pageX - startX; distY = pageY - startY; swipeDistance = Math.abs(distX); // Check if swipe is predominantly horizontal if (Math.abs(distX) > Math.abs(distY)) { slider.style.transform = `translateX(-${this.position - distX}px)`; // Allow click if swipe distance less than 10px if (swipeDistance > 10) { slider.classList.add('pointer-events-none'); } } } }; const endDrag = () => { this.debug('endDrag') if (isDragging && Math.abs(distX) > Math.abs(distY)) { if (swipeDistance > 10) { // When swipe finished, change slide depending on direction if (distX > 0) { this.changeSlide(); } else if (distX < 0) { this.changeSlide(true); } slider.classList.add('transition-transform', 'duration-500'); } slider.classList.remove('pointer-events-none'); } isDragging = false; swipeDistance = 0; }; // Touch events slider.addEventListener('touchstart', e => { this.debug('touchstart'); const touchObj = e.touches[0]; startDrag(touchObj.pageX, touchObj.pageY); }, { passive: true, capture: false }); slider.addEventListener('touchmove', e => { this.debug('touchmove'); const touchObj = e.touches[0]; onDrag(touchObj.pageX, touchObj.pageY); }, { passive: true, capture: false }); slider.addEventListener('touchend', e => { this.debug('touchend'); endDrag(); }, { passive: true, capture: false }); // Mouse events if (!this.mqMobile.matches) { slider.addEventListener('mousedown', e => { this.debug('mousedown'); startDrag(e.pageX, e.pageY); e.preventDefault(); }, false); document.addEventListener('mousemove', e => { this.debug('mousemove'); onDrag(e.pageX, e.pageY); }, { passive: true, capture: false }); document.addEventListener('mouseup', e => { this.debug('mouseup'); endDrag(); }, { passive: true, capture: false }); } }, setSlideWidth() { this.slideWidth = (this.$refs.sliderContainer.offsetWidth + this.gap) / this.slidesToShow; for (const slideEl of this.slideEls) { slideEl.style.width = `${this.slideWidth}px`; } }, setSlidePadding() { this.$refs.slider.style.marginRight = `-${this.gap / 2}px`; this.$refs.slider.style.marginLeft = `-${this.gap / 2}px`; for (const slideEl of this.slideEls) { const slideContent = slideEl.querySelector('.slide-content'); slideContent.style.paddingRight = `${this.gap / 2}px`; slideContent.style.paddingLeft = `${this.gap / 2}px`; } }, cloneSlides() { // Remove cloned slides this.slides = this.slides.filter(slide => !slide.isClone); // Calculate number of clones let cloneCount = Math.floor(window.innerWidth / this.slideWidth + 2) - this.slidesToShow; if (cloneCount % 2 !== 0) cloneCount += 1; // Add clones const startClones = this.slides.slice(0, cloneCount / 2).map(clone => ({ ...clone, isClone: true })); const endClones = this.slides.slice(-(cloneCount / 2)).map(clone => ({ ...clone, isClone: true })); this.cloneCount = cloneCount; this.slides = [...endClones, ...this.slides, ...startClones]; // Init slider after clones have been added const observer = new MutationObserver(mutations => { for(let mutation of mutations) { if(mutation.addedNodes.length) { observer.disconnect(); this.initSlider(); break; } } }); observer.observe(this.$el, { childList: true, subtree: true }); }, setStartPosition() { // Set initial position for infinite slider, set to first real slide this.position = this.cloneCount / 2 * this.slideWidth; this.$refs.slider.style.transform = `translateX(-${this.position}px)`; }, changeSlide(next) { // Prevent click when sliding if (this.swipeDisabled) return; this.swipeDisabled = true; this.$refs.slider.classList.add('transition-transform', 'duration-500'); if (this.currentOptions.infinite) { // If infinite, move slider left or right by one this.$refs.slider.style.transform = `translateX(-${this.position + (next ? this.slideWidth : -this.slideWidth)}px)`; } else { // If not infinite, update current position and move left or right // Min position is 0 and max is the width of all slides minus slidesToShow this.position += (next ? this.slideWidth : -this.slideWidth); // if (this.loop) { if (this.position < 0) { this.position = (this.slides.length * this.slideWidth) - (this.slidesToShow * this.slideWidth); } if (this.position > (this.slides.length * this.slideWidth) - (this.slidesToShow * this.slideWidth)) { this.position = 0; } } else { this.position = Math.max(0, Math.min(this.position, (this.slides.length * this.slideWidth) - (this.slidesToShow * this.slideWidth))); } this.$refs.slider.style.transform = `translateX(-${this.position}px)`; } setTimeout(() => { // Move slides to start or end if infinite if (this.currentOptions.infinite) { next ? this.slides.push(this.slides.shift()) : this.slides.unshift(this.slides.pop()); } // Used for dots and active classes. // If infinite set active slide back to start if at the end etc. If not infinite limit between 1 and max minus slidesToShow if (this.currentOptions.infinite) { this.activeSlide = next ? (this.activeSlide < slidesJson.length ? this.activeSlide + 1 : 1) : (this.activeSlide > 1 ? this.activeSlide - 1 : slidesJson.length); } else { this.activeSlide = next ? (this.activeSlide <= slidesJson.length - this.slidesToShow ? this.activeSlide + 1 : this.activeSlide) : (this.activeSlide > 1 ? this.activeSlide - 1 : this.activeSlide); } // Remove transition and reset position this.$refs.slider.classList.remove('transition-transform', 'duration-500'); if (this.currentOptions.infinite) this.setStartPosition(); this.swipeDisabled = false; this.setActiveSlides(); }, 500); }, setActiveSlides() { // Add active class to slides to change opacity let slideIndex = 0; for (const slideEl of this.slideEls) { slideEl.classList.remove('slide-active'); if (this.currentOptions.infinite) { if (slideIndex >= this.cloneCount / 2 && slideIndex < (this.cloneCount / 2 + this.slidesToShow)) { slideEl.classList.add('slide-active'); } } else if (slideIndex + 1 >= this.activeSlide && slideIndex + 1 < (this.activeSlide + this.slidesToShow)) { slideEl.classList.add('slide-active'); } slideIndex++; } // Enable/disable nav buttons if (!this.currentOptions.infinite && !this.loop) { if (this.activeSlide === 1) { this.prevActionActive = false; } else { this.prevActionActive = true; } if (this.activeSlide - 1 + this.slidesToShow >= this.slideEls.length) { this.nextActionActive = false; } else { this.nextActionActive = true; } } }, getCurrentOptions() { const defaults = { slidesToShow: 1, infinite: false, gap: 0, dots: false, containerMargin: 0, overflow: false, responsive: false, }; let responsiveOptions = {}; // Merge responsive settings if available if (slidesOpts.responsive) { // Add a method to shuffle the breakpoints into the correct order? // Should not be needed but you never know // Maybe have media queries instead slidesOpts.responsive.forEach((settings) => { if (settings.breakpoint <= window.innerWidth) { responsiveOptions = { ...responsiveOptions, ...settings.settings } } }); } const options = { ...defaults, ...slidesOpts, ...responsiveOptions }; this.currentOptions = options; this.slidesToShow = options.slidesToShow; this.gap = options.gap; this.dots = options.dots ? slidesJson.length : 0; this.$refs.sliderContainer.style.marginInline = `${options.containerMargin}px`; } })) })
Lumi+ Electric Shower (2025)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Kieth Sipes

Last Updated:

Views: 5641

Rating: 4.7 / 5 (47 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Kieth Sipes

Birthday: 2001-04-14

Address: Suite 492 62479 Champlin Loop, South Catrice, MS 57271

Phone: +9663362133320

Job: District Sales Analyst

Hobby: Digital arts, Dance, Ghost hunting, Worldbuilding, Kayaking, Table tennis, 3D printing

Introduction: My name is Kieth Sipes, I am a zany, rich, courageous, powerful, faithful, jolly, excited person who loves writing and wants to share my knowledge and understanding with you.