IREO

IREO Private Lounge

This content is for authorized members only. Enter your access code to continue.

IREO Private Lounge
🍁 Proudly Canadian β€” Edmonton, Alberta

DIY Hardware Manual

Building Your Intelligent Residential Energy Orchestrator (IREO)
in Edmonton, Alberta

πŸ“… March 2026 β€” v1.0 πŸ“„ ~25 Pages 🏒 Opcelerate Neural Inc. πŸ“ Sherwood Park, AB

1. Introduction

1.1 What Is IREO?

The Intelligent Residential Energy Orchestrator (IREO) is an AI-powered energy hub that controls the flow of electricity between your solar panels, battery storage, the utility grid, and your home loads. Its mission: minimize your electricity costs and maximize solar self-consumption.

IREO uses a Python-based "Neural Dispatch Brain" (brain.py) running on a Raspberry Pi to make real-time decisions β€” CHARGE the battery when grid prices are low, HOLD energy for later, or SELL/EXPORT when rates spike β€” all autonomously, 24/7.

Annual Savings
~$2,840 CAD/year
Self-Consumption Rate
94.7%
Solar Array
5–10 kW
Battery Storage
10–20 kWh

1.2 Why Edmonton?

Edmonton and the surrounding area (including Sherwood Park) present a unique opportunity for solar energy:

  • Long summer days β€” Edmonton receives 17+ hours of daylight in June, producing excellent solar yields from May–September.
  • Alberta's deregulated electricity market β€” Volatile real-time pool prices (via AESO) mean the AI brain can exploit price spikes by selling stored energy at premium rates, especially during winter evening peaks ($0.15–$0.22/kWh).
  • Cold winters β€” While solar production drops November–February, the AI shifts strategy to buy cheap overnight power and sell during expensive morning/evening peaks.
  • Government incentives β€” The Canada Greener Homes Loan offers up to $40,000 interest-free financing for solar and battery installations.
  • Net metering β€” Alberta's Micro-generation Regulation allows systems up to 5 MW to export excess to the grid and receive credits.

1.3 Assumptions

  • You are located in the Edmonton / Sherwood Park area of Alberta, Canada.
  • You have basic tools (drill, screwdrivers, wrenches) and basic electronics knowledge (can solder, use a multimeter, follow wiring diagrams).
  • You have a suitable south-facing roof or ground area with minimal shading.
  • You understand that grid-tied electrical work requires a certified electrician β€” this manual guides DIY for the low-voltage AI controller and off-grid testing only.
⚠️ CRITICAL LEGAL NOTICE

Under the Alberta Safety Codes Act and the Canadian Electrical Code (CSA C22.1), all grid-tied solar and battery installations must be performed or supervised by a certified electrician with appropriate permits. DIY is suitable for off-grid testing, low-voltage (under 30V DC) control circuits, and AI brain assembly only. Failure to obtain permits may result in fines, voided insurance, or safety hazards. Consult Alberta Municipal Affairs before proceeding.

1.4 How This Manual Is Organized

  1. Safety Guidelines β€” Read before touching any equipment.
  2. System Overview β€” Understand how each component connects.
  3. Components & BOM β€” What to buy, where to buy it, and approximate costs.
  4. Incentives & Regulations β€” Grants, rebates, and permits in Alberta.
  5. Step-by-Step Assembly β€” 9 detailed installation steps.
  6. AI Brain Integration β€” Installing and configuring the Python script.
  7. Dashboard Setup β€” Setting up the monitoring web interface.
  8. Troubleshooting & FAQ β€” Common problems and solutions.
  9. Glossary β€” Technical terms explained.
  10. References β€” Supplier links, regulations, and further reading.

2. Safety Guidelines

⚠️ READ THIS ENTIRE SECTION BEFORE STARTING

Working with electricity, batteries, and rooftop installations can result in death, serious injury, fire, or property damage. Follow every precaution listed here. If you are unsure about any step, stop and consult a professional.

2.1 Electrical Hazards

  • Solar panels generate DC voltage whenever exposed to light β€” they cannot be "turned off." A 10-panel string can produce 400V+ DC, which is lethal.
  • Always assume wires are live. Use a multimeter to verify zero voltage before touching any connection.
  • Work on wiring only during overcast conditions or at night for solar circuits, or cover panels with opaque tarps.
  • AC circuits (grid-tied): Must be de-energized at the main breaker by a qualified person. Lock-out/tag-out procedures apply.
  • Never work alone β€” have someone nearby who can call 911.

2.2 Battery Safety

  • Lithium batteries can catch fire or explode if shorted, punctured, overcharged, or exposed to extreme temperatures.
  • Use only Battery Management System (BMS)-equipped batteries from reputable manufacturers (e.g., RELiON, Pylontech).
  • Install batteries in a fireproof enclosure β€” use metal NEMA-rated cabinets, not wood or plastic.
  • Keep a Class D fire extinguisher (for lithium fires) near the battery bank. Water will NOT extinguish lithium fires.
  • Maintain ambient temperature between 5Β°C and 35Β°C β€” lithium batteries degrade in Edmonton's -30Β°C winters if unheated.
  • Use insulated tools only. Remove jewelry and watches when working near batteries.
  • Never mix battery chemistries or capacities in the same bank.

2.3 Rooftop / Height Safety

  • Use a proper fall arrest harness rated to CSA Z259.10 standards when working on roofs.
  • Do not work on wet, icy, or snowy roofs β€” wait for dry conditions.
  • Use proper scaffolding or extension ladders (rated Type 1A or better). Have a helper stabilize the ladder base.
  • In Edmonton, roof work is safest May–September. Avoid winter installations unless you are experienced.

2.4 Required PPE (Personal Protective Equipment)

