Efficient communication for devices of a home network
Systems and methods are provided for efficient communication through a fabric network of devices in a home environment or similar environment. For example, an electronic device may efficiently control communication to balance power and reliability concerns, may efficiently communicate messages to certain preferred networks by analyzing Internet Protocol version 6 (IPv6) packet headers that use an Extended Unique Local Address (EULA), may efficiently communicate software updates and status reports throughout a fabric network, and/or may easily and efficiently join a fabric network.
1. A method of joining a first device and a second device in a fabric network, the method comprising:
creating, by the first device, a first joining network, the first joining network having a network name comprising an identifier of the first device that includes a string identifying the first joining network as a joining network and a flag indicating whether the first device is part of the fabric network;
scanning for a second joining network;
in response to the scanning, detecting the second joining network, the second joining network having been created by the second device, the second joining network having a network name comprising an identifier of the second device; and
determining, by the first device, whether to join the second joining network, or to join the second device to the first joining network.
2. The method of claim 1 , wherein the determining whether to join the second joining network, or to join the second device to the first joining network comprises:
comparing, by the first device, the identifiers of the first device and the second device;
joining the second joining network if a value of the identifier of the first device is less than a value of the identifier of the second device; or
joining the second device to the first joining network if the value of the identifier of the first device is greater than the value of the identifier of the second device.
3. The method of claim 2 , wherein the first device is joining the second joining network, the method further comprising:
terminating the first joining network;
sending a solicit joining message to the second device;
receiving a solicit joining request from the second device; and
sending fabric network information to the second device in a join existing fabric network request.
4. The method of claim 2 , wherein the second device is joining the first joining network, the method further comprising:
receiving a solicit joining message from the second device;
creating the fabric network;
joining the first device to the fabric network; and
sending a join existing fabric network request that is effective to join the second device to the fabric network.
5. The method of claim 1 , wherein the first joining network and the second joining network are IEEE 802.15.4 networks.
6. The method of claim 1 , the method further comprising activating the first device to begin the joining the first device and the second device in the fabric network.
7. The method of claim 6 , wherein activating the first device to begin the joining comprises receiving a user input, by the first device, to activate the first device.
8. An electronic device configured to join an additional device in a fabric network, the electronic device comprising:
a processor; and
a memory comprising instructions executable by the processor that configure the electronic device to:
create a joining network, the joining network having a network name comprising an identifier of the electronic device that includes a string identifying the joining network as a joining network and a flag indicating whether the electronic device is part of the fabric network;
scan for another joining network;
in response to the scan, detect the other joining network, the other joining network having been created by the additional device, the other joining network having a network name comprising an identifier of the additional device; and
determine whether to join the other joining network, or to join the additional device to the joining network.
9. The electronic device of claim 8 , wherein, to determine whether to join the other joining network or to join the additional device to the joining network comprises the electronic device configured to:
compare the identifiers of the electronic device and the additional device;
join the electronic device to the other joining network if a value of the identifier of the electronic device is less than a value of the identifier of the additional device; or
join the additional device to the joining network if the value of the identifier of the electronic device is greater than the value of the identifier of the additional device.
10. The electronic device of claim 9 , wherein, for the electronic device to join the second joining network, the electronic device is configured to:
terminate the joining network;
send a solicit joining message to the additional device;
receive a solicit joining request from the additional device; and
send fabric network information to the additional device in a join existing fabric network request.
11. The electronic device of claim 9 , wherein, for the additional device to join the joining network, the electronic device is configured to:
receive a solicit joining message from the additional device;
create the fabric network;
join the electronic device to the fabric network; and
send a join existing fabric network request that is effective to join the additional device to the fabric network.
12. The electronic device of claim 8 , wherein the joining network and the other joining network are IEEE 802.15.4 networks.
13. The electronic device of claim 8 , wherein the electronic device is configured to receive an input to activate the electronic device to begin joining the electronic device and the additional device in the fabric network.
14. The electronic device of claim 13 , wherein the input to activate the electronic device to begin joining the electronic device is a push, by a user, of a button on the electronic device.
15. A system for creating a fabric network, the system comprising:
an electronic device configured to:
create a joining network, the joining network having a network name comprising an identifier of the electronic device that includes a string identifying the joining network as a joining network and a flag indicating whether the electronic device is part of the fabric network;
scan for another joining network;
in response to the scan, detect the other joining network; and
determine whether to join the other joining network, or to join an additional device to the joining network; and
the additional device configured to:
create the other joining network, the other joining network having a network name comprising an identifier of the additional device.
16. The system of claim 15 , wherein, to determine whether to join the other joining network or to join the additional device to the joining network comprises the electronic device configured to:
compare the identifiers of the electronic device and the additional device;
join the other joining network if a value of the identifier of the electronic device is less than a value of the identifier of the additional device; or
join the additional device to the joining network if the value of the identifier of the electronic device is greater than the value of the identifier of the additional device.
17. The system of claim 16 , wherein, for the electronic device to join the other joining network, the electronic device is configured to:
terminate the joining network;
send a solicit joining message to the additional device;
receive a solicit joining request from the additional device; and
send fabric network information to the additional device in a join existing fabric network request.
18. The system of claim 16 , wherein, for the additional device to join the joining network, the electronic device is configured to:
receive a solicit joining message from the additional device;
create the fabric network;
join the electronic device to the fabric network; and
send a join existing fabric network request that is effective to join the additional device to the fabric network.
19. The system of claim 15 , wherein the joining network and the other joining network are IEEE 802.15.4 networks.
20. The system of claim 15 , wherein the electronic device is configured to receive an input to activate the electronic device to begin joining the electronic device and the additional device in the fabric network.