Heating a Vermont house with Pi and Pellets - Part 2

sgenzersgenzer Administrator, Moderator, Employee, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM ModeratorPosts:2,959Community Manager

Greetings Community,

It is a crisp morning here in Vermont - 44°F / 7°C - so my quest to get optimal heating efficiency has a renewed sense of urgency. Snow in September is not unheard of around here.

I am still in the data collection phase of this project, although some data are already coming in nicely for analysis (see later on in this post). Bought several more sensors that I plan on adding to this project in addition to room temp and infrared flame:

- 20A A/C current sensor (霍尔效应晶体管集成电路芯片) for measuringtotal current into stove(and of course easily converted to kW later on...)

- 433MHz superheterodyne receiver (this one) for getting theoutside temperature measurementsfrom myAcu-Rite Temperature Sensorhanging on a tree outside, inspired bythis clever post.

- A bunch ofA/D converter chipstoconvert some of my analog signalsto the Pi GPIO ports

- A bunch of5A current transformersto monitor thecurrent of individual power-consuming components(later converted to kW) on the stove: the convection blower, the ignitor, the combustion blower, and the auger motor

- AUSB microphoneto recordaudio of the various actions of the stoveas a verification of readings elsewhere

I had to move my flame sensor MUCH closer to the stove in order to get more reliable data; the IR spectrum of this cheap "flame sensor" is picking up wavelengths from sunlight as well as flame during the daytime. Once I did that, the Pi was recording great data:

Screen Shot 2017-09-01 at 9.13.21 AM.pngovernight data collection (x-axis unit ≈ 5 sec)So I am immediately thinking this is time tomaster theRapidMiner Time Series Extension!I have played around with this before but never done FFTs or other wave analysis with it. Last time I did an FFT was in college and I did it long-hand with anHP 42S RPN handheld calculator. Good times. Anyone want to give this a crack? I am attaching the data to this post and will give you kudos in my next post if you can show me!

Lastly, I want to join these data with those gathered by the U.S. National Weather Service via their REST API. They have stations everywhere and all their data are easily accessible for free. It took some doing to decipher what my "gridpoint" was and to deal with the JSON mess I received, but it was well worth it:

Screen Shot 2017-09-01 at 9.27.34 AM.png

Here's my XML for anyone who wants to use this API for retrieving weather data in the U.S.:
























https://api.weather.gov/gridpoints/BTV/124,29"/>
















<操作符= " true " class = " select_attribute激活s" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (2)" width="90" x="581" y="34">
















<操作符= " true " class = " select_attribute激活s" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (3)" width="90" x="1117" y="34">






<操作符= " true " class = " generate_attribu激活tes" compatibility="7.6.001" expanded="true" height="82" name="Generate Attributes (2)" width="90" x="1385" y="34">









<列出关键= " attribute_name " >















<操作符= " true " class = " select_attribute激活s" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (4)" width="90" x="179" y="34">


















<操作符= " true " class = " select_attribute激活s" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (5)" width="90" x="581" y="34">
































<连接from_port="input 1" to_op="Filter Examples (2)" to_port="example set input"/>
<连接from_op="Filter Examples (2)" from_port="example set output" to_op="Extract Macro" to_port="example set"/>
<连接from_op="Extract Macro" from_port="example set" to_op="Select Attributes (4)" to_port="example set input"/>
<连接from_op="Select Attributes (4)" from_port="example set output" to_op="Pivot" to_port="example set input"/>
<连接from_op="Pivot" from_port="example set output" to_op="Rename" to_port="example set input"/>
<连接from_op="Rename" from_port="example set output" to_op="Select Attributes (5)" to_port="example set input"/>
<连接from_op="Select Attributes (5)" from_port="example set output" to_op="Replace (2)" to_port="example set input"/>
<连接from_op="Replace (2)" from_port="example set output" to_op="Replace (3)" to_port="example set input"/>
<连接from_op="Replace (3)" from_port="example set output" to_op="Replace (4)" to_port="example set input"/>
<连接from_op="Replace (4)" from_port="example set output" to_op="Nominal to Date (2)" to_port="example set input"/>
<连接from_op="Nominal to Date (2)" from_port="example set output" to_port="output 1"/>




















<操作符= " true " class = " generate_attribu激活tes" compatibility="7.6.001" expanded="true" height="82" name="Generate Attributes (3)" width="90" x="2189" y="34">




<操作符= " true " class = " select_attribute激活s" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (6)" width="90" x="2323" y="34">








<连接from_port="in 1" to_op="Nominal to Text" to_port="example set input"/>
<连接from_op="Nominal to Text" from_port="example set output" to_op="Data to Documents" to_port="example set"/>
<连接from_op="Data to Documents" from_port="documents" to_op="Combine Documents" to_port="documents 1"/>
<连接from_op="Combine Documents" from_port="document" to_op="JSON To Data" to_port="documents 1"/>
<连接from_op="JSON To Data" from_port="example set" to_op="Select Attributes (2)" to_port="example set input"/>
<连接from_op="Select Attributes (2)" from_port="example set output" to_op="Transpose" to_port="example set input"/>
<连接from_op="Transpose" from_port="example set output" to_op="Replace" to_port="example set input"/>
<连接from_op="Replace" from_port="example set output" to_op="Split" to_port="example set input"/>
<连接from_op="Split" from_port="example set output" to_op="Select Attributes (3)" to_port="example set input"/>
<连接from_op="Select Attributes (3)" from_port="example set output" to_op="Trim" to_port="example set input"/>
<连接from_op="Trim" from_port="example set output" to_op="Generate Attributes (2)" to_port="example set input"/>
<连接from_op="Generate Attributes (2)" from_port="example set output" to_op="Loop Values" to_port="input 1"/>
<连接from_op="Loop Values" from_port="output 1" to_op="Append" to_port="example set 1"/>
<连接from_op="Append" from_port="merged set" to_op="Pivot (2)" to_port="example set input"/>
<连接from_op="Pivot (2)" from_port="example set output" to_op="Set Role (2)" to_port="example set input"/>
<连接from_op="Set Role (2)" from_port="example set output" to_op="Rename by Replacing" to_port="example set input"/>
<连接from_op="Rename by Replacing" from_port="example set output" to_op="Generate Attributes (3)" to_port="example set input"/>
<连接from_op="Generate Attributes (3)" from_port="example set output" to_op="Select Attributes (6)" to_port="example set input"/>
<连接from_op="Select Attributes (6)" from_port="example set output" to_op="Parse Numbers" to_port="example set input"/>
<连接from_op="Parse Numbers" from_port="example set output" to_port="out 1"/>






<连接from_op="Generate Data by User Specification" from_port="output" to_op="Enrich Data by Webservice" to_port="Example Set"/>
<连接from_op="Enrich Data by Webservice" from_port="ExampleSet" to_op="Subprocess (3)" to_port="in 1"/>
<连接from_op="Subprocess (3)" from_port="out 1" to_port="result 1"/>





Note there is no API key/token needed for this service which is an added bonus.

That's it for this post. Stay warm and enjoy!

CraigBostonUSA Pavithra_Rao

Answers

Sign InorRegisterto comment.