Patent Description:
<CIT> teaches that monitor service deployable on deive networks may be implemented using a modular approach, in which a core monitor service is mapped to one or more devices included in or associated with the device networks.

<CIT> describes techniques for combined proximity services and IoT service registration or de-registration.

The invention relates to a method and a telemetry device as set forth in the claims. It will be understood that aspects of the disclosure falling outside the scope of the claims may not form part of the invention but may be useful to understand the invention.

As mentioned above, IoT devices may communicate telemetry data to a cloud-based telemetry service. Before such reporting of data may occur, the IoT device may register with the service via a provisioning process. Currently, different software development kits (SDKs) and application programming interfaces (APIs) may be used for telemetry device provisioning and telemetry data reporting, as the different types of communications may utilize different endpoints in a network-accessible IoT service. The use of multiple SDKs and/or APIs on a telemetry device to communicate with multiple service endpoints may require the IoT device to handle more complexity, and thus may pose relatively higher memory and processing requirements for the device. This may be particularly problematic for lower-power and/or lower-memory devices, which may lack nonvolatile storage to persistently store connection information for connecting to multiple endpoints over reboot cycles, thus requiring such devices to repeat the provisioning process at each reboot. As a more specific example, a medical alert device may be configured as a small, inexpensive, low-power device that only connects to an IoT solution upon detecting a predefined condition, such as a button press or voice command, and may not be configured to support multiple SDKs and APIs.

Accordingly, examples are disclosed that relate to a telemetry device configured to multiplex telemetry data with a registration message, and to communicate a multiplexed transmission comprising the registration message and the telemetry data to a single IoT endpoint. The IoT endpoint, referred to herein as a provisioning system, handles the complexity of provisioning the telemetry device to an associated IoT solution, referred to herein as a telemetry system, and also forwards telemetry data to the telemetry system on behalf of the telemetry device. This may help to reduce a memory and/or computational burden on the telemetry device by allowing the telemetry device to utilize a single SDK and API to perform stateless device provisioning and telemetry data reporting. Further, sending telemetry data with the registration message as a multiplexed transmission may help to improve efficiency and bandwidth usage of the telemetry reporting system.

<FIG> shows an example use environment <NUM> in which telemetry devices <NUM>, <NUM> each send registration data and telemetry data to a single IoT endpoint <NUM>. The example telemetry devices comprise a thermostat <NUM> and a sensor device <NUM> associated with a water heater <NUM>. In some examples, such telemetry devices <NUM>, <NUM> may be configured to report telemetry data on an occasional basis, such as upon sensing a predetermined condition. For example, the sensor device <NUM> may comprise a moisture sensor disposed beneath the water heater <NUM>, and may be configured to report telemetry data to the IoT endpoint <NUM> upon sensing a presence of water. As another example, the thermostat <NUM> may be configured to transmit a measured temperature according to a schedule and/or whenever the measured temperature meets or exceeds a threshold. In other examples, a telemetry device(s) may report telemetry data at any suitable frequency and/or based on any other trigger. While shown as a residential environment <NUM> in the example of <FIG>, the examples described herein may be implemented in any other suitable use environments and with any other telemetry device. Examples of other use environments include other indoor spaces, such as commercial spaces (e.g. offices, warehouses, retail stores, etc.), and outdoor spaces (e.g. farms, construction sites, parks, parking lots, etc.).

As mentioned above, sensing a presence of water may trigger the sensor device <NUM> to connect to a network. The sensor device <NUM> records the moisture sensor data as telemetry data, multiplexes the telemetry data with a registration message, and sends the multiplexed transmission to the IoT endpoint <NUM>. The registration message may include, for example, identification information identifying the sensor device <NUM> to the IoT endpoint <NUM>, a public portion of an X. <NUM> certification, a public portion of a trusted platform module (TPM) endorsement key, a public portion of a TPM storage root key, latitude/longitude information, and/or information regarding a current configuration (e.g. firmware version). In the depicted example, the sensor device <NUM> communicates the multiplexed transmission to a local network access point <NUM>, which transmits the received communications to the IoT endpoint <NUM> via a wide-area network (WAN). In other examples, a telemetry device may be configured to send the multiplexed transmission directly to an IoT endpoint, rather than via an intermediary access point.

