<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Shane and Bill, <div class=""><br class=""></div><div class="">Bill, Thanks for your notes - would love to have a discussion on this topic.  I am using the DNS names as you will see in the example below.</div><div class=""><br class=""></div><div class="">Shane, </div><div class=""><br class=""></div><div class="">Yes, I think you could reduce the overhead by sending multiple data points.  Using Ubidots as the example - but most services use a similar structure.  One way to see what this looks like is to example the commands using CURL - the Arduino sketch will simply break this up into bite sized pieces.  Happy to share the sketch but the CURL command does a better job illustrating the point.</div><div class=""><br class=""></div><div class="">For a single data point (<a href="http://ubidots.com/docs/get_started/quickstart/tutorial.html" class="">documentation</a>) - the command and response looks like this:</div><div class=""><pre style="overflow-x: auto; overflow-y: hidden; padding: 9.5px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 13px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; margin-top: 0px; margin-bottom: 10px; line-height: 20px; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; background-color: rgb(245, 245, 245); border: 1px solid rgba(0, 0, 0, 0.14902);" class=""># Request.
$ curl -XPOST -H 'Content-Type: application/json;' -H 'X-Auth-Token: XEcxqx3GTAWGTr4UJiWKk2RiiWEl04kZMSspFeW2BDBgdIe4Dj9CqCXvKLEA' -d '{"value": 23}' <a href="http://things.ubidots.com/api/v1.6/variables/5423a49e76254239d3c55718/values" class="">http://things.ubidots.com/api/v1.6/variables/5423a49e76254239d3c55718/values</a>

# Response.
{
    "url": "<a href="http:///things.ubidots.com/api/v1.6/values/5423a49e76254239d3c55718" class="">http:///things.ubidots.com/api/v1.6/values/5423a49e76254239d3c55718</a>",
    "value": 23.0,
    "timestamp": 1369847742302,
    "created_at": "2013-08-29T17:15:42.302"
}</pre><div class=""><br class=""></div></div><div class="">For multiple data points (<a href="http://ubidots.com/docs/get_started/quickstart/tutorial-collections.html" class="">documentation</a>) - it would look like this:</div><div class=""><pre style="overflow-x: auto; overflow-y: hidden; padding: 9.5px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 13px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; margin-top: 0px; margin-bottom: 10px; line-height: 20px; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; background-color: rgb(245, 245, 245); border: 1px solid rgba(0, 0, 0, 0.14902);" class=""># Request.
$ curl -XPOST -H 'Content-Type: application/json;' -H 'X-Auth-Token: f6j9QGZqzsobNHZMFZ8UNWpPXOadv8LCtu3UuZyS32KbUwJyA2RRBhEsJpci' -d '[{"variable": "52656099f91b2878f1d81f1e", "value": 23}, {"variable": "5265608ef91b2878f05d75ba", "value": 22}]' <a href="http://things.ubidots.com/api/v1.6/collections/values" class="">http://things.ubidots.com/api/v1.6/collections/values</a>

