Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
PrestoCloud-enable anyInternetofThings productwithfreehostingfromconceptthroughproduction
2016.04.20
Thefastestwaytocloud-enableanything.
Opensoftwaredeveloper kits,developerconsoles, andopenAPIsmeananyInternet-connectedproductcanjoinandcooperate.
OpenDeveloperConsoleCreatenewdevicesandparameters.http://presto.peoplepowerco.com
OpenDeviceAPIConnectdevicesandothercloudstoPresto.
http://docs.iotdevices.apiary.io
OpenApplication APIBuildmobileandwebuserexperiences.Extractdata.
http://docs.iotapps.apiary.io
OpenSourceSDKReferencesourcecodetoconnectdevicesandgateways.
https://github.com/peoplepower/presto-sdk-c
Bringyourgadgetstotheparty.
Withover154openAPIs,249totalAPIs, and84man-years ofarchitectureanddevelopment,theEnsemble softwaresuiteisarguablythemostopenandcomprehensive connectedhomeandbuilding cloudsoftwareavailabletoday.Itsconnectivity software,Presto,isavailablefree.
Nochargeperdevice.Nochargefordatathroughput.Fromconcepttofullproduction.
Connectivity
DeviceAgnostic.ProtocolAgnostic.
WithPresto,devicesfromdifferentmanufacturersspeaking differentphysicalprotocolscanactuallyconnectandcooperatewitheachother.Wi-Fi. Bluetooth.ZigBee.Z-Wave.Powerline.Sub-1GHz.Proprietary.Itdoesn’tmatter.
Afterall,everythingendsupconvergingtooneprotocolanyway:theInternetProtocol.
Connectivity
Likeabankingwebsite.
Prestofeatures2048-bit SSLandoptional bi-directionaldeviceauthentication.SensitivecontentisencryptedwithAES-128andmanagedusingthesamesecuritypracticesasstoringcreditcardinformation.Passwordsarehashed,anduseraccountsareaccessedwithcryptographictokens.
Whoowns thedata?Theuserdoes.Asthedatacustodian,we’retheretoprotectit.
(Andifyouneed,youcanhaveyourownTermsofServiceandPrivacyPolicywithyouruserstocustomizeyourowndatamanagementpolicies.Contactussupport@peoplepowerco.com.)
Security
Naturallanguagerules.Automaticpeaceofmind.
Withamobile-friendly naturallanguagerulesenginewithselectableinstallationscenarios,productsbehaveexactlyhowusersexpect.Thingshappen almostmagically.Experiencethefeelingofpeaceofmind.
RulesEngine
40,000Rulesperminuteonasingleinstance
TheAppStorefortheInternetofEverything.
Appsaren’tjustformobile.Withtheabilitytolearn,act,andcommunicate,theappsofthefuturewillruninthebackgroundofyourlife,24/7,asservices.
Addfeaturestogadgetsthatmanufacturersneverdreamed,createanalyticsthatmakessense ofvastandcomplexreal-timedata,anddifferentiateyourservices fromeveryoneelse.
[email protected] formoredetails.
AnalyticsEngine
Humanizing theInternetofThings
Presto ConnectivityHighlights§ HTTP GETandPOSTtosendmeasurementsandreceivecommands.§ Both JSONandXMLsupport, it’sthedeveloper’schoice.§ Bi-directional datastreams,usuallylessthan50bytesperminute.§ NATandfirewall penetration§ Synchronization in0.25– 0.50secondlatency.§ Online&Offlinerecognitionofdevicesandpeople.§ Automaticdatacorrectionandfilters.§ Vectormeasurements formaximumdatabaseefficiency.§ 2048-bitSSLencryption andoptionalbi-directionalauthentication.§ Managedroppedconnections,reliablydelivermissedmessages.§ Marshalmessagedeliverytolowcapabilitydevices.§ Broadcastandunicastmessaging,sharingasinglepipe.§ RTMPSandRTSP videostreamingavailable,butisnotfree.
2Definedevicetypesandparameters
1CreateanAccount
http://presto.peoplepowerco.com
3Connectdevicesandinteractremotely
GetStartedNow
Vocabulary
Humanizing theInternetofThings
DeviceTypesEverynewgadgetneedsitsowndevicetype.
§ ADeviceType isaclassofdevice.Eachonehasanumber.§ EachDeviceTypehasitsowncharacteristics,out-of-boxexperience,rules,instructions,anduserinterfaces.
§ WhenyoucreateaDeviceTypeinPresto,youprovideabasicdescriptionofhowthedevicewillwork.TheseattributeswilloptimizePrestotointeractwithyourdevice.
Humanizing theInternetofThings
ParametersPassdatabetweenthedevice,cloud,andapp.
§ Parameters arelikevariables.Key/valuepairs.§ Parametersarecommonlycalled:
§ Measurements - sentfromthedevicetothecloud.§ Commands - sentfromthecloud tothedevice.
§ Whenyoucreateaparameter,youdescribehowitwillbeused.ThiswilloptimizePrestotostoreandmanageyourparameterscorrectly.
§ AlltheparametersinPrestohaveacommonnamespace,sotheycantechnicallyseeeachother.Toavoidconflictswithanotherdeveloper,giveyourparametersauniqueprefix,like“ppc.power”insteadofjust“power”.
Humanizing theInternetofThings
LocationsDevicesandUsersconnectedthroughLocations
§ ALocation representsaphysicalplace:yourhome,building,floor,office,…Usersaregrantedpermissiontoaccesslocation.
§ Devicesareconnectedwithlocations.§ Userscanhavemultiplelocations.Locationscanhavemultipleusers.§ Useraccountsalwaysstartwithonelocation.
Location
Humanizing theInternetofThings
DeviceInstancesandDeviceIDsEveryconnecteddevicehasauniquedeviceID.
§ ADeviceInstance isanobjectthatgeneratesdataandreceivescommands.Usuallythisisarealgadget.
§ EachdeviceinstancehasaDeviceID.ThisisagloballyuniqueID,typicallyincludingthedevice’sMACaddress.
§ Seethe“PrestoQRCodeReadyDeviceIDs”documentonthePrestodeveloperconsoletolearnhowtocreateaQRcodethatwillregisteryourdeviceorgatewayquicklyinsideamobileapp.
Open Scan Use
UXModelsUXModelsdefinewhichparameternamesandbehaviorsforyourproducts,
allowingyoutosnapintoready-madeUXsoftwarestacks.
ConnectivityandParameters
DeviceType
RulesOOBE DeviceUIScenarios
UXModel
GettingConnected
Humanizing theInternetofThings
Presto interactiveAPIdocumentation
CompletelyOpenAPIs§ Connectdevices:http://docs.iotdevices.apiary.io§ Connectapps:http://docs.iotapps.apiary.io
TheAPIdocumentationauto-generatescodeforcURL,Java,JavaScript,Node.js,Perl,Python,PHP,Ruby,Go,C#,VisualBasic,Groovy,Objective-C,andSwift
Humanizing theInternetofThings
ThreewaystoconnectdevicesConnectdirectly,throughaproxy,orcloud-to-cloud
EnsembleSoftwareSuitewithPresto
YourGateway
EnsembleSoftwareSuitewithPresto
YourPlatform
EnsembleSoftwareSuitewithPresto
Humanizing theInternetofThings
WhichphysicalprotocolshouldIuse?Itdoesn’tmatter.
1.EveryprotocolconvergestoEthernet+IP.2.Therewillnever beaunifiedIoTprotocol.3.Normalpeopledon’tcare.
Theonlythingthatmattersisdeliveringareliableproductwithasimpleout-of-boxexperience.
Sub-1GHz
PLCConvergencePoint#1
LocalRouterConvergencePoint#2
Cloud
Humanizing theInternetofThings
LinuxOpenWRTOperatingSystemOpenSource
EmbeddedPlatformZigBee,WiFi, Bluetooth,Ethernet,Z-Wave,HomeKitMFi,Cellular,etc.
HardwareFromanymanufacturer
Agents:WiFi, ZigBee,HomeKit, AllJoyn,UPnP, BluetoothLE,Z-Wave,etc.
Presto EmbeddedOpensource
Embedded intelligenceandserviceswithComposerapps
Symphony EmbeddedProprietary
OpenSourceGatewayStack
Humanizing theInternetofThings
Architecture
PrestoSoftwareFramework
Agent#2Bluetooth
Cloud Server
Agent#1ZigBee
Agent#3AllJoyn
ComposerEmbeddedAnalytics
LocalApplication
APIs
ComposerEmbeddedProprietary.OrMonetized:Usershavetopurchaseapps
from PeoplePowerfirst,beforethoseappswillruninComposer Embedded
PrestoFreeCloudConnectivity
AgentsOpen Source
PrestoSoftwareFrameworkOpen Source
LocalApplicationAPIsOpen source.NormalizeAPIstoconnected devicesforlocalnetworkconnectivityandcreateimmediatevalueforcommunity developers.
Humanizing theInternetofThings
SocialCoding
GitHubGatewaysourcecodeismanagedthrough
aGit repository.
https://github.com/peoplepower/presto-sdk-c
Humanizing theInternetofThings
Howtoregisteradevicetoauser’saccount
1. First,loginusingtheLoginAPI.Gettheuser’sAPIkey.2. Next,usetheGetUserInformationAPItoobtaintheuser’s
LocationID.Mostusersonlyhaveonelocation.3. Finally,usetheRegisterDeviceAPItoregisterthedeviceto
theuser’slocation.
ThePrestoDeveloperConsolewillallowyoutoregisternewdevicesdirectly.ThePresenceappwillletyouscanQRcodestoregisterdevices.
Devicesthatconnecttotheserverbutarenotassociatedwithalocationareignored.
Humanizing theInternetofThings
Yourdevicemustconnecttothebestserver§ Loadbalancersareineffectivefordevices,becausedevicesarealwaysconnected.§ UsetheGetEnsembleServerAPI toconnectyourdevicewiththerightdeviceserver
whenitboots.Repeatevery~24hours.§ Thishelpsscaletheentiresystem.
Humanizing theInternetofThings
SendMeasurements(XML)
curl --request POST \-H "Content-Type: application/xml" \--data '<?xml version="1.0" encoding="utf-8" ?>
<h2s ver="2" proxyId="myplug-001" seq="1"><measure deviceId="myplug-001"><param name="ppc.power">0</param><param name="ppc.energy">0</param><param name="ppc.outletStatus">1</param>
</measure></h2s>' \
--verbose \https://esp.peoplepowerco.com:8443/deviceio/mlxml
Humanizing theInternetofThings
SendMeasurements(JSON)curl --request POST \-H "Content-Type: application/json" \--data '{
"version": "2", "proxyId": "myplug-001", "sequenceNumber": "1","measures": [
{ "deviceId": "myplug-001", "params": [
{ "name": "ppc.power","value": "0"
}, {
"name": "ppc.energy","value": "0"
},{
"name": "ppc.outletStatus","value": "1"
} ]
}]
}' \
--verbose \https://esp.peoplepowerco.com:8443/deviceio/mljson
Humanizing theInternetofThings
ReceiveCommands§ CommandscanbereceivedasrepliestobothPOSTandGETrequests.§ Ifyoureceiveacommand,alwaysrespond totheserverwithanacknowledgment.§ Ifyoudon’tacknowledge thecommand, theservermaytrytokeepsending the
commandforaperiodoftimetoensure reliabledelivery.§ Theexactserverbehaviorisconfigurable inyourdevicetype’sdefinition.
Humanizing theInternetofThings
ReceiveInstantaneousCommands
§ OpenanHTTPGETconnectionwiththeserver,andsetthetimeoutto~2minutes.§ Iftheservergetsacommand, italreadyhasanopenchanneltosendthat
commandtoyourdeviceinstantly.§ WhentheGETconnection timesout, refreshitimmediately.§ NeverdoanHTTPGETandPOSTsimultaneously, itdoesn’t scalewell.
curl --include \--header "Content-Type: application/xml" \
'https://app.peoplepowerco.com:8443/deviceio/mlxml?id=myplug-001&timeout=120'
curl --include \--header "Content-Type: application/json" \
'https://esp.peoplepowerco.com:8443/deviceio/mljson?id=myplug-001&timeout=120'
XML
JSON
Humanizing theInternetofThings
InstantaneousCommandsDetails
Listenforcommands Usersendsa
commandfromasmartphonethrough
theAppAPICommandcomesthroughtheopenGETconnection
Sendameasurementtoupdatethestatus
Keeplisteningforcommands
ThesmartphoneAppperiodicallypollsfornewdatausingtheAppAPI
Humanizing theInternetofThings
Presto isfree**Freeserviceincludes2048-bitSSL connectivitywith
optionalbi-directional authentication, supportingupto12measurementsandstatusupdates perhour onaverage,
andnear-instantaneouscommanddelivery.
PleasereviewtheTermsofServiceforcompletedetails.Needmore?Just ask.
Whatwillyoucreate?http://presto.peoplepowerco.com