The thermostat <NUM> also may send telemetry data on an occasional basis. For example, the thermostat <NUM> may be configured to report thermostat telemetry data according to a schedule or a threshold temperature (e.g. to help monitor home energy usage and/or regulate a household temperature). The thermostat <NUM> may remain in a low power state until a scheduled temperature reporting time or a threshold temperature is sensed, at which time the thermostat <NUM> may multiplex the measured data with a registration message, and send the multiplexed transmission.

<FIG> shows a block diagram illustrating an example system <NUM> for combined device provisioning and telemetry data reporting. System <NUM> comprises one or more telemetry devices <NUM>, which may represent any suitable devices having sensors. Each telemetry device <NUM> comprises an embedded computing system, such as a microcontroller unit (MCU), a processor, a system-on-chip (SoC), etc. Example computing systems are described below with reference to FIG. Further, each telemetry device <NUM> comprises one or more sensors <NUM>. Any suitable sensor(s) may be used. Example sensors include chemical sensors, moisture sensors, touch sensors, pressure sensors, temperature sensors, global positioning system (GPS) sensors, humidity sensors, inertial motion sensors, image sensors (depth and/or visible light), photosensors, particulate sensors, smoke sensors, acoustic sensors, optical sensors, motion sensors, and proximity sensors.

Each telemetry device <NUM> further comprises a multiplexer <NUM> configured to combine telemetry data (raw and/or processed sensor data) and a registration message into a multiplexed message for transmission. The multiplexed message may comprise any suitable data structure for communicating both registration information and telemetry data. The multiplexed message is sent to the IoT endpoint (provisioning system <NUM>) via a provisioning system API, as indicated by arrow <NUM> in <FIG>.

In some examples, a multiplexed message transmission occurs upon each telemetry device start-up. This may allow the telemetry device <NUM> to include little persistent memory, as the telemetry device <NUM> may simply store instructions/code for contacting a single IoT endpoint (e.g. the provisioning system <NUM>) each time the telemetry device <NUM> undergoes a boot process. In other examples, the telemetry device <NUM> may transmit a multiplexed transmission according to a schedule or another periodic basis, upon sensing a predefined condition (e.g. a measurement that meets or exceeds a threshold), upon receiving a reporting request from a system administrator, and/or based upon any other suitable trigger.

The provisioning system <NUM> comprises a demultiplexer <NUM> that separates the multiplexed message into the registration message and the telemetry data. After demultiplexing the multiplexed message, the provisioning system <NUM> stores the telemetry data in telemetry data storage <NUM> at least until the telemetry data is provided to a telemetry system. One example of the provisioning system <NUM> is Azure IoT Device Provisioning System (DPS), available from Microsoft Corp. of Redmond, WA.

Based on the received registration message, the provisioning system <NUM> sends a device ID for the telemetry device <NUM> to a telemetry system <NUM>, as indicated by arrow <NUM> in <FIG>. One example of a telemetry system is Azure IoT Hub, available from Microsoft Corp. of Redmond, WA. Sending the device ID to the telemetry system <NUM> configures the telemetry system <NUM> to receive telemetry data from the telemetry device <NUM> at some future time. In some examples, the provisioning system <NUM> may select from a plurality of possible telemetry systems a telemetry system with which to register the telemetry device <NUM> based on information received from the telemetry device <NUM>, such as an IP address, a serial number, and/or a geographical location of the telemetry device <NUM> (e.g. as determined from global positioning satellite data).

The telemetry system <NUM> stores device registration data <NUM> for each associated telemetry device <NUM> through N registered/provisioned to the telemetry system <NUM>. For each telemetry device <NUM>, the device registration data <NUM> may include such information as the device ID <NUM> and security credentials <NUM> for connecting to and/or operating with the telemetry system <NUM>.

