forked from ProjectMakeIt/TheThingSystem.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeveloper.html
More file actions
139 lines (107 loc) · 8.19 KB
/
Copy pathDeveloper.html
File metadata and controls
139 lines (107 loc) · 8.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="Author" content="The Thing System" />
<meta name="Keywords" content="Internet of Things, iot, home automation, Thing Sensor Report Protocol, TRSP, Simple Thing Protocol, Cloud, API, steward, curators, Rendezvous Server, Rendezvous Protocol, The Trouble With Things," />
<meta name="Description" content="Welcome to The Thing System! Your life and your house went from one computer to an Internet of things. From tablets to lightbulbs, from sensors to media boxes, everybody gets their own Internet. Today, you have to fight your things. They don't talk to each other, the apps don't work, it's a tower of babel. Our solution is open source." />
<title>ⓣ Developer</title>
<link rel="stylesheet" href="../print.css" type="text/css" media="print" />
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-44378714-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body class="leaf">
<div class="header">
<a href="../index.html" class="logo"><img alt="ⓣ the thing system" src="../images/thing.system.logo.svg" /></a>
</div>
<div class="main-content">
<ul class="nav">
<li><a href="../dev/index.html" class="purple select-purple">For Implementors</a></li>
<li style="clear: both;"><a href="Home.html" class="select-pink">Documentation</a>
<ul class="subnav">
<li><a href="The-Thing-Philosophy.html" class="toc">Philosophy</a></li>
<li><a href="The-Thing-Architecture.html" class="toc">The Thing Architecture</a></li>
<li><a href="Installation.html" class="toc">Installation</a></li>
<li><a href="Developer.html" class="select-toc">Developer</a> <span style="color: #f05687;">→</span>
<ol class="toc-nav">
<li><a href="Steward.html" class="toc">Steward</a></li>
<li><a href="Things.html" class="toc">Things</a></li>
<li><a href="Clients.html" class="toc">Clients</a></li>
<li><a href="Node-Rendezvous.html" class="toc">Node Rendezvous</a></li>
</ol>
</li>
</ul>
</li>
<li style="clear: both;"><a href="supported-things.html" class="select-green">Supported Things</a></li>
<li style="clear: both;"><a href="../code/index.html" class="select-orange">Get The Code</a></li>
<li><a href="../index.html" class="green">↑</a></li>
</ul>
<div class="doc-content">
<h1>Developer</h1>
<div class="container">
<a href="https://github.com/TheThingSystem/steward-ios-library"><img src="images/ios.lightbulbs.png" alt="Screen shot" title="" style="float: left; width: 210px; margin-right: 30px;" class="mobile-hide" /></a>
<p class="montserrat" style="padding-top: 20px;">You can develop for the <a href="Steward.html">steward</a>, <a href="Clients.html">clients</a> and <a href="Things.html">things</a>.</p>
<div class="download-splash" style="margin-top: 0px; margin-left: 0px; float: left;">
<table class="faux-table">
<tr>
<td class="faux-cell">
<a class="logo" href="https://github.com/TheThingSystem/steward-ios-library"><img src="../images/select.svg" class="arrow" alt="github repo" /></a>
<h2>Steward iOS Library</h2>
<ul style="line-height: 29px;">
<li><a href="https://github.com/TheThingSystem/steward-ios-library/blob/master/README.md" class="select-pink" style="padding: 3px 10px;">quick start docs</a></li>
<li><a href="https://github.com/TheThingSystem/steward-ios-library" class="select-orange" style="padding: 3px 10px;">github repo</a></li>
</ul>
</td>
<td class="faux-cell">
<a class="logo" href="https://github.com/TheThingSystem/node-taas-client"><img src="../images/select.svg" class="arrow" alt="Download Raspberry Pi" /></a>
<h2>node-taas-client</h2>
<ul style="line-height: 29px;">
<li><a href="https://github.com/TheThingSystem/node-taas-client/blob/master/README.md" class="select-pink" style="padding: 3px 10px;">quick start docs</a></li>
<li><a href="https://github.com/TheThingSystem/node-taas-client" class="select-orange" style="padding: 3px 10px;">github (client)</a></li>
<li><a href="https://github.com/TheThingSystem/taas-server" class="select-orange" style="padding: 3px 10px;">github (server)</a></li>
</ul>
</td>
</tr>
</table>
</div>
<p class="montserrat" style="clear: both;">Check out our active development community at <a href="https://plus.google.com/communities/113042377519941328693">Google+</a>.</p>
</div>
<h2 style="clear: both;">Developing for the steward</h2>
<p>If you need to add a support for a consumer equipment talking some kind of industry, or manufacturer-specific protocol, which the steward <a href="The-Thing-Architecture.html">terms a native protocol</a>. Then you'll need to <a href="Steward.html">understand how the steward</a> handles <a href="Devices.html">devices</a>. New devices speaking native protocols (rather than <a href="Simple-Thing-Protocol.html">Simple Thing Protocol</a> or <a href="Thing-Sensor-Reporting-Protocol.html">Thing Sensor Reporting Protocol (TSRP)</a> can be added to the <a href="Steward.html">steward</a> by <a href="Devices.html">creating a module</a> with a path and name that conform to the <a href="Taxonomy.html">Device Taxonomy</a>. This module is detected and loaded by the steward during startup. </p>
<h2>Developing clients</h2>
<p>Building <a href="Clients.html">clients</a> which talk to the <a href="Steward.html">steward</a> is <a href="Building-Simple-Clients.html">pretty simple</a> using <a href="http://en.wikipedia.org/wiki/WebSocket">Websockets</a>. The steward provides two main API endpoints accessible using secure web socket protocol on port 8888, advertising this service via zero-configuration networking (<a href="http://en.wikipedia.org/wiki/Multicast_DNS">mDNS</a>).</p>
<p>Using these two end points you can both <a href="Building-Simple-Clients.html">monitor what is happening</a> with your things — for instance changes in the weather or your front door opening — or send commands to <a href="Building-Simple-Clients.html">perform actions</a>, for instance to <a href="Clients.html">turn all the lights in your house on or off</a>.</p>
<h2>Developing things</h2>
<p><img class="doc-image" src="images/dht-22.png" alt="Wiring Diagram" title="" /></p>
<p>Developing simple things which talk to the steward can be done in two ways. Either using the bi-directionally using the websocket based <a href="Simple-Thing-Protocol.html">Simple Thing Protocol</a> to provide control, or if you need to report readings only using the much simpler multicast UDP based <a href="Thing-Sensor-Reporting-Protocol.html">Thing Sensor Reporting Protocol (TSRP)</a>.</p>
</div>
<div class="footer">
<div class="footer-left"><a href="../index.html" class="green">↑</a> <a href="../index.html" class="yellow">the thing system</a></div>
<div class="footer-right"><a href="../code/index.html" class="select-orange">Get The Code</a></div>
</div>
<div class="pulldown styled-select" style="background-color: #f05687;">
<form method="get" action="http://thethingsystem.com/">
<select name="primary" onchange="parent.location=(this.options[this.selectedIndex].value)">
<option value="../index.html">Select an Option</option>
<option value="../things/index.html">The Trouble With Things</option>
<option value="../dev/index.html">For Implementors</option>
<option value="selected">Documentation</option>
<option value="../dev/supported-things.html">Supported Things</option>
<option value="../code/index.html">Get The Code</option>
<option value="../index.html">ⓣ</option>
</select>
</form>
</div>
</div>
</body>
</html>