ItemPurposeSource & Price
Insulated electrical gloves (Class 00)Protection from 500V DCHome Depot Edmonton ~$45
Safety goggles (CSA Z94.3)Eye protection from arcs/sparksHome Depot Edmonton ~$12
Hard hatOverhead hazard protectionHome Depot Edmonton ~$25
Fall arrest harnessRoof work safetyHome Depot Edmonton ~$120
Steel-toe bootsFoot protectionMark's Work Wearhouse ~$100
Class D fire extinguisherLithium battery firesAmazon.ca ~$60

2.5 Alberta Codes & Permits

  • Alberta Safety Codes Act β€” All electrical installations must meet the current Canadian Electrical Code (CSA C22.1-24).
  • Electrical Permit β€” Required from the City of Edmonton (~$200) before starting any grid-tied electrical work.
  • Inspection β€” A Safety Codes Officer must inspect and approve the installation before energizing.
  • Micro-generation Application β€” Required for grid-connected solar systems under Alberta's Micro-generation Regulation (AR 27/2008).
  • Only a certified master electrician may connect your system to the grid. This is non-negotiable.

2.6 Emergency Procedures

🚨 In Case of Electric Shock
  1. Do NOT touch the victim if they are still in contact with the source.
  2. Disconnect power at the main breaker or solar DC disconnect.
  3. Call 911 immediately.
  4. Begin CPR if the person is unresponsive and not breathing.
πŸ”₯ In Case of Battery Fire
  1. Evacuate the area immediately β€” lithium fires produce toxic fumes.
  2. Call 911 and report a lithium battery fire.
  3. If safe to do so, use a Class D fire extinguisher or large amounts of water to cool surrounding materials.
  4. Do NOT attempt to move burning batteries.
  5. Ventilate the space after the fire is out.

3. System Overview

3.1 Architecture Diagram

The IREO system consists of six major components connected in this flow:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ IREO RESIDENTIAL SYSTEM ARCHITECTURE β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β˜€οΈ SOLAR ARRAY (5-10 kW) 🏠 HOME LOADS β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 12-20Γ— Canadian β”‚ β”‚ Appliances β”‚ β”‚ Solar HiKu6 β”‚ β”‚ Lighting β”‚ β”‚ 400-600W panels β”‚ β”‚ HVAC β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ EV Charger β”‚ β”‚ DC (120-450V) β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”‚ AC 240V β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MPPT CHARGE β”‚ β”‚ HYBRID INVERTER/CHARGER β”‚ β”‚ CONTROLLER │────────▢│ Victron MultiPlus-II β”‚ β”‚ Victron Smart β”‚ DC β”‚ 48V 3000VA β”‚ β”‚ Solar 150/100 β”‚ Bus β”‚ Grid ↔ Battery ↔ Solar β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ DC 48V β”‚ β”‚ AC 240V β–Ό β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ BATTERY β”‚ β”‚ GRID β”‚ β”‚ BANK β”‚ β”‚ (EPCOR) β”‚ β”‚ 10-20kWh β”‚ β”‚ Meter β”‚ β”‚ LiFePO4 β”‚ β”‚ Bi-dir β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–² β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 🧠 AI BRAIN β”‚ β”‚ Raspberry Pi 5 β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ brain.py β”‚ β”‚ β”‚ β”‚ Sensors β”‚ β”‚ β”‚ β”‚ Relays β”‚ β”‚ β”‚ β”‚ Dashboard β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3.2 How It Works β€” The AI Decision Loop

  1. Sense β€” Current and voltage sensors (ACS712/INA219) measure solar output, battery state-of-charge (SoC), grid import/export, and home consumption.
  2. Analyze β€” The brain.py script monitors the AESO pool price and applies seasonal thresholds to determine optimal action.
  3. Decide β€” The Neural Dispatcher makes one of four decisions every tick:
    • ⚑ SELL β€” Grid price is high β†’ discharge battery to grid/home
    • ⬇ CHARGE β€” Grid price is low β†’ charge battery from grid/solar
    • ⚑ PRE-CHARGE β€” Price spike predicted β†’ charge now to sell later
    • ⏸ HOLD β€” Neutral price β†’ maintain current state
  4. Act β€” GPIO-controlled relays route power accordingly through the inverter/charger.
  5. Report β€” The live dashboard (dashboard.html) displays real-time metrics via a local web server.

3.3 Seasonal Strategy (Edmonton)

SeasonMonthsSell ThresholdCharge ThresholdStrategy
WinterDec–Feb$0.15/kWh$0.04/kWhBuy cheap overnight power, sell during morning/evening peaks. Low solar.
SpringMar–May$0.10/kWh$0.03/kWhIncreasing solar. Charge from panels, sell afternoon surpluses.
SummerJun–Aug$0.08/kWh$0.02/kWhMaximum solar. Self-consume most, export excess during evening peaks.
FallSep–Nov$0.12/kWh$0.035/kWhDeclining solar. Transition to grid-buy strategy. Prepare for winter peaks.

4. Components & Bill of Materials

ℹ️ Pricing Note

All prices are in Canadian Dollars (CAD), estimated for 2026. Prices fluctuate with supply chain conditions. Always confirm pricing before ordering. Tax (GST 5%) is not included.

4.1 Solar Panels

ItemSpecificationQtyUnit PriceSubtotalSource
Canadian Solar HiKu6 CS6R-410MS410W Mono PERC, 20.6% efficiency12–20$300–380$3,600–7,600Solacity.com
Alternative: LONGi Hi-MO 5545W Mono, bifacial option10–16$350–420$3,500–6,720Solacity.com
πŸ’‘ Edmonton Tip