After receiving the device ID, the telemetry system <NUM> creates and sends a device response for the telemetry device <NUM> to the provisioning system <NUM>, as indicated by arrow <NUM> in <FIG>. The device response may include, for example, an acknowledgement that the registration was successful or not successful. The device response also may include information regarding the success or failure to register the device with the telemetry system. Further, in examples where the telemetry device connects directly to the telemetry system after registration, the device response also may include information usable by the telemetry device <NUM> to connect to the telemetry system <NUM> and send data directly to the telemetry system <NUM>.

Upon receiving the device response, the provisioning system <NUM> sends the telemetry data to the telemetry system <NUM>, as indicated by arrow <NUM> in <FIG>. This differs from provisioning and telemetry data reporting systems and methods in which device provisioning and telemetry reporting are performed separately using different SDKs/APIs, as the system of <FIG> allows a single endpoint to be used for both device registration and telemetry reporting, thereby allowing the telemetry device to have less memory and compute resources than a device that uses different SDKs/APIs for provisioning and telemetry reporting.

The telemetry system <NUM> receives the telemetry data from the provisioning system <NUM> and stores the telemetry data in telemetry data storage <NUM>. The telemetry system <NUM> also may provide the telemetry data to one or more telemetry data processing programs <NUM>.

After receiving the device response, the provisioning system <NUM> registers the device response with the telemetry device <NUM>, as indicated by arrow <NUM> in <FIG>. Upon the completion of registration, in some examples, the telemetry device <NUM> may continue to send telemetry data to the provisioning system <NUM> for forwarding to the telemetry system <NUM>. This may be advantageous for telemetry devices that comprise limited or no nonvolatile storage, as such telemetry devices may continue to send telemetry data without persistently storing information for connecting to the telemetry system <NUM>. In other examples, the telemetry device <NUM> may send telemetry data directly to the telemetry system <NUM>. The telemetry device <NUM> may use connection information received from the provisioning system <NUM>, e.g. in a registration response message, to open a direct communication channel with the telemetry system <NUM> and send additional telemetry data directly to the telemetry system <NUM>, as indicated by arrow <NUM> in <FIG>. In yet further examples, steps <NUM> through <NUM> of <FIG> may be performed in full each time a device sends telemetry data to the telemetry system.

<FIG> illustrates an example method <NUM> operable by a telemetry device to send a registration message multiplexed with telemetry data to a single endpoint for registration and telemetry reporting. Method <NUM> may be used, for example, for stateless provisioning and telemetry data transmission. Method <NUM> may be implemented as stored instructions executable by a logic subsystem of a telemetry device, such as telemetry devices <NUM>, <NUM>, <NUM>, <NUM>, and/or <NUM>.

At <NUM>, method <NUM> comprises receiving telemetry data from one or more sensors. The telemetry data may comprise raw data (e.g. digitized sensor output), and/or may comprise processed sensor data (e.g. a report regarding a threshold condition being met by the sensor data). At <NUM>, method <NUM> comprises generating, via a multiplexer, a multiplexed transmission comprising a registration message and the telemetry data. In some examples, a telemetry device may be configured to generate the multiplexed transmission upon a device start-up, as indicated at <NUM>.

At <NUM>, method <NUM> comprises sending the multiplexed transmission to a remote computing device configured to demultiplex the multiplexed transmission and forward the telemetry data to a telemetry system. Sending the multiplexed transmission to the remote computing device may comprise sending the multiplexed transmission to an IoT provisioning system.

At <NUM>, method <NUM> comprises receiving a registration response from the remote computing device, wherein the registration response confirms registration of the telemetry device with the telemetry system. In some examples, receiving the registration response comprises receiving information usable to communicate with the telemetry system, as indicated at <NUM>. In some such examples, the telemetry device then may connect to the telemetry system and send data directly to the telemetry system, as indicated at <NUM>. In other examples, the telemetry device may send additional telemetry data to the remote computing device, as indicated at <NUM>, in addition or alternatively to sending data directly to the telemetry system. In yet other examples, the telemetry device may repeat method <NUM> for each transmission of telemetry data.

