Automatically switching communication pathways between connected devices
Systems and methods for switching communication pathways between a mobile device and connected “Internet of Things” (IOT) device are described to improve scalability and communication between devices. An application on the mobile device may determine whether local or virtual local endpoints are available to route communications without using a remote IoT server endpoint. Communications and updates from multiple co-located, but not necessarily user-related connected devices may be aggregated, and sent to a remote IoT server to reduce the peak load scalability requirement of the server.
1. A method for a communication between devices comprising:
storing a list of one or more WiFi access points that a mobile device has connected to; and
determining an optimal pathway for the communication from the mobile device to a controlled device, wherein:
the optimal pathway comprises at least one hop from the controlled device,
the controlled device is an Internet of Things (IoT) device, and
the optimal pathway is determined according to a distance between the IoT device and an IoT cloud server.
2. The method of claim 1 , wherein an application operating on the mobile device is operable to generate the optimal pathway.
3. The method of claim 1 , wherein the method comprises selecting the optimal pathway from a plurality of pathways according to at least one of network traffic, location of the controlled device, and availability of at least one endpoint.
4. The method of claim 3 , wherein the at least one endpoint comprises a virtual local endpoint.
5. The method of claim 1 , wherein the method comprises sending the communication from the mobile device to the controlled device through the optimal pathway.
6. The method of claim 1 , wherein the optimal pathway does not include a server.
7. The method of claim 1 , wherein the optimal pathway comprises a WiFi direct connection.
8. The method of claim 1 , wherein the optimal pathway is determined according to a number of hops between the mobile device and the controlled device.
9. The method of claim 1 , wherein the method comprises receiving one or more state updates from a plurality of connected devices and routing the one or more state updates to a server.
10. The method of claim 1 , wherein the method comprises compiling, via the controlled device, one or more state updates for a period of time.
11. A system for communication comprising:
a mobile device configured to:
store a list of one or more WiFi access points that the mobile device has connected to; and
determine an optimal pathway between the mobile device and a controlled device, wherein:
the optimal pathway comprises at least one hop from the controlled device,
the controlled device is an Internet of Things (IoT) device, and
the optimal pathway is determined according to a distance between the IoT device and an IoT cloud server.
12. The system of claim 11 , wherein an application operating on the mobile device is operable to generate the optimal pathway.
13. The system of claim 11 , wherein the mobile device is configured to select the optimal pathway from a plurality of pathways according to at least one of network traffic, location of the controlled device, and availability of at least one endpoint.
14. The system of claim 13 , wherein the at least one endpoint comprises a virtual local endpoint.
15. The system of claim 11 , wherein the mobile device is configured to send data from the mobile device to the controlled device through the optimal pathway.
16. The system of claim 11 , wherein the optimal pathway does not include a server.
17. The system of claim 11 , wherein the optimal pathway comprises a WiFi direct connection.
18. The system of claim 11 , wherein the optimal pathway is determined according to a number of hops between the mobile device and the controlled device.
19. The system of claim 11 , wherein the mobile device is configured to send one or more state updates from a plurality of connected devices to a server.
20. The system of claim 11 , wherein mobile device is configured to receive one or more state updates compiled for a period of time by the controlled device.