Patent Description:
The Internet of Things (IoT) refers to technology for accessing the Internet by equipping various things with sensors and communication functionality.

IoT is an artificial intelligence technology capable of exchanging data between things connected via the Internet, self-analyzing the data, providing learned information to the user or allowing the user to remotely control them. Here, the things may be various embedded systems, e.g., home appliances, mobile devices, or wearable devices. IoT-connected things may connect to the Internet using their own unique internet protocol (IP) addresses for distinguishing them from others and may have sensors for obtaining data from an external environment.

IoT is also highly useful for the purpose of controlling various electronic devices in the home. The user may control electronic devices, such as a TV, a washing machine, or an air conditioner, to perform their respective specialized services in the home IoT environment and may easily share information thereabout.

A publication of <CIT> concerns setting up a scanning procedure for multiple communication protocols.

In a discovery procedure of an Internet of Things (IoT) system, the electronic device may have difficulty in scanning an external electronic device desired by the user due to duplication of scan resources or ambient environment.

Aspect of the disclosure, an electronic device may determine a scan target considering the influence by the ambient environment or duplication of scan resources and scan an external electronic device desired by the user.

Aspect of the disclosure, an electronic device may identify a communication protocol supported by an external electronic device registered in the user account and scan an external electronic device desired by the user.

In accordance with an aspect of the disclosure, an electronic device is provided as defined in the appended claims.

In accordance with another aspect of the disclosure, a method for operating an electronic device scanning an external electronic device is provided as defined in the appended claims.

According to embodiment of the disclosure, in an Internet of things (IoT) system, an electronic device may prevent unnecessary waste of scan resources during a discovery operation and efficiently set a scan target, thereby enhancing the scan performance of the electronic device.

According to embodiments of the disclosure, in an IoT system, an electronic device may efficiently set a scan target considering the characteristics of an external electronic device and scan an external electronic device desired by the user.

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 conjunction with the annexed drawings, disclose embodiments of the disclosure.

Referring to <FIG>, an electronic device <NUM> in a network environment <NUM> may communicate with at least one of an electronic device <NUM> via a first network <NUM> (e.g., a short-range wireless communication network), or an electronic device <NUM> or a server <NUM> via a second network <NUM> (e.g., a long-range wireless communication network). According to an embodiment, the electronic device <NUM> may include a processor <NUM>, a memory <NUM>, an input module <NUM>, a sound output module <NUM>, a display module <NUM>, an audio module <NUM>, a sensor module <NUM>, an interface <NUM>, a connecting terminal <NUM>, a haptic module <NUM>, a camera module <NUM>, a power management module <NUM>, a battery <NUM>, a communication module <NUM>, a subscriber identification module (SIM) <NUM>, or an antenna module <NUM>. In some embodiments, at least one (e.g., the connecting terminal <NUM>) of the components may be omitted from the electronic device <NUM>, or one or more other components may be added in the electronic device <NUM>. According to an embodiment, some (e.g., the sensor module <NUM>, the camera module <NUM>, or the antenna module <NUM>) of the components may be integrated into a single component (e.g., the display module <NUM>).

According to one embodiment, as at least part of the data processing or computation, the processor <NUM> may store a command or data received from another component (e.g., the sensor module <NUM> or the communication module <NUM>) in a volatile memory <NUM>, process the command or the data stored in the volatile memory <NUM>, and store resulting data in a non-volatile memory <NUM>. For example, when the electronic device <NUM> includes the main processor <NUM> and the auxiliary processor <NUM>, the auxiliary processor <NUM> may be configured to use lower power than the main processor <NUM> or to be specified for a designated function.

According to an embodiment, the display module <NUM> may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

According to an embodiment, the connecting terminal <NUM> may include, for example, a HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