<FIG> illustrates an example method <NUM> for registering a telemetry device with a telemetry system and reporting telemetry data to a telemetry system on behalf of the telemetry device. Method <NUM> may be implemented as stored instructions executable by a logic subsystem of a provisioning system, such as the IoT endpoint <NUM> and/or the provisioning system <NUM>.

At <NUM>, method <NUM> comprises receiving, from a telemetry device, a multiplexed transmission comprising a registration message and telemetry data. At <NUM>, method <NUM> comprises demultiplexing, via a demultiplexer of the provisioning system, the multiplexed transmission to obtain the registration message and the telemetry data. Based on the registration message extracted from the multiplexed transmission, method <NUM> comprises, at <NUM>, registering the telemetry device with a telemetry system. Registering the telemetry device with the telemetry system may comprise creating a device ID for the telemetry device, sending the device ID to the telemetry system, and receiving a device response from the telemetry system. In some examples, registering the telemetry device with the telemetry system comprises registering the telemetry device with a cloud-based service associated with a user of the telemetry device, as indicated at <NUM>.

After registering the telemetry device with the telemetry system, method <NUM> comprises, at <NUM>, sending the telemetry data obtained from the multiplexed transmission to the telemetry system. The provisioning system may store the telemetry data at least until the telemetry system provides a device response for the telemetry device, at which point the provisioning system forwards the telemetry data to the telemetry system. In some examples, the telemetry data may cease to persist in data storage of the provisioning system after being forwarded to the telemetry system.

At <NUM>, method <NUM> comprises sending a registration response to the telemetry device, wherein the registration response confirms registration of the telemetry device with the telemetry system. Optionally, the registration response may inform the telemetry device that the telemetry system received the telemetry data. In some examples, sending the registration response additionality or alternatively comprises sending information usable by the telemetry device to connect to the telemetry system and send data directly to the telemetry system, as indicated at <NUM>.

In some instances, a telemetry device may naturally operate within a defined geographical region. For example, a thermostat temperature sensor or a security camera may be generally stationary once installed in a use environment. Likewise, various vehicles, such as construction equipment, shopping carts, etc. may be associated with particular geographic area (e.g. a construction site or storage yard, a grocery store and surrounding parking lot, etc.). When such a telemetry device leaves the associated geographical area, it is possible that the device may have been stolen or otherwise moved without authorization. In such instances, it may be desirable to limit use of the telemetry device, or take other ameliorative actions.

Thus, a telemetry system may be configured to monitor a geolocation of the telemetry device, and control use of the telemetry device based upon the geolocation falling outside of a defined operating region. Reauthorization of the device then may be required before ordinary use of the telemetry device is restored. In some examples, the intake of telemetry data by a telemetry service may be restricted until reauthorization is performed. In other examples, telemetry device operation may be restricted (whether partially impeded or fully shut down) until reauthorization is performed. In yet other examples, telemetry data collection may continue, but for the purpose of detecting theft or other unauthorized movement of the device, rather than for routine telemetry purposes (e.g. by continuing to collect image data, acoustic data, and/or location data). In any of these instances, an owner and/or authorized user of the telemetry device may receive an alert regarding a reported location of the telemetry device outside of its operating region. These actions may provide a measure of theft protection and/or damage prevention for a telemetry device.

As an example, a telemetry device in the form of a shopping cart may be configured to operate within an associated retail store and a parking area adjacent to the retail store. As such, if the shopping cart is moved to a location outside of its designated operating bounds, data collected by the shopping cart while outside the designated operating bounds may decrease the relevance of a shopping cart tracking data set stored by the telemetry system for the retail store. As such, data from the shopping cart may not be saved in the data set until after reauthorization. As another example, a telemetry device in the form of a golf cart may be configured to operate within a perimeter of a golf course. To prevent theft of golf course vehicles, the telemetry system may send a command to the telemetry device to restrict operation - e.g. by disabling operation of an electric motor of the golf cart - when the telemetry device reports a location outside of the golf course property until reauthorization is performed. Other example telemetry devices that may be controlled based upon geolocation include other vehicles (heavy machinery, luggage carts, drones, bicycles, etc.), soil sensors, water quality sensors, shipping containers, and any other device configured to report data for a particular location/geographical region.

