Itron Idea Labs
Disruption Ahead
Thomas Edison would have no trouble recognizing most of the component parts in any electrical generation and distribution network today. The technology that made the electrical utility cutting edge in the late 1800s is still an optimal solution. But, that is changing quickly. [inlinetweet prefix="" tweeter="" suffix=""]Electrical utilities are on the cusp of a disruptive redesign.[/inlinetweet] When this is done, what emerges will have more in common with the Jetsons than with filament light bulbs.
The Other Side of Disruption
Trends are easier to embrace when they are described in the form of a user experience, so imagine this: Today’s personal assistant (Siri… or Cortana or Alexa, depending on your loyalties) expands into every device with a microprocessor, including utility monitoring, television, computers and cars. A whole-home personal assistant exists to offload the minutia of your life.
Let’s apply this scenario to the electric grid where energy companies are deploying time of use energy pricing that more accurately reflects the true cost of energy. This also means that consumers may want adjust their thermostat by a couple of degrees to take advantage of demand response incentives. But consumers won’t have to worry about doing it themselves thanks to the home personal assistant. Responding to demand response signals is offloaded to the assistant to handle.
It’s So Much More Than a Smart Thermostat
The home personal assistant does something much more intelligent than simply turning the thermostat up or down based on pricing provided by the energy company. First, it looks at the changing consumption of electricity, water and security sensors to decide whether you are home. If you are not, it has greater flexibility in the acceptable temperature. Having estimated the thermal efficiency of the home from external datasets, it decides how best to modify the temperature through the day. By shifting cooling on hot days into the early hours, it can use the reservoir of cooler air to reduce energy consumption at peak cost hours in the evening.
But this assistant isn’t just about keeping your energy costs low. It will also protect your home and family. It can use methane sensors to detect gas leaks and CO sensors to look for incomplete gas combustion. It can use advanced electrical meters to look for excessive loads indicating the potential for an electrical fire. It can use smart water meters to detect a significant water leak and allow it to be shut off even when you are at work or at the beach. The whole-home personal assistant and its associated IoT sensors infuses every aspect of the utility experience.
This Isn’t Your Grandfather’s Utility Any Longer
Hidden in this description is evidence of several significant trends. Data that was previously held in utility silos will also be fused with other datasets to enable personal assistants to act broadly on the consumer’s behalf. Personal assistants will talk to consumers on behalf of utilities. Finally, [inlinetweet prefix="" tweeter="" suffix=""]smart meters are no longer just about billing. They are about delivering data at high resolution that permits analysis and actionable understanding.[/inlinetweet]
Thomas Edison was ahead of his time in the creation of the first electric utilities, but that era is about to be disrupted. Your Siris, Alexas and Cortanas, and the datasets that feed them, will usher in the next era in electricity and utility services.
The Other Side of Disruption
Trends are easier to embrace when they are described in the form of a user experience, so imagine this: Today’s personal assistant (Siri… or Cortana or Alexa, depending on your loyalties) expands into every device with a microprocessor, including utility monitoring, television, computers and cars. A whole-home personal assistant exists to offload the minutia of your life.
Let’s apply this scenario to the electric grid where energy companies are deploying time of use energy pricing that more accurately reflects the true cost of energy. This also means that consumers may want adjust their thermostat by a couple of degrees to take advantage of demand response incentives. But consumers won’t have to worry about doing it themselves thanks to the home personal assistant. Responding to demand response signals is offloaded to the assistant to handle.
It’s So Much More Than a Smart Thermostat
The home personal assistant does something much more intelligent than simply turning the thermostat up or down based on pricing provided by the energy company. First, it looks at the changing consumption of electricity, water and security sensors to decide whether you are home. If you are not, it has greater flexibility in the acceptable temperature. Having estimated the thermal efficiency of the home from external datasets, it decides how best to modify the temperature through the day. By shifting cooling on hot days into the early hours, it can use the reservoir of cooler air to reduce energy consumption at peak cost hours in the evening.
But this assistant isn’t just about keeping your energy costs low. It will also protect your home and family. It can use methane sensors to detect gas leaks and CO sensors to look for incomplete gas combustion. It can use advanced electrical meters to look for excessive loads indicating the potential for an electrical fire. It can use smart water meters to detect a significant water leak and allow it to be shut off even when you are at work or at the beach. The whole-home personal assistant and its associated IoT sensors infuses every aspect of the utility experience.
This Isn’t Your Grandfather’s Utility Any Longer
Hidden in this description is evidence of several significant trends. Data that was previously held in utility silos will also be fused with other datasets to enable personal assistants to act broadly on the consumer’s behalf. Personal assistants will talk to consumers on behalf of utilities. Finally, [inlinetweet prefix="" tweeter="" suffix=""]smart meters are no longer just about billing. They are about delivering data at high resolution that permits analysis and actionable understanding.[/inlinetweet]
Thomas Edison was ahead of his time in the creation of the first electric utilities, but that era is about to be disrupted. Your Siris, Alexas and Cortanas, and the datasets that feed them, will usher in the next era in electricity and utility services.
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>