Forecasting
Residential Solar From a Consumer’s Perspective
I live in Southern California with a kid who runs the air conditioning like electricity is free and pretends that he lives in a frozen tundra. This factor made me the perfect candidate for going solar. And since I’ve worked in Itron’s forecasting department for almost 27 years, it also makes sense that I would share the whole experience.
My 1,500 square foot house is in San Diego. In 2015, my annual electric bill was approximately $2,700 (9,000 kWh)—summer bills were in the $400-500 range, an average 800-900 kWh, and always hit the tier two rates. This usage seemed a bit excessive for me since I work full-time and I am not home during the week. As I watched the bills through the beginning of 2016, I was on target to exceed cost and usage from 2015. So, I decided to get serious about this solar stuff.
Unfortunately, by the time I looked into it, the cap on the Net Energy Metering (NEM) program was reached in San Diego Gas and Electric’s (SDG&E) service territory on June 29, 2016. Going forward, interconnection applications for net energy metering would be governed by the rules of the NEM Successor Tariff (Schedule NEM-ST, NEM-ST or often called NEM 2.0). With NEM 2.0, non-bypassable charges were now going to be assessed and there was a nominal interconnection fee. In addition, NEM 2.0 participants are only allowed to stay on tiered rates for five years after a system went live. Then, participants would need to move to the mandatory TOU rates—but, five years was better than nothing.
After much interviewing, I opted to have a friend do the installation versus one of the big companies. Not surprisingly, once the project started, other things came up. My roof is old and required that I have a lift and relay done where existing tiles are lifted and the flashing and paper are replaced, but the existing tiles are re-used, only replacing broken ones. There was no need to do a full replacement since the roof tiles would not be visible to anyone under the solar panels anyway.
There are many kinds of calculators available that determine monthly peak sun hours by zip code and help to estimate the system size. I needed at least a 6 kW system and was thinking ahead for a possible electric vehicle, so I ended up with a 7.25 kW system with 25 panels. My house faces southwest, which is the ideal location for solar panels. As a home owner, I wanted the panels to be mounted on the back of the house for aesthetic reasons, but due to the roof design of the house and garage, there wasn’t much space to have all the panels facing southwest. Plus, I had two giant palm trees in the front that blocked the sun. So, I opted to install about half of the panels on the back of my house. These panels were mounted at an angle to maximize output. Seeing solar panels on nearly every rooftop in San Diego is normal, so I didn’t mind too much that the panels would be visible on the front of the house.
The re-roofing and the solar installation started at the end of September and was done so fast that it was hard to believe how much time the big companies quoted. Below are pictures of the front and back of the house with the installed panels.
The application process wasn’t exactly fast, but everything was ready to go by the end of October with final approvals occurring in early November.
The graph below illustrates my monthly 2015-2017 billed energy usage. You can see the significant impact that the solar panels have had on my billed usage.
From the solar monitoring services, I can look at cool, colorful energy production grids. The darkest colored blocks in the winter months represent the least amount of power produced by the solar arrays and the lighter colored blocks during the summer months represent the most power produced.
I also receive fun emails with my monthly carbon offset.
Being on a NEM rate, at least with SDG&E, means that I no longer receive monthly bills. I receive one true-up bill on the anniversary date of my start date, which is in November. The bottom line for me—I went from spending $2,700 annually to $48 the first year! This is turning out to be a quick five-year payback after the tax credits. I’ve had a positive experience and highly recommend installing solar panels.
Tune into part two of my story—coming soon—where I added that electric vehicle to the mix.
My 1,500 square foot house is in San Diego. In 2015, my annual electric bill was approximately $2,700 (9,000 kWh)—summer bills were in the $400-500 range, an average 800-900 kWh, and always hit the tier two rates. This usage seemed a bit excessive for me since I work full-time and I am not home during the week. As I watched the bills through the beginning of 2016, I was on target to exceed cost and usage from 2015. So, I decided to get serious about this solar stuff.
Unfortunately, by the time I looked into it, the cap on the Net Energy Metering (NEM) program was reached in San Diego Gas and Electric’s (SDG&E) service territory on June 29, 2016. Going forward, interconnection applications for net energy metering would be governed by the rules of the NEM Successor Tariff (Schedule NEM-ST, NEM-ST or often called NEM 2.0). With NEM 2.0, non-bypassable charges were now going to be assessed and there was a nominal interconnection fee. In addition, NEM 2.0 participants are only allowed to stay on tiered rates for five years after a system went live. Then, participants would need to move to the mandatory TOU rates—but, five years was better than nothing.
After much interviewing, I opted to have a friend do the installation versus one of the big companies. Not surprisingly, once the project started, other things came up. My roof is old and required that I have a lift and relay done where existing tiles are lifted and the flashing and paper are replaced, but the existing tiles are re-used, only replacing broken ones. There was no need to do a full replacement since the roof tiles would not be visible to anyone under the solar panels anyway.
There are many kinds of calculators available that determine monthly peak sun hours by zip code and help to estimate the system size. I needed at least a 6 kW system and was thinking ahead for a possible electric vehicle, so I ended up with a 7.25 kW system with 25 panels. My house faces southwest, which is the ideal location for solar panels. As a home owner, I wanted the panels to be mounted on the back of the house for aesthetic reasons, but due to the roof design of the house and garage, there wasn’t much space to have all the panels facing southwest. Plus, I had two giant palm trees in the front that blocked the sun. So, I opted to install about half of the panels on the back of my house. These panels were mounted at an angle to maximize output. Seeing solar panels on nearly every rooftop in San Diego is normal, so I didn’t mind too much that the panels would be visible on the front of the house.
The re-roofing and the solar installation started at the end of September and was done so fast that it was hard to believe how much time the big companies quoted. Below are pictures of the front and back of the house with the installed panels.
The application process wasn’t exactly fast, but everything was ready to go by the end of October with final approvals occurring in early November.
The graph below illustrates my monthly 2015-2017 billed energy usage. You can see the significant impact that the solar panels have had on my billed usage.
From the solar monitoring services, I can look at cool, colorful energy production grids. The darkest colored blocks in the winter months represent the least amount of power produced by the solar arrays and the lighter colored blocks during the summer months represent the most power produced.
I also receive fun emails with my monthly carbon offset.
Being on a NEM rate, at least with SDG&E, means that I no longer receive monthly bills. I receive one true-up bill on the anniversary date of my start date, which is in November. The bottom line for me—I went from spending $2,700 annually to $48 the first year! This is turning out to be a quick five-year payback after the tax credits. I’ve had a positive experience and highly recommend installing solar panels.
Tune into part two of my story—coming soon—where I added that electric vehicle to the mix.
Kesalahan terjadi ketika Memproses Template.
The following has evaluated to null or missing:
==> authorContent.contentFields [in template "44616#44647#114455" at line 9, column 17]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: contentFields = authorContent.content... [in template "44616#44647#114455" at line 9, column 1]
----
1<#assign
2 webContentData = jsonFactoryUtil.createJSONObject(author.getData())
3 classPK = webContentData.classPK
4/>
5
6<#assign
7authorContent = restClient.get("/headless-delivery/v1.0/structured-contents/" + classPK + "?fields=contentFields%2CfriendlyUrlPath%2CtaxonomyCategoryBriefs")
8contentFields = authorContent.contentFields
9categories=authorContent.taxonomyCategoryBriefs
10authorContentData = jsonFactoryUtil.createJSONObject(authorContent)
11friendlyURL = authorContentData.friendlyUrlPath
12authorCategoryId = "0"
13/>
14
15<#list contentFields as contentField >
16 <#assign
17 contentFieldData = jsonFactoryUtil.createJSONObject(contentField)
18 name = contentField.name
19 />
20 <#if name == 'authorImage'>
21 <#if (contentField.contentFieldValue.image)??>
22 <#assign authorImageURL = contentField.contentFieldValue.image.contentUrl />
23 </#if>
24 </#if>
25 <#if name == 'authorName'>
26 <#assign authorName = contentField.contentFieldValue.data />
27 <#list categories as category >
28 <#if authorName == category.taxonomyCategoryName>
29 <#assign authorCategoryId = category.taxonomyCategoryId />
30 </#if>
31 </#list>
32 </#if>
33 <#if name == 'authorDescription'>
34 <#assign authorDescription = contentField.contentFieldValue.data />
35
36 </#if>
37
38 <#if name == 'authorJobTitle'>
39 <#assign authorJobTitle = contentField.contentFieldValue.data />
40
41 </#if>
42
43</#list>
44
45<div class="blog-author-info">
46 <#if authorImageURL??>
47 <img class="blog-author-img" id="author-image" src="${authorImageURL}" alt="" />
48 </#if>
49 <#if authorName??>
50 <#if authorName != "">
51 <p class="blog-author-name">By <a id="author-detail-page" href="/w/${friendlyURL}?filter_category_552298=${authorCategoryId}"><span id="author-full-name">${authorName}</span></a></p>
52 <hr />
53 </#if>
54 </#if>
55 <#if authorJobTitle??>
56 <#if authorJobTitle != "">
57 <p class="blog-author-title" id="author-job-title" >${authorJobTitle}</p>
58 <hr />
59 </#if>
60 </#if>
61 <#if authorDescription??>
62 <#if authorDescription != "" && authorDescription != "null" >
63 <p class="blog-author-desc" id="author-job-desc">${authorDescription}</p>
64 <hr />
65 </#if>
66 </#if>
67</div>
The following has evaluated to null or missing: ==> authorContent.contentFields [in template "44616#44647#114455" at line 9, column 17] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: contentFields = authorContent.content... [in template "44616#44647#114455" at line 9, column 1] ----
1<#assign
2 webContentData = jsonFactoryUtil.createJSONObject(author.getData())
3 classPK = webContentData.classPK
4/>
5
6<#assign
7authorContent = restClient.get("/headless-delivery/v1.0/structured-contents/" + classPK + "?fields=contentFields%2CfriendlyUrlPath%2CtaxonomyCategoryBriefs")
8contentFields = authorContent.contentFields
9categories=authorContent.taxonomyCategoryBriefs
10authorContentData = jsonFactoryUtil.createJSONObject(authorContent)
11friendlyURL = authorContentData.friendlyUrlPath
12authorCategoryId = "0"
13/>
14
15<#list contentFields as contentField >
16 <#assign
17 contentFieldData = jsonFactoryUtil.createJSONObject(contentField)
18 name = contentField.name
19 />
20 <#if name == 'authorImage'>
21 <#if (contentField.contentFieldValue.image)??>
22 <#assign authorImageURL = contentField.contentFieldValue.image.contentUrl />
23 </#if>
24 </#if>
25 <#if name == 'authorName'>
26 <#assign authorName = contentField.contentFieldValue.data />
27 <#list categories as category >
28 <#if authorName == category.taxonomyCategoryName>
29 <#assign authorCategoryId = category.taxonomyCategoryId />
30 </#if>
31 </#list>
32 </#if>
33 <#if name == 'authorDescription'>
34 <#assign authorDescription = contentField.contentFieldValue.data />
35
36 </#if>
37
38 <#if name == 'authorJobTitle'>
39 <#assign authorJobTitle = contentField.contentFieldValue.data />
40
41 </#if>
42
43</#list>
44
45<div class="blog-author-info">
46 <#if authorImageURL??>
47 <img class="blog-author-img" id="author-image" src="${authorImageURL}" alt="" />
48 </#if>
49 <#if authorName??>
50 <#if authorName != "">
51 <p class="blog-author-name">By <a id="author-detail-page" href="/w/${friendlyURL}?filter_category_552298=${authorCategoryId}"><span id="author-full-name">${authorName}</span></a></p>
52 <hr />
53 </#if>
54 </#if>
55 <#if authorJobTitle??>
56 <#if authorJobTitle != "">
57 <p class="blog-author-title" id="author-job-title" >${authorJobTitle}</p>
58 <hr />
59 </#if>
60 </#if>
61 <#if authorDescription??>
62 <#if authorDescription != "" && authorDescription != "null" >
63 <p class="blog-author-desc" id="author-job-desc">${authorDescription}</p>
64 <hr />
65 </#if>
66 </#if>
67</div>