# Response.
[{"status_code": 201}, {"status_code": 201}]</pre><div class=""><br class=""></div></div><div class="">Seems like this will be more efficient if only because you will exchange less API keys.</div><div class=""><br class=""></div><div class="">Other thoughts?</div><div class=""><br class=""></div><div class="">Chip</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 24, 2014, at 1:00 PM, <a href="mailto:triembed-request@triembed.org" class="">triembed-request@triembed.org</a> wrote:</div><br class="Apple-interchange-newline"><div class="">Send TriEmbed mailing list submissions to<br class=""><span class="Apple-tab-span" style="white-space:pre">   </span><a href="mailto:triembed@triembed.org" class="">triembed@triembed.org</a><br class=""><br class="">To subscribe or unsubscribe via the World Wide Web, visit<br class=""><span class="Apple-tab-span" style="white-space:pre">   </span>http://mail.triembed.org/mailman/listinfo/triembed_triembed.org<br class="">or, via email, send a message with subject or body 'help' to<br class=""><span class="Apple-tab-span" style="white-space:pre">       </span>triembed-request@triembed.org<br class=""><br class="">You can reach the person managing the list at<br class=""><span class="Apple-tab-span" style="white-space:pre">   </span>triembed-owner@triembed.org<br class=""><br class="">When replying, please edit your Subject line so it is more specific<br class="">than "Re: Contents of TriEmbed digest..."<br class=""><br class=""><br class="">Today's Topics:<br class=""><br class="">   1. Re: Did anyone discuss M2M data plans? (Charles McClelland)<br class="">   2. Re: Did anyone discuss M2M data plans? (Shane Trent)<br class="">   3. Re: Did anyone discuss M2M data plans? (Bill Farrow)<br class=""><br class=""><br class="">----------------------------------------------------------------------<br class=""><br class="">Message: 1<br class="">Date: Sun, 23 Nov 2014 23:47:16 -0500<br class="">From: Charles McClelland <chip@mcclellands.org><br class="">To: triembed@triembed.org<br class="">Subject: Re: [TriEmbed] Did anyone discuss M2M data plans?<br class="">Message-ID: <E56F49E4-F936-4277-A0EF-75B5E2A05D15@mcclellands.org><br class="">Content-Type: text/plain; charset="utf-8"<br class=""><br class="">Shane, <br class=""><br class="">I fired up my IOT device and did a test to see how much data is used on the GPRS network when a data packet is sent.  <br class=""><br class="">I sent data 51 times and used 215kb of data traffic according to my T-Mobile portal.   Here is the payload from one of those transmissions:<br class=""><span class="Apple-tab-span" style="white-space:pre">      </span>- Traffic count - ?10"<br class=""><span class="Apple-tab-span" style="white-space:pre">    </span>- Location - "lat:35.89, lng:-78.81"<br class=""><span class="Apple-tab-span" style="white-space:pre"> </span>- Battery - ?4083"<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- Retries - ?0?<br class=""><br class="">Seems like a lot of overhead -  ~4kb to send about 28 bytes.  Here is what I can see in looking at the code:<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- There is a 64 bit API key<br class=""><span class="Apple-tab-span" style="white-space:pre">    </span>- Then a 16 bit identifier for each data stream<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- There is also limited back and forth exchanging commands and result codes<br class=""><span class="Apple-tab-span" style="white-space:pre">    </span>- Looking at T-Mobile?s numbers, it may be that they count their data in chunks and round up.  Kind of like billing a 30 second call as 1 minute.<br class=""><br class="">I hope this helps with your planning.<br class=""><br class="">Chip<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">On Nov 21, 2014, at 8:26 PM, triembed-request@triembed.org wrote:<br class=""><br class="">Re: Did anyone discuss M2M data plans?<br class=""></blockquote><br class="">-------------- next part --------------<br class="">An HTML attachment was scrubbed...<br class="">URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20141123/4e6b8763/attachment-0001.html><br class=""><br class="">------------------------------<br class=""><br class="">Message: 2<br class="">Date: Mon, 24 Nov 2014 08:25:50 -0500<br class="">From: Shane Trent <shanedtrent@gmail.com><br class="">Cc: TriEmbed Discussion <triembed@triembed.org><br class="">Subject: Re: [TriEmbed] Did anyone discuss M2M data plans?<br class="">Message-ID:<br class=""><span class="Apple-tab-span" style="white-space:pre"> </span><CAAFjd3qawUOnEVkz+FGw3W=6fLdwmvJe=siRJ-P8Ut=UrujTiA@mail.gmail.com><br class="">Content-Type: text/plain; charset="utf-8"<br class=""><br class="">Chip,<br class=""><br class="">Thanks for the great information. That does seem like a lot of overhead. It<br class="">sounds like collecting the data and sending up a group of data points at<br class="">one time might be required to make the most of a modest data plan. Any idea<br class="">how much data it would take to send the 51 data points at one time?<br class="">Guessing from the numbers it might be only 6-7k.<br class=""><br class="">Shane<br class=""><br class=""><br class=""><br class="">On Sun, Nov 23, 2014 at 11:47 PM, Charles McClelland <chip@mcclellands.org><br class="">wrote:<br class=""><br class=""><blockquote type="cite" class="">Shane,<br class=""><br class="">I fired up my IOT device and did a test to see how much data is used on<br class="">the GPRS network when a data packet is sent.<br class=""><br class="">I sent data 51 times and used 215kb of data traffic according to my<br class="">T-Mobile portal.   Here is the payload from one of those transmissions:<br class="">- Traffic count - ?10"<br class="">- Location - "lat:35.89, lng:-78.81"<br class="">- Battery - ?4083"<br class="">- Retries - ?0?<br class=""><br class="">Seems like a lot of overhead -  ~4kb to send about 28 bytes.  Here is<br class="">what I can see in looking at the code:<br class="">- There is a 64 bit API key<br class="">- Then a 16 bit identifier for each data stream<br class="">- There is also limited back and forth exchanging commands and result codes<br class="">- Looking at T-Mobile?s numbers, it may be that they count their data in<br class="">chunks and round up.  Kind of like billing a 30 second call as 1 minute.<br class=""><br class="">I hope this helps with your planning.<br class=""><br class="">Chip<br class=""><br class=""><br class=""><br class="">On Nov 21, 2014, at 8:26 PM, triembed-request@triembed.org wrote:<br class=""><br class="">Re: Did anyone discuss M2M data plans?<br class=""><br class=""><br class=""><br class="">_______________________________________________<br class="">Triangle, NC Embedded Computing mailing list<br class="">TriEmbed@triembed.org<br class="">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org<br class="">TriEmbed web site: http://TriEmbed.org<br class=""><br class=""><br class=""></blockquote>-------------- next part --------------<br class="">An HTML attachment was scrubbed...<br class="">URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20141124/62ef06de/attachment-0001.html><br class=""><br class="">------------------------------<br class=""><br class="">Message: 3<br class="">Date: Mon, 24 Nov 2014 09:19:49 -0500<br class="">From: Bill Farrow <bill@arrowsreach.com><br class="">To: Charles McClelland <chip@mcclellands.org><br class="">Cc: TriEmbed Discussion <triembed@triembed.org><br class="">Subject: Re: [TriEmbed] Did anyone discuss M2M data plans?<br class="">Message-ID:<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><CAPm8Nr0CcapohaA+qc_yOcz+8nxVHcrygGjz9VxTVTFrHPor0w@mail.gmail.com><br class="">Content-Type: text/plain; charset=UTF-8<br class=""><br class="">On Sun, Nov 23, 2014 at 11:47 PM, Charles McClelland<br class=""><chip@mcclellands.org> wrote:<br class=""><blockquote type="cite" class="">Seems like a lot of overhead -  ~4kb to send about 28 bytes.  Here is what I<br class=""></blockquote><br class="">Is your device doing a DNS lookup as well ? Are you sending this<br class="">directly to an IP address ?<br class=""><br class="">A single datagram on the physical layer requires a header, ie ethernet header.<br class="">A single IP Packet has a 20 byte header.<br class="">A single TCP/IP packet has a 20 byte IP header plus a 20+ byte TCP header.<br class=""><br class="">TCP is a connection based protocol, so to establish a connection and<br class="">send a small number of bytes and then close the connection would<br class="">require several packets in both directions.<br class=""><br class="">Example:<br class="">========<br class="">Using Wireshark and netcat, I got the following data for single 1 byte<br class="">TCP transfer:<br class="">  SYN  Device --> Host = 74 bytes<br class="">  SYN-ACK  Host --> Device = 74 bytes<br class="">  ACK Device --> Host = 66 bytes<br class="">  PSH-ACK Device-->Host = 67 bytes<br class="">  ACK Host-->Device = 66 bytes<br class=""><br class="">The Ethernet header is 14 bytes, IP is 20 bytes, TCP in my case is 32<br class="">bytes. Therefore the minimum packet size is 66 bytes. The above TCP<br class="">transaction to send 1 byte of data took 347 bytes.<br class=""><br class="">The smallest IPv6 header is 40 bytes, and there are various extensions<br class="">to the header to add routing and security, which would make it even<br class="">larger.<br class=""><br class="">M2M:<br class="">========<br class="">The Machine to Machine protocol is then going to add more overhead to<br class="">the data transfer, plus SSL or TLS encryption headers, which also need<br class="">an accurate UTC time, typically fetched via NTP (Chip could probably<br class="">use the GPS time).<br class=""><br class=""><br class="">This would make a great mini talk !<br class=""><br class="">Bill<br class=""><br class=""><br class=""><br class="">------------------------------<br class=""><br class="">Subject: Digest Footer<br class=""><br class="">_______________________________________________<br class="">TriEmbed mailing list<br class="">TriEmbed@triembed.org<br class="">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org<br class=""><br class=""><br class="">------------------------------<br class=""><br class="">End of TriEmbed Digest, Vol 18, Issue 20<br class="">****************************************<br class=""></div></blockquote></div><br class=""></div></body></html>