<FIG> depicts an example scenario in which a telemetry device <NUM> in the form of a construction vehicle is configured to operate within a work site <NUM>. Briefly, the telemetry device <NUM> is registered with a telemetry system <NUM> as being intended for use within a particular geographical boundary <NUM>. The telemetry system <NUM> then monitors a geolocation of the telemetry device <NUM> to determine whether the telemetry device <NUM> is operating within the geographical boundary <NUM> based, for example, on GPS data, and controls use of the telemetry device <NUM> based on whether the geolocation of the telemetry device <NUM> is outside the geographical boundary <NUM>.

The telemetry system <NUM> stores telemetry device data <NUM> for each telemetry device <NUM> through N associated with the work site <NUM> (only one of which is shown in the example of <FIG> as telemetry device <NUM>). For each telemetry device, the telemetry device data <NUM> comprises a device ID <NUM>, security credentials <NUM>, and a geographical boundary <NUM> within which the telemetry device is expected to be located. In some examples, each telemetry device <NUM> through N registered with the telemetry system <NUM> may be assigned to a different geographical boundary which may be linked to a respective device ID of the telemetry device. In other examples, the telemetry devices <NUM> through N registered with the telemetry system <NUM> may each be assigned to a same geographical boundary.

In <FIG>, the telemetry device <NUM> has been moved to a location <NUM> outside of the geographical boundary <NUM>. In some examples, the telemetry device <NUM> reports this location, and the telemetry system <NUM> determines that the reported location is not within the geographical boundary <NUM>. In other examples, the crossing of the geographical boundary <NUM> may be detected locally on the telemetry device, and the crossing reported as an event to the telemetry system <NUM>. In either case, the telemetry system <NUM> may take one or more actions towards restricting use of the telemetry device <NUM>, such as not receiving data from the telemetry device into telemetry system <NUM> until reauthorization is performed.

The telemetry system <NUM> also may take an action towards restricting use of the telemetry device <NUM> by sending an alert <NUM> regarding the location outside the geographical boundary, for example, to notify an owner, operator and/or other authorized person of the unauthorized location. As shown in <FIG>, the alert <NUM> may request reauthorization, and may prompt an operator to return the telemetry device <NUM> to the associated operating region <NUM>. Such an alert <NUM> may be output by the telemetry device <NUM>, as shown in <FIG>, and/or output to a device (e.g. a smartphone) associated with an owner of the telemetry device <NUM>.

As another example, the telemetry system <NUM> may restrict use of the telemetry device <NUM> by sending a command to impede operation of the telemetry device <NUM> while the telemetry device <NUM> is located outside of the geographical boundary <NUM>. As an example, for the bulldozer telemetry device <NUM> in <FIG>, the telemetry system <NUM> may send a command to disable operation of a power system of the bulldozer. This may help to prevent damage by an unauthorized user. As another example, the telemetry system <NUM> may take action towards restricting use of the telemetry device <NUM> by shutting down the telemetry device <NUM> until reauthorization is performed.

In some instances, an operator of the telemetry device <NUM> may move the telemetry device <NUM> off-site, such as to move the telemetry device <NUM> to a different work site. In such instances, the operator may perform a manual override to reauthorize the telemetry device <NUM> and remove any previously-imposed impediment on device use. This (and other possible reauthorization processes, such as password entry, biometric authentication, etc.) may be performed, for example, via a dashboard for the telemetry system <NUM> accessible using a web browser or application by an authorized user/owner of the telemetry device <NUM>. The operator further may redefine the geographical boundary for the device <NUM> to correspond to the different work site. As another example, a store owner may intentionally transfer a shopping cart between two retail store locations. The shopping cart may be associated with a geographical boundary for a first retail store based on its registration to a telemetry system for the first retail store or based on a geographical boundary linked to its device ID. When the shopping cart is moved outside the geographical boundary for the first retail store, the telemetry system for the first store may sending the store owner an alert indicating that the telemetry device is in an unauthorized location, and may take an action to impede use of the telemetry device (e.g. by locking the wheels). The store owner may respond to this notification (e.g. via a website or mobile application dashboard for the telemetry system) to authorize the move of the shopping cart and to specify that the shopping cart will be associated with the second store. The telemetry system for the first retail store may rescind the action towards restricting use of the shopping cart and reassign the shopping cart to a geographical boundary for the second retail store. In instances that the second retail store is associated with a different telemetry system (e.g. a different IoT hub) than the first retail store, the shopping cart may be reassigned to the geographical boundary for the second retail store upon registering/provisioning to the telemetry system for the second store.

