Bali® Solar Power Retrofit Kit

33% off retail {{ model.price | currency: '$' }} {{ model.salePrice | currency: '$' }} + an extra 20% off use code KEEPCOOL at checkout expires 6/26

0 stars from 0 reviews Be the first to write a review

Blindsgalore Guarantee
 

For existing motorized shades, save energy and enjoy the convenience of Bali® Solar Power Retrofit Kit. The solar panel converts sunlight to energy and powers your motorized shades by keeping the batteries constantly charged while eliminating the hassle of replacing batteries. The Bali® Solar Power Retrofit Kit is compatible only with existing motorized roller and solar shades and blinds made by Bali® or Graber®. Kit includes:

  • Low profile solar panel
  • Adhesive window mounting strips for solar panel
  • Battery tube housing with rechargeable NiMH battery
  • "Y" harness connector
  • Mounting brackets for battery tube
  • Alcohol wipes to clean mounting surface

{{ selection = model.getActiveOption(section.TypeId);"" }}

{{ model.sectionNumber($index) }} Select a room:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{option.Caption}}

{{ model.sectionNumber($index) }} Select a {{section.TypeId == 'trt.swc.alt' ? 'secondary ' : ''}}product color: ({{section.Options.length}} available)

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{selection.Caption }}

{{ selection.Properties.StyleName }} {{ selection.Properties.StyleName ? ' ' : '' }} {{ selection.Properties.Name }}

{{ selection.Properties.Code }}
(add {{ selection.SalePrice | currency: '$' }})

{{items[0].Properties.StyleName}}

{{ swatchOptions = (items | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} True Paint Match

{{ selection = selection || section.Options[0];"" }} {{ paintColorName = selection.Properties.Brand + ' ' + selection.Properties.ColorName;""}}
{{ selection.Caption }}

Your match is

{{paintColorName}}

or match to another paint color

Blindsgalore stands behind their True Paint Matchmaking skills. If you are not 100% satisfied with the color of the shade(s) you receive we will replace it with any other colored True Paint Matchmaker Shade. *

learn more

{{ model.sectionNumber($index) }} Select a {{section.TypeId == 'trt.swc.alt' ? 'secondary ' : ''}}product color: ({{section.Options.length}} available)

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{selection.Caption }}

{{ selection.Properties.StyleName }} {{ selection.Properties.StyleName ? ' ' : '' }} {{ selection.Properties.Name }}

{{ selection.Properties.Code }}
(add {{ selection.SalePrice | currency: '$' }})

{{items[0].Properties.StyleName}}

{{ swatchOptions = (items | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} Select a {{section.TypeName.toLowerCase()}} option:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ inputName = !section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ dataKey = section.AllowMultiple ? option.Properties.TypeId : section.TypeId;""}} {{ checkedVal = section.AllowMultiple ? true : option.Id;"" }}
    Best for Kids
    {{ posOpts = (option.Options | filter: model.typeIdContains('.pos'));"" }} {{ hmaOpts = (option.Options | filter: { TypeId: 'hma'}:true);"" }} {{ pwrOpts = (option.Options | filter: { TypeId: 'pwr'}:true);"" }} {{ rmtOpts = (option.Options | filter: { TypeId: 'rmt'}:true);"" }} {{ headrailType = model.data['hrl.typ'];"" }}

{{ model.sectionNumber($index) }} Select a {{section.TypeName.toLowerCase()}} option:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ inputName = !section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ dataKey = section.AllowMultiple ? option.Properties.TypeId : section.TypeId;""}} {{ checkedVal = section.AllowMultiple ? true : option.Id;"" }}
    Best for Kids
    {{ posOpts = (option.Options | filter: model.typeIdContains('.pos'));"" }} {{ hmaOpts = (option.Options | filter: { TypeId: 'hma'}:true);"" }} {{ pwrOpts = (option.Options | filter: { TypeId: 'pwr'}:true);"" }} {{ rmtOpts = (option.Options | filter: { TypeId: 'rmt'}:true);"" }} {{ headrailType = model.data['hrl.typ'];"" }}
{{ accentColors = model.getDeepOptions(section.TypeId, 'trt.acc.clr');"" }}

