Electronic device for managing controlled device and operating method thereof
By automatically detecting and restoring the offline status of controlled devices, the problem of tedious manual reconnection for users is solved, achieving simplified operation and efficient connection restoration.
Patent Information
- Application Number
- CN202480032660.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-23
- Filing Date
- 2024-03-27
- Publication Date
- 2025-12-12
AI Technical Summary
When managing controlled devices, existing technologies require users to manually unplug and reconnect or re-register when the device is offline, which is cumbersome and inconvenient.
Automatic reconnection is achieved by automatically detecting offline status through electronic devices, establishing device-to-device connections, receiving error codes, determining recovery strategies, and sending recovery commands.
It simplifies user operations, automatically restores server connections for controlled devices, and improves the user experience.
Smart Images

Figure CN121128143A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The disclosure relates to an electronic device that manages a controlled device and a method for controlling the same. BACKGROUND
[0002] Increasingly more services and additional functions are provided through a user terminal (e.g., a smartphone or other electronic device). In order to meet the needs of various users and to increase the utility value of electronic devices, communication service operators or device manufacturers are competing to develop electronic devices with various features. Accordingly, various functions provided through electronic devices are continuously evolving.
[0003] With the development of wireless communication technology, devices using artificial intelligence (AI) have been widely introduced. For example, home appliances connected through a network by Internet of Things (IoT) technology can utilize artificial intelligence. IoT technology can provide intelligent Internet technology services that create new values in human life by collecting and analyzing data generated by devices. Through the fusion and combination of existing Internet technology and various industries, IoT technology can be applied to fields such as smart homes, smart buildings, smart cities, smart cars, and smart home appliances.
[0004] Meanwhile, for the convenience of users, a home is equipped with various home appliances. Various services have been proposed to make the manipulation or control of home appliances more convenient through IoT technology. Home network technology can provide various services to users in a home through a home network. For example, a user can use a personal electronic device (e.g., a smartphone) to control various controlled devices (e.g., home devices to which IoT technology is applied) that constitute a home network. Users can expect to receive more different services to control controlled devices. Therefore, there has been a request to develop various technologies for managing controlled devices that reflect the intentions of users.
[0005] A user can use her own electronic device (e.g., a smartphone or a wearable device) to perform a process for registering a controlled device in a network (e.g., a cloud server) (e.g., onboarding to control a controlled device (e.g., a television (TV), an air conditioner, a washing machine, a security camera, a lighting device, or a switch). The electronic device can control the controlled device to be registered in the server, thereby connecting the controlled device to a user account. The electronic device can use the user account to access the server through a client application and control the controlled device.
[0006] An electronic device can identify and control a state of a controlled device registered on a user account through a client application. When a controlled device can be improperly connected to a server, the controlled device can be displayed as an offline state on the client application. The controlled device can be in an offline state due to various reasons such as a device problem, a network failure, a cloud failure, or an application failure. When the controlled device is displayed as offline, the electronic device can provide an offline guide popup using a plug-in application. The offline guide popup can provide general help guides such as identifying a home network environment and identifying a power plug.
[0007] When disconnection (e.g., offline) occurs due to a software failure in a controlled device (e.g., a refrigerator) that continuously consumes power, connection restoration can not be achieved by power on / off, but can need to be achieved by unplugging and then plugging the plug. However, plugging and unplugging can be troublesome for built-in appliances such as a refrigerator. In this case, in order to solve the offline state of the controlled device, it can be necessary to delete the controlled device and then re-register the controlled device in the server. However, the user can not know the exact help guide. For re-registration of the controlled device, it is necessary to perform a registration procedure after deleting existing registration information. This way inconveniences the user.
[0008] The above information is presented as background information only to assist with an understanding of the present disclosure. No determination has been made, and no assertion is made, as to whether any of the above might be applicable as prior art with regard to the present disclosure. SUMMARY
[0009] Solutions to problems
[0010] Aspects of the present disclosure are to address at least the above-mentioned problems and / or disadvantages and to provide at least the advantages described below. Accordingly, an aspect of the present disclosure is to provide an electronic device managing a controlled device and a method for controlling the same.
[0011] Another aspect of the present disclosure automatically detects a context in which a controlled device is disconnected from a server.
[0012] Another aspect of the present disclosure restores connection of an offline controlled device.
[0013] Another aspect of the present disclosure automatically reconnects an offline controlled device to a server.
[0014] Another aspect of the present disclosure is to provide a user with a guide corresponding to a reason for which a controlled device is offline.
[0015] Additional aspects will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art by reference to the description, or can be learned by practice of the presented embodiments.
[0016] According to an embodiment of the disclosure, an electronic device is provided. The electronic device includes a transceiver configured to receive and transmit signals, one or more processors communicatively coupled with the transceiver, and a memory storing instructions. The instructions, when executed by the one or more processors, cause the electronic device to obtain first information indicating that a controlled device is in an offline state in which the controlled device is disconnected from a server. The instructions, when executed by the one or more processors, cause the electronic device to establish, by the transceiver, a device-to-device (D2D) connection with the controlled device. The instructions, when executed by the one or more processors, cause the electronic device to receive, from the controlled device over the D2D connection, an error code related to the offline state of the controlled device. The instructions, when executed by the one or more processors, cause the electronic device to determine a recovery method corresponding to the error code based on designated recovery policy information. The instructions, when executed by the one or more processors, cause the electronic device to transmit, by the transceiver, a recovery command to the controlled device indicating to recover a connection between the controlled device and the server based on the determined recovery method.
[0017] According to another aspect of the disclosure, a method performed by an electronic device is provided. The method includes obtaining, by the electronic device, first information indicating that a controlled device is in an offline state in which the controlled device is disconnected from a server. The method can include establishing, by the electronic device, a D2D connection with the controlled device. The method can include receiving, by the electronic device from the controlled device over the D2D connection, an error code related to the offline state of the controlled device. The method can include determining, by the electronic device, a recovery method corresponding to the error code based on designated recovery policy information. The method can include transmitting, by the electronic device to the controlled device, a recovery command indicating to recover a connection between the controlled device and the server based on the determined recovery method.
[0018] According to another aspect of the disclosure, one or more non-transitory computer-readable storage media storing one or more computer programs including computer executable instructions that, when executed by one or more processors of an electronic device, cause the electronic device to perform operations is provided. The operations include obtaining, by the electronic device, first information indicating that a controlled device is in an offline state in which the controlled device is disconnected from a server, establishing, by the electronic device, a D2D connection with the controlled device, receiving, by the electronic device from the controlled device, an error code related to the offline state of the controlled device, determining, by the electronic device, a recovery method corresponding to the error code based on designated recovery policy information, and transmitting, by the electronic device to the controlled device, a recovery command indicating to recover a connection between the controlled device and the server based on the determined recovery method.
[0019] Other aspects, advantages, and salient features of the disclosure will become apparent to those skilled in the art from the following detailed description, which, taken in con junction with the annexed drawings, discloses various embodiments of the disclosure. Attached Figure Description
[0020] The above and other aspects, features and advantages of certain embodiments of this disclosure will become clearer from the following description taken in conjunction with the accompanying drawings, in which:
[0021] Figure 1 An Internet of Things (IoT) system according to an embodiment of the present disclosure is illustrated;
[0022] Figure 2 This is a view illustrating an electronic device in a network environment according to an embodiment of the present disclosure;
[0023] Figure 3 This is a view illustrating a network including controlled devices according to embodiments of the present disclosure;
[0024] Figure 4 This is a block diagram illustrating the configuration of an electronic device providing offline diagnostic functionality according to embodiments of the present disclosure;
[0025] Figure 5a , Figure 5b and Figure 5c This is a view illustrating offline notifications of an IoT network according to various embodiments of this disclosure;
[0026] Figure 6 This is a view showing an apparatus according to an embodiment of the present disclosure going offline due to an access point (AP) problem;
[0027] Figure 7 This is a view showing a device according to an embodiment of the present disclosure going offline due to a device problem;
[0028] Figure 8 A system architecture for supporting offline diagnostics and connection recovery according to embodiments of the present disclosure is shown;
[0029] Figure 9 This is a flowchart illustrating an offline diagnostic and connection restoration process according to an embodiment of the present disclosure;
[0030] Figure 10 This is a flowchart illustrating a process for updating a recovery strategy according to an embodiment of the present disclosure;
[0031] Figure 11 This is a timing diagram illustrating the automatic recovery of an offline device via Bluetooth Low Energy (BLE) scanning according to an embodiment of the present disclosure;
[0032] Figure 12 This is a timing diagram illustrating the automatic recovery process of an offline device searched by a local network device according to an embodiment of the present disclosure;
[0033] Figure 13is a view illustrating offline detection and automatic recovery based on multicast domain name service (mDNS) / DNS-based service discovery (DNS-SD) according to an embodiment of the disclosure;
[0034] Figure 14 is a timing diagram illustrating offline detection and automatic recovery based on mDNS / DNS-SD according to an embodiment of the disclosure;
[0035] Figure 15 is a view illustrating offline detection and automatic recovery based on SSE according to an embodiment of the disclosure;
[0036] Figure 16 is a timing diagram illustrating offline detection and automatic recovery based on SSE according to an embodiment of the disclosure;
[0037] Figure 17 is a timing diagram illustrating offline detection and automatic recovery based on BLE scan according to an embodiment of the disclosure;
[0038] Figure 18 is a view illustrating user notification for offline state according to an embodiment of the disclosure;
[0039] Figure 19 is a timing diagram illustrating user notification by local network search according to an embodiment of the disclosure;
[0040] Figure 20 is a timing diagram illustrating user notification for Wi-Fi update according to an embodiment of the disclosure; and
[0041] Figure 21 is a view illustrating self-offline cause diagnosis and recovery operation according to an embodiment of the disclosure.
[0042] Throughout the drawings, it should be noted that like reference numbers are used to depict the same or similar elements, features, and structures. DETAILED DESCRIPTION
[0043] The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of various embodiments of the present disclosure as defined by the claims and their equivalents. The following description includes various specific details to assist in that understanding but these details are to be regarded as merely illustrative. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the various embodiments described herein can be made without departing from the scope and spirit of the present disclosure. In addition, descriptions of well-known functions and constructions can be omitted for clarity and conciseness.
[0044] The terms and words used in the following description and claims are not limited to the bibliographical meanings, but are merely used to enable a clear and consistent understanding of the present disclosure. Accordingly, it should be apparent to those skilled in the art that the following description of various embodiments of the present disclosure is provided for illustration purpose only and not for the purpose of limiting the present disclosure as defined by the appended claims and their equivalents.
[0045] It should be understood that the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to "a component surface" includes reference to one or more of such surfaces.
[0046] It should be understood that the blocks in each flowchart and combinations of flowcharts can be performed by one or more computer programs including instructions. The whole of the one or more computer programs can be stored in a single memory or the one or more computer programs can be divided into different parts stored in different plural memories.
[0047] Any function or operation described herein can be processed by one processor or a combination of processors. The one processor or the combination of processors is a circuit that performs processing, and includes a circuit such as an application processor (AP) (for example, a central processing unit (CPU)), a communication processor (CP) (for example, a modem), a graphic processing unit (GPU), a neural processing unit (NPU) (for example, an artificial intelligence (AI) chip), a Wi-Fi chip, a Bluetooth® chip, a global positioning system (GPS) chip, a near field communication (NFC) chip, a connectivity chip, a sensor controller, a touch controller, a fingerprint sensor controller, a display driving integrated circuit (IC), an audio codec (CODEC) chip, a universal serial bus (USB) controller, a camera controller, an image processing IC, a micro processing unit (MPU), a system on chip (SoC), an integrated circuit (IC), and the like.
[0048] Figure 1 An Internet of Things (IoT) system 100 according to an embodiment of the disclosure is illustrated. At least some of the components shown in FIG. 1 can be omitted, or at least one component not shown can be added. Figure 1 At least some of the components shown in FIG. 1 can be omitted, or at least one component not shown can be added.
[0049] Referring to Figure 1 According to an embodiment, the IoT system 100 includes a plurality of electronic devices connectable to a data network 116 or 146. For example, the IoT system 100 can include at least one of a first IoT server 110, a first node 120, a voice assistant server 130, a second IoT server 140, a second node 150, or devices 121, 122, 123, 124, 125, 136, 137, 151, 152, and 153.
[0050] According to an embodiment, the first IoT server 110 can include at least one of a communication interface 111, a processor 112, or a storage unit 113. The second IoT server 140 can include at least one of a communication interface 141, a processor 142, or a storage unit 143. In the disclosure, an "IoT server" can directly remotely control and / or monitor one or more devices (e.g., the devices 121, 122, 123, 124, 125, 136, 137, 151, 152, and 153) based on, for example, a data network (e.g., the data network 116 or the data network 146) without a relay device, or control and / or monitor one or more devices (e.g., the devices 121, 122, 123, 124, 125, 136, 137, 151, 152, and 153) via a relay device (e.g., the first node 120 or the second node 150). Here, a "device" refers to, for example, a sensor, a home appliance, an office electronic device, or a processing device placed (or located) in a local environment such as a home, an office, a factory, a building, an outdoor site, or other types of places, and is not limited to a specific type. A device that receives a control command and performs an operation corresponding to the control command is referred to as a "target device". In view of the fact that an IoT server selects a target device from among a plurality of devices and provides a control command, the IoT server can be referred to as a central server.
[0051] According to an embodiment, the first IoT server 110 can communicate with the devices 121, 122, and 123 via the data network 116. The data network 116 can refer to a network for remote communication, such as the Internet or a computer network (e.g., a local area network (LAN) or a wide area network (WAN)), or can encompass a cellular network.
[0052] According to an embodiment, the first IoT server 110 can be connected to the data network 116 via the communication interface 111. The communication interface 111 can include a communication device (or a communication module) for supporting communication of the data network 116, and can be implemented as a single integrated component (e.g., a single chip) or a plurality of separate components (e.g., a plurality of chips). The first IoT server 110 can communicate with the devices 121, 122, and 123 via the first node 120. The first node 120 can receive data from the first IoT server 110 via the data network 116, and transmit the received data to at least some of the devices 121, 122, and 123. The first node 120 can receive data from at least some of the devices 121, 122, and 123, and transmit the received data to the first IoT server 110 via the data network 116. The first node 120 can function as a bridge between the data network 116 and the devices 121, 122, and 123. Although Figure 1Only one first node 120 is shown, but this is only an example, and embodiments of the present disclosure are not limited thereto.
[0053] In the present disclosure, a "node" can refer to an edge computing system or a hub device. According to an embodiment, the first node 120 can support wired and / or wireless communication of the data network 116, and can support wired and / or wireless communication with the devices 121, 122, and 123. For example, the first node 120 can be connected to the devices 121, 122, and 123 via at least one of a short-range communication network (e.g., Bluetooth, Wi-Fi, Wi-Fi direct, Z-wave, Zig-bee, INSETEON, X10, or Infrared Data Association (IrDA)), but the type of communication is not limited to a specific one. The first node 120 can be placed (or located) in an environment such as, for example, a home, an office, a factory, a building, an outdoor site, or other types of places. Accordingly, the devices 121, 122, and 123 can be monitored and / or controlled by services provided by the first IoT server 110, and the devices 121, 122, and 123 can not be required to have the ability for full network communication (e.g., Internet communication) for directly connecting to the first IoT server 110. Although in the illustrated example, the devices 121, 122, and 123 are implemented as electronic devices in a home environment such as, for example, a lighting switch, a proximity sensor, and a temperature sensor, this is only an example, and the devices 121, 122, and 123 are not limited thereto.
[0054] According to an embodiment, the first IoT server 110 can also support direct communication with the devices 124 and 125. Here, "direct communication" can refer to communication that does not rely on a relay device such as the first node 120. For example, "direct communication" can refer to communication via, for example, a cellular communication network and / or a data network.
[0055] According to an embodiment, the first IoT server 110 can transmit a control command to at least some of the devices 121, 122, 123, 124, and 125. Here, the "control command" can refer to data that triggers a controllable device to perform a specific operation. The specific operation can be an operation performed by a device, including output, sensing, reporting, or managing (e.g., deleting or creating) information, but is not limited thereto. For example, the processor 112 can obtain information (or a request) for creating a control command from the outside (e.g., the voice assistant server 130, the second IoT server 140, the external system 160, or at least some of the devices 121, 122, 123, 124, and 125), and create a control command based on the obtained information. Alternatively, the processor 112 can create a control command based on a specified condition being satisfied by monitoring a result of at least some of the devices 121, 122, 123, 124, and 125. The processor 112 can control the communication interface 111 to transmit the control command to a target device.
[0056] According to an embodiment, the processor 112, the processor 132, or the processor 142 can be implemented as a general-purpose processor such as a central processing unit (CPU), a digital signal processor (DSP), an application processor, a communication processor (CP), a graphic dedicated processor such as a graphic processing unit (GPU), a visual processing unit (VPU), an artificial intelligence dedicated processor such as a neural processing unit (NPU), or a combination of one or more thereof. The above-described processing units are only examples. It will be readily appreciated by those of ordinary skill that the processor 112 is not limited to this, as long as it is a computing device capable of executing instructions stored in the storage unit 113 and outputting an execution result.
[0057] According to embodiments, the processor 112 can configure a web-based interface based on the API 114 or can expose resources managed by the first IoT server 110 to the outside. For example, the web-based interface can support communication between the first IoT server 110 and an external web service. For example, the processor 112 can allow an external system 160 to control and / or access the devices 121, 122, and 123. For example, the external system 160 can be a separate (or standalone) system that is not associated with or part of the system 100. The external system 160 can be, for example, an external server or website. However, it is necessary to ensure access of the external system 160 to the devices 121, 122, and 123 or resources of the first IoT server 110. According to embodiments, for an automation application, the processor 112 can expose an API-based (114) API endpoint (e.g., a uniform resource locator (URL)) to the outside. As described above, the first IoT server 110 can transmit a control command to a target device among the devices 121, 122, and 123. Descriptions of the communication interface 141, the processor 142, the API 144, and the database 145 of the storage unit 143 of the second IoT server 140 can be substantially the same as those of the communication interface 111, the processor 112, the API 114, and the database 115 of the storage unit 113 of the first IoT server 110. A description of the second node 150 can be substantially the same as that of the first node 120. The second IoT server 140 can transmit a control command to a target device among the devices 151, 152, and 153. In embodiments, the first IoT server 110 and the second IoT server 140 can be operated by the same service provider, but in another embodiment, the servers 110 and 140 can be operated by different service providers, respectively.
[0058] According to an embodiment, the voice assistant server 130 can transmit / receive data to / from the first IoT server 110 via the data network 116. According to an embodiment, the voice assistant server 130 can include at least one of a communication interface 131, a processor 132, or a storage unit 133. The communication interface 131 can communicate with a smart phone 136 or an AI speaker 137 via a data network (not shown) and / or a cellular network (not shown). The smart phone 136 or the AI speaker 137 can include a microphone, and can obtain a user voice, convert the user voice into a voice signal, and transmit the voice signal to the voice assistant server 130. The processor 132 can receive the voice signal from the smart phone 136 or the AI speaker 137 via the communication interface 131. The processor 132 can process the received voice signal based on a stored model 134. The processor 132 can create (or recognize) a control command using a processing result based on information stored in a database 135. According to an embodiment, the storage units 113, 133, or 143 can include, but are not limited to, at least one of a non-transitory storage medium of a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., a secure digital (SD) or extreme digital (XD) memory card), a random access memory (RAM), a static random access memory (SRAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a programmable read-only memory (PROM), a magnetic memory, a magnetic disk, or an optical disk.
[0059] In various embodiments, at least one device (e.g., the device 124) in communication with the first IoT server 110 can be a smart phone (e.g., the smart phone 136) in a network environment (e.g., the network environment 200) of FIG. 1. Figure 2 The electronic device 201 of FIG. 1.
[0060] Figure 2 FIG. 2 is a block diagram illustrating an electronic device 201 in a network environment 200 according to an embodiment of the disclosure.
[0061] Referring to FIG. 2, Figure 2The electronic device 201 in the network environment 200 can communicate with an electronic device 202 via a first network 298 (e.g., a short-range wireless communication network), or an electronic device 204 or a server 208 via a second network 299 (e.g., a long-range wireless communication network). According to an embodiment, the electronic device 201 can communicate with the electronic device 204 via the server 208. According to an embodiment, the electronic device 201 can include a processor 220, a memory 230, an input module 250, a sound output module 255, a display module 260, an audio module 270, a sensor module 276, an interface 277, a connection terminal 278, a haptic module 279, a camera module 280, a power management module 288, a battery 289, a communication module 290, a subscriber identification module (SIM) 296, or an antenna module 297. In an embodiment, at least one (e.g., the connection terminal 278) of the above components can be omitted from the electronic device 201, or one or more other components can be added in the electronic device 201. According to an embodiment, some of the above components (e.g., the sensor module 276, the camera module 280, or the antenna module 297) can be integrated into one or more components (e.g., the display module 260).
[0062] The processor 220 can execute, for example, software (e.g., a program 240) to control at least one other component (e.g., a hardware or software component) of the electronic device 201 coupled with the processor 220 and can perform various data processing or computation. According to an embodiment, as at least part of the data processing or computation, the processor 220 can store a command or data received from another component (e.g., the sensor module 276 or the communication module 290) in the volatile memory 232, process the command or data stored in the volatile memory 232, and store processed results in the non-volatile memory 234. According to an embodiment, the processor 220 can include a main processor 221 (e.g., a central processing unit (CPU) or an application processor) or an auxiliary processor 223 (e.g., a graphics processing unit (GPU), a neural processing unit (NPU), an image signal processor (ISP), a sensor hub processor, or a communication processor (CP)) that is operable independently from, or in conjunction with, the main processor 221. For example, when the electronic device 201 includes the main processor 221 and the auxiliary processor 223, the auxiliary processor 223 can be configured to use less power than the main processor 221, or to be dedicated to a specific function. The auxiliary processor 223 can be implemented as separate from or as part of the main processor 221.
[0063] The auxiliary processor 223 (not the main processor 221) can control at least some of the functions or states related to at least one of the components (for example, the display module 260, the sensor module 276, or the communication module 290) of the electronic device 201 while the main processor 221 is in an inactive (for example, sleep) state, or together with the main processor 221, control at least some of the functions or states related to at least one of the components (for example, the display module 260, the sensor module 276, or the communication module 290) of the electronic device 201 while the main processor 221 is in an active state (for example, executing an application). According to an embodiment, the auxiliary processor 223 (for example, an image signal processor or a communication processor) can be implemented as a part of another component (for example, the camera module 280 or the communication module 290) functionally related to the auxiliary processor 223. According to an embodiment, the auxiliary processor 223 (for example, a neural processing unit) can include a hardware structure dedicated to artificial intelligence model processing. The artificial intelligence model can be generated via machine learning. For example, such learning can be performed by the electronic device 201 where artificial intelligence is performed or via a separate server (for example, the server 208). The learning algorithm can include, but is not limited to, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning. The artificial intelligence model can include multiple artificial neural network layers. The artificial neural network can be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), or a deep Q-network, or a combination of two or more thereof, but is not limited thereto. Additionally or alternatively, the artificial intelligence model can include a software structure other than the hardware structure.
[0064] The memory 230 can store various data used by at least one component (for example, the processor 220 or the sensor module 276) of the electronic device 201. The various data can include, for example, software (for example, a program 240) and input data or output data for a command related thereto. The memory 230 can include the volatile memory 232 or the non-volatile memory 234.
[0065] The program 240 can be stored in the memory 230 as software, and can include, for example, an operating system (OS) 242, middleware 244, or an application 246.
[0066] The input module 250 can receive a command or data, which is to be used by other components (for example, the processor 220) of the electronic device 201, from the outside (for example, a user) of the electronic device 201. The input module 250 can include, for example, a microphone, a mouse, a keyboard, a key (for example, a button), or a digit pen (for example, a stylus pen).
[0067] The sound output module 255 can output sound signals to the outside of the electronic device 201. The sound output module 255 can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as playing multimedia or playing record, and the receiver can be used for receiving an incoming call. According to an embodiment, the receiver can be implemented as separate from the speaker, or can be implemented as part of the speaker.
[0068] The display module 260 can visually provide information to the outside (e.g., a user) of the electronic device 201. The display module 260 can include, for example, a display, a hologram device, or a projector and control circuitry to control a corresponding one of them. According to an embodiment, the display module 260 can include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.
[0069] The audio module 270 can convert a sound into an electrical signal and vice versa. According to an embodiment, the audio module 270 can obtain sound data, which is input or output through the input module 250 or the sound output module 255, or output sound data through an external electronic device (e.g., an electronic device 202) using a speaker or a receiver directly (e.g., wiredly) or wirelessly connected to the electronic device 201.
[0070] The sensor module 276 can detect an operational state (e.g., power or temperature) of the electronic device 201 or an environmental state (e.g., a state of a user) external to the electronic device 201, and then generate an electrical signal or data value corresponding to the detected state. According to an embodiment, the sensor module 276 can include, for example, a gesture sensor, a gyro sensor, an atmospheric pressure sensor, a magnetic sensor, an accelerometer, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0071] The interface 277 can support one or more specified protocols to be used for the electronic device 201 to be coupled with the external electronic device (e.g., the electronic device 202) directly (e.g., wiredly) or wirelessly. According to an embodiment, the interface 277 can include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.
[0072] The connection terminal 278 can include a connector through which the electronic device 201 can be physically connected with the external electronic device (e.g., the electronic device 202). According to an embodiment, the connection terminal 278 can include, for example, a HDMI connector, a USB connector, a SD card connector, or an audio connector (e.g., a headphone connector).
[0073] The haptic module 279 can convert electrical signal into a mechanical stimulus (e.g., vibration or movement) or electrical stimulus that can be recognized by a user via his tactile sensation or kinesthetic sensation. According to an embodiment, the haptic module 279 can include, for example, a motor, a piezoelectric element, or an electrical stimuluser.
[0074] The camera module 280 can capture still images or moving images. According to an embodiment, the camera module 280 can include one or more lenses, image sensors, image signal processors, or flashes.
[0075] The power management module 288 can manage power supplied to the electronic device 201. According to an embodiment, the power management module 288 can be implemented as at least part of, for example, a power management integrated circuit (PMIC).
[0076] The battery 289 can supply power to at least one component of the electronic device 201. According to an embodiment, the battery 289 can include, for example, a primary cell which is not rechargeable, a secondary cell which is rechargeable, or a fuel cell.
[0077] The communication module 290 can support establishing a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device 201 and an external electronic device (e.g., the electronic device 202, the electronic device 204, or a server 208) and performing communication between the electronic devices 201, 202, 204, 208 via the established communication channel. The communication module 290 can include one or more communication processors that are operable independently from the processor 220 (e.g., an application processor) and supports a direct (e.g., wired) communication or a wireless communication. According to an embodiment, the communication module 290 can include a wireless communication module 292 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 294 (e.g., a local area network (LAN) communication module or a power line communication (PLC) module). A corresponding one of these communication modules can perform communication by using at least one of the first network 298 (e.g., a short-range wireless communication network, such as Bluetooth, wireless-fidelity (Wi-Fi), Wi-Fi direct, or infrared data association (IrDA)) or the second network 299 (e.g., a long-range communication network, such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN)). These various types of communication modules can be implemented as a single component (e.g., a single chip) or can be implemented as separate components (e.g., separate chips) from each other. The wireless communication module 292 can identify or authenticate the electronic device 201 in a communication network, such as the first network 298 or the second network 299, using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module 296.
[0078] The wireless communication module 292 can support 5G networks and next-generation communication technologies (e.g., new radio (NR) access technology) after 4G networks. The NR access technology can support enhanced mobile broadband (eMBB), massive machine type communications (mMTC), or ultra-reliable low-latency communications (URLLC). The wireless communication module 292 can support a high frequency band (e.g., a millimeter wave band) to achieve, for example, high data transmission rates. The wireless communication module 292 can support various technologies for securing performance on a high frequency band, such as, for example, beamforming, massive multiple-input multiple-output (massive MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module 292 can support various requirements designated in the electronic device 201, an external electronic device (e.g., the electronic device 204), or a network system (e.g., the second network 299). According to an embodiment, the wireless communication module 292 can support a peak data rate (e.g., 20 Gbps or more) for implementing eMBB, a loss coverage (e.g., 164 dB or less) for implementing mMTC, or a U-plane latency (e.g., 0.5 ms or less for each of downlink (DL) and uplink (UL), or 1 ms or less of round trip) for implementing URLLC.
[0079] The antenna module 297 can transmit or receive a signal or power to or from (e.g., an external electronic device) an external device. According to an embodiment, the antenna module 297 can include one antenna including a radiator formed of a conductor or a conductive pattern formed on a base (e.g., a printed circuit board (PCB)). According to an embodiment, the antenna module 297 can include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication scheme suitable for use in a communication network, such as the first network 298 or the second network 299, can be selected from the plurality of antennas by, for example, the communication module 290. Then, a signal or power can be transmitted or received between the communication module 290 and an external device via the selected at least one antenna. According to an embodiment, other components (e.g., a radio frequency integrated circuit (RFIC)) other than the radiator can further be formed as part of the antenna module 297.
[0080] According to various embodiments, the antenna module 297 can form a millimeter wave antenna module. According to an embodiment, the millimeter wave antenna module can include a printed circuit board, a radio frequency integrated circuit (RFIC), and a plurality of antennas (e.g., array antennas), wherein the RFIC is disposed on a first surface (e.g., a bottom surface) of the printed circuit board, or adjacent to the first surface and capable of supporting a designated high frequency band (e.g., a millimeter wave band), and the plurality of antennas is disposed on a second surface (e.g., a top surface or a side surface) of the printed circuit board, or adjacent to the second surface and capable of transmitting or receiving a signal of the designated high frequency band.
[0081] At least some of the above-described components can be connected to each other via an inter-peripheral communication scheme (e.g., a bus, a general purpose input output (GPIO), a serial peripheral interface (SPI), or a mobile industry processor interface (MIPI)) and communicate signals (e.g., commands or data) between them.
[0082] According to an embodiment, instructions or data can be transmitted or received between the electronic device 201 and the external electronic device 204 via the server 208 connected with the second network 299. Each of the external electronic devices 202 or 204 can be a device of a same type as or a different type from the electronic device 201. According to an embodiment, all or some of the operations to be executed at the electronic device 201 can be executed at one or more of the external electronic devices 202 or 204 or the server 208. For example, if the electronic device 201 is to automatically perform a function or a service or is to perform a function or a service in response to a request from a user or another device, the electronic device 201, instead of, or in addition to, executing the function or the service, can request the one or more external electronic devices to execute at least a part of the function or the service. The one or more external electronic devices receiving the request can execute at least the part of the function or the service requested, or execute an additional function or an additional service related to the request, and transfer an execution result to the electronic device 201. The electronic device 201 can provide the execution result, with or without further processing of the execution result, as at least part of a reply to the request. To that end, a cloud computing technique, a distributed computing technique, a mobile edge computing (MEC) technique, or a client-server computing technique can be used, for example. The electronic device 201 can use, for example, distributed computing or mobile edge computing to provide an ultra-low latency service. In another embodiment, the external electronic devices 204 can include an Internet of Things (IoT) device. The server 208 can be an intelligent server using machine learning and / or a neural network. According to an embodiment, the external electronic devices 204 or the server 208 can be included in the second network 299. The electronic device 201 can be applied to intelligent services (for example, smart home, smart city, smart car, or health care), based on 5G communication technologies or IoT-related technologies.
[0083] Figure 3 is a view illustrating a network including a controlled device according to an embodiment of the disclosure.
[0084] Referring to Figure 3, the network 300 (e.g., an IoT network) can include a server 310 operated as an IoT cloud, an electronic device 201 capable of communicating with the server 310 through a network communication (e.g., a wireless network), and one or more controlled devices 320a, 320b, 320c, and 320d in a local network 350 supporting an IoT technology and capable of communicating with the server 310 through a network communication (e.g., an access point (AP) 340). In an embodiment, the local network 350 can include a hub device 330 (e.g., a smart phone, a tablet, a home automation panel, a PC, or a TV) configured to manage connections and states of the controlled devices 320a, 320b, 320c, and 320d. The electronic device 201 can communicate with the controlled devices 320a, 320b, 320c, and 320d and the hub device 330 via the server 310 through long-range wireless communication (e.g., a second network 299) or short-range wireless communication (e.g., a first network 298). The hub device 330 can communicate with the controlled devices 320a, 320b, 320c, and 320d through the AP 340 or through a device-to-device (D2D) connection.
[0085] The controlled devices 320a, 320b, 320c, and 320d can be controlled (e.g., report a status report and / or perform a specific function) by a remote command (e.g., a control command of the electronic device 201), and can include, for example, at least one of a television, an air conditioner, a refrigerator, a washing machine, a lighting device, a security camera, a sensor, or window dressing. The controlled devices 320a, 320b, 320c, and 320d can communicate with the electronic device 201 through the hub device 330, can communicate with the electronic device 201 through the server 310, and / or can directly (e.g., without passing through the server 310, the AP 340, or the hub device 330) communicate with the electronic device 201. In an embodiment, the controlled devices 320a, 320b, 320c, and 320d can be configured to communicate with the electronic device 201 through long-range wireless communication (e.g., the second network 299) or through short-range wireless communication (e.g., the first network 298). In an embodiment, the controlled devices 320a, 320b, 320c, and 320d can be configured to communicate with the server 310 through long-range wireless communication (e.g., the second network 299) or through short-range wireless communication (e.g., the first network 298).
[0086] In an embodiment, the electronic device 201 can be, for example, a personal electronic device such as a smartphone, a tablet, or a wearable device, or can be an electronic device including a display and a user interface such as a TV or a console. The electronic device 201 can discover at least one of the controlled devices 320a, 320b, 320c, and 320d (for example, the controlled device 320a) and can perform a registration process for registering the discovered controlled device 320a in the server 310. The controlled devices 320a, 320b, 320c, and 320d can be registered in the server 310 to be associated with a user account. The electronic device 201 can monitor and control the controlled devices 320a, 320b, 320c, and 320d registered in the server 310 using the user account.
[0087] The electronic device 201 can identify a state of the controlled devices 320a, 320b, 320c, and 320d to be used for the IoT control service by the user, or can control the controlled devices 320a, 320b, 320c, and 320d (for example, transmit a control command instructing execution of a specific function). The electronic device 201 can be an owner device of the local network 350. Although not shown, at least one member device including at least some functions and / or authority of the electronic device 201 can be included in the network 300. In one embodiment, although the member device does not perform a registration process of the controlled devices 320a, 320b, 320c, and 320d, the member device can perform a function of identifying or controlling a state of the controlled devices 320a, 320b, 320c, and 320d registered in the server 310.
[0088] The hub device 330 can be an electronic device providing a hub function related to the IoT control service, and can be a server or a gateway disposed in a physical area (for example, a building, a home, or a hotel) corresponding to the local network 350, or a remote server disposed outside the local network 350. The hub device 330 can be a home appliance such as a smartphone, a tablet, a personal computer (PC), or a TV having a hub function. The hub device 330 can be registered in the server 310 by the electronic device 201 through a process similar to that of the controlled devices 320a, 320b, 320c, and 320d.
[0089] Figure 4 FIG. 1 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the disclosure.
[0090] Reference Figure 4, the electronic device (e.g., the hub device 330) can be a device that implements an IoT service (e.g., an event-based IoT service) in the network 300 (e.g., an IoT network). For example, the IoT network can be a smart home network, and the IoT service can be an automation service. The electronic device (e.g., the hub device 330) can include a processor 410, a transceiver 420, a memory 430, and / or an interface 440.
[0091] The electronic device (e.g., the hub device 330) can include a transceiver 420 (e.g., Figure 1 a communication module 290 of FIG. 1) that transmits and receives a signal to and from an external electronic device (e.g., Figure 2 the electronic device 201, the server 310, the AP 340, or at least one of the controlled devices 320a, 320b, 320c, and 320d of FIG. 2). In an embodiment, one or two or more antennas can be implemented as a part of an antenna module 297 of FIG. 1. The electronic device (e.g., the hub device 330) can support at least one of long term evolution (LTE), 5G / NR (new radio), Zigbee, Z-wave, ultra-wideband (UWB), Wi-Fi, or Bluetooth (e.g., legacy Bluetooth (BT) and / or Bluetooth low energy (BLE)) through the transceiver 420. The transceiver 420 can include one or more communication circuits based on LTE, 5G / NR, Zigbee, Z-wave, UWB, Wi-Fi, BT, and / or BLE. Figure 2 Figure 2 The electronic device (e.g., the hub device 330) can include a communication module 290 (e.g., an interface 277 of FIG. 1), an input module 250, a display module 260, and / or an audio module 270 for communicating with components outside the network and / or a user.
[0092] Figure 2 The electronic device (e.g., the hub device 330) can include a processor 410 (e.g., a processor 220 of FIG. 2) that can be implemented as one or more single-core processors or one or more multi-core processors, and a memory 430 (e.g.,
[0093] a memory 230 of FIG. 2) that stores instructions and data used for operations of the electronic device (e.g., the hub device 330). Figure 2 Figure 2 The memory 430 can store an application for performing an IoT service, user information, device information, connection information, or related data.
[0094] The memory 430 can store an application for performing an IoT service, user information, device information, connection information, or related data.
[0095] The processor 410 can manage the states and operations of the controlled devices (e.g., the controlled devices 320a, 320b, 320c, and 320d) related to the IoT service, and can provide an offline diagnosis service of the controlled devices when the controlled devices are in an offline state (e.g., a server offline state) in which they are disconnected from the server (e.g., the server 310). In an embodiment, the processor 410 can include a diagnosis module (e.g., the diagnosis module 832 or the diagnosis module 2110) that provides the offline diagnosis service.
[0096] Any one of the controlled devices 320a, 320b, 320c, and 320d and the hub device 330 registered in the server 310 (e.g., the controlled device 320b or the hub device 330) can be in an offline state (e.g., a server offline state) in which they are disconnected from the server 310. The electronic device 201 can display, on the display module 260, information indicating, for example, that the controlled device 320b or the hub device 330 is in the offline state. The case in which the controlled device 320b or the hub device 330 is displayed as offline on the electronic device 201 can occur due to one or more reasons such as a device problem, an AP problem, a server malfunction, or an application problem.
[0097] Figure 5a 、 Figure 5b and Figure 5c are views illustrating offline notification of an IoT network according to various embodiments of the present disclosure.
[0098] Referring to Figure 5a , the electronic device 201 can display a device list 510 of one or more devices (e.g., device A, device B, device C, device D, and device E) registered in the IoT network. The device list 510 can include information (e.g., text and / or images) indicating a connection state (e.g., online or offline) of each device. The user can view the device list 510 and identify that specific devices (e.g., device D and device E) are in an offline state or an online state. In an embodiment, the offline state can include at least one of an offline state (e.g., a server offline state) in which the devices (e.g., device D and device E) are disconnected from the server (e.g., the server 310) or an offline state (e.g., a hub offline state) in which the devices (e.g., device D and device E) are disconnected from the electronic device 201.
[0099] Referring to Figure 5b, based on receiving input (e.g., touch) for selecting any one device (e.g., device D) in an offline state from a user, the electronic device 201 can display a guide (e.g., text) 520 indicating the connection state of the device D and a recovery method. In an embodiment, the device D can be a hub device (e.g., hub device 330). For example, the guide 520 can indicate, for example, "Hub disconnected. Devices connected to the hub do not operate. Please check the hub connection."
[0100] Referring to Figure 5c , the electronic device 201 can display detailed information 530 including the offline state of the device D and a guide based on user input for selecting the device D (e.g., hub device 330) in an offline state. The electronic device 201 can execute an offline diagnosis service to analyze the reason for being offline and perform recovery by referring to the recovery guide.
[0101] For the offline diagnosis service to analyze the reason for being offline and recover (e.g., reconnect) the connection, the electronic device 201 can connect to an IoT device (e.g., controlled devices 320a, 320b, 320c, and 320d or hub device 330) in an offline state. In the offline diagnosis service, the electronic device 201 can provide a guide screen including a phrase guiding a user to switch the IoT device in an offline state to a soft AP mode. After displaying the guide screen, the electronic device 201 can perform discovery to connect to the IoT device switched to the soft AP mode through the guide screen. However, for example, when the IoT device is installed in a location difficult for the user to access or the method of manipulating the IoT device is complex, it can be difficult or troublesome for the user to switch the IoT device to the soft AP mode.
[0102] Even after the user manipulates the IoT device to switch to the soft AP mode, the D2D connection (e.g., soft AP connection or BLE connection) between the electronic device 201 and the IoT device can fail. Furthermore, when the server 310 recognizes the IoT device as offline (e.g., server offline state) due to disconnection from the server 310 while the IoT device is connected to a network (e.g., AP 340), the network connection can be unnecessarily disconnected for the D2D connection between the electronic device 201 and the IoT device.
[0103] Furthermore, when the electronic device 201 is not in the same network (e.g., local network 350) as the IoT device in an offline state or is not in a home environment, the electronic device 201 can not perform detailed diagnosis on the IoT device in an offline state, and thus it can be difficult to recover the connection of the IoT device.
[0104] Figure 6 is a view illustrating a device going offline due to an AP problem according to an embodiment of the present disclosure.
[0105] Referring to Figure 6 , at least one IoT device (e.g., controlled device 320b) among IoT devices (e.g., controlled devices 320a, 320b, 320c, and 320d, and hub device 330) connected to AP 340 in local network 350 can be offline.
[0106] Figure 7 is a view illustrating that a device is offline due to a device problem, according to an embodiment of the disclosure.
[0107] Referring to Figure 7 , at least one IoT device (e.g., controlled device 320b) among IoT devices (e.g., controlled devices 320a, 320b, 320c, and 320d, and hub device 330) connected to AP 340 in local network 350 can be offline.
[0108] This offline type can be caused by a session connection failure due to a communication failure between the IoT device (e.g., controlled device 320b) and server 310 or a network connection failure between the IoT device (e.g., controlled device 320b) and AP 340. As another example, when server 310 intentionally releases a session (e.g., a session with controlled device 320b) that has not been used for a long time, the IoT device (e.g., controlled device 320b) can be offline. Electronic device 201 can identify the connection state (e.g., an online state or an offline state) of the IoT device, for example, through server 310, and can display information indicating the connection state (e.g., online state 700a of controlled device 320a, offline state 700b of controlled device 320b, online state 700c of controlled device 320c, online state 700d of controlled device 320d, and online state 700e of hub device 330) of the IoT device.
[0109] The user can identify the offline type and the offline cause of the IoT device by executing an offline diagnosis service through electronic device 201, and can restore the connection of the IoT device according to the identified offline type.
[0110] According to embodiments of the disclosure, instead of a user directly recognizing an offline state of an IoT device by an electronic device 201 and performing recovery through an offline diagnosis service, an electronic device (e.g., the hub device 330) located in a local network (e.g., the local network 350) can automatically detect an IoT device in an offline state and easily recover connection of the IoT device without an additional operation of the user.
[0111] Figure 8 A system architecture for supporting offline diagnosis and connection recovery according to embodiments of the disclosure is illustrated.
[0112] Referring to Figure 8 A user device 820 (e.g., the electronic device 201) can include a client application capable of registering at least one controlled device 840 (e.g., the controlled devices 320a, 320b, 320c, and 320d) in a server 810 (e.g., the server 310) and remotely controlling the registered controlled device 840. As an example, the user device 820 including the client application can be any one of a mobile device, a TV, a home hub, or a smart watch. Onboarding can include registering the controlled device 840 in the server 810. The device 840 can be registered (e.g., onboarding) in the server 810 using any one of hub connection, cloud connection, or cloud-to-cloud connection.
[0113] In the case of hub connection, the controlled device 840 can be connected to a hub device (e.g., the hub device 330) using a short-range communication function such as Zigbee, Z-wave, or Wi-Fi, and can be registered in the server 310 through the hub device 330. In the case of cloud connection, the controlled device 840 can be connected to the server 810 via an AP (not shown) (e.g., the AP 340). In the case of cloud-to-cloud connection, the controlled device 840 can be first registered in a third-party cloud server (not shown), and registration information about the controlled device 840 can be transferred to the server 810 through an application programmable interface (API).
[0114] In the case of cloud connection, the user device 820 can be connected to the controlled device through a BLE connection, can transmit network connection information (e.g., Wi-Fi information or AP information related to the AP 340) for onboarding (e.g., registration in the server) to the controlled device 840 through the BLE connection, and can collect a device log of the controlled device 840 through the BLE connection. The user device 820 can upload the device log and / or connection log related to the controlled device 840 to the server 810.
[0115] The electronic device 830 (e.g., the hub device 330) can include a diagnosis module 832 that performs an offline diagnosis service related to the controlled device 840. When the controlled device 840 is disconnected from the server 810 after being connected to the network, the electronic device 830 can perform the offline diagnosis service through the diagnosis module 832 to diagnose the reason for the disconnection and perform connection recovery. The electronic device 830 can upload diagnosis data generated as a result of the diagnosis to the server 810 (e.g., the database 812). In an embodiment, the diagnosis data can include an error code and a recovery result (e.g., success or failure).
[0116] The electronic device 830 can detect the offline state of the controlled device 840 and can support the controlled device 840 to automatically reconnect to the server 810 according to recovery policy information. When the electronic device 830 is the hub device 330 equipped with a hub function, the electronic device 830 can register and control hub-connected devices.
[0117] The server 810 can receive diagnosis data generated as a result of diagnosing the offline state of at least one controlled device 840 (e.g., the controlled devices 320a, 320b, 320c, and 320d) from the electronic device 830 and store the diagnosis data in a database (DB) 812.
[0118] Table 1 below shows an example of diagnosis data uploaded to the server 810 after performing an offline diagnosis service in the electronic device 830.
[0119] [Table 1]
[0120]
[0121]
[0122] The server 810 can manage recovery policy information indicating a recovery method and a troubleshooting guide for each error code related to one or more controlled devices (e.g., the controlled devices 840) and can download the recovery policy information indicating the recovery method for each error code to the electronic device 830. When the recovery method for each error code changes, the server 810 can update the recovery policy information, and the electronic device 830 can download the updated recovery policy information from the server 810. The server 810 can collect result diagnosis data of the offline diagnosis service and store the result diagnosis data in the database 812, and can update the recovery policy information to include whether to perform automatic recovery or whether to perform user notification according to a recovery success rate for each error code.
[0123] Table 2 below shows an example of recovery policy information including a recovery method and a troubleshooting guide for each error code.
[0124] [Table 2]
[0125]
[0126] The electronic device 830 can download the recovery policy information from the server 810. When the recovery policy is changed, the server 810 can update the recovery policy information according to the changed recovery policy, and the electronic device 830 can download the updated recovery policy information. The recovery policy information can be manually changed by a system administrator, or automatically updated according to the accumulated recovery success rate for each error code. For example, when the recovery success rate for a specific error code of the controlled device 840 is 70% or less, the recovery method for the error code can be changed to user notification, instead of automatic recovery.
[0127] Embodiments of the disclosure can relate to detecting an offline state of the controlled device 840, automatically recovering the controlled device 840 according to a reason for the offline, guiding a user to a recovery situation when automatic recovery is not possible, or diagnosing an offline state and recovering a connection through the electronic device 840 equipped with a hub function.
[0128] Figure 9 is a flowchart illustrating an offline diagnosis and connection recovery procedure according to an embodiment of the disclosure. At least one of the illustrated operations can be performed by a processor (e.g., the processor 410) of the electronic device 830 (e.g., the hub device 330). According to an embodiment, at least one of the operations to be described below can be omitted, modified, or ordered.
[0129] Reference Figure 9 In operation 905, the electronic device 830 (e.g., the processor 410) can determine whether a recovery policy for connection recovery of the controlled device 840 (e.g., the controlled devices 320a, 320b, 320c, and 320d) is updated. In an embodiment, the electronic device 830 (e.g., the processor 410) can pre-store recovery policy information. In an embodiment, the electronic device 830 (e.g., the processor 410) can determine that the recovery policy is updated based on receiving an update notification of the recovery policy from the server 810 (e.g., the server 310 or a policy server (not shown)), and can proceed to operation 910 to receive updated recovery policy information. When the recovery policy is not updated, the electronic device 830 (e.g., the processor 410) can proceed to operation 915.
[0130] In operation 910, the electronic device 830 (e.g., the processor 410) can transmit a recovery policy update request to the server 810 (e.g., the server 310 or a policy server), and can receive updated recovery policy information from the server 810. Reference can be made to Figure 10Operations 905 and 910 are described in detail. In an embodiment, operations 905 and 910 can be omitted.
[0131] In operation 915, the electronic device 830 (e.g., the processor 410) can detect that the controlled device 840 (e.g., at least one of the controlled devices 320a, 320b, 320c, and 320d) is disconnected from the server 810 (i.e., a server offline state). In an embodiment, the electronic device 830 (e.g., the processor 410) can discover the offline controlled device (e.g., the controlled device 840) through at least one of the following methods.
[0132] - detection of disconnection through Multicast Domain Name Service (mDNS), DNS-based Service Discovery (DNS-SD), simple service discovery protocol (SSDP), or universal plug and play (UPNP) (e.g., operations 1404, 1406, 1408, and 1410 of FIG. 14); Figure 14
[0133] - detection of disconnection through server-send event (SSE) (e.g., operations 1604 and 1608 of FIG. 16); and / or Figure 16
[0134] - detection of disconnection through BLE scanning (e.g., operations 1708, 1710, and 1712 of FIG. 17). Figure 17
[0135] Operations 920, 925, 930, and 935 can refer to a process of determining an appropriate recovery method for an error code.
[0136] In operation 920, the electronic device 830 (e.g., the processor 410) can establish a D2D connection (e.g., at least one of a secure hypertext transfer protocol (HTTPS) connection, a BLE connection, or a DNS search-based Wi-Fi connection) with the controlled device 840 detected as an offline state.
[0137] In operation 925, the electronic device 830 (e.g., the processor 410) can obtain an error code of the controlled device 840. In an embodiment, the electronic device 830 (e.g., the processor 410) can receive the error code from the controlled device 840 through a DNS service discovery response, an HTTPS connection, or a BLE connection.
[0138] In operation 930, the electronic device 830 (e.g., the processor 410) can determine a recovery method corresponding to the error code based on the recovery policy information (e.g., Table 2). In an embodiment, the recovery policy information can indicate the recovery policy updated in operation 910.
[0139] In operation 935, the electronic device 830 (e.g., the processor 410) can determine whether automatic recovery is possible based on the determined recovery method. In an embodiment, the electronic device 830 (e.g., the processor 410) can determine whether the recovery method corresponding to the error code is user notification. When the recovery method is user notification, the electronic device 830 (e.g., the processor 410) can determine that automatic recovery is not possible and can proceed to operation 940. When the recovery method is not user notification, the electronic device 830 (e.g., the processor 410) can determine that automatic recovery is possible and proceed to operation 945.
[0140] In operation 940, the electronic device 830 (e.g., the processor 410) can directly display a user notification related to a diagnosis result of the offline diagnosis service, or can request the user device 820 to display the user notification through the server 810.
[0141] In operation 945, the electronic device 830 (e.g., the processor 410) can perform the recovery method corresponding to the error code. In an embodiment, the recovery method can include any one of updating to changed AP information, performing automatic onboarding, or performing automatic reconnection. Although not shown, as a result of performing the recovery method, the electronic device 830 (e.g., the processor 410) can determine whether the controlled device 840 is successfully connected to the server 810 and can report diagnosis data including the error code and a recovery result (e.g., success or failure) to the server 810.
[0142] In an embodiment, when the electronic device 830 is the hub device 330, the electronic device 830 can perform connection recovery to maintain connection.
[0143] Figure 10 is a flowchart illustrating a process for updating a recovery policy according to an embodiment of the disclosure. At least one of the illustrated operations can be performed by a processor (not shown) of the server 810 (e.g., the server 310). According to an embodiment, at least one of the operations to be described below can be omitted, modified, or ordered.
[0144] Reference Figure 10In operation 1005, the server 810 can receive, from the electronic device 830, diagnosis data (e.g., diagnosis data in Table 1) generated as a result of the offline diagnosis service. In an embodiment, the diagnosis data can include an error code and a recovery result (e.g., success or failure) related to the controlled device 840 detected as offline.
[0145] In operation 1010, the server 810 can accumulate a success rate for the error code. In an embodiment, the success rate can indicate a probability that a connection to the server 810 is successful due to the performance of the automatic recovery of the controlled device 840.
[0146] In operation 1015, the server 810 can determine whether to update recovery policy information corresponding to the error code. In an embodiment, when the accumulated success rate exceeds a reference value and the recovery method corresponding to the error code is user notification, the server 810 can determine to update the recovery policy information corresponding to the error code. When the recovery policy information needs to be updated, the server 810 can proceed to operation 1020. When the recovery policy information does not need to be updated, the server 810 can terminate the process.
[0147] In operation 1020, the server 810 can update the recovery policy information corresponding to the error code (e.g., Table 2). In an embodiment, the server 810 can set the recovery method corresponding to the error code in the recovery policy information to automatic recovery.
[0148] Figure 11 is a timing diagram illustrating automatic recovery of an offline device through BLE scanning according to an embodiment of the disclosure.
[0149] Reference Figure 11 In operation 1102, the controlled device 830 can be disconnected from an AP (e.g., the AP 340). In operation 1104, the controlled device 830 can start to broadcast an offline advertising packet (ADV) based on detecting disconnection of the connection with the AP 340 and becoming an offline state (e.g., a server offline state in which the controlled device 830 is disconnected from the server 810). In an embodiment, the offline ADV can include information (e.g., an online bit set to 0x00) indicating that the controlled device 830 is in an offline state.
[0150] In operation 1106, the electronic device 830 can identify an offline state of the controlled device 840 based on receiving an offline ADV through the BLE scan. In operation 1108, the electronic device 830 can establish a D2D connection (e.g., a BLE connection or a Bluetooth generic attribute profile (GATT) connection) with the controlled device 840. In operation 1110, the electronic device 830 can perform an offline diagnosis service on the controlled device 840 through the D2D connection. In an embodiment, the electronic device 830 can receive an error code indicating a reason for the offline of the controlled device 840 through the D2D connection, and can determine a recovery method (e.g., changing AP information, rebooting, or restarting) corresponding to the error code. In an embodiment, the recovery method can be determined based on pre-stored recovery policy information (e.g., Table 2).
[0151] In operation 1112, the electronic device 830 can transmit a recovery command indicating a recovery method according to a result of performing the offline diagnosis service to the controlled device 840. In operation 1114, the controlled device 840 can perform an automatic recovery (e.g., changing AP information, rebooting, or restarting the controlled device 840) based on the recovery command of the electronic device 830. In operation 1116, the controlled device 840 can be connected to an AP (e.g., the AP 340 or a new AP (not shown)) by performing the automatic recovery. The controlled device 840 can be reconnected to the server 810 through the AP 340 or the new AP.
[0152] Figure 12 is a timing diagram illustrating an automatic recovery procedure of an offline device searched through a local network device according to an embodiment of the disclosure.
[0153] Referring to Figure 12 In operation 1202, the controlled device 830 can identify disconnection of a connection (e.g., a session) with the server 810. In operation 1204, the electronic device 830 can detect an offline state (e.g., a server offline state in which a connection between the controlled device 830 and the server 810 is disconnected) of the controlled device 830 through a local network search. In an embodiment, the local network search can include offline detection using at least one of mDNS, DNS-SD, SSDP, UPNP, or SSE.
[0154] In operation 1206, the electronic device 830 can establish a D2D connection (e.g., an HTTPS connection) with the controlled device 840. In operation 1208, the electronic device 830 can perform an offline diagnosis service on the controlled device 840 through the D2D connection. In an embodiment, the electronic device 830 can receive an error code indicating a reason for the controlled device 840 going offline through the D2D connection, and can determine a recovery method (e.g., changing AP information, rebooting, or restarting) corresponding to the error code. In an embodiment, the recovery method can be determined based on pre-stored recovery policy information (e.g., Table 2).
[0155] In operation 1210, the electronic device 830 can transmit a recovery command indicating a recovery method according to a result of performing the offline diagnosis service to the controlled device 840. In operation 1212, the controlled device 840 can perform automatic recovery (e.g., changing AP information, rebooting, or restarting the controlled device 840) based on the recovery command of the electronic device 830. In operation 1214, the controlled device 840 can be connected to an AP (e.g., the AP 340 or a new AP (not shown)) by performing the automatic recovery. The controlled device 840 can be reconnected to the server 810 through the AP 340 or the new AP.
[0156] Figure 13 is a view illustrating mDNS / DNS-SD-based offline detection and automatic recovery according to an embodiment of the disclosure.
[0157] Referring to Figure 13 , the electronic device 830 (e.g., the hub device 330) and the controlled device 840 (e.g., the controlled devices 320a, 320b, 320c, and 320d) in the local network 1300 (e.g., the local network 350) can be connected to the server 810 through the AP 340. In operation 1312, the controlled device 840 can detect disconnection from the AP 340. In an embodiment, the controlled device 840 can be disconnected from the AP 340 due to a software problem of the controlled device 840.
[0158] In operation 1314, the electronic device 830 can periodically (e.g., every N minutes) transmit a DNS service discovery. The electronic device 830 can periodically transmit the DNS service discovery based on mDNS or DNS-SD to monitor that the controlled device 840 is offline. In operation 1316, the controlled device 840 can transmit a response (e.g., a DNS service discovery response corresponding to the DNS service discovery) including offline state information and an error code to the electronic device 830 based on detecting that the connection with the AP 340 is disconnected. In an embodiment, the DNS service discovery can be based on mDNS or DNS-SD. The mDNS or DNS-SD can be used to find hostnames in a local area network without zero settings. The DNS-SD can be used to set a service type using a pointer record (PTR) of DNS.
[0159] In operation 1318, the electronic device 830 can determine a recovery method corresponding to the error code by performing an offline diagnosis service based on the error code. In operation 1320, the electronic device 830 can transmit a recovery command indicating the recovery method to the controlled device 840. In an embodiment, the electronic device 830 can establish a D2D connection (e.g., an HTTPS connection) with the controlled device 840 to transmit the recovery command. In operation 1322, the controlled device 840 can perform an automatic recovery (e.g., a restart or a reboot) according to the recovery method based on the recovery command. In operation 1324, the controlled device 840 can be connected to the AP 340 through the automatic recovery, and can report a recovery result (e.g., a connection recovery completion or an online state) to the server 810 through the AP 340.
[0160] Figure 14 is a timing diagram illustrating mDNS / DNS-SD based offline detection and automatic recovery according to an embodiment of the disclosure.
[0161] Reference Figure 14In operation 1402, the controlled device 840 can be in an online state connected to the server 810 through the AP 340 (not shown). In operation 1404, the electronic device 830 can periodically (e.g., every N minutes) transmit a DNS service discovery. The service type of the DNS service discovery can be designated as a value designated to detect whether the controlled device 840 is offline, for example, [_calmrecovery._tcp.local]. In operation 1406, the controlled device 840 can transmit a response (e.g., a DNS service discovery response) including information indicating that the controlled device 840 is in the online state to the electronic device 830 after the onboarding on the server 810. In an embodiment, the hostname in the response can be determined as a value capable of ensuring uniqueness, such as [last 5 digits of the device ID+_calmrecovery.local], to avoid duplication in the local network 1300 (e.g., the local network 350).
[0162] In an embodiment, the response can be configured as shown in Table 3 below.
[0163] [Table 3]
[0164]
[0165] In operation 1408, the connection (e.g., session) between the controlled device 840 and the server 810 can be disconnected, and in operation 1410, the controlled device 840 can detect that the controlled device 840 is in an offline state (e.g., a server offline state in which the connection between the controlled device 840 and the server 810 is disconnected). In operation 1412, the electronic device 830 can transmit a DNS service discovery including a service type of [_calmrecovery._tcp.local] according to a designated period. In operation 1414, the controlled device 840 can transmit a response (e.g., a DNS service discovery response) including information indicating that the device is in the offline state and an error code to the electronic device 830 based on detecting that the device is in the offline state. In an embodiment, the response can be configured as shown in Table 4 below.
[0166] [Table 4]
[0167]
[0168] Here, the txt field can include information (e.g., "Online=false") indicating that the controlled device 840 is in the offline state and an error code (e.g., "LastErrorCode=CE20").
[0169] The electronic device 830 can identify that the controlled device 840 is the user's own device based on the response (e.g., information included in an identifier field of the response). In an embodiment, the controlled device 840 can include a serial number of the controlled device 840 in the identifier field, and the electronic device 830 can identify the serial number. The electronic device 830 can determine a recovery method for the controlled device 840 based on an error code in the response. In an embodiment, the recovery method can be determined based on pre-stored recovery policy information (e.g., Table 2).
[0170] In operation 1416, the electronic device 830 can establish a D2D connection (e.g., an HTTPS connection) with the controlled device 840. In an embodiment, the electronic device 830 can transmit an HTTPS connection request to the controlled device 840 based on a device IP address and a port number included in the response. The electronic device 830 can generate a transport layer security (TLS) session with the controlled device 840 based on a certificate. In operation 1418, the electronic device 830 can transmit a recovery command to the controlled device 840 through the HTTPS connection. The recovery command can include information (e.g., {"command":"restartThings"}) indicating a recovery method (e.g., restart) determined based on the error code.
[0171] In operation 1420, the controlled device 840 can perform the recovery method (e.g., restart) based on the recovery command. After the restart, the controlled device 840 can reconnect to the AP 340 based on pre-stored AP information (e.g., a service set ID (SSID), a password, an authentication type, and / or an encryption type). In operation 1422, the controlled device 840 can transmit a login request to the server 810 through the AP 340. In operation 1424, the server 810 can respond to the controlled device 840 with a login success.
[0172] Although not shown, in an embodiment, the electronic device 830 can receive information indicating that the controlled device 840 is in an online state from the server 810. Although not shown, in an embodiment, the electronic device 830 can transmit diagnosis data (e.g., diagnosis data in Table 1) related to diagnosis and recovery results of the controlled device 840 to the server 810.
[0173] Figure 15 is a view illustrating SSE-based offline detection and automatic recovery according to an embodiment of the disclosure.
[0174] Reference Figure 15The electronic device 830 (e.g., the hub device 330) and the controlled device 840 (e.g., the controlled devices 320a, 320b, 320c, and 320d) in the local network 1500 (e.g., the local network 350) can be connected to the server 810 through the AP 340. In operation 1512, the electronic device 830 can receive a device event (e.g., an SSE) indicating an offline state (e.g., a server offline state in which a connection between the controlled device 840 and the server 810 is disconnected) of the controlled device 840 from the server 810. In an embodiment, the server 810 can transmit the device event to the electronic device 830 based on detecting disconnection of a session with the controlled device 840.
[0175] In operation 1514, the electronic device 830 can transmit an mDNS service discovery based on the device event. In operation 1516, the controlled device 840 can transmit a response (e.g., an mDNS service discovery response) including a host name to the electronic device 830 in response to the mDNS service discovery based on detecting disconnection of a connection with the server 810.
[0176] In operation 1518, the electronic device 830 can request an error code indicating a reason for the offline from the controlled device 840. In operation 1520, the controlled device 840 can transmit the error code to the electronic device 830. In an embodiment, to request and transmit the error code, the electronic device 830 can establish a D2D connection (e.g., an HTTPS connection) with the controlled device 840.
[0177] In operation 1522, the electronic device 830 can determine a recovery method corresponding to the error code by performing an offline diagnosis service based on the error code. In operation 1524, the electronic device 830 can transmit a recovery command indicating the recovery method to the controlled device 840. In operation 1526, the controlled device 840 can perform an automatic recovery (e.g., a restart or a reboot) according to the recovery method based on the recovery command. In operation 1528, the controlled device 840 can be connected to the AP 340 through the automatic recovery and can report a recovery result (e.g., a connection recovery completion or an online state) to the server 810 through the AP 340.
[0178] Figure 16 is a timing diagram illustrating an SSE-based offline detection and automatic recovery according to an embodiment of the disclosure.
[0179] Reference Figure 16In operation 1602, the electronic device 830 can subscribe to the SSE service of the server 810. When a controlled device (e.g., the controlled device 840) owned by the electronic device 830 is in an offline state (e.g., a server offline state in which a connection between the controlled device 840 and the server 810 is disconnected), the SSE service can provide the electronic device 830 with a device event indicating the offline state of the controlled device 840. In operation 1604, the server 810 and the controlled device 840 can detect disconnection of a session in which they are connected to each other. In operation 1606, the controlled device 840 can start an HTTPS server operation based on the disconnection of the session. In an embodiment, a domain name for the HTTPS server operation can be a predetermined value, e.g., [last 5 digits of the device ID + calmrecovery.local]. In operation 1608, the server 810 can transmit a device event indicating the offline state of the controlled device 840 to the electronic device 830 according to the SSE service based on the disconnection of the session.
[0180] In operation 1610, the electronic device 830 can obtain a hostname (e.g., a domain name) and device information (e.g., a device IP address) about the controlled device 840 based on a device ID of the controlled device 840. In an embodiment, the electronic device 830 can obtain the hostname through an mDNS search (e.g., mDNS service discovery and response), and can obtain the device IP address and a port number of the controlled device 840 using the hostname. The hostname can be determined as a value capable of ensuring uniqueness, such as [last 5 digits of the device ID + _calmrecovery.local], to avoid duplication in the local network 1500 (e.g., the local network 350).
[0181] In operation 1612, the electronic device 830 can establish a D2D connection (e.g., an HTTPS connection) with the controlled device 840. In an embodiment, the electronic device 830 can transmit an HTTPS connection request to the controlled device 840 based on the device IP address and the port number. The electronic device 830 can generate a transport layer security (TLS) session with the controlled device 840 based on a certificate.
[0182] In operation 1614, the electronic device 830 can transmit an error code request to the controlled device 840 through the HTTPS connection. In operation 1616, the controlled device 840 can transmit an error code (e.g., {last_error_code: "CE20"}) indicating a reason for the offline state to the electronic device 830 through the HTTPS connection. The electronic device 830 can determine a recovery method for the controlled device 840 based on the error code. In an embodiment, the recovery method can be determined based on pre-stored recovery policy information (e.g., Table 2).
[0183] In operation 1618, the electronic device 830 can transmit a recovery command to the controlled device 840 through the HTTPS connection. The recovery command can include information (e.g., {"command":"restartThings"}) indicating a recovery method (e.g., restart) determined based on the error code.
[0184] In operation 1620, the controlled device 840 can stop the HTTPS server operation based on the reception of the recovery command. In operation 1622, the controlled device 840 can perform the recovery method (e.g., restart) based on the recovery command. After the restart, the controlled device 840 can reconnect to the AP 340 based on the pre-stored AP information (e.g., SSID and / or password). In operation 1624, the controlled device 840 can transmit a login request to the server 810 through the AP 340. In operation 1626, the server 810 can respond to the controlled device 840 with a login success. In operation 1628, the server 810 can transmit a device event indicating the online state of the controlled device 840 to the electronic device 830 according to the SSE service.
[0185] Although not shown, when the login to the server 810 fails, the electronic device 830 can determine the recovery failure based on a timeout.
[0186] Although not shown, in an embodiment, the electronic device 830 can transmit diagnosis data (e.g., the diagnosis data in Table 1) related to the diagnosis and recovery result of the controlled device 840 to the server 810.
[0187] The automatic recovery based on BLE scan can use BLE to search for, diagnose, and recover the controlled device (e.g., the controlled device 840) disconnected from the AP 340. The electronic device 830 can detect that the controlled device 840 is offline through the BLE scan, and can perform offline diagnosis and recovery based on a device protocol (e.g., open connectivity foundation (OCF) or smartthings software development kit (STDK)).
[0188] Figure 17 is a timing diagram illustrating offline detection and automatic recovery based on BLE scan according to an embodiment of the disclosure.
[0189] Reference Figure 17In operation 1702, the controlled device 840 can be in an online state connected to the server 810 through the AP 340 (not shown). In operation 1704, the controlled device 840 can broadcast an advertisement packet (e.g., online ADV) including information (e.g., "online bit: 0x01") indicating the online state. In an embodiment, the controlled device 840 can periodically broadcast the online ADV, or can broadcast the online ADV only when it is determined to be necessary. In operation 1706, the electronic device 830 can identify that the controlled device 840 is in the online state based on identifying that the received advertisement packet includes the information indicating the online state by periodically performing a BLE scan.
[0190] In operation 1708, the connection between the controlled device 840 and the server 810 can be disconnected, and in operation 1710, the controlled device 840 can detect that the controlled device 840 is in an offline state (e.g., a server offline state in which the connection between the controlled device 840 and the server 810 is disconnected). In operation 1712, the controlled device 840 can broadcast an advertisement packet (e.g., offline ADV) including information (e.g., "online bit: 0x00") indicating the offline state. In an embodiment, the controlled device 840 can periodically broadcast the offline ADV while the device is in the offline state. The electronic device 830 can identify that the controlled device 840 is in the offline state based on identifying that the received advertisement packet includes the information indicating the offline state by a periodic BLE scan.
[0191] In operation 1714, the electronic device 830 can request device information about the controlled device 840 from the server 810 using the BLE information about the controlled device 840 obtained through the offline ADV, to identify that the controlled device 840 is a device owned by the user. The device information is information stored in the server 810 when the controlled device 840 is commissioned, and can include, for example, information (e.g., a device ID, a BLE media access control (MAC) address, and / or a serial number) for identifying the controlled device 840 and / or information indicating a device protocol (e.g., OCF) of the controlled device 830. In operation 1716, the electronic device 830 can receive a response including the device information about the controlled device 840 from the server 810, and can identify that the controlled device 840 is owned by the user based on the device information (e.g., the serial number).
[0192] In operation 1718, the electronic device 830 can establish a D2D connection (e.g., an OCF connection) with the controlled device 840. In operation 1720, the electronic device 830 can identify the ownership of the controlled device 840 with the serial number obtained from the controlled device 840, and can generate a secure session with the controlled device 840.
[0193] In operation 1722, the electronic device 830 can transmit an error code request to the controlled device 840 through the D2D connection. In operation 1724, the controlled device 840 can transmit an error code indicating a reason for being offline (e.g., {last_error_code: "CE20"}) to the electronic device 830 through the D2D connection. The electronic device 830 can determine a recovery method of the controlled device 840 based on the error code. In an embodiment, the recovery method can be determined based on pre-stored recovery policy information (e.g., Table 2).
[0194] In operation 1726, the electronic device 830 can transmit a recovery command to the controlled device 840 through the D2D connection. The recovery command can include information (e.g., {"command":"restartThings"}) indicating a recovery method (e.g., restart) determined based on the error code.
[0195] In operation 1728, the controlled device 840 can perform a recovery method (e.g., restart) based on the recovery command. After the restart, the controlled device 840 can reconnect to the AP 340 based on pre-stored AP information (e.g., SSID and / or password). In operation 1730, the controlled device 840 can transmit a login request to the server 810 through the AP 340. In operation 1732, the server 810 can respond to the controlled device 840 with a login success.
[0196] Although not shown, in an embodiment, the electronic device 830 can receive information indicating that the controlled device 840 is in an online state from the server 810. Although not shown, in an embodiment, the electronic device 830 can transmit diagnosis data (e.g., diagnosis data in Table 1) related to diagnosis and recovery results of the controlled device 840 to the server 810.
[0197] In an embodiment of the disclosure, the recovery method for bringing the controlled device 840 in an offline state online can include a method for causing user intervention in addition to a method (such as restart or Wi-Fi update) performed by the controlled device 840 itself, and user notification can be used to perform the recovery method for causing user intervention.
[0198] Figure 18 is a view showing user notification for an offline state according to an embodiment of the disclosure.
[0199] Reference Figure 18The electronic device 830 (e.g., the hub device 330) and the controlled device 840 (e.g., the controlled devices 320a, 320b, 320c, and 320d) in the local network 1800 (e.g., the local network 350) can be connected to the server 810 through the AP 340. Even if the controlled device 840 or the network connection (e.g., the AP 340) has no problem, the controlled device 840 can be offline due to a policy reason. For example, in the case where the controlled device 840 has not been used for a long time, the controlled device 840 can be disconnected from the server 810 to be in an offline state. In this case, the electronic device 830 can transmit a user notification to the user device 820 without performing automatic recovery.
[0200] In operation 1812, the controlled device 840 can be disconnected from the server 810 based on a designated criterion (e.g., long-term non-use), and can be offline. In operation 1814, the electronic device 830 can periodically (e.g., every N minutes) transmit a DNS service discovery. In operation 1816, the controlled device 840 can transmit a response (e.g., a DNS service discovery response) including offline state information and an error code to the electronic device 830. Although not shown, the electronic device 830 can obtain the error code of the controlled device 840 through a BLE scan instead of a DNS search (e.g., DNS service discovery and response).
[0201] In operation 1818, the electronic device 830 can transmit a user notification (e.g., an offline notification) based on the error code to the server 810. In operation 1820, the server 810 can transmit the offline notification to the user device 820. In operation 1822, the user device 820 can display a guide phrase (e.g., "Disconnected from the server due to long-term non-use of the living room TV") based on the offline notification.
[0202] Figure 19 is a timing diagram illustrating a user notification through a local network search according to an embodiment of the disclosure.
[0203] Reference Figure 19 In operation 1902, the controlled device 840 (e.g., a TV) can be in an online state connected to the server 810 through the AP 340 (not shown). In operation 1904, the electronic device 830 can periodically (e.g., every N minutes) transmit a DNS service discovery. The service type of the DNS service discovery can be designated as a value designated to detect whether the controlled device 840 is offline, for example, [_calmrecovery._tcp.local].
[0204] In operation 1906, the controlled device 840 can transmit a response (e.g., a DNS service discovery response) including information indicating that the controlled device 840 is in an online state to the electronic device 830 after onboarding on the server 810. In an embodiment, the hostname in the response can be determined as a value capable of ensuring uniqueness, such as [last 5 digits of the device ID+_calmrecovery.local], to avoid duplication in the local network 1800 (e.g., the local network 350). In an embodiment, the response can be configured as shown in Table 3 below.
[0205] In operation 1908, the connection (e.g., session) between the controlled device 840 and the server 810 can be disconnected, and in operation 1910, the controlled device 840 can detect that the controlled device 840 is in an offline state (e.g., a server offline state in which the connection between the controlled device 840 and the server 810 is disconnected). In operation 1912, the electronic device 830 can transmit a DNS service discovery according to a designated period. In operation 1914, the controlled device 840 can transmit a response (e.g., a DNS service discovery response) including information indicating the offline state (e.g., "Online=false"), an error code (e.g., "LastErrorCode=DS01-1"), and / or a device identifier to the electronic device 830 based on detecting that the electronic device 840 is in the offline state. The electronic device 830 can determine that the recovery method for the controlled device 840 is user notification based on the error code in the response. In an embodiment, the recovery method can be determined based on pre-stored recovery policy information (e.g., Table 2).
[0206] Although not shown, in an embodiment of the disclosure, the electronic device 830 can obtain an error code of the controlled device 840 through BLE scanning (e.g., operations 1706, 1712, 1714, 1716, 1718, 1720, 1722, and 1724) instead of a local network search (e.g., operations 1904, 1906, 1912, and 1914), and proceed to operation 1916.
[0207] In operation 1916, the electronic device 830 can transmit a user notification (e.g., an offline notification) based on the error code to the server 810. In operation 1918, the server 810 can transmit the offline notification to the user device 820. In operation 1920, the user device 820 can display a guidance phrase (e.g., "Disconnected from the server due to long-term non-use of the living room TV") describing the offline state based on the offline notification.
[0208] Although not shown, in an embodiment, the electronic device 830 can transmit diagnosis data (e.g., diagnosis data in Table 1) related to diagnosis and recovery results of the controlled device 840 to the server 810.
[0209] In an embodiment of the disclosure, when the controlled device 840 is offline due to a change in AP information (e.g., SSID and / or password), automatic recovery and user notification can be performed.
[0210] Figure 20 is a timing diagram illustrating user notification for Wi-Fi update according to an embodiment of the disclosure.
[0211] Referring to Figure 20 In operation 2002, a connection between the controlled device 840 (e.g., a washing machine) and the server 810 can be disconnected, and in operation 2004, the controlled device 840 can detect that the controlled device 840 is in an offline state (e.g., a server offline state in which a connection between the controlled device 840 and the server 810 is disconnected). In operation 2006, the controlled device 840 can broadcast an advertisement packet (e.g., an offline ADV) including information (e.g., "online bit: 0x00") indicating the offline state. In an embodiment, the controlled device 840 can periodically broadcast the offline ADV while the device is in the offline state. In operation 2008, the electronic device 830 can perform a periodic BLE scan to detect that the controlled device 840 is offline. The electronic device 830 can receive the offline ADV through the periodic BLE scan, and can identify that the controlled device 840 is in the offline state.
[0212] In operation 2010, the electronic device 830 can request device information about the controlled device 840 from the server 810 using BLE information about the controlled device 840 obtained through the offline ADV, to identify that the controlled device 840 is a device owned by the user. The device information is information stored in the server 810 when the controlled device 840 is commissioned, and can include, for example, information (e.g., a device ID, a BLE MAC address, and / or a serial number) for identifying the controlled device 840 and / or information indicating a device protocol (e.g., OCF) of the controlled device 830. In operation 2012, the electronic device 830 can receive a response including device information about the controlled device 840 from the server 810, and can identify that the controlled device 840 is owned by the user based on the device information (e.g., the serial number).
[0213] In operation 2014, the electronic device 830 can establish a D2D connection (e.g., an OCF connection) with the controlled device 840. In operation 2016, the electronic device 830 can identify the ownership of the controlled device 840 with a serial number obtained from the controlled device 840, and can generate a secure session with the controlled device 840.
[0214] In operation 2018, the electronic device 830 can transmit an error code request to the controlled device 840 through the D2D connection. In operation 2020, the controlled device 840 can transmit an error code (e.g., {last_error_code: "NE11-1"}) indicating the reason for being offline to the electronic device 830 through the D2D connection. The electronic device 830 can determine that the recovery method for the controlled device 840 is user notification based on the error code. In an embodiment, the recovery method can be determined based on pre-stored recovery policy information (e.g., Table 2).
[0215] In operation 2022, the electronic device 830 can request a Wi-Fi scan list including a scannable Wi-Fi device (e.g., an AP) from the controlled device 840, and can obtain a Wi-Fi scan list including an AP scanned by the controlled device 840. In an embodiment, the Wi-Fi scan list can include AP information (e.g., SSID, password, authentication type, and / or encryption type) about each AP scanned by the controlled device 840. When the AP (e.g., the AP 340) to which the electronic device 830 is connected is included in the Wi-Fi scan list received from the controlled device 840, operation 2024 can be performed. On the other hand, when the AP (e.g., the AP 340) to which the electronic device 830 is connected is not included in the Wi-Fi scan list received from the controlled device 840, operation 2032 can be performed.
[0216] Operation 2024 can include operations 2026, 2028, and 2030. In operation 2026, the electronic device 830 can transmit AP information (e.g., SSID and / or password) about the AP 340 to the controlled device 840. In operation 2028, the controlled device 840 can connect to the AP 340 using the AP information, and can transmit a login request to the server 810 through the AP 340. In operation 2030, the server 810 can respond to the controlled device 840 with a login success.
[0217] Operation 2032 can include operations 2034, 2036, and 2038. In operation 2034, the electronic device 830 can transmit a user notification (e.g., an offline notification) related to the controlled device 840 to the server 810. In operation 2036, the server 810 can transmit the offline notification to the user device 820 (e.g., the electronic device 201). In operation 2038, the user device 820 can display a guide phrase (e.g., "The washing machine is disconnected due to AP failure found") describing the offline state based on the offline notification.
[0218] Although not shown, in an embodiment, the electronic device 830 can transmit diagnosis data (e.g., diagnosis data in Table 1) related to diagnosis and recovery results of the controlled device 840 to the server 810.
[0219] In an embodiment of the disclosure, when the electronic device 830 is offline, the electronic device 830 can not normally diagnose whether the nearby controlled devices (e.g., the controlled devices 320a, 320b, 320c, and 320d) are offline. When the electronic device 830 is offline, the electronic device 830 itself can diagnose the cause of the connection disconnection and recover the connection.
[0220] Figure 21 is a view illustrating an offline cause diagnosis and recovery operation according to an embodiment of the disclosure.
[0221] Referring to Figure 21 , the electronic device 830 can include a diagnosis module 2110 (e.g., the diagnosis module 832) for performing diagnosis and recovery according to an offline diagnosis service of a controlled device (e.g., the controlled devices 320a, 320b, 320c, and 320d), and a management module 2120 for managing connection and operation of the controlled device. The diagnosis module 2110 and the management module 2120 can be driven as separate processes to ensure independence of operations.
[0222] When the management module 2120 is offline, the management module 2120 can transmit a signal 2102 including an offline state and an error code (e.g., "DS01-1") to the diagnosis module 2110. In consideration of the process of the management module 2120 being forcibly terminated, the diagnosis module 2110 can periodically transmit a polling signal for identifying whether the management module 2120 is offline.
[0223] The diagnosis module 2110 can determine a recovery method for the error code according to recovery policy information indicating a recovery method for each error code, and can transmit a recovery command 2104 indicating the recovery method (e.g., restart) to the management module 2120. The management module 2120 can restart based on the recovery command 2104, and can connect to the server 810 through the AP 340 after the restart.
[0224] The electronic device 830 according to an embodiment of the disclosure can include a transceiver 420 configured to receive and transmit signals, one or more processors 410 communicatively coupled with the transceiver, and a memory 430 storing instructions. The instructions, when executed by the one or more processors, cause the electronic device to obtain first information indicating that a controlled device 840 is in an offline state in which the controlled device is disconnected from a server 810. The instructions, when executed by the one or more processors, cause the electronic device to establish a device-to-device (D2D) connection with the controlled device through the transceiver. The instructions, when executed by the one or more processors, cause the electronic device to receive an error code related to the offline state of the controlled device from the controlled device through the D2D connection. The instructions, when executed by the one or more processors, cause the electronic device to determine a recovery method corresponding to the error code based on designated recovery policy information. The instructions, when executed by the one or more processors, cause the electronic device to transmit, to the controlled device through the transceiver, a recovery command indicating to recover a connection between the controlled device and the server based on the determined recovery method.
[0225] In an embodiment, the designated recovery policy information can include information on one or more recovery methods corresponding to a plurality of error codes related to the controlled device.
[0226] In an embodiment, the instructions cause the electronic device to receive, from the server, first information including a device event indicating that the controlled device is in the offline state.
[0227] In an embodiment, the instructions cause the electronic device to periodically transmit a domain name service (DNS) service discovery, and receive, from the controlled device, a service discovery response including the first information indicating the offline state in response to the DNS service discovery.
[0228] In an embodiment, the instructions cause the electronic device to receive, through Bluetooth low energy scanning, an advertising packet broadcast from the controlled device, and identify that the advertising packet includes the first information indicating the offline state.
[0229] In an embodiment, the instructions cause the electronic device to request, from the server, device information related to the controlled device based on the identification that the advertising packet includes the first information, receive the device information from the server for the D2D connection, and identify ownership of the controlled device based on a serial number included in the device information.
[0230] In an embodiment, the instruction causes the electronic device to periodically transmit a domain name service (DNS) service discovery, and to receive, from the controlled device, a service discovery response including first information indicating the offline state and an error code in response to the DNS service discovery.
[0231] In an embodiment, the D2D connection can include at least one of a DNS search based secure hypertext transfer protocol connection, a BLE connection, or a Wi-Fi connection.
[0232] In an embodiment, the instruction causes the electronic device to determine whether the determined recovery method indicates that automatic recovery from the offline state is possible, and to transmit, to the user device 820 through the server, a user notification requesting display of a guide phrase related to the offline state when the automatic recovery is not possible.
[0233] In an embodiment, the instruction causes the electronic device to transmit, to the server, diagnostic data indicating a cause of the offline state or a recovery result.
[0234] A method performed by the electronic device 830 according to an embodiment of the disclosure can include obtaining (915), by the electronic device, first information indicating that a controlled device 840 is in an offline state in which the controlled device is disconnected from a server 810. The method can include establishing (920), by the electronic device, a D2D connection with the controlled device. The method can include receiving (925), by the electronic device from the controlled device through the D2D connection, an error code related to the offline state of the controlled device. The method can include determining (930), by the electronic device, a recovery method corresponding to the error code based on designated recovery policy information. The method can include transmitting (935, 945), by the electronic device to the controlled device, a recovery command indicating recovery of a connection between the controlled device and the server based on the determined recovery method.
[0235] In an embodiment, the designated recovery policy information can include information on one or more recovery methods corresponding to a plurality of error codes related to the controlled device.
[0236] In an embodiment, obtaining the first information can include receiving, from the server, first information including a device event indicating that the controlled device is in the offline state.
[0237] In an embodiment, obtaining the first information can include periodically transmitting a domain name service (DNS) service discovery, and receiving, from the controlled device, a service discovery response including first information indicating the offline state in response to the DNS service discovery.
[0238] In an embodiment, obtaining the first information can include receiving, through Bluetooth low energy scanning, an advertisement packet broadcast from the controlled device, and identifying that the advertisement packet includes the first information indicating the offline state.
[0239] In an embodiment, the method can include requesting device information related to the controlled device from the server based on identifying that the announcement packet includes the first information, receiving the device information from the server for the D2D connection, and identifying the ownership of the controlled device based on a serial number included in the device information.
[0240] In an embodiment, obtaining the first information and receiving the error code can include periodically transmitting a domain name service (DNS) service discovery, and receiving a service discovery response including the first information indicating the offline state and the error code from the controlled device in response to the DNS service discovery.
[0241] In an embodiment, the D2D connection can include at least one of a secure hypertext transfer protocol connection based on a DNS search, a BLE connection, or a Wi-Fi connection.
[0242] In an embodiment, the method can include determining whether the determined recovery method indicates that automatic recovery from the offline state is possible, and when the automatic recovery is not possible, transmitting a user notification requesting display of a guidance phrase related to the offline state to the user device (820) through the server.
[0243] In an embodiment, the method can include transmitting diagnostic data indicating a reason for the offline state or a recovery result to the server.
[0244] One or more non-transitory computer-readable storage media store one or more computer programs comprising computer-executable instructions that, when executed by one or more processors 410 of an electronic device 830, cause the electronic device to perform operations. The operations include obtaining, by the electronic device, first information indicating that a controlled device 840 is in an offline state in which the controlled device is disconnected from a server 810, establishing, by the electronic device, a device-to-device (D2D) connection with the controlled device, receiving, by the electronic device, an error code related to the offline state of the controlled device from the controlled device through the D2D connection, determining, by the electronic device, a recovery method corresponding to the error code based on designated recovery policy information, and transmitting, by the electronic device, a recovery command indicating recovery of a connection between the controlled device and the server based on the determined recovery method to the controlled device.
[0245] In an embodiment, the designated recovery policy information can include information about one or more recovery methods corresponding to a plurality of error codes related to the controlled device.
[0246] An electronic device according to various embodiments can be one of various types of electronic devices. The electronic devices can include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance. According to an embodiment of the disclosure, the electronic devices are not limited to those described above.
[0247] It should be understood that various embodiments of the present disclosure and the terms used therein are not intended to limit technically described features to particular embodiments and include various changes, equivalents or replacements for corresponding embodiments. For description of the drawings, like reference numerals can be used to refer to like or similar elements. It is to be understood that the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. As used herein, each of the phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B, or C," "at least one of A, B, and C," and "at least one of A, B, or C" can include all possible combinations of the items listed in the corresponding one of the phrases. As used herein, the terms such as "1st" and "2nd" or "first" and "second" can be used to simply distinguish a corresponding component from another, and do not limit the components in other aspects (e.g., importance or order). It is to be understood that if an element (for example, a first element) is referred to as "being connected to" or "being communicably connected to" another element (for example, a second element), it means that the element can be directly connected to the other element or connected to the other element via a third element.
[0248] As used herein, the term "module" can include a unit implemented in hardware, software, or firmware, and can interchangeably be used with other terms such as "logic," "logic block," "part," or "circuitry." The module can be a single integral component, or a minimum unit or part for performing one or more functions. For example, according to an embodiment, the module can be implemented in a form of an application-specific integrated circuit (ASIC).
[0249] Various embodiments as set forth herein can be implemented as software (e.g., the program 240) including one or more instructions that are stored in a storage medium (e.g., internal memory 236 or external memory 238) that are readable by a machine (e.g., electronic device 201). For example, a processor (e.g., processor 220) of the machine (e.g., electronic device 201) can invoke at least one of the one or more instructions stored in the storage medium, and execute it, with or without using one or more other components under the control of the processor. This allows the machine to be operated as a special purpose machine to perform at least one function. The one or more instructions can include a code generated by a compiler or a code that forms at least a part of a language as provided in a high-level programming language. The machine-readable storage medium can be provided in the form of a non-transitory storage medium. The term "non-transitory" simply means that the storage medium is tangible, but does not include a signal (e.g., an electromagnetic wave). The term "non-transitory" does not distinguish between where data is semi-permanently stored in the storage medium and where the data is temporarily stored in the storage medium.
[0250] According to an embodiment, a method according to various embodiments of the disclosure can be included and provided in a computer program product. The computer program product can be traded as a commodity between a seller and a purchaser. The computer program product can be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)), or be distributed online via an application store (e.g., PlayStore®). If distributed online, at least part of the computer program product can be temporarily stored in a storage medium such as a memory of a manufacturer's server or a server of an online store, and then be installed in a user device (e.g., a smart phone). In addition, each component shown in the various embodiments of the disclosure can comprise a single component or a combination of two or more components. TM According to an embodiment, a method according to various embodiments of the disclosure can be included and provided in a computer program product. The computer program product can be traded as a commodity between a seller and a purchaser. The computer program product can be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)), or be distributed online via an application store (e.g., PlayStore®). If distributed online, at least part of the computer program product can be temporarily stored in a storage medium such as a memory of a manufacturer's server or a server of an online store, and then be installed in a user device (e.g., a smart phone). In addition, each component shown in the various embodiments of the disclosure can comprise a single component or a combination of two or more components.
[0251] According to various embodiments, each component (e.g., a module or a program) of the above-described components can include a single entity or multiple entities. Some of the multiple entities can be configured to be collocated or can be distributed. According to various embodiments, one or more components of the above-described components can be omitted, or one or more other components can be added. The addition or omission can be made to one or more components according to various embodiments. Each component of the above-described components can perform one or more functions described as being performed by another component of the above-described components. Operations performed by the module, the program, or another component can be carried out sequentially, in parallel, repeatedly, or heuristically, or one or more operations of the operations can be executed in a different order or omitted, or one or more other operations can be added.
[0252] While the disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details can be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims and their equivalents.
Claims
1. An electronic device (830) comprising: a transceiver (420) configured to receive and transmit signals; one or more processors (410) in communication with the transceiver; and a memory storing instructions, wherein the instructions, when executed by the one or more processors, cause the electronic device to: obtain first information indicating that a controlled device (840) is in an offline state in which the controlled device is disconnected from a server (810), establish, with the controlled device, a device-to-device, D2D, connection through the transceiver, receive, from the controlled device, an error code related to the offline state of the controlled device through the D2D connection, determine a recovery method corresponding to the error code based on designated recovery policy information, and transmit, to the controlled device through the transceiver, a recovery command indicating to recover a connection between the controlled device and the server based on the determined recovery method. 2.The electronic device of claim 1, wherein, the designated recovery policy information includes: information on one or more recovery methods corresponding to a plurality of error codes related to the controlled device. 3.The electronic device of claim 1 or 2, wherein, the instructions cause the electronic device to: receive, from the server, first information indicating that the controlled device is in the offline state. 4.The electronic device of claim 1 or 2, wherein, the instructions cause the electronic device to: periodically transmit a domain name service, DNS, service discovery, and receive, from the controlled device, a service discovery response including the first information indicating the offline state in response to the DNS service discovery. 5.The electronic device of claim 1 or 2, wherein, the instructions cause the electronic device to: receive, through a Bluetooth low energy, BLE, scan, an advertisement packet broadcast from the controlled device, and identify that the advertisement packet includes the first information indicating the offline state. 6.The electronic device of claim 5, wherein, the instructions cause the electronic device to: request, from the server, device information related to the controlled device based on identifying that the advertisement packet includes the first information, receive, from the server, the device information for the D2D connection, and identify ownership of the controlled device based on a serial number included in the device information. 7.The electronic device of claim 1 or 2, wherein, the instructions cause the electronic device to: periodically transmit a domain name service, DNS, service discovery, and receive, from the controlled device, a service discovery response including the first information indicating the offline state and an error code in response to the DNS service discovery. 8.The electronic device of any one of claims 1 to 7, wherein, the D2D connection includes: at least one of a secure hypertext transfer protocol, HTTPS, connection based on a domain name service, DNS, search, a Bluetooth low energy, BLE, connection, or a Wi-Fi connection. 9.The electronic device of any one of claims 1 to 8, wherein, the instructions cause the electronic device to: determine whether the determined recovery method indicates that automatic recovery from the offline state is possible, and when the automatic recovery is not possible, transmit, to a user device (820) through the server, a user notification requesting display of a guidance phrase related to the offline state. 10.The electronic device of any one of claims 1 to 9, wherein, the instructions cause the electronic device to: transmit, to the server, diagnostic data indicating a cause of the offline state or a recovery result. 11.A method performed by an electronic device (830), the method comprising: obtaining (915), by the electronic device, first information indicating that a controlled device (840) is in an offline state in which the controlled device is disconnected from a server (810); establishing (920), by the electronic device, a device-to-device, D2D, connection with the controlled device; receiving (925), by the electronic device, from the controlled device, an error code related to the offline state of the controlled device through the D2D connection; determining (930), by the electronic device, a recovery method corresponding to the error code based on the designated recovery policy information; and sending (935, 945), by the electronic device, a recovery command instructing to recover the connection between the controlled device and the server based on the determined recovery method, to the controlled device.
12. The method of claim 11, wherein, The designated recovery policy information includes: information on one or more recovery methods corresponding to a plurality of error codes related to the controlled device.
13. The method of claim 11 or 12, wherein, Obtaining the first information includes: receiving, from the server, the first information including a device event indicating that the controlled device is in an offline state.
14. The method of claim 11 or 12, wherein, Obtaining the first information includes: periodically transmitting a domain name service (DNS) service discovery; and receiving, from the controlled device, a service discovery response including the first information indicating the offline state in response to the DNS service discovery.
15. The method of claim 11 or 12, wherein, Obtaining the first information includes: receiving, through a Bluetooth low energy (BLE) scan, an advertisement packet broadcast from the controlled device; identifying that the advertisement packet includes the first information indicating the offline state; requesting, from the server, device information related to the controlled device based on identifying that the advertisement packet includes the first information; receiving the device information from the server for a D2D connection; and identifying the ownership of the controlled device based on a serial number included in the device information.