<FIG> illustrates a flow diagram illustrating an example method <NUM> of restricting use of a telemetry device <NUM> by a telemetry system <NUM>. In some examples, the telemetry system <NUM> may take the form of Software as a Service (SaaS), Platform as a Service (PaaS), or application PaaS (aPaaS). In other examples, aspects of the telemetry system <NUM> may be implemented as stored instructions executable by a logic subsystem of the telemetry device <NUM> itself, or a network edge device residing between the telemetry device <NUM> and the telemetry system <NUM>.

Method <NUM> comprises, at the telemetry device <NUM>, reporting telemetry data comprising location data to the telemetry system <NUM>, as indicated at <NUM>. In some examples, the telemetry device <NUM> may report location data without any other accompanying telemetry data. In other examples, the telemetry device <NUM> may report location data and other sensor data. The location data may comprise any suitable type of data, including GPS data and an IP address location data.

At <NUM>, the telemetry system <NUM> compares the location data received to a predefined geographical boundary for the telemetry device <NUM>. In some examples, comparing the location data to the defined geographical boundary comprises comparing the location data to a geographical boundary linked to a telemetry system with which the telemetry device is registered. In other examples, comparing the location data to the defined geographical boundary comprises comparing the location data to a geographical boundary linked to a device ID of the telemetry device.

In some examples, the predefined geographical boundary also may include temporal constraints. Thus, comparing the location data to a defined geographical boundary may further comprise comparing a timestamp or other time information associated with the location data to a temporal constraint for the defined geographical boundary. For example, when the telemetry device <NUM> comprises a shipping container configured to be transported between locations, a predefined geographical boundary for the shipping container may comprise time constraints specifying when the shipping container is expected to be within (or expected to leave) each of multiple geographical boundaries, such as those defined by country, state, and/or city perimeters. Further, the telemetry system <NUM> may utilize multiple factors of authentication to verify whether the telemetry device <NUM> is within or outside the predefined geographical boundary. For example, the telemetry system <NUM> may corroborate whether a GPS coordinate reported by the telemetry device <NUM> is valid via an IP address of the telemetry device <NUM>.

The telemetry device <NUM> may report location data to the telemetry system <NUM> at any suitable frequency. The frequency of reporting may depend upon hardware constraints of the telemetry device <NUM>, such as battery life, and/or bandwidth constraints of a network over which the telemetry device <NUM> and the telemetry system <NUM> communicate. For example, a telemetry device connected to a local power source may be configured to report location data more frequently than a telemetry device without access to a local power source. In yet other examples, the location data may be reported based upon the occurrence of events (e.g. a detected crossing of a geographical boundary), rather than at a selected frequency.

Based on the comparison at <NUM>, the telemetry system <NUM> determines, at <NUM>, whether the location reported by the telemetry device <NUM> is outside of the defined geographical boundary. If the location is not outside the predefined geographical boundary for the telemetry device <NUM>, then method <NUM> ends. If the location is outside the predefined geographical boundary for the telemetry device <NUM>, then method <NUM> proceeds to <NUM>, where the telemetry system <NUM> takes an action towards restricting use of the telemetry device <NUM>.

