Calculators

Calculators

/* RELLENO DEL FORMULARIO DE PRESUPUESTO · Jose, 07-10-2026: «cuando el user esta login el quote form por defecto debe popular con la data del sistema registrada del user, y si quiere puede cambiarla», «toda esa info esta en la base de datos y se debera popular». nombre, correo y telefono salen de la SESION, que ya los guarda. direccion de `CommonUser::getFullAddress()` y empresa de `User::getCompany()`. LA GUARDA: la sesion guarda el mismo id en `id` y en `user_id`, y ese id se usa para `User`. Que sirva tambien para `CommonUser` es una SUPOSICION, y suponer aqui es rellenarle a alguien el formulario con el nombre y la direccion de otra persona. Por eso la fila de `CommonUser` solo se usa si SU CORREO COINCIDE con el de la sesion; si no, se descarta entera. Nada queda de solo lectura: se puede cambiar. Sin sesion, los cinco vacios. */ $pre_nombre = $pre_correo = $pre_telefono = $pre_direccion = $pre_empresa = ''; try { $ses = \Frontend\Handlers\FrontendSessionsHandler::getInstance(); if ($ses && $ses->isAuthenticated()) { $u = (array) $ses->getUser(); foreach (array('name', 'first_name', 'nickname') as $k) if ($pre_nombre === '' && !empty($u[$k])) $pre_nombre = trim((string) $u[$k]); if (!empty($u['email'])) $pre_correo = trim((string) $u['email']); if (!empty($u['phone'])) $pre_telefono = trim((string) $u['phone']); /* la persona, solo si el correo de la fila casa con el de la sesion */ $uid = 0; foreach (array('user_id', 'id') as $k) if ($uid === 0 && !empty($u[$k])) $uid = (int) $u[$k]; if ($uid > 0 && $pre_correo !== '') { $cu = \Frontend\Entity\CommonUser::repository()->find($uid); if (!empty($cu) && method_exists($cu, 'getEmail') && strcasecmp(trim((string) $cu->getEmail()), $pre_correo) === 0) { if ($pre_nombre === '' && method_exists($cu, 'getFullName')) $pre_nombre = trim((string) $cu->getFullName()); if ($pre_telefono === '' && method_exists($cu, 'getPhone')) $pre_telefono = trim((string) $cu->getPhone()); if ($pre_telefono === '' && method_exists($cu, 'getMobile')) $pre_telefono = trim((string) $cu->getMobile()); if (method_exists($cu, 'getFullAddress')) $pre_direccion = trim((string) $cu->getFullAddress()); } } /* la empresa, del propio objeto de usuario del sitio */ $uo = $ses->getUserObject(); if (!empty($uo) && method_exists($uo, 'getCompany')) $pre_empresa = trim((string) $uo->getCompany()); } } catch (\Throwable $ex) { /* si algo de esto no esta en este sitio, el formulario sale en blanco: lo de hoy */ $pre_nombre = $pre_correo = $pre_telefono = $pre_direccion = $pre_empresa = ''; }

Perform the calculation you need

Your location & roof

Where is the property, and which way does the roof face?

Roof orientation0° N
Drag the dial, use the arrow keys, or pick a direction. 0° is north.
20°
Most Sydney tiled roofs are 20–25°. Flat and low-pitch roofs are usually tilted on frames.
Single phase usually limits the inverter to 5–10kW and exports to 5kW.

Your roof

40 m²
Excluding vents, skylights, aerials and the 20cm edge setback.
None
Roof suitability
86/ 100

Good roof for solar. Nothing here would stop an install.

This roof across the year

Panels that fit
0
at 440W
System size
0
kW
Expected yield
0
kWh / yr

Suitable

What our installer will check on site
    Step 2 · Free full quote

    Get a proper quote from our team

    Send your estimate and a few details — we prepare a real, itemised quote for your property. Free, no obligation.

    Estimates only, for planning — your actual result depends on your tariff, roof, usage and the products chosen. Rebate and tariff figures are current as of September 2026: the federal Cheaper Home Batteries Program (tiered per-kWh via STCs) and the STC discount on new solar step down on a set schedule, the NSW PDRS household battery install incentive is suspended, and we confirm the exact value at quote. Verify current values with the Clean Energy Regulator and NSW Government.

    Calculators

    Call us directly
    0421 458 217