{{ model.sectionNumber($index) }} Select a decorative accent: ({{accentColors.length}} available)

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ activeOptionOverride = model.data['trt.acc.stl'] ? 'trt.acc.stl' : null;""}} {{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }} {{ activeSwatch = model.getActiveOption('trt.swc');"" }} {{ activeAccentColor = model.getActiveOption('trt.acc.clr');"" }}

Shown with {{ activeSwatch.Caption }} swatch

{{ activeAccentColor.Caption }}{{ activeSwatch.Caption }}
    {{ accentStyles = model.getDeepOptions(section.TypeId, 'trt.acc.stl');"" }}
  • {{ inputName = section.TypeId + '_' + $index;"" }}
  • {{ inputName = 'trt.acc.stl_' + $index;"" }} {{ hiddenAccTypeId = section.Options[0].Id;""}}
{{ accentSwatches = (accentColors | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} Select a size

{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ inputName = section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ dataKey = section.AllowMultiple ? (option.Properties.TypeId + '_' + option.Id) : section.TypeId;""}} {{ checkedVal = section.AllowMultiple ? true : option.Id;"" }} {{ type}}
    {{model.data[items[0].TypeId]=items[0].Id;""}}
    • {{ items[0].Properties.TypeName}}: {{ items[0].Caption }}

    {{items[0].Properties.CaptionSmall}}

    {{items[0].Caption}}
    Best for Kids
    {{ subDataKey = section.AllowMultiple ? option.Properties.TypeId : option.Options[0].TypeId;"" }}
    {{ optc07cba1aaf7e4768aad75b4d75579a6b = (option.Options | orderBy: 'SortOrder');"" }}
{{ widthKeyWhole = 'siz.' + num + '.width_whole';"" }} {{ widthKeyFrac = 'siz.' + num + '.width_fraction';"" }} {{ heightKeyWhole = 'siz.' + num + '.height_whole';"" }} {{ heightKeyFrac = 'siz.' + num + '.height_fraction';"" }}

{{selection.Id == 'hrl.typ.01' ? 'Single' : 'Left'}} Blind

Center Blind

Right Blind

{{ model.sectionNumber($index) }} Your existing window

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}

To best configure your shutter, please tell us about your existing window.

{{ model.sectionNumber($index) }} Select a hem option

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ styleOptions = (option.Options | filter: { TypeId: 'trt.hem.stl'}:true);"" }} {{ rodOptions = (option.Options | filter: { TypeId: 'trt.hem.rod'}:true);"" }} {{ trimOptions = (option.Options | filter: { TypeId: 'trt.hem.trm'}:true);"" }} {{ activeHemStyle = model.getActiveOption('trt.hem.stl');""}} {{ activeHemRod = model.getActiveOption('trt.hem.rod');""}}
    {{ activeHemStyle.Caption }}
    {{ activeHemRod.Caption }}

    • Hem Trim:

    {{ hemTrimOptions = (trimOptions | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} Select a pull option:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ materialOptions = (option.Options | filter: { TypeId: 'trt.pul.mtr'}:true);"" }} {{ colorOptions = (option.Options | filter: { TypeId: 'trt.pul.clr'}:true);"" }}
    {{model.data['trt.pul.mtr']=materialOptions[0].Id;""}} • Pull Material: {{ materialOptions[0].Caption | raw }}

    • Pull Color:

    {{ pullColorOptions = (colorOptions | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} Select a bar option

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ barPlacementOptions = (option.Options | filter: { TypeId: 'trt.bar.plc'}:true);"" }} {{ barColorOptions = (option.Options | filter: { TypeId: 'trt.bar.clr'}:true);"" }} {{ activeBarPlacement = model.getActiveOption('trt.bar.plc');""}} {{ activeBarColor = model.getActiveOption('trt.bar.clr');""}}
    {{model.data['trt.bar.plc']=barPlacementOptions[0].Id;""}}
    • {{ barPlacementOptions[0].Properties.TypeName}}: {{ barPlacementOptions[0].Caption }}

    • Bar Color:

    {{ barColorOptions = (barColorOptions | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} Select a heading option

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
{{ prevVal = model.data[section.TypeId];"" }}
  • {{ styleOptions = (option.Options | filter: { TypeId: 'trt.hdg.stl'}:true);"" }} {{ headerOptions = (option.Options | filter: { TypeId: 'trt.hdg.hdr'}:true);"" }} {{ returnOptions = (option.Options | filter: { TypeId: 'trt.hdg.rtn'}:true);"" }} {{ implicitStyle = styleOptions.length == 1 ?styleOptions[0].Id : null;"" }}
    {{model.data['trt.hdg.stl']=styleOptions[0].Id;""}} • Heading Style: {{ styleOptions[0].Caption }}

{{ model.sectionNumber($index) }} Select a {{section.TypeName.toLowerCase()}} option:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ inputName = section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ dataKey = section.AllowMultiple ? (option.Properties.TypeId + '_' + option.Id) : section.TypeId;""}} {{ checkedVal = section.AllowMultiple ? true : option.Id;"" }} {{ type}}
    {{model.data[items[0].TypeId]=items[0].Id;""}}
    • {{ items[0].Properties.TypeName}}: {{ items[0].Caption }}

    {{items[0].Properties.CaptionSmall}}

    {{items[0].Caption}}
    Best for Kids
    {{ subDataKey = section.AllowMultiple ? option.Properties.TypeId : option.Options[0].TypeId;"" }}
    {{ optfa4eafe45eaa415591b46a6c8939e70e = (option.Options | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} Select a {{section.TypeName.toLowerCase()}} option:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ styleOptions = (option.Options | filter: { TypeId: 'val.stl'}:true);"" }} {{ sizeOptions = (option.Options | filter: { TypeId: 'val.siz'}:true);"" }} {{ endOptions = (option.Options | filter: { TypeId: 'val.end'}:true);"" }} {{ colorOptions = (option.Options | filter: { TypeId: 'val.clr'}:true);"" }}
    {{model.data['val.siz']=sizeOptions[0].Id;""}} • Valance size: {{sizeOptions[0].Caption | raw}}

    • Valance End:

    {{ valanceEndOptions = (endOptions | orderBy: 'SortOrder');"" }}

    • Valance Color:

    {{ valanceColorOptions = (colorOptions | orderBy: 'SortOrder');"" }}