For Edmonton's latitude (53.5Β°N), install panels at a 45–55Β° tilt angle for year-round optimization. South-facing is ideal. Use PVWatts Calculator to estimate your specific yield β€” expect ~1,100–1,300 kWh/kW per year.

4.2 Battery Storage

ItemSpecificationQtyUnit PriceSubtotalSource
Pylontech US3000C3.55 kWh LiFePO4, 48V, stackable, built-in BMS3–6$1,400–1,600$4,200–9,600Volts.ca
Alternative: RELiON RB48V10048V 100Ah (5.12 kWh), cold-rated to -20Β°C2–4$2,800–3,200$5,600–12,800Solacity.com
πŸ”‹ Cold Weather Battery Warning

Edmonton winters regularly reach -30Β°C. Lithium batteries must be stored in a heated, insulated enclosure (garage with heater, basement). Charging below 0Β°C damages cells permanently. The Pylontech US3000C has internal heating, but the RELiON RB48V100 LT series is purpose-built for cold weather.

4.3 Inverter & Charge Controller

ItemSpecificationPriceSource
Victron MultiPlus-II 48/3000/35-3248V 3kVA hybrid inverter/charger, grid-tie capable, ESS mode$1,800–2,200Solacity.com
Alternative: Fronius Primo Gen24 7.77.68 kW, 208–240V, Made in Austria, 10-year warranty, built-in emergency power outlet (1600W from solar), battery-upgrade readyContact for pricingEvolve Energy
Victron SmartSolar MPPT 150/100-Tr150V input, 100A output, Bluetooth, VE.Direct$750–900Solacity.com
Victron Cerbo GX (recommended)System monitoring hub, runs Venus OS, MQTT/Modbus support$350–450Solacity.com
🀝 Partner Recommendation β€” Evolve Energy

The Fronius Primo Gen24 is an excellent alternative to the Victron MultiPlus-II. Fronius has been making inverters since 1990, has Canadian tech support and warehouse, and the Gen24 includes a built-in emergency power outlet β€” if the grid goes down and the sun is shining, you get up to 1600W of backup power with no battery required. Available from our partner Evolve Energy.

4.4 AI Brain & Sensors

ItemSpecificationPriceSource
Raspberry Pi 5 (4GB)Quad-core ARM Cortex-A76, GPIO 40-pin, WiFi/BT$75–85Memory Express Edmonton
Raspberry Pi 5 Power Supply (27W USB-C)Official 5.1V 5A PSU$15Memory Express Edmonton
MicroSD Card (64GB, A2)SanDisk Extreme β€” fast boot$15Memory Express Edmonton
ACS712 30A Current Sensor (Γ—2)Hall-effect, analog output, measures AC/DC current$8–12 eachDigiKey.ca
INA219 Voltage/Current Sensor (Γ—2)IΒ²C interface, 26V 3.2A max, high-side measurement$12–18 eachDigiKey.ca
4-Channel Relay Module (5V)Optocoupler isolated, 10A 250VAC rated$12–18Amazon.ca
DS18B20 Temperature Sensor (Γ—2)1-Wire digital, waterproof probe, Β±0.5Β°C$8–12 eachAmazon.ca
Logic level converter (3.3V ↔ 5V)Bi-directional, 4-channel$6DigiKey.ca
Jumper wires, breadboard, headersAssorted kit$15–25Amazon.ca

4.5 Enclosure, Wiring & Protection

ItemSpecificationPriceSource
NEMA 4X Enclosure (large)Weatherproof, 24"Γ—20"Γ—10", wall-mount for inverter$80–120Home Depot Edmonton
NEMA enclosure (small)For Raspberry Pi + relays, 10"Γ—8"Γ—4"$30–50Home Depot Edmonton
MidNite Solar MNPV6 Combiner Box6-string PV combiner with fuses, NEMA 3R$180–220Solacity.com
10 AWG PV Wire (red+black)USE-2/RHW-2 rated, UV-resistant, 100ft roll$80–120/rollSolacity.com
6 AWG Battery CableTinned copper, flexible, with lugs$60–90/pairSolacity.com
MC4 Connectors (10 pairs)IP67 rated solar connectors$25–35Amazon.ca
DC Breakers (63A, 150V DC)2-pole DC disconnect for solar & battery$30–45 eachAmazon.ca
AC Breaker PanelSub-panel with 30A/40A breakers$80–120Home Depot Edmonton
Cable glands, conduit, DIN railAssorted hardware$40–60Home Depot Edmonton

4.6 Tools Required

ToolEst. Price (if buying)Source
Digital Multimeter (Fluke 115 or equiv.)$160–220Home Depot Edmonton
MC4 Crimping Tool$35–50Amazon.ca
Wire Strippers / Cutters$20–30Home Depot Edmonton
Cordless Drill + Bits Set$80–150Home Depot Edmonton
Torque Wrench (for panel bolts)$40–60Home Depot Edmonton
Soldering Iron + Solder$30–50Memory Express / Amazon.ca
Cable Tester$25–40Amazon.ca

4.7 Total Estimated Cost Summary

CategoryLow EstimateHigh Estimate
Solar Panels (12–20 units)$3,600$7,600
Battery Bank (10–20 kWh)$4,200$9,600
Inverter + Charge Controller + GX$2,900$3,550
AI Brain (Pi + Sensors + Relays)$200$320
Enclosures, Wiring, Protection$600$900
Tools & PPE$400$750
TOTAL (materials only)$11,900$22,720
Electrician / Permits (estimated)$1,500$3,500
GRAND TOTAL$13,400$26,220
πŸ’° ROI Estimate

At ~$2,840/year in savings, a mid-range $18,000 system pays for itself in approximately 6.3 years. With the Canada Greener Homes interest-free loan, the upfront cash requirement is effectively $0.

5. Incentives & Regulations in Edmonton/Alberta