The telemetry system <NUM> may take any suitable action towards restricting use of the telemetry device <NUM>. In some instances, the telemetry system <NUM> may revoke credentials for the telemetry device <NUM> so that the telemetry device is unable to connect to the telemetry system <NUM> using those credentials, and require reauthorization before the provision of telemetry data to the telemetry system may resume. This may, for example, help prevent data collected by the telemetry device <NUM> outside of the predefined geographical boundary from reducing a relevance of a data set stored in the telemetry system <NUM> for the defined geographical boundary. Further, in some instances, the telemetry system <NUM> may send a command to impede operation of the telemetry device <NUM>, as indicated at <NUM>. In response, the telemetry device <NUM> may reduce its functionality, as indicated at <NUM>. Further, in some examples, the cloud-based service <NUM> may send an alert for output by the telemetry device <NUM> and/or for output by a device (e.g. a mobile device) associated with an authorized user or owner of the telemetry device <NUM>, as indicated at <NUM>. In response, the telemetry device <NUM> and/or the device associated with a user of the telemetry device <NUM> may output the alert, as indicated at <NUM>.

In any of these instances, the telemetry system <NUM> also may send a revocation of authorization, and require reauthorization to restore ordinary telemetry device use, as indicated at <NUM>. In response, the telemetry device <NUM> may send reauthorization data, such as location data and/or a user input to the telemetry device, as indicated at <NUM>. In addition or alternatively, the telemetry system may receive reauthorization data from an owner/administrator of the telemetry system <NUM>, e.g. via a web portal or application for the telemetry system <NUM>. At <NUM>, if reauthorization of the telemetry device <NUM> is successful, then a command is sent at <NUM> to restore ordinary use of the telemetry device. This may include removing a previously-imposed impediment to device use and/or restoring connection information for connecting with the telemetry system <NUM>. Where reauthorization is not successful, method <NUM> maintains use restrictions for the telemetry device <NUM>, and may send an additional alert regarding the reauthorization failure, as indicated.

In some aspects, the methods and processes described herein may be tied to a computing system of one or more computing devices.

<FIG> schematically shows a non-limiting aspect of a computing system <NUM> that can enact one or more of the methods and processes described above.

For example, the logic machine <NUM> may be configured to execute instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs.

The logic machine <NUM> may include one or more processors configured to execute software instructions. Processors of the logic machine <NUM> may be single-core or multicore, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic machine <NUM> optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic machine <NUM> may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration.

The term "program" may be used to describe an aspect of computing system <NUM> implemented to perform a particular function. In some cases, a program may be instantiated via logic machine <NUM> executing instructions held by storage machine <NUM>. It will be understood that different programs may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same program may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The term "program" may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc..

In some aspects, the input subsystem <NUM> may comprise or interface with selected natural user input (NUI) componentry.

In some aspects, the communication subsystem may allow computing system <NUM> to send and/or receive messages to and/or from other devices via a network such as the Internet.

Another example provides a method comprising receiving a multiplexed transmission from a telemetry device, the multiplexed transmission comprising a registration message and telemetry data, demultiplexing the multiplexed transmission to obtain the registration message and the telemetry data, registering the telemetry device with a telemetry system based upon the registration message, sending the telemetry data to the telemetry system, and sending a registration response to the telemetry device, the registration response confirming registration of the telemetry device with the telemetry system. In such an example, sending the registration response to the telemetry device may additionally or alternatively comprise sending information usable by the telemetry device to connect to the telemetry system. In such an example, registering the telemetry device with the telemetry system may additionally or alternatively comprise registering the telemetry device with a cloud-based service associated with a user of the telemetry device. In such an example, the telemetry data may additionally or alternatively comprise location data, and the method may additionally or alternatively comprise comparing the location data received to a predefined physical boundary for the telemetry device, and when the location data does not meet a predefined condition with regard to the defined physical boundary, then taking an action towards restricting use of the telemetry device. In such an example, taking the action towards restricting the use of the telemetry device may additionally or alternatively comprise ceasing sending of the telemetry data received from the telemetry device to the telemetry system. In such an example, taking the action towards restricting the use of the telemetry device may additionally or alternatively comprise one or more of sending an alert to one or more of the telemetry device and/or the telemetry system and sending a command to the telemetry device to restrict operability of the telemetry device.

