Itron Inspire

Internet of Things (IoT), the Cloud, Edge Analytics…

November 11, 2014

As my eyes wandered through the Knowledge Center at this year’s recent Itron Utility Week (IUW), I was captivated by the future. Stretching from one end of the floor to the other were a mix of Itron products, solutions and partner displays. I could have stopped and discussed meters or fixed networks, but I was drawn to the analytics section and potential of new devices.

As a forecaster, I track emerging trends and economic news. While I’ve heard about the Cloud and Internet of Things (IoT), I haven’t bothered to understand their implications beyond storing photos and getting my iPad connected. With Itron’s announcement of the Riva Platform, the Cloud and IoT move to the forefront of my mind.

If you don’t know, the Riva Platform brings distributed computing power, control, and analytics for automated decision-making. You can read about platform here.

In a nutshell, analytics and intelligence are being pushed to the edge removing the need for centralized cloud or utility control -- thus the phrase “Edge Analytics.” The Star Trek-ian vision of the future places intelligent sensors in every device making decisions that are both useful and efficient. Who wouldn’t want their house door to unlock when it senses you approaching (gone are key chains and time searching for lost keys)? Why do I need to follow my kids around the house turning off lights when sensors can detect an empty room (unlike my office where the sensor only detects movement often leaving me in the dark when I sit still typing)? The only thing I might not want is the tight Star Fleet uniform...

But as a forecaster, I realize that these new products will require electricity to power the chips and sensors. How much will it increase loads? When will all this occur? Is this load growth represented in my forecast?

Checking with Itron engineers, I confirm that the energy requirement for the new chip is negligible. Still, billions of negligible chips are not negligible. But for now, I’m content to believe that (1) billions of chips are outside my forecast time horizon and (2) any negligible increase in energy consumption will be offset by gains in efficiency. After all, I’m willing to sacrifice the load of a few chips against hours of lighting empty rooms.

Si è verificato un errore nell'elaborarazione del modello.
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>