A corresponding one of these communication modules may communicate with the external electronic device <NUM> via a first network <NUM> (e.g., a short-range communication network, such as Bluetooth™, wireless-fidelity (Wi-Fi) direct, or infrared data association (IrDA)) or a second network <NUM> (e.g., a long-range communication network, such as a legacy cellular network, a <NUM> network, a next-generation communication network, the Internet, or a computer network (e.g., local area network (LAN) or wide area network (WAN)). The wireless communication module <NUM> may identify or authenticate the electronic device <NUM> in a communication network, such as the first network <NUM> or the second network <NUM>, using subscriber information (e.g., international mobile subscriber identity (IMSI)) stored in the subscriber identification module <NUM>.

The wireless communication module <NUM> may support a high-frequency band (e.g., the millimeter wave (mmWave) band) to achieve, e.g., a high data transmission rate.

The antenna module <NUM> may transmit or receive a signal or power to or from the outside (e.g., the external electronic device). According to an embodiment, the antenna module <NUM> may include one antenna including a radiator formed of a conductor or conductive pattern formed on a substrate (e.g., a printed circuit board (PCB)). According to an embodiment, the antenna module <NUM> may include a plurality of antennas (e.g., an antenna array). In this case, at least one antenna appropriate for a communication scheme used in a communication network, such as the first network <NUM> or the second network <NUM>, may be selected from the plurality of antennas by, e.g., the communication module <NUM>. According to an embodiment, other parts (e.g., radio frequency integrated circuit (RFIC)) than the radiator may be further formed as part of the antenna module <NUM>.

The external electronic devices <NUM> or <NUM> each may be a device of the same or a different type from the electronic device <NUM>. In another embodiment, the external electronic device <NUM> may include an Internet-of-things (IoT) device. The electronic device <NUM> may be applied to intelligent services (e.g., smart home, smart city, smart car, or health-care) based on <NUM> communication technology or IoT-related technology.

The electronic device according to various embodiments of the disclosure may be one of various types of electronic devices.

Various embodiments as set forth herein may be implemented as software (e.g., the program <NUM>) including one or more instructions that are stored in a storage medium (e.g., an internal memory <NUM> or an external memory <NUM>) that is readable by a machine (e.g., the electronic device <NUM>).

Some of the plurality of entities may be separately disposed in different components.

<FIG> is a block diagram <NUM> illustrating a program according to an embodiment of the disclosure.

Referring to <FIG>, the program <NUM> may include an operating system (OS) <NUM> to control one or more resources of the electronic device <NUM>, middleware <NUM>, or an application <NUM> executable in the OS <NUM>. The OS <NUM> may include, for example, Android™, iOS™, Windows™, Symbian™, Tizen™, or Bada™. At least part of the program <NUM>, for example, may be pre-loaded on the electronic device <NUM> during manufacture, or may be downloaded from or updated by an external electronic device (e.g., the electronic device <NUM> or <NUM>, or the server <NUM>) during use by a user.

The OS <NUM> may control management (e.g., allocating or deallocation) of one or more system resources (e.g., process, memory, or power source) of the electronic device <NUM>. The OS <NUM>, additionally or alternatively, may include one or more driver programs to drive other hardware devices of the electronic device <NUM>, for example, the input module <NUM>, the sound output module <NUM>, the display module <NUM>, the audio module <NUM>, the sensor module <NUM>, the interface <NUM>, the haptic module <NUM>, the camera module <NUM>, the power management module <NUM>, the battery <NUM>, the communication module <NUM>, the subscriber identification module <NUM>, or the antenna module <NUM>.

The middleware <NUM> may provide various functions to the application <NUM> such that a function or information provided from one or more resources of the electronic device <NUM> may be used by the application <NUM>. The middleware <NUM> may include, for example, an application manager <NUM>, a window manager <NUM>, a multimedia manager <NUM>, a resource manager <NUM>, a power manager <NUM>, a database manager <NUM>, a package manager <NUM>, a connectivity manager <NUM>, a notification manager <NUM>, a location manager <NUM>, a graphic manager <NUM>, a security manager <NUM>, a telephony manager <NUM>, or a voice recognition manager <NUM>.

The application manager <NUM>, for example, may manage the life cycle of the application <NUM>. The window manager <NUM>, for example, may manage one or more graphical user interface (GUI) resources that are used on a screen. The multimedia manager <NUM>, for example, may identify one or more formats to be used to play media files, and may encode or decode a corresponding one of the media files using a codec appropriate for a corresponding format selected from the one or more formats. The resource manager <NUM>, for example, may manage the source code of the application <NUM> or a memory space of the memory <NUM>. The power manager <NUM>, for example, may manage the capacity, temperature, or power of the battery <NUM>, and determine or provide related information to be used for the operation of the electronic device <NUM> based at least in part on corresponding information of the capacity, temperature, or power of the battery <NUM>. According to an embodiment, the power manager <NUM> may interwork with a basic input/output system (BIOS) (not shown) of the electronic device <NUM>.

The database manager <NUM>, for example, may generate, search, or change a database to be used by the application <NUM>. The package manager <NUM>, for example, may manage installation or update of an application that is distributed in the form of a package file. The connectivity manager <NUM>, for example, may manage a wireless connection or a direct connection between the electronic device <NUM> and the external electronic device. The notification manager <NUM>, for example, may provide a function to notify a user of an occurrence of a specified event (e.g., an incoming call, message, or alert). The location manager <NUM>, for example, may manage locational information on the electronic device <NUM>. The graphic manager <NUM>, for example, may manage one or more graphic effects to be offered to a user or a user interface related to the one or more graphic effects.

The security manager <NUM>, for example, may provide system security or user authentication. The telephony manager <NUM>, for example, may manage a voice call function or a video call function provided by the electronic device <NUM>. The voice recognition manager <NUM>, for example, may transmit a user's voice data to the server <NUM>, and receive, from the server <NUM>, a command corresponding to a function to be executed on the electronic device <NUM> based at least in part on the voice data, or text data converted based at least in part on the voice data. According to an embodiment, the middleware <NUM> may dynamically delete some existing components or add new components. According to an embodiment, at least part of the middleware <NUM> may be included as part of the OS <NUM> or may be implemented as another software separate from the OS <NUM>.

The application <NUM> may include, for example, a home <NUM>, a dialer <NUM>, a short message service (SMS)/multimedia messaging service (MMS) <NUM>, an instant message (IM) <NUM>, a browser <NUM>, a camera <NUM>, an alarm <NUM>, a contact <NUM>, a voice recognition <NUM>, an email <NUM>, a calendar <NUM>, a media player <NUM>, an album <NUM>, a watch <NUM>, health <NUM> (e.g., for measuring the degree of workout or biometric information, such as blood sugar), or environmental information <NUM> (e.g., for measuring air pressure, humidity, or temperature information) application. According to an embodiment, the application <NUM> may further include an information exchanging application (not shown) that is capable of supporting information exchange between the electronic device <NUM> and the external electronic device. The information exchange application, for example, may include a notification relay application adapted to transfer designated information (e.g., a call, message, or alert) to the external electronic device or a device management application adapted to manage the external electronic device. The notification relay application may transfer notification information corresponding to an occurrence of a specified event (e.g., receipt of an email) at another application (e.g., the email application <NUM>) of the electronic device <NUM> to the external electronic device. Additionally or alternatively, the notification relay application may receive notification information from the external electronic device and provide the notification information to a user of the electronic device <NUM>.

The device management application may control the power (e.g., turn-on or turn-off) or the function (e.g., brightness, resolution, or focus) of the external electronic device or some component thereof (e.g., a display module or a camera module of the external electronic device). The device management application, additionally or alternatively, may support installation, delete, or update of an application running on the external electronic device.

<FIG> is a view illustrating an IoT environment according to an embodiment of the disclosure.

Referring to <FIG>, an IoT environment <NUM> may include an electronic device <NUM>, a cloud <NUM>, and cloud-connected devices <NUM>. According to various embodiments, the IoT environment <NUM> may mean a type of platform that connects cloud-connected devices <NUM>, e.g., home appliances, via various types of communication networks and relays and controls them by a local server. According to various embodiments, the IoT environment <NUM> may provide device search and control while controlling various communication protocols, such as Bluetooth (BT), Bluetooth low energy (BLE), Wi-Fi, peer-to-peer (P2P) network, universal plug and play (UPnP), Cloud, or ultra-wideband (UWB). According to various embodiments, the IoT environment <NUM> may be implemented as an open platform to be able to connect not only a specific brand of sensor or product but also other brands of products. According to various embodiments, the IoT environment <NUM> may be implemented as a closed platform to be able to connect a specific brand of sensor and product.

According to various embodiments, an application <NUM> (e.g., the application <NUM> of <FIG>) executable by an operating system (e.g., the operating system <NUM> of <FIG>) may be installed on the electronic device <NUM> (e.g., the electronic device <NUM> of <FIG>). According to various embodiments, the application <NUM> may be preloaded on the electronic device <NUM> when manufactured or be downloaded from an external electronic device(e.g., the electronic device <NUM> or <NUM> of <FIG> or the server <NUM> of <FIG>) or updated. According to various embodiments, the application <NUM> may identify the state of the cloud-connected devices <NUM> registered with the server in the cloud <NUM> and control the cloud-connected devices <NUM>. According to various embodiments, the application <NUM> may control the cloud-connected devices <NUM> registered with the server in the cloud <NUM> to be automatically operated at a predetermined time or receive notifications from the cloud-connected devices <NUM>. According to various embodiments, the application <NUM> may control and manage smart home appliances or Internet of Things (IoT) through the electronic device <NUM> and wiredly or wirelessly connect with nearby devices. For example, the cloud-connected devices <NUM> may include at least one of TVs, speakers, refrigerators, kimchi refrigerators, wine cellars, washers, driers, air dressers, ovens, dish washers, cooktops, robot vacuums, air conditioners, and air purifiers.

Referring to <FIG>, an IoT environment <NUM> may include an electronic device <NUM>, a first cloud <NUM>, cloud-connected devices <NUM> (e.g., the cloud-connected devices <NUM> of <FIG>), a hub <NUM>, a second cloud <NUM>, and a third cloud <NUM>. According to various embodiments, the IoT environment <NUM> may provide substantially the same or similar environment to the IoT environment <NUM> described in connection with <FIG>. According to various embodiments, an application <NUM> (e.g., the application <NUM> of <FIG>) executable by an operating system (e.g., the operating system <NUM> of <FIG>) may be installed on the electronic device <NUM> (e.g., the electronic device <NUM> of <FIG>). According to various embodiments, the application <NUM> may identify the state of the cloud-connected devices <NUM> registered with the server in the first cloud <NUM> and control the cloud-connected devices <NUM>. According to various embodiments, the application <NUM> may control the cloud-connected devices <NUM> registered with the server in the first cloud <NUM> to be automatically operated at a predetermined time or receive notifications from the cloud-connected devices <NUM>. According to various embodiments, the application <NUM> may control and manage smart home appliances or Internet of Things (IoT) through the electronic device <NUM> and wiredly or wirelessly connect with nearby devices.

According to various embodiments, the first cloud <NUM> may include a server that manages or controls the electronic device <NUM> and the cloud-connected devices <NUM>. According to various embodiments, the server in the first cloud <NUM> may store information transmitted/received between the electronic device <NUM> and the cloud-connected devices <NUM>, relay communication between the electronic device <NUM> and the cloud-connected devices <NUM>, and support communication of the electronic device <NUM> and the cloud-connected devices <NUM>. According to various embodiments, the first cloud <NUM> may implement an application programming interface (API) which is a language or message format used for communication between operating system and application program. According to various embodiments, the first cloud <NUM> may be connected with the cloud-connected devices <NUM> via the hub <NUM>. According to various embodiments, the hub <NUM> may mean a device (e.g., gateway) that relays communication between the first cloud <NUM> and the cloud-connected devices <NUM>. According to various embodiments, the hub <NUM> may be a device implemented in the first cloud <NUM> or implemented as a separate device (e.g., external server). According to various embodiments, the first cloud <NUM> may be connected with the cloud-connected devices <NUM> via a direct connection <NUM> without using the hub <NUM>.

According to various embodiments, the first cloud <NUM> may be connected with a cloud connector <NUM> using an API <NUM> and communicate with the second cloud <NUM>. According to various embodiments, the operator who provides service on the first cloud <NUM> may differ from the operator who provides service on the second cloud <NUM>. According to various embodiments, the cloud connector <NUM> may relay communication between different clouds (e.g., the first cloud <NUM> and the second cloud <NUM>). According to various embodiments, the cloud connector <NUM> may be a hardware device or software module implemented in the first cloud <NUM>. According to various embodiments, the cloud connector <NUM> may be a hardware device or software module implemented outside the first cloud <NUM>. According to various embodiments, the cloud connector <NUM> may be a separate server implemented outside the first cloud <NUM>.

According to various embodiments, the first cloud <NUM> may be connected with an automation function <NUM> using the API <NUM>. The automation function <NUM> may control each of the cloud-connected devices <NUM> connected to the first cloud <NUM> to perform its pre-defined operation without a user command (or input) if a condition set in the application <NUM> by the user is met. According to various embodiments, the automation function <NUM> may be a hardware device or software module implemented in the first cloud <NUM>. According to various embodiments, the automation function <NUM> may be a hardware device or software module implemented outside the first cloud <NUM>. According to various embodiments, the automation function <NUM> may be a separate server implemented outside the first cloud <NUM>. According to various embodiments, in response to a user input, the application <NUM> may set various conditions, e.g., time (e.g., specific time, specific time period, always, or day), device state, member location (e.g., check on whether it is in the initially set place), place state, or weather. According to various embodiments, if the condition set by the application <NUM> is met, the automation function <NUM> may control each of the cloud-connected devices <NUM> connected to the first cloud <NUM> to perform functions, e.g., device control, smartphone notification, play voice messages through speaker, place state change, or mode execution.

According to various embodiments, the first cloud <NUM> may be connected with a cloud connector <NUM> using the API <NUM> and communicate with the third cloud <NUM>. According to various embodiments, the operator who provides service on the first cloud <NUM> may differ from the operator who provides service on the third cloud <NUM>. According to various embodiments, the cloud connector <NUM> may relay communication between different clouds (e.g., the first cloud <NUM> and the third cloud <NUM>). According to various embodiments, the cloud connector <NUM> may be a hardware device or software module implemented in the first cloud <NUM>. According to various embodiments, the cloud connector <NUM> may be a hardware device or software module implemented outside the first cloud <NUM>. According to various embodiments, the cloud connector <NUM> may be a separate server implemented outside the first cloud <NUM>.

<FIG> is a view illustrating of a system architecture according to an embodiment of the disclosure.

Referring to <FIG>, a system architecture <NUM> may include a discovery module (discovery) <NUM>, a data processing module (data processing) <NUM>, a repository module (repository) <NUM>, a publisher module (publisher) <NUM>, and a trigger module (trigger) <NUM>. According to various embodiments, an electronic device (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, and the electronic device <NUM> of <FIG>) may execute, in a set order, at least one of the functions of the discovery module <NUM>, the data processing module <NUM>, the repository module <NUM>, the publisher module <NUM>, and the trigger module <NUM>, to connect IoT devices in an IoT environment.

According to various embodiments, the electronic device may scan (or discover) an external electronic device supporting various communication protocols (e.g., BL <NUM>, BLE <NUM>, Wi-Fi <NUM>, P2P <NUM>, UPnP <NUM>, CLOUD <NUM>, and UWB <NUM>) through the discovery module <NUM>. According to various embodiments, the electronic device may transfer the scanning result of the discovery module <NUM> to the data processing module <NUM> and may store data about the scanning result in a repository module <NUM>. According to various embodiments, the electronic device may transfer data about the scanning result to the publisher module <NUM> and the trigger module <NUM>.

According to various embodiments, since the operation of the electronic device to scan the external electronic device consumes a large amount of battery power, the electronic device may stop scanning if a desired device is discovered. According to various embodiments, the electronic device may set a time limit for the operation of scanning the external electronic device. According to various embodiments, when an external electronic device that was connectable to the electronic device moves out of connection coverage, if the electronic device continues to scan the external electronic device, battery consumption and resource waste may occur. According to various embodiments, the electronic device may perform a scan on another external electronic device considering a scan constraint situation of Wi-Fi. For example, in the case of Wi-Fi, the foreground app may scan <NUM> times at <NUM>-minute intervals and may perform multiple scans in a short time. The background app may perform one scan at a <NUM>-minute interval in total. According to various embodiments , the electronic device may scan another external electronic device considering the scan constraint situation of the communication protocol.

According to various embodiments, since Bluetooth and Wi-Fi use the same frequency band, a collision between Bluetooth and Wi-Fi protocols, or an error or delay may occur when the electronic device scans. According to various embodiments, when the electronic devices simultaneously use the scan resource (or resource) at a specific point in time, some of the electronic devices may not be able to scan a nearby device. According to various embodiments, the electronic device may not be able to scan a device corresponding to a scan type having a short period due to surrounding interference and environment. According to various embodiments, if only BLE-supporting devices are registered in the application (e.g., the application <NUM> of <FIG>, the application <NUM> of <FIG>, or the application <NUM> of <FIG>), the electronic device may consume most of the scan resources in scanning other communication protocols (e.g., Wi-Fi, UPnP, P2P, or BT), thus failing to scan a BLE-supporting device. According to various embodiments, the electronic device may provide efficient discovery scheduling by adjusting the scan time and the order of scan priority in a discovery procedure according to the type of a registered device.

According to various embodiments, the electronic device may identify one or more communication protocols supported per device type registered in the application (or user account) and determine at least one protocol requiring a scan among the plurality of communication protocols based on the device information and current location at the time of starting application driving and scanning. According to various embodiments, the electronic device may adjust (or determine) the scan time or the order of scan priority based on at least one of the device type of the external electronic device, location information about the external electronic device, and the plurality of communication protocols. According to various embodiments, the device type registered in the application (or user account) may be set based on at least one of the product type and product model of the electronic device. For example, the device types registered in the application (or user account) may be at least one of a mobile phone, a tablet, a wearable device, a PC, an accessory device, a TV, audio visual (AV), signage, a refrigerator, a washer, a dryer, an air conditioner, an air purifier, an oven, a range, a microwave, a hood, a robot vacuum, a smart home device, a printer, a headphone, a speaker, a monitor, an E-board, an IoT device, a camera, a camcorder, a cooktop, a dishwasher, a smart watch, a band, a router, a tracker, a car, an air dresser, a speaker, a display, or ear-buds.

According to various embodiments, the electronic device may identify at least one communication protocol supported by at least one external electronic device among the plurality of communication protocols and may adjust a scan time corresponding to a specific communication protocol among the set plurality of communication protocols based on the identified at least one communication protocol. According to various embodiments, a scanning order for the plurality of communication protocols may be predetermined when the application is driven. For example, when the application is driven, the electronic device may scan external electronic devices in the order of BLE, Wi-Fi, P2P, UPnP, CLOUD, UWB, and BT. According to various embodiments, the electronic device may scan the external electronic device based on whether real-time data collection is supported and the number of external electronic devices supporting a specific communication protocol. According to various embodiments, the electronic device may collect data in real-time in the case of Wi-Fi and, when the number of external electronic devices supporting Wi-Fi is smaller than the number of external electronic devices supporting BLE, first scan the external electronic devices supporting BLE. According to various embodiments, the electronic device may collect data in real-time in the case of Wi-Fi and may scan the external electronic device supporting BT first if data cannot be collected in real time in the case of BT.

According to various embodiments, the electronic device may determine a communication protocol to scan based on its own location information and location information about the external electronic device. According to various embodiments, the electronic device may identify (or determine) its location information based on the information collected through Wi-Fi and base station location information, compare current location information about the electronic device with location information about the external electronic device registered in the application, and if the location of the external electronic device and the current location of the electronic device meet a preset condition (e.g., within a radius of <NUM> meters), scan the external electronic device. According to various embodiments, if the location of the external electronic device and the current location of the electronic device do not meet the preset condition (e.g., within a radius of <NUM> meters), the electronic device may receive only cloud events. According to various embodiments, when the external electronic device is connected to the same wireless network, the electronic device may determine that the preset condition (e.g., within a radius of <NUM> meters) is met and scan the external electronic device.

According to various embodiments, the electronic device may identify communication protocols supported per device type registered in the application (or account) and may scan the communication protocols supported by the external electronic device based on the communication protocols supported per device type. According to various embodiments, in the case of an external electronic device having a Nearby attribute, such as a SmartTag, initial scanning is important. Thus, the electronic device may add three more seconds to the BLE scanning time.

<FIG> is a view illustrating a system architecture according to an embodiment of the disclosure.

Referring to <FIG>, a system architecture <NUM> may include a framework <NUM>, a base component <NUM>, a service module (service) <NUM>, a discovery protocol module (discovery protocols) <NUM>, a discovery scheduler <NUM>, a repository module (repository) <NUM>, an action module (action) <NUM>, a trigger module (trigger) <NUM>, a publisher module (publisher) <NUM>, and a feature component <NUM>. According to various embodiments, the framework <NUM> may refer to a Linux-based open source software stack created to be used in various electronic devices. According to various embodiments, the base component <NUM> may refer to an element necessary for creating IoT-related basic services by simplifying IoT core modular system components and service recycling. According to various embodiments, the service module <NUM> may refer to a background process for periodically processing scanning and cloud events regardless of the UI. According to various embodiments, the discovery protocol module <NUM> may provide a discovery (scanning) API, such as BT, BLE, UPnP, Wi-Fi, P2P, UWB, wearable, accessory, and cloud. According to various embodiments, the discovery scheduler <NUM> may set at least one of an execution period of an application, a scanning time according to a position, and priority. According to various embodiments, the repository module <NUM> may store the scanning result, and the action module <NUM> may perform device connection and control. According to various embodiments, when a tag is found nearby or the connection is terminated, the trigger module <NUM> may automatically upload the location to the server according to the scanning result.

According to various embodiments, the discovery scheduler <NUM> included in an electronic device (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, and the electronic device <NUM> of <FIG>) for connection between IoT devices in an IoT environment may determine a scanning schedule if the user requests cloud device information when an application starts. According to various embodiments, the discovery scheduler <NUM> may determine a scanning schedule when the electronic device requests cloud device information upon booting. According to various embodiments, the discovery scheduler <NUM> may determine a scanning schedule when the external server updates the cloud device information state or receives cloud device information from the external server.

According to various embodiments, the discovery scheduler <NUM> may scan at least one of the communication protocols (e.g., BT, Wi-Fi, BLE, P2P, UPnP, UWB, wearable & accessory, cloud device) supported by the discovery protocol module <NUM>. According to various embodiments, the repository module <NUM> may store the scanning (or discovery) result. The scanning (or discovery) result may be transferred to the trigger module <NUM> and the publisher module <NUM>.

According to various embodiments, the discovery scheduler <NUM> may perform a scan on the BLE, Wi-Fi, UPnP, P2P, BT, and BLE communication protocols to scan (or search for) external electronic devices located nearby when an application is driven. According to various embodiments, the discovery scheduler <NUM> may set a scan time limit for the BLE, Wi-Fi, UPnP, P2P, and BT communication protocols. According to various embodiments, the discovery scheduler <NUM> may set a scan time according to a time period in which an external electronic device may be found based on an advertising speed of the communication protocol. According to various embodiments, the discovery scheduler <NUM> may terminate the scan (or search) of the communication protocol when the application ends or switches to the background state. According to various embodiments, the discovery scheduler <NUM> may not terminate the BLE protocol to support a service through a Nearby device.

Referring to Table <NUM>, the discovery scheduler <NUM> may set the scan time for the BLE protocol to <NUM> (second), set the scan time for Wi-Fi protocol to <NUM>, set the scan time for the UPnP protocol to <NUM>, set the scan time for the P2P protocol to <NUM>, and may again set the scan time for the Wi-Fi protocol to <NUM>, set the scan time for the BT protocol to <NUM>, and may then maintain the scan on the BLE protocol.

According to various embodiments, when only external electronic devices (e.g., tags) supporting the BLE protocol are registered in the application, the discovery scheduler <NUM> may perform a scan on the BLE protocol without scanning other communication protocols as shown in Table <NUM>.

According to various embodiments, since the type of the external electronic device is Nearby, the discovery scheduler <NUM> may start a scan regardless of the location. According to various embodiments, since the Nearby device has an attribute, such as not near you, nearby, and connected state, it is necessary to determine the state of the device in real-time. According to various embodiments, the discovery scheduler <NUM> may adjust at least one of a scan filter and a scan period (scan duty) according to an application state, such as background, foreground, and screen on/off.

Table <NUM> shows an example in which the discovery scheduler <NUM> adjusts at least one of the scan filter and the scan duty according to the application state, such as background, foreground, or screen on/off.

According to various embodiments, the discovery scheduler <NUM> may schedule discovery as shown in Table <NUM> when an external electronic device supporting BT and BLE protocols is registered in the application. Referring to Table <NUM>, the discovery scheduler <NUM> may set the scan time for the BLE protocol to <NUM>, set the scan time for the BT protocol to <NUM>, and then keep scanning the BLE protocol. According to various embodiments, since an external electronic device, such as an accessory, is a device that may be used anywhere, the discovery scheduler <NUM> may control to start a BT or BLE protocol scan operation to update the device state and search for the device when the application is driven, regardless of the location.

According to various embodiments, the discovery scheduler <NUM> may schedule discovery as shown in Table <NUM> when external electronic devices supporting BLE, Wi-Fi, UPnP, P2P, and BT protocols are registered in the application. Referring to Table <NUM>, the discovery scheduler <NUM> may set the scan time for the BLE protocol to <NUM>, set the scan time for Wi-Fi protocol to <NUM>, set the scan time for the UPnP protocol to <NUM>, set the scan time for the P2P protocol to <NUM>, and may again set the scan time for the Wi-Fi protocol to <NUM>, set the scan time for the BT protocol to <NUM>, and may then maintain the scan on the BLE protocol. Referring to Table <NUM>, the discovery scheduler <NUM> may allocate three seconds more as the scan time for the BLE protocol when a tag that needs to quickly support the Nearby device is registered.

<FIG> is a view illustrating an electronic device scanning an external electronic device according to an embodiment of the disclosure.

Referring to <FIG>, an IoT system <NUM> includes an electronic device <NUM> (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, or the electronic device <NUM> of <FIG>), a server <NUM>, and an external electronic device <NUM> (e.g., the cloud-connected devices <NUM> of <FIG>, and the cloud-connected devices <NUM> of <FIG>). According to various embodiments, the server <NUM> may be implemented in the cloud <NUM> of <FIG> or the first cloud <NUM> of <FIG>. According to various embodiments, the electronic device <NUM> may include a communication module <NUM> that communicates with the server <NUM> or the external electronic device <NUM> and a processor <NUM> that controls the overall operation of the electronic device <NUM>. According to various embodiments, the server <NUM> may include a communication module <NUM> that communicates with the electronic device <NUM> or the external electronic device <NUM> and a processor <NUM> that controls the overall operation of the server <NUM>. According to various embodiments, the external electronic device <NUM> may include one or more external electronic devices.

According to various embodiments, when an application stored in the electronic device <NUM> is executed, the processor <NUM> included in the electronic device <NUM> may identify at least one external electronic device <NUM> registered in the application. According to various embodiments, the processor <NUM> may identify at least one communication protocol supported by at least one external electronic device <NUM> among the set plurality of communication protocols and may adjust a scan time corresponding to a first communication protocol among the set plurality of communication protocols based on the identified at least one communication protocol. According to various embodiments, the processor <NUM> may set an order of scan priority for the plurality of communication protocols based on the at least one communication protocol and location information about the electronic device <NUM>. According to various embodiments, the processor <NUM> may adjust the scan time corresponding to the first communication protocol based on the order of scan priority and may adjust the scan time corresponding to the second communication protocol among the plurality of communication protocols based on the order of scan priority. According to various embodiments, the processor <NUM> may exclude a third communication protocol among the plurality of communication protocols from the scan targets based on the order of scan priority. According to various embodiments, the processor <NUM> may start or end a scan on a communication protocol based on a life cycle (e.g., background, foreground) of the application. According to various embodiments, the application may be an Internet of Things (IoT) application that identifies the state of the at least one external electronic device and controls the operation of the at least one external electronic device. According to various embodiments, the scanning order of the plurality of set communication protocols may be predetermined. According to various embodiments, each of the plurality of communication protocols may be Bluetooth (BT), Bluetooth low energy (BLE), Wi-Fi, peer-to-peer (P2P) network, universal plug and play (UPnP), Cloud, or ultra-wideband (UWB).

According to various embodiments, the processor <NUM> may exclude, from the scan targets, external electronic devices, which are away from the electronic device <NUM> by a preset threshold distance or more, among the at least one external electronic device <NUM> based on the location information about the at least one external electronic device <NUM> and the location information about the electronic device <NUM>. According to various embodiments, the processor <NUM> may set an order of scan priority for the plurality of communication protocols based on the at least one communication protocol and change the scanning order of the first communication protocol and the second communication protocol among the plurality of communication protocols based on the order of scan priority. According to various embodiments, the processor <NUM> may exclude a third communication protocol among the plurality of communication protocols from the scan targets based on the order of scan priority. According to various embodiments, the processor <NUM> may control to receive, from the server <NUM>, type information and location information about the at least one external electronic device <NUM> registered in the application. According to various embodiments, the processor <NUM> may control to transmit information regarding the determined order of scan priority to the server <NUM>.

<FIG> is a view illustrating a discovery flow of an electronic device according to an embodiment of the disclosure.

Referring to <FIG>, an electronic device <NUM> may include a scanning module (scanning) <NUM>, a repository module (repository) <NUM>, a control module (control) <NUM>, a publisher module (publisher) <NUM>, and a trigger module (trigger) <NUM>, for a discovery flow. According to various embodiments, the electronic device <NUM> may scan an external electronic device <NUM> through the scanning module <NUM> based on at least one of the device type of the external electronic device <NUM> registered in the application (or user account), the communication protocol supported by the external electronic device <NUM>, the location information about the electronic device <NUM>, and the location information about the external electronic device <NUM>. According to various embodiments, the electronic device <NUM> may store the scanning result of the scanning module <NUM> in the repository module <NUM> and transfer the scanning result to the control module <NUM> and the publisher module <NUM>. According to various embodiments, the scanning result may be transferred to the trigger module <NUM> through the publisher module <NUM>. According to various embodiments, the scanning result may be transferred to the user interface (UI), a device panel, or the device plugin through the publisher module <NUM>.

<FIG> is a view illustrating a user interface of an electronic device according to an embodiment of the disclosure.

Referring to <FIG>, an application stored (or installed) in an electronic device (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, or the electronic device <NUM> of <FIG>) may differently display the external electronic device that may be controlled based on the location of the electronic device. According to various embodiments, in a screen <NUM> for the case where the electronic device is in the bed room, the electronic device may scan an external electronic device <NUM> (e.g., a light) located in the bed room and may be connected to the external electronic device to control the operation of the external electronic device according to the scanning result. According to various embodiments, in a screen <NUM> for the case where the electronic device is in the living room, the electronic device may scan a plurality of external electronic devices (e.g., an induction <NUM>, a smartwatch <NUM>, an air conditioner <NUM>, a TV <NUM>, and an air purifier <NUM>) located in the living room and be connected to at least one external electronic device among the plurality of external electronic devices to control the operation of the at least one external electronic device according to the scanning result.

According to various embodiments, the electronic device may determine its location and the location of the external electronic device based on the information provided from Wi-Fi and the base station (e.g., accuracy of location through Wi-Fi and the base station is about <NUM> meters). According to various embodiments, if the external electronic device is located within a radius of <NUM>, or the external electronic device is connected over the same wireless network as that of the electronic device, the electronic device may determine that the external electronic device is a scan target. For example, the electronic device may identify that the light (e.g., ABL light) which is a scan target registered with the bed room is a device supporting only BLE short-range communication and may perform only a BLE scan in the bed room. For example, the electronic device may identify that external electronic devices which are scan targets registered with the living room are devices supporting four types of short-range communication, such as Wi-Fi, P2P, BLE, and BT, and perform a scan in the order of BLE, Wi-Fi, P2P, and BT according to the order of scan priority.

Referring to <FIG>, an application stored (or installed) in an electronic device (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, or the electronic device <NUM> of <FIG>) may display, through a user interface <NUM>, weather information <NUM>, location information <NUM>, information <NUM> regarding registered external electronic devices, and information <NUM> regarding a connected external electronic device. According to various embodiments, if the electronic device need not perform short-range communication, the electronic device may process a CLOUD-related event. According to various embodiments, the electronic device may identify the external electronic device registered in the application and change the scanning duty according to the state of the electronic device.

<FIG> are views illustrating an operation method of an electronic device according to various embodiments. <FIG> relates to an embodiment in which the electronic device directly identifies at least one external electronic device when an application is executed. <FIG> relate to embodiments in which the electronic device receives information about at least one external electronic device from a server. In <FIG> and <FIG>, the electronic device may directly request information about at least one registered external electronic device from the server. In <FIG>, the electronic device may receive, from the server, a push message including information about at least one registered external electronic device without requesting information from the server.

<FIG> is a view illustrating an operation method of an electronic device according to an embodiment of the disclosure.

Referring to <FIG>, an electronic device (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, or the electronic device <NUM> of <FIG>) may scan external electronic devices (e.g., the cloud-connected devices <NUM> of <FIG>, the cloud-connected devices <NUM> of <FIG>, and the external electronic device <NUM> of <FIG>). In operation <NUM>, the electronic device may identify at least one external electronic device registered in the application upon executing an application stored in the electronic device. In operation <NUM>, the electronic device may identify at least one communication protocol supported by the at least one external electronic device among a plurality of set communication protocols. In operation <NUM>, the electronic device may adjust the scan time corresponding to the first communication protocol among the plurality of set communication protocols based on the at least one identified communication protocol.

Referring to <FIG>, an electronic device (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, or the electronic device <NUM> of <FIG>) may scan external electronic devices (e.g., the cloud-connected devices <NUM> of <FIG>, the cloud-connected devices <NUM> of <FIG>, and the external electronic device <NUM> of <FIG>). In operation <NUM>, the electronic device may request information about at least one external electronic device registered in the application or server, from the server. In operation <NUM>, the electronic device may identify the type of the at least one external electronic device based on the information about the at least one registered external electronic device received from the server. According to various embodiments, the type of the external electronic device may be set based on at least one of the product model (e.g., TV model name or mobile phone model name) and product classification of the external electronic device. According to various embodiments, the communication protocol supported by the at least one external electronic device may be differently set depending on at least one of the product model and product classification of the external electronic device. According to various embodiments, a device type index may be pre-defined according to at least one of the product model and product classification of the external electronic device. According to various embodiments, the electronic device may previously store or receive, from the server, information regarding the device type index defined according to at least one of the product model and product classification of the external electronic device. According to various embodiments, the information regarding the device type index may be included in the at least one registered external electronic device received from the server by the electronic device.

For example, the types of external electronic devices may be at least one of a mobile phone, a tablet, a wearable device, a PC, an accessory device, a TV, an audio visual (AV), a signage, a refrigerator, a washer, a dryer, an air conditioner, an air purifier, an oven, a range, a microwave, a hood, a robot vacuum, a smart home device, a printer, a headphone, a speaker, a monitor, an E-board, an IoT device, a camera, a camcorder, a cooktop, a dishwasher, a smart watch, a band, a router, a tracker, a car, an air dresser, a speaker, a display, or ear-buds. For example, the type of the external electronic device may be one of a first version of a mobile phone, a second version of a mobile phone, and a third version of a mobile phone. For example, if the type of the external electronic device is a mobile phone, the device type index may be defined as "<NUM>", if the type of the external electronic device is a tablet, the device type index may be defined as "<NUM>", and if the type of the external electronic device is a wearable device, the device type index may be defined as "<NUM>". For example, if the type of the external electronic device is a mobile phone and the mobile phone model is the first version, the device type index may be defined as "<NUM>", if the type of the external electronic device is a mobile phone and the mobile phone model is the second version, the device type index may be defined as "<NUM>", and if the type of the external electronic device is a tablet, the device type index may be defined as "<NUM>".

In operation <NUM>, the electronic device may identify at least one communication protocol supported by the at least one external electronic device based on the type of the at least one external electronic device. In operation <NUM>, the electronic device may set the scanning order and scan time for the plurality of communication protocols based on at least one of the type of the at least one external electronic device, the at least one communication protocol, the life cycle of the application, and location information about the electronic device.

Referring to <FIG>, an electronic device (e.g., the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, the electronic device <NUM> of <FIG>, or the electronic device <NUM> of <FIG>) may scan external electronic devices (e.g., the cloud-connected devices <NUM> of <FIG>, the cloud-connected devices <NUM> of <FIG>, and the external electronic device <NUM> of <FIG>). In operation <NUM>, the electronic device may request information about at least one external electronic device registered in the application or server, from the server. In operation <NUM>, the electronic device may identify the type of the at least one external electronic device based on the information about the at least one registered external electronic device received from the server. In operation <NUM>, the electronic device may identify at least one communication protocol supported by the at least one external electronic device based on the type of the at least one external electronic device. In operation <NUM>, the electronic device may set the scanning order and scan time for the plurality of communication protocols based on the type of the at least one external electronic device and the at least one communication protocol. In operation <NUM>, the electronic device may reset the scanning order and scan time for the plurality of communication protocols based on the location information about the electronic device.

Claim 1:
An electronic device (<NUM>) comprising:
memory (<NUM>) storing instructions;
a communication module (<NUM>); and
at least one processor (<NUM>) connected to the communication module (<NUM>),
wherein the instructions, when executed by the at least one processor (<NUM>), cause the electronic device (<NUM>) to:
upon executing an application stored in the electronic device (<NUM>), identify (<NUM>, <NUM>) a type of each of at least one external electronic device (<NUM>, <NUM>) registered in the application,
identify (<NUM>, <NUM>) at least one communication protocol supported by the at least one external electronic device (<NUM>, <NUM>) among a plurality of communication protocols based on the type of each of the at least one external electronic device (<NUM>, <NUM>), and
set (<NUM>, <NUM>) a scan order and scan duration for the plurality of communication protocols based on the type of each of the at least one external electronic device (<NUM>, <NUM>) and the at least one communication protocol.