5.1 Federal Incentives

Canada Greener Homes Loan

  • Amount: Up to $40,000 interest-free loan for eligible home energy retrofits including solar panels and battery storage.
  • Term: 10-year repayment period.
  • Eligibility: Must own the home, complete a pre- and post-retrofit EnerGuide evaluation.
  • Application: NRCan β€” Canada Greener Homes

Canada Revenue Agency β€” Clean Energy Tax Credits

  • Check current CRA guidelines for Clean Technology Investment Tax Credit (ITC) β€” up to 30% refundable tax credit for eligible clean energy investments.

5.2 Provincial (Alberta) Programs

Alberta Micro-Generation Regulation

  • Allows residential systems up to 5 MW to connect to the grid and export excess energy.
  • Net billing: You receive credit at the retail rate for exported kWh.
  • Application through your utility retailer (e.g., EPCOR, ENMAX, Direct Energy).

Municipal Programs

  • City of Edmonton: Change Homes for Climate program β€” check edmonton.ca for current rebates on solar installations.
  • PACE financing: Some Alberta municipalities offer Property Assessed Clean Energy financing β€” check with your municipality.

5.3 Required Permits

PermitAuthorityApproximate CostNotes
Electrical PermitCity of Edmonton (Safety Codes)$150–250Required before any electrical work begins. Submit plans.
Building PermitCity of Edmonton$100–200May be required for rooftop structural modifications.
Electrical InspectionAlberta Safety Codes OfficerIncluded with permitMust pass before system is energized.
Micro-generation ApplicationYour utility retailer (EPCOR)Free–$100Required for grid connection and net metering.
Utility InterconnectionEPCOR / wire service provider$0–500Bi-directional meter installation.

5.4 Process Checklist

  1. Get an EnerGuide pre-retrofit evaluation (~$300–600) β€” required for Greener Homes Loan.
  2. Apply for the Canada Greener Homes Loan β€” get pre-approval.
  3. Obtain an electrical permit from the City of Edmonton.
  4. Hire a certified master electrician for grid-tied components.
  5. Complete installation and schedule a Safety Codes inspection.
  6. Apply for micro-generation status with your retailer.
  7. Get a bi-directional meter installed by EPCOR.
  8. Get an EnerGuide post-retrofit evaluation.
  9. Submit documents for loan disbursement.

6. Step-by-Step Assembly Instructions

⚠️ Before You Begin

Complete Sections 2 (Safety) and 5 (Permits) first. Have all required PPE on hand. Grid-tied wiring in Steps 4 and 8 must be performed by a certified electrician. The steps below focus on the DIY-safe portions.

Step 1

Site Assessment

Before purchasing anything, evaluate your installation site:

  1. Roof Assessment: Confirm your roof faces south (Β±30Β°), is structurally sound, and has 40–80 mΒ² of unshaded area. Hire a structural engineer if your roof is over 20 years old.
  2. Solar Yield Estimate: Use the NREL PVWatts Calculator. Enter your address, system size (e.g., 8 kW), tilt (50Β°), azimuth (180Β° for south). Edmonton typically yields 1,150–1,280 kWh/kWp/year.
  3. Shading Analysis: Check for trees, chimneys, or adjacent buildings that cast shadows. Even partial shading drastically reduces output. Use a Solar Pathfinder or SunEye tool if available.
  4. Electrical Panel: Verify your main panel has capacity for a solar breaker (typically 40A). If your panel is maxed out, you'll need an upgrade (electrician required).
  5. Internet Connectivity: The Raspberry Pi AI brain needs WiFi or Ethernet to fetch AESO price data. Confirm coverage at the installation location.
Step 2

Install Solar Panels

⚑ Roof Work β€” Fall Hazard

