Solar Installation
Solar installations are jobs for installing solar PV (photovoltaic) panel systems at residential properties. These installations may span multiple days and can include battery storage and Tesla Gateway components. For standalone battery installations without solar panels, see Battery-Only Installation.
Job Properties
| Property | Description |
|---|---|
productType | Always 'solar' |
packs | Contains inverter, battery, and optional Tesla Gateway packs |
dates | Array of installation dates |
Completing a Solar Installation
1. External Installation Photos
Supports up to 3 roof arrays. Array 1 photos are required; Arrays 2-3 are optional.
Per-array photos:
- Roof face before starting
- Full roof fixing points
- Full roof bracket and rail
- DC cables tied to rail
- Completed roof array (showing full array)
- DC entry (optional)
- Optimiser layout (optional)
- Bird guard (optional)
- Flashing to roof hook fixing point
- Existing roof damage (optional)
2. Internal Installation Photos
28 photos documenting the internal installation (20 mandatory, 8 optional), plus an optional serial-number photo per battery
3. Tesla Gateway (Conditional)
Only required if packs contain a Tesla Gateway (pack name contains both "tesla" and "gateway").
4 photos required:
- Overview of gateway installed
- Gateway (with serial number)
- Gateway with internal cover removed (showing wiring)
- Gateway with internal cover fitted and labelled
4. PV Array Test
Single photo of PV array test results.
5. Electrical Installation Certificate
Upload of the BS 7671 electrical installation certificate. Can be uploaded directly or sent via email to [email protected].
6. Building Regulations Certificate
Upload of the building regulations certificate. Can be uploaded directly or sent via email.
7. Customer Walkthrough
See Customer Walkthrough for details.
Submission Flow
| Step | Endpoint | Body |
|---|---|---|
| 1 | PUT /engineers/installation-jobs/solar-and-battery/{id}/photos | Photo data |
| 2 | PUT /installation_jobs/{jobId}/done | {installerId} |
Job transitions to ready_for_audit state on success.
Tesla Gateway Detection
Tesla Gateway step visibility is determined by pack contents:
hasTeslaGatewayInPacks = job.packs.some(
(pack) => pack.name?.toLowerCase().includes('tesla') && pack.name?.toLowerCase().includes('gateway'),
);