Another example provides a telemetry device comprising a multiplexer, one or more sensors, a logic subsystem comprising one or more processing devices, and memory storing instructions executable by the logic subsystem to receive, from the one or more sensors, telemetry data, generate, via the multiplexer, a multiplexed transmission comprising a registration message and the telemetry data, send the multiplexed transmission to a remote computing device configured to demultiplex the multiplexed transmission and forward the telemetry data to a telemetry system, and receive, from the remote computing device, a registration response confirming registration of the telemetry device with the telemetry system. In such an example, the registration response may additionally or alternatively comprise information for communicating with the telemetry system, and the instructions may additionally or alternatively be executable to, after receiving the registration response, connect to the telemetry system and send data directly to the telemetry system. In such an example, the instructions may additionally or alternatively be executable to generate the multiplexed transmission upon telemetry device start up. In such an example, the instructions may additionally or alternatively be executable to power off after receiving the registration response from the remote computing device, and to generate another multiplexed transmission upon a later start-up of the telemetry device. In such an example, the instructions may additionally or alternatively be executable to, after receiving the registration response, send additional telemetry data to the remote computing device. In such an example, the telemetry device may additionally or alternatively comprise a microcontroller unit (MCU). In such an example, the one or more sensors may additionally or alternatively comprise one or more of a temperature sensor, a pressure sensor, a touch sensor, a global positioning system (GPS) sensor, a moisture sensor, a motion sensor, a water quality sensor, a chemical sensor, a level sensor, an image sensor, a smoke sensor, an acoustic sensor, and/or a gas detector/sensor.

Another example provides a method comprising receiving telemetry data from a telemetry device, the telemetry data comprising location data, comparing the location data to a defined geographical boundary for the telemetry device, and when the location data does not meet a predefined condition with regard to the defined geographical boundary, then taking an action towards restricting use of the telemetry device. In such an example, the telemetry device may additionally or alternatively comprise a vehicle. In such an example, taking the action towards restricting the use of the telemetry device may additionally or alternatively comprise sending a command to the telemetry device to reduce operability of the telemetry device. In such an example, taking the action towards restricting the use of the telemetry device may additionally or alternatively comprise ceasing communication from the telemetry device to the telemetry system. In such an example, taking the action towards restricting the use of the telemetry device may additionally or alternatively comprise sending an alert regarding the location not meeting the predefined condition. In such an example, taking the action towards restricting the use of the telemetry device may additionally or alternatively comprise sending a command to perform a reauthorization process. In such an example, the method may additionally or alternatively comprise receiving reauthorization data, and in response to the reauthorization data meeting a predefined reauthorization condition, sending a command to remove a previously-imposed impediment on the use of the telemetry device.

It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific aspects or examples are not to be considered in a limiting sense, because numerous variations are possible.

Claim 1:
A method, comprising:
receiving, via an application programming interface, API, of a single provisioning system (<NUM>), multiplexed transmissions from multiple telemetry devices (<NUM>), the multiplexed transmissions each comprising a registration message and telemetry data, the telemetry data comprising location data of the telemetry devices (<NUM>);
demultiplexing, by the single provisioning system (<NUM>), the multiplexed transmissions to obtain the respective registration messages and the telemetry data;
registering, by the single provisioning system (<NUM>), the multiple telemetry devices (<NUM>) with a telemetry system (<NUM>) based upon the respective registration messages;
sending, by the single provisioning system (<NUM>), the respective telemetry data to the telemetry system (<NUM>); and
sending, by the provisioning system (<NUM>), registration responses to the telemetry devices (<NUM>), the registration responses confirming registration of the telemetry devices (<NUM>) with the telemetry system (<NUM>), and
receiving via the API, additional transmissions from the multiple telemetry devices (<NUM>), the additional transmissions comprising additional telemetry data, without registration messages;
comparing the location data received to a predefined physical boundary for a respective telemetry device (<NUM>) of the multiple telemetry devices (<NUM>); and
when the location data does not meet a predefined condition with regard to the defined physical boundary, then taking an action towards restricting use of the respective telemetry device (<NUM>).