Use fall arrest equipment. Work only in dry weather. Have a helper on the ground. If uncomfortable at heights, hire a solar installer for this step.

  1. Install racking: Use IronRidge XR series or equivalent roof-mount racking. Attach rail feet to rafters (not just sheathing) using lag bolts with flashing.
  2. Run conduit: Plan the wire path from roof to the electrical room. Use UV-rated conduit for outdoor runs.
  3. Mount panels: Slide panels onto rails and secure with mid/end clamps. Torque to manufacturer spec (typically 12–15 NΒ·m).
  4. Wire strings: Connect panels in series strings (2–3 strings of 4–6 panels each, staying under the MPPT controller's 150V max input). Use MC4 connectors.
  5. Test: With panels still disconnected from the charge controller, measure open-circuit voltage (Voc) of each string with a multimeter. Compare to calculated values (sum of individual panel Voc Γ— number in string).
Step 3

Wire Charge Controller & Battery

  1. Mount the Victron SmartSolar MPPT 150/100 in your NEMA enclosure, on DIN rail or wall brackets. Ensure adequate ventilation β€” the controller generates heat under load.
  2. Connect battery first: Always connect the battery to the charge controller before connecting solar panels. Use 6 AWG cables with appropriate fuses (100A DC fuse on the battery positive).
  3. Connect solar strings: Run PV cables from the combiner box to the MPPT controller. Use the DC disconnect switch between panels and controller.
  4. Configure via Bluetooth: Use the Victron Connect app to set battery type (LiFePO4), voltage (48V), and charge parameters per battery manufacturer specs.
  5. Off-grid test: With batteries connected and solar input live, verify charging behavior. The MPPT should show charge current and battery voltage on the app.
SOLAR WIRING DIAGRAM β€” OFF-GRID TEST String 1 (4Γ—410W) String 2 (4Γ—410W) β”Œβ”€β”€β”€β”β”Œβ”€β”€β”€β”β”Œβ”€β”€β”€β”β”Œβ”€β”€β”€β” β”Œβ”€β”€β”€β”β”Œβ”€β”€β”€β”β”Œβ”€β”€β”€β”β”Œβ”€β”€β”€β” β”‚ P1β”œβ”€ P2β”œβ”€ P3β”œβ”€ P4β”‚ β”‚ P5β”œβ”€ P6β”œβ”€ P7β”œβ”€ P8β”‚ β””β”€β”¬β”€β”˜β””β”€β”€β”€β”˜β””β”€β”€β”€β”˜β””β”€β”¬β”€β”˜ β””β”€β”¬β”€β”˜β””β”€β”€β”€β”˜β””β”€β”€β”€β”˜β””β”€β”¬β”€β”˜ β”‚(+) (-)β”‚ β”‚(+) (-)β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β” β”‚ MidNite MNPV6 Combiner β”‚ β”‚ Fused per string (15A DC fuses) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ PV+ / PV- β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” β”‚ DC Disc. β”‚ (DC Disconnect Switch) β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Victron SmartSolar MPPT β”‚ β”‚ 150/100-Tr β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ BAT+ / BAT- β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” β”‚ 100A DC β”‚ (DC Fuse) β”‚ Fuse β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Pylontech US3000C β”‚ β”‚ Battery Bank (48V) β”‚ β”‚ 3-6 units stacked β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Step 4

Set Up Hybrid Inverter

⚠️ Certified Electrician Required

The Victron MultiPlus-II connects to AC mains (240V). This step must be performed by a licensed electrician per Alberta Safety Codes Act.

  1. Mount the MultiPlus-II in the electrical enclosure with adequate clearance for airflow.
  2. DC connection: Connect battery bank to the inverter's DC input (48V) with appropriate cabling and fusing.
  3. AC connections (electrician): Wire AC-in from the main panel and AC-out to a critical loads sub-panel.
  4. Install Cerbo GX: Connect the Cerbo GX monitoring hub via VE.Direct and VE.Bus cables to the MPPT and MultiPlus-II. Connect to your network via Ethernet.
  5. Configure ESS mode: Use the Victron Remote Console to enable Energy Storage System mode, which allows the inverter to work with the AI brain for charge/discharge decisions.
Step 5

Assemble the AI Brain

This is the core DIY step β€” assembling the Raspberry Pi controller with sensors and relays.

  1. Flash Raspberry Pi OS: Use Raspberry Pi Imager to flash Raspberry Pi OS Lite (64-bit) to the microSD card. Enable SSH and configure WiFi during imaging.
  2. Assemble in enclosure: Mount the Pi on standoffs inside the small NEMA enclosure. Route GPIO ribbon cable to a breakout board.
  3. Connect INA219 sensors (IΒ²C bus):
    • SDA β†’ GPIO 2 (Pin 3)
    • SCL β†’ GPIO 3 (Pin 5)
    • VCC β†’ 3.3V (Pin 1)
    • GND β†’ Ground (Pin 6)
    • Use different IΒ²C addresses for each sensor (A0/A1 jumpers)
  4. Connect relay module (via logic level converter):
    • IN1 β†’ GPIO 17 (Pin 11) β€” Solar charge relay
    • IN2 β†’ GPIO 27 (Pin 13) β€” Grid export relay
    • IN3 β†’ GPIO 22 (Pin 15) β€” Battery discharge relay
    • IN4 β†’ GPIO 23 (Pin 16) β€” Aux relay
    • VCC β†’ 5V (Pin 2), GND β†’ Ground (Pin 9)
  5. Connect DS18B20 temperature sensors (1-Wire):
    • Data β†’ GPIO 4 (Pin 7) with 4.7kΞ© pull-up resistor to 3.3V
    • One sensor on battery bank, one on inverter for thermal monitoring
RASPBERRY PI 5 β€” GPIO WIRING MAP 3.3V (1) ● ● (2) 5V ──────── Relay VCC INA219 SDA (3) ● ● (4) 5V INA219 SCL (5) ● ● (6) GND ─────── INA219 GND DS18B20 Data (7) ● ● (8) (9) ● ● (10) Relay IN1/Sol (11) ● ● (12) Relay IN2/Grd (13) ● ● (14) GND ─────── Relay GND Relay IN3/Bat (15) ● ● (16) Relay IN4/Aux 3.3V (17) ● ● (18) (19) ● ● (20) GND ...remaining pins unused... ⚠ Use a 3.3V↔5V logic level converter between Pi GPIOs and the 5V relay module to protect the Pi!
Step 6

Install & Configure the AI Software

See Section 7 (AI Brain Integration) for detailed software installation instructions, including Python dependencies, residential-scale brain.py configuration, and systemd service setup.

Step 7

Set Up the Dashboard

See Section 8 (Dashboard Setup) for instructions on deploying the IREO monitoring dashboard on your local network.

Step 8

Testing & Commissioning

⚠️ Grid Connection β€” Professional Required

Grid-tie testing must be supervised by your certified electrician. The Safety Codes inspection must pass before energizing the grid connection.

Phase 1: Off-Grid Test (DIY OK)

  1. Disconnect the system from the grid (AC-in disconnected).
  2. Verify solar charging: panels β†’ MPPT β†’ battery. Confirm SoC is rising in the Victron app.
  3. Test inverter output: Connect a test load (e.g., a lamp) to AC-out. Confirm 120/240V AC output.
  4. Test AI brain: Run brain.py and verify it reads sensor data and controls relays correctly.
  5. Monitor temperatures: Confirm battery and inverter temps stay within safe ranges under load.

Phase 2: Grid-Tie Test (Electrician Required)

  1. Electrician connects AC-in and configures the grid-tie protection relay.
  2. Schedule and pass the Safety Codes inspection.
  3. EPCOR installs the bi-directional meter.
  4. Test grid export: Verify the AI brain correctly decides to SELL and energy flows to the grid.
  5. Test grid import: Verify CHARGE mode pulls energy from the grid during low-price periods.
  6. Run for 48 hours and review the dashboard logs for any anomalies.
Step 9

Monitoring & Maintenance

Once commissioned, your IREO system requires minimal ongoing maintenance:

TaskFrequencyNotes
Check dashboard for errors/warningsDaily (automated alerts recommended)Set up email/SMS notifications via Python script
Visual panel inspectionMonthlyLook for debris, cracked glass, loose wiring
Clean solar panels2–4Γ— per yearSpring pollen, summer dust, fall leaves. Use soft brush + water. No soap.
Snow removal from panelsAs needed (winter)Use a soft roof rake. Never use metal tools. Snow slides off naturally at steep tilts.
Check battery SoC trendsMonthlyLook for capacity degradation. Expect ~80% capacity after 4,000+ cycles.
Firmware updates (Victron/Pi)QuarterlyCheck Victron Professional portal and sudo apt update on Pi.
Re-torque panel mounting boltsAnnually (spring)Thermal cycling can loosen fasteners.
Professional electrical inspectionEvery 3–5 yearsRecommended for insurance/safety compliance.

7. AI Brain Integration

7.1 Software Installation

SSH into your Raspberry Pi and run the following commands:

# Update system
sudo apt update && sudo apt upgrade -y

# Install Python 3.12 and dependencies
sudo apt install -y python3 python3-pip python3-venv git

# Create project directory
mkdir -p ~/ireo && cd ~/ireo

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install Python libraries
pip install RPi.GPIO smbus2 adafruit-circuitpython-ina219 \
    w1thermsensor requests flask numpy

# Copy your brain.py to the Pi
# (via SCP from your main computer):
# scp brain.py pi@<pi-ip>:~/ireo/

7.2 Residential-Scale Configuration

The original brain.py is configured for a 2 MW / 4 MWh commercial system. You need to scale it down for residential use. Key changes:

# In brain.py β€” Modify the BatteryBank class __init__:
class BatteryBank:
    def __init__(self, capacity_kwh=15.0, max_power_kw=5.0):
        self.capacity_kwh = capacity_kwh       # 15 kWh (e.g., 4Γ— Pylontech US3000C)
        self.max_power_kw = max_power_kw       # 5 kW max discharge
        self.soc = 0.65
        self.charge_efficiency = 0.95
        self.discharge_efficiency = 0.95
        self.cycle_count = 0.0
        self.min_soc = 0.10
        self.max_soc = 0.95

# In the SolarSystem class:
class SolarSystem:
    SOLAR_CAPACITY_KW = 8.0  # 8 kW residential array (e.g., 20Γ— 400W panels)

    def __init__(self):
        self.price_engine = AESOPriceEngine()
        self.battery = BatteryBank(capacity_kwh=15.0, max_power_kw=5.0)
        self.seasonal = SeasonalCalculator()
        self.dispatcher = NeuralDispatcher(
            self.battery, self.price_engine, self.seasonal
        )
        self.revenue = RevenueTracker()
        self.tick_count = 0

    # ... also update HOLD passive charge threshold:
    # Change: if solar_kw > 100 β†’ if solar_kw > 0.5
    # (original threshold was for MW-scale)
ℹ️ Real Sensor Integration

The stock brain.py uses simulated data. To connect real sensors, add GPIO-reading code that replaces the simulated solar_output_kw() and price engine with actual INA219 sensor readings and AESO API calls.

7.3 GPIO Control for Relays

Add this helper class to brain.py for controlling the relay module:

import RPi.GPIO as GPIO

class RelayController:
    """Controls 4-channel relay via GPIO."""
    PINS = {
        'solar_charge': 17,   # GPIO 17 β€” Pin 11
        'grid_export':  27,   # GPIO 27 β€” Pin 13
        'bat_discharge': 22,  # GPIO 22 β€” Pin 15
        'aux':          23,   # GPIO 23 β€” Pin 16
    }

    def __init__(self):
        GPIO.setmode(GPIO.BCM)
        for pin in self.PINS.values():
            GPIO.setup(pin, GPIO.OUT, initial=GPIO.HIGH)  # HIGH = relay OFF (active-low)

    def activate(self, relay_name):
        GPIO.output(self.PINS[relay_name], GPIO.LOW)

    def deactivate(self, relay_name):
        GPIO.output(self.PINS[relay_name], GPIO.HIGH)

    def execute_decision(self, decision):
        """Map AI decision to relay states."""
        # Reset all relays
        for pin in self.PINS.values():
            GPIO.output(pin, GPIO.HIGH)

        if decision == 'SELL':
            self.activate('bat_discharge')
            self.activate('grid_export')
        elif decision in ('CHARGE', 'PRE-CHARGE'):
            self.activate('solar_charge')
        # HOLD = all relays off

    def cleanup(self):
        GPIO.cleanup()

7.4 Connecting to Victron via Modbus TCP

If you have a Victron Cerbo GX, you can read real battery/solar data via Modbus TCP instead of using analog sensors:

from pymodbus.client import ModbusTcpClient

class VictronReader:
    """Read live data from Victron Cerbo GX via Modbus TCP."""
    def __init__(self, host='192.168.1.100', port=502):
        self.client = ModbusTcpClient(host, port=port)

    def read_battery_soc(self):
        result = self.client.read_holding_registers(266, 1, unit=100)
        return result.registers[0] / 10.0  # Returns SoC as percentage

    def read_solar_power(self):
        result = self.client.read_holding_registers(789, 1, unit=100)
        return result.registers[0]  # Returns watts

    def read_grid_power(self):
        result = self.client.read_holding_registers(820, 1, unit=100)
        return result.registers[0]  # Positive = importing, Negative = exporting

7.5 Running as a System Service

Create a systemd service so brain.py starts automatically on boot:

# Create the service file
sudo nano /etc/systemd/system/ireo-brain.service
[Unit]
Description=IREO Neural Dispatch Brain
After=network.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/ireo
ExecStart=/home/pi/ireo/venv/bin/python3 /home/pi/ireo/brain.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
# Enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable ireo-brain.service
sudo systemctl start ireo-brain.service

# Check status
sudo systemctl status ireo-brain.service

# View logs
journalctl -u ireo-brain.service -f

8. Dashboard Setup

8.1 Overview

The IREO dashboard (dashboard.html) provides a real-time web interface showing solar output, battery SoC, grid rates, AI decisions, and revenue tracking. It can be served from the Raspberry Pi on your local network.

8.2 Install a Web Server

# Install lightweight web server
sudo apt install -y nginx

# Copy dashboard files to web root
sudo cp ~/ireo/dashboard.html /var/www/html/
sudo cp ~/ireo/ireo-logo.png /var/www/html/

# Restart nginx
sudo systemctl restart nginx

Access the dashboard at http://<pi-ip-address>/dashboard.html from any device on your network.

8.3 Connect Dashboard to Live Data

To feed real-time data from brain.py to the dashboard, add a Flask API endpoint:

from flask import Flask, jsonify
import threading

app = Flask(__name__)
system = None  # Reference to the running SolarSystem instance

@app.route('/api/status')
def get_status():
    """API endpoint for dashboard to fetch live data."""
    return jsonify({
        'solar_kw': round(system.solar_output_kw(), 2),
        'battery_soc': round(system.battery.soc_pct, 1),
        'battery_kwh': round(system.battery.soc_kwh, 1),
        'price_mwh': round(system.price_engine.current_price_mwh, 2),
        'price_kwh': round(system.price_engine.price_kwh, 5),
        'decision': system.dispatcher.last_decision,
        'revenue': round(system.revenue.total_revenue_cad, 2),
        'kwh_sold': round(system.revenue.kwh_sold, 1),
        'season': system.price_engine.get_season(),
        'cycles': round(system.battery.cycle_count, 2),
    })

# Start Flask in a background thread
def start_api(sys_ref):
    global system
    system = sys_ref
    threading.Thread(
        target=lambda: app.run(host='0.0.0.0', port=5000),
        daemon=True
    ).start()

Then modify the dashboard JavaScript to fetch from this API every 2 seconds instead of using simulated data.

8.4 Remote Access (Optional)

🌐 Access from Anywhere

To access your dashboard outside your home network, use a Tailscale VPN (free for personal use) or Cloudflare Tunnel. Avoid exposing your Pi directly to the internet.

9. Troubleshooting & FAQ

9.1 Common Issues

ProblemLikely CauseSolution
Low solar output in winterShort days, snow cover, low sun angleNormal for Edmonton. The AI shifts to grid-buy strategy automatically. Clear snow from panels with a soft roof rake when safe to do so.
Battery not charging below 0Β°CBMS cold-protection lockoutEnsure battery enclosure is heated. Pylontech US3000C has internal heating; verify it's enabled. Keep ambient above 5Β°C.
Raspberry Pi not bootingCorrupted SD card, power supply issueRe-flash the SD card. Use the official 27W USB-C PSU. Check for under-voltage lightning bolt icon on boot.
Relay not switchingLogic level mismatch, GPIO misconfigurationVerify 3.3V→5V level converter is connected. Check GPIO pin assignments in brain.py. Test relay with a simple Python script.
Dashboard not loadingNginx not running, wrong IPRun sudo systemctl status nginx. Check Pi's IP with hostname -I. Verify firewall allows port 80.
AESO price data not updatingInternet connectivity, API changesCheck Pi's internet: ping google.ca. Verify AESO API endpoint is still valid. The stock script uses simulated prices β€” implement the real AESO API if needed.
Inverter showing error codesVaries β€” overload, temperature, grid faultCheck the Victron Remote Console for specific error codes. Consult the Victron MultiPlus-II manual.
Grid export not registeringBi-directional meter not installed, micro-gen not approvedContact EPCOR to verify meter type. Ensure micro-generation application is approved and meter is bi-directional.
High battery cycle countAggressive charge/sell cyclesAdjust thresholds in SeasonalCalculator to widen the HOLD band. LiFePO4 batteries handle 4,000+ cycles to 80% capacity.

9.2 Frequently Asked Questions

Q: Can I install this entire system myself?

A: Not entirely. The low-voltage AI brain, sensor wiring, and off-grid battery testing are DIY-friendly. However, all grid-connected electrical work (solar panel wiring to the grid, inverter AC connections, and meter installation) must be done by a certified electrician in Alberta. This is a legal requirement under the Alberta Safety Codes Act.

Q: How much will I actually save per year?

A: The $2,840/year figure assumes a well-sized system (8 kW solar, 15 kWh battery) with 94.7% self-consumption in Edmonton. Actual savings depend on your electricity consumption, rate plan, solar exposure, and how aggressively the AI trades price spreads. Conservative estimate: $1,500–3,500/year.

Q: Does solar work in Edmonton's winter?

A: Yes, but output drops significantly. December–January production may be only 15–25% of summer output due to short days and low sun angle. The AI compensates by switching to a grid-arbitrage strategy (buy low overnight, use during peaks). Snow reflection (albedo effect) can actually boost output on clear winter days.

Q: What happens during a power outage?

A: With the Victron MultiPlus-II, your system can operate in off-grid mode, powering critical loads from the battery and solar. The switchover is automatic (within 20ms). However, current Alberta regulations require anti-islanding protection β€” consult your electrician about configuring this safely.

Q: How long do the batteries last?

A: Pylontech US3000C batteries are rated for 6,000 cycles to 80% depth of discharge (DoD). At one cycle per day, that's over 16 years. With the AI optimizing cycles, expect even longer life. Manufacturer warranty is typically 10 years.

Q: Can I expand the system later?

A: Yes. Both the Pylontech battery stack (up to 16 units) and the solar array can be expanded. You may need an additional MPPT controller for more panels. Any expansion to the grid-tied components requires a new permit and electrician visit.

Q: Is this system insurable?

A: Most home insurance policies cover properly permitted and inspected solar installations. Inform your insurer before installation. Unpermitted work may void your coverage. Get the Safety Codes inspection certificate and keep it on file.

10. Glossary

TermDefinition
AESOAlberta Electric System Operator β€” manages Alberta's wholesale electricity market and sets pool prices.
BMSBattery Management System β€” electronic circuitry that monitors and protects battery cells from overcharge, over-discharge, and overheating.
DC (Direct Current)Type of electrical current produced by solar panels and batteries. Flows in one direction.
AC (Alternating Current)Type of electrical current used in homes and the grid. Oscillates direction 60 times per second (60 Hz in Canada).
DoDDepth of Discharge β€” how much of the battery's capacity has been used. 80% DoD means 20% charge remains.
ESSEnergy Storage System β€” Victron's operating mode that enables smart charging/discharging based on grid conditions.
GPIOGeneral Purpose Input/Output β€” the digital pins on the Raspberry Pi used to connect sensors and relays.
IΒ²CInter-Integrated Circuit β€” a communication protocol used by sensors like the INA219 to talk to the Raspberry Pi.
InverterA device that converts DC power (from batteries/solar) to AC power (for home use/grid export).
kWhKilowatt-hour β€” unit of energy. A 100W bulb running for 10 hours uses 1 kWh.
kWpKilowatt-peak β€” rated output of solar panels under standard test conditions (STC).
LiFePO4Lithium Iron Phosphate β€” a safe, long-lasting lithium battery chemistry ideal for stationary storage.
MC4Multi-Contact 4mm β€” standard waterproof electrical connector used in solar panel wiring.
Micro-generationAlberta regulatory category for small-scale electricity generation (under 5 MW) that connects to the grid.
ModbusIndustrial communication protocol used by the Victron Cerbo GX to share data with external systems.
MPPTMaximum Power Point Tracking β€” a charge controller algorithm that optimizes the voltage/current from solar panels for maximum energy harvest.
MWhMegawatt-hour β€” 1,000 kWh. AESO pool prices are quoted in $/MWh.
NEMANational Electrical Manufacturers Association β€” ratings for enclosure weather-resistance (e.g., NEMA 4X = weatherproof).
Net MeteringA billing arrangement where excess solar energy exported to the grid generates credits on your electricity bill.
SoCState of Charge β€” the current charge level of a battery, expressed as a percentage (0–100%).
StringA series-connected group of solar panels. Multiple strings may be connected in parallel.
TOUTime of Use β€” electricity pricing that varies by time of day (on-peak, off-peak).
VocOpen-Circuit Voltage β€” the maximum voltage a solar panel produces when not connected to a load.
VE.Direct / VE.BusVictron Energy proprietary communication interfaces for connecting their devices together.

11. References & Resources

11.1 Suppliers (Canada / Edmonton)

SupplierWhat They SellWebsite
SolacitySolar panels, inverters, charge controllers, batteries, wiring β€” full system packagessolacity.com
Volts.caPylontech batteries, Victron equipment, solar accessoriesvolts.ca
Memory Express (Edmonton)Raspberry Pi, microSD cards, electronics, computer componentsmemoryexpress.com
DigiKey CanadaSensors (ACS712, INA219), electronic components, connectorsdigikey.ca
Home Depot (Edmonton)Enclosures, conduit, tools, PPE, general hardwarehomedepot.ca
Amazon.caRelays, MC4 connectors, cable, miscellaneous electronicsamazon.ca
MidNite SolarCombiner boxes, disconnects, surge protectionmidnitesolar.com
Evolve Energy 🀝 PartnerFronius inverters, DIY solar kits, grid-tied packages, battery storage β€” 16+ years experience, Canadian companyevolveenergy.ca

11.2 Regulations & Standards

11.3 Government Incentives

11.4 Equipment Manuals

11.5 Tools & Calculators

  • PVWatts Calculator (NREL): pvwatts.nrel.gov β€” Estimate solar production for your specific location.
  • AESO Real-Time Pool Price: ets.aeso.ca β€” Live Alberta wholesale electricity prices.
  • Victron VRM Portal: vrm.victronenergy.com β€” Free cloud monitoring for Victron systems.

🎬 Videos

Explore IREO through our video presentations and demos.

⚑ The Solar Efficiency Trap

Why solar panels alone aren’t enough β€” and how IREO’s AI brain maximizes every watt your system produces.

IREO β€” AI Home Energy

An overview of how IREO’s AI brain optimizes your home energy flow between solar, battery, and the grid.

Your Home, Your Power Plant

See how IREO transforms your Edmonton home into an intelligent, autonomous power plant.

🌍 This Earth Day, Go Beyond Solar

Earth Day special β€” go beyond panels and take full control of your home energy with AI orchestration.

πŸ”¬ The Thin Edge β€” Decoupling Energy Intelligence

Discover how IREO decouples energy intelligence from hardware, creating a thin software layer that orchestrates your entire home power system.

⏱️ IREO β€” The 24-Hour Stress Test

Watch IREO's AI brain navigate a full 24-hour cycle β€” optimizing charge, discharge, and grid interaction through every price fluctuation.