{{ model.sectionNumber($index) }} Optional information:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}

{{ model.sectionNumber($index) }} Select a {{section.TypeName.toLowerCase()}} option:

{{ typeNameDispaly = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{typeNameDispaly | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ inputName = section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ dataKey = section.AllowMultiple ? (option.Properties.TypeId + '_' + option.Id) : section.TypeId;""}} {{ checkedVal = section.AllowMultiple ? true : option.Id;"" }} {{ type}}
    {{model.data[items[0].TypeId]=items[0].Id;""}}
    • {{ items[0].Properties.TypeName}}: {{ items[0].Caption }}

    {{items[0].Properties.CaptionSmall}}

    {{items[0].Caption}}
    Best for Kids
    {{ subDataKey = section.AllowMultiple ? option.Properties.TypeId : option.Options[0].TypeId;"" }}
    {{ opt3ab5a3f13d5c4a0693a3d91c669edbbe = (option.Options | orderBy: 'SortOrder');"" }}
Please address the following errors to continue: You're Done!

Write a Review for Bali® Solar Power Retrofit Kit

Product Rating

Tell other customers about yourself

Include a Photo

Add Photo

Please tell us what you think about Blindsgalore


Customer Reviews of Bali® Solar Power Retrofit Kit

There are no reivews.

Write a Review

{{review.Title}}

By {{review.Nickname}} from {{review.Location}} on {{review.Date | date:"MMMM d, yyyy"}}

read more

Construction
Value
Ease of Installment

Every custom ordered window treatment purchased from Blindsgalore is backed by a factory warranty.

For details on a particular warranty view our warranty page.

  • Solar panel is 12" x 1 1/2" and battery tube is 21 3/4" long and 1 1/8" in diameter
  • Solar panel utilizes photovoltaic technology
  • Solar panel will work best if mounted directly on window where sunlight is constant
  • Maintenance-free without the need of an electrician to install
  • Convenient and cost effective
  • Environmentally friendly
  • The Solar Power Retrofit Kit is not compatible with cellular shades
  • Note: Do not mount solar panel directly to window glass if it will cause an obstruction to movable window frames and hardware

Need Help?

Do It Yourself Guides, Expert Advice and Learn About an In-Home Consultation.