Hub device, method, and non-transitory computer-readable storage medium for controlling electronic device

The hub device employs communication circuits and virtual device drivers to manage multiple electronic devices, addressing memory and performance issues by offloading processes to external hubs, thus ensuring efficient control and communication.

WO2026127387A1PCT designated stage Publication Date: 2026-06-18SAMSUNG ELECTRONICS CO LTD

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
SAMSUNG ELECTRONICS CO LTD
Filing Date
2025-11-06
Publication Date
2026-06-18

AI Technical Summary

Technical Problem

Existing systems face challenges in efficiently managing and controlling multiple electronic devices connected through a hub device, particularly due to increased memory usage and decreased response speed as more devices are connected, which affects the overall performance and efficiency of the hub device.

Method used

A hub device is equipped with a first and second communication circuit for connecting to end and server devices, allowing it to identify unregistered devices, install virtual device drivers, and transmit control signals through a server, thereby extending its capabilities and reducing memory load by offloading processes to external hub devices.

🎯Benefits of technology

This approach enhances the hub device's ability to manage multiple electronic devices by optimizing memory usage and maintaining response speed, ensuring efficient control and communication across a network of connected devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025018118_18062026_PF_FP_ABST
    Figure KR2025018118_18062026_PF_FP_ABST
Patent Text Reader

Abstract

This hub device may comprise a first communication circuit, a second communication circuit, a memory for storing instructions, and at least one processor including processing circuitry. The instructions, when executed individually or collectively by the at least one processor, may cause the hub device to: receive a broadcast signal from an end device; determine whether at least one condition associated with at least one of the hub device, the end device, or an external hub device is satisfied; transmit, to the external hub device, information about the end device such that a device driver is installed, when the at least one condition is satisfied; request, from a server device, data about a virtual device driver for communicating with the device driver installed in the external hub device; install the virtual device driver on the basis of receiving the data; and communicate, by using the virtual device driver, with the device driver installed in the external hub device.
Need to check novelty before this filing date? Find Prior Art

Description

Hub device, method, and non-transient computer-readable storage medium for controlling electronic devices

[0001] The present disclosure relates to a hub device for controlling an electronic device, a method, and a non-transient computer-readable storage medium.

[0002] An electronic device can be registered as associated with an external electronic device in a server device. An electronic device can control an external electronic device through the server device. An electronic device can transmit a control signal to an external electronic device for controlling the external electronic device through the server device. An electronic device can obtain information about an external electronic device through the server device.

[0003] The information described above may be provided as related art for the purpose of aiding understanding of the present disclosure. No claim or determination is made as to whether any of the foregoing may be applied as prior art related to the present disclosure.

[0004] A hub device is provided for communicating with an external hub device. The hub device may include a first communication circuit configured to communicate with an end device. The hub device may include a second communication circuit configured to communicate with a server device. The hub device may include a memory comprising one or more storage media for storing instructions. The hub device may include at least one processor comprising a processing circuitry. When the instructions are executed individually or collectively by the at least one processor, the hub device may cause the hub device to receive a signal broadcast from the end device through the first communication circuit. When the instructions are executed individually or collectively by the at least one processor, the hub device may cause the hub device to identify information of the end device that is not registered with the hub device. The above instructions may cause the hub device to determine whether at least one condition associated with at least one of the hub device, the end device, or the external hub device is satisfied when executed individually or collectively by the at least one processor. The above instructions may cause the hub device to transmit information of the end device to the external hub device so that, when the at least one condition is satisfied, the device driver of the end device is installed on the external hub device, when executed individually or collectively by the at least one processor.When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to request data for a virtual device driver to communicate with the device driver installed in the external hub device from the server device. When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to receive the data based on the request. When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to install the virtual device driver based on receiving the data. When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to communicate with the device driver installed in the external hub device using the virtual device driver to transmit a control signal from the server device to the end device.

[0005] A method is provided. The method may be performed in a hub device having a first communication circuit configured to communicate with an end device and a second communication circuit configured to communicate with a server device. The method may include an operation of receiving a signal broadcast from the end device through the first communication circuit. The method may include an operation of identifying information of the end device that is not registered in the hub device. The method may include an operation of determining whether at least one condition associated with at least one of the hub device, the end device, or an external hub device is satisfied. The method may include an operation of transmitting information of the end device to the external hub device so that a device driver of the end device is installed in the external hub device as the at least one condition is satisfied. The method may include an operation of requesting data for a virtual device driver for communicating with the device driver installed in the external hub device as the at least one condition is satisfied from the server device. The method may include an operation of receiving data based on the request as the at least one condition is satisfied. The above method may include an operation of installing a virtual device driver based on receiving the data as the at least one condition is satisfied. The above method may include an operation of communicating with a device driver installed on an external hub device using the virtual device driver to transmit a control signal from the server device to the end device as the at least one condition is satisfied.

[0006] A non-transient computer-readable storage medium is provided. The non-transient computer-readable storage medium may store one or more programs. The one or more programs may include instructions that cause the hub device to receive a signal broadcast from the end device through the first communication circuit when executed by the hub device having a first communication circuit configured to communicate with an end device and a second communication circuit configured to communicate with a server device. The one or more programs may include instructions that cause the hub device to identify information of the end device that is not registered with the hub device when executed by the hub device. The one or more programs may include instructions that cause the hub device to determine whether at least one condition associated with at least one of the hub device, the end device, or an external hub device is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to transmit information of the end device to the external hub device so that the device driver of the end device is installed on the external hub device, as the at least one condition is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to request data for a virtual device driver for communicating with the device driver installed on the external hub device from the server device, as the at least one condition is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to receive the data based on the request, as the at least one condition is satisfied when executed by the hub device.The above one or more programs may include instructions that cause the hub device to install the virtual device driver based on receiving the data when the at least one condition is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to communicate with the device driver installed on the external hub device using the virtual device driver to transmit a control signal from the server device to the end device when the at least one condition is satisfied when executed by the hub device.

[0007] FIG. 1 is a block diagram of an electronic device in a network environment according to one embodiment.

[0008] FIG. 2 illustrates an example of an environment including an electronic device, a hub device, and a server device.

[0009] FIG. 3 illustrates a simplified block diagram of an exemplary hub device.

[0010] FIG. 4 illustrates an example of a multi-hub system including a hub device and an external hub device.

[0011] FIG. 5 illustrates examples of operations in which a hub device and an external hub device are registered with a server device.

[0012] FIG. 6 illustrates examples of operations performed between a hub device and a server device to generate a first device driver in a hub device.

[0013] FIG. 7a illustrates examples of operations of a hub device, an external hub device, and a server device for generating a virtual device driver in a hub device.

[0014] FIG. 7b illustrates examples of operations of a hub device and a server device for controlling a second electronic device using a first device driver.

[0015] Figure 8 illustrates an example of a user interface displayed on an electronic device.

[0016] Throughout the drawings, the same reference numerals will be understood to refer to the same parts, components, and structures.

[0017] The terms used in this disclosure are used merely to describe specific embodiments and are not intended to limit the scope of other embodiments. A singular expression may include a plural expression unless the context clearly indicates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as generally understood by those skilled in the art described in this disclosure. Terms used in this disclosure that are defined in a general dictionary may be interpreted as having the same or similar meaning as they have in the context of the relevant technology, and are not to be interpreted in an ideal or overly formal sense unless explicitly defined in this disclosure. In some cases, even terms defined in this disclosure are not to be interpreted to exclude the embodiments of this disclosure.

[0018] In the various embodiments of the present disclosure described below, a hardware-based approach is described as an example. However, since the various embodiments of the present disclosure include techniques using both hardware and software, the various embodiments of the present disclosure do not exclude a software-based approach.

[0019] Terms used in the following description to refer to data (e.g., data, collected data, unique data, string data, installation file, network identification information, request signal, control signal, response signal), terms referring to values ​​(e.g., reference amount, reference capacity), terms for operation states (e.g., operation, process), terms referring to objects (e.g., visual object), terms referring to network entities, terms referring to components of a device, etc., are examples provided for the convenience of explanation. Accordingly, the present disclosure is not limited to the terms described below, and other terms having equivalent technical meanings may be used. Additionally, terms such as '...part', '...device', '...object', '...body', etc. used below may refer to at least one shape structure or a unit that processes a function.

[0020] Additionally, in this disclosure, expressions of "greater than" or "less than" may be used to determine whether a specific condition is satisfied or fulfilled; however, this is merely for the purpose of expressing an example and does not exclude descriptions of "greater than" or "less than." Conditions described as "greater than" may be replaced with "greater than," conditions described as "less than" may be replaced with "less than," and conditions described as "greater than and less than" may be replaced with "greater than and less than." Furthermore, "A" to "B" below refer to at least one of elements from A (including A) to B (including B). Below, "C" and / or "D" refers to including at least one of "C" or "D," i.e., {"C", "D", "C" and "D"}.

[0021] FIG. 1 is a block diagram of an electronic device in a network environment according to one embodiment.

[0022] Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) through a first network (198) (e.g., a short-range wireless communication network) or with at least one of an electronic device (104) or a server (108) through a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) through a server (108). According to one embodiment, the electronic device (101) may include a processor (120), memory (130), input module (150), sound output module (155), display module (160), audio module (170), sensor module (176), interface (177), connection terminal (178), haptic module (179), camera module (180), power management module (188), battery (189), communication module (190), subscriber identification module (196), or antenna module (197). In some embodiments, at least one of these components (e.g., connection terminal (178)) may be omitted from the electronic device (101), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (176), camera module (180), or antenna module (197)) may be integrated into a single component (e.g., display module (160)).

[0023] The processor (120) can control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) by executing software (e.g., a program (140)), and can perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (120) can store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in volatile memory (132), process the commands or data stored in volatile memory (132), and store the resulting data in non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) that can operate independently or together with it (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device (101) includes a main processor (121) and an auxiliary processor (123), the auxiliary processor (123) may be configured to use lower power than the main processor (121) or to be specialized for a designated function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as part thereof.

[0024] The auxiliary processor (123) may control at least some of the functions or states associated with at least one component of the electronic device (101) (e.g., display module (160), sensor module (176), or communication module (190)) on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (123) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (180) or communication module (190)). According to one embodiment, the auxiliary processor (123) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (101) itself where the artificial intelligence model is executed, or through a separate server (e.g., server (108)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers.An artificial neural network may 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), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.

[0025] The memory (130) can store various data used by at least one component of the electronic device (101) (e.g., processor (120) or sensor module (176)). The data may include, for example, software (e.g., program (140)) and input or output data for related commands. The memory (130) may include volatile memory (132) or non-volatile memory (134).

[0026] The program (140) may be stored as software in memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).

[0027] The input module (150) can receive commands or data to be used for a component of the electronic device (101) (e.g., processor (120)) from outside the electronic device (101) (e.g., user). The input module (150) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0028] The sound output module (155) can output a sound signal to the outside of the electronic device (101). The sound output module (155) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.

[0029] The display module (160) can visually provide information to an external (e.g., user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling said device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by said touch.

[0030] The audio module (170) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150) or output sound through the sound output module (155) or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (101).

[0031] The sensor module (176) can detect the operating state of the electronic device (101) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (176) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0032] The interface (177) may support one or more specified protocols that can be used for the electronic device (101) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (102)). According to one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0033] The connection terminal (178) may include a connector through which the electronic device (101) can be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0034] The haptic module (179) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module (179) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.

[0035] The camera module (180) can capture still images and video. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.

[0036] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented, for example, as at least part of a power management integrated circuit (PMIC).

[0037] The battery (189) can supply power to at least one component of the electronic device (101). According to one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0038] The communication module (190) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may include one or more communication processors that operate independently of the processor (120) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (194) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (104) through a first network (198) (e.g., a short-range communication network such as Bluetooth, WiFi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (199) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can identify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (196).

[0039] The wireless communication module (192) can support 5G networks and next-generation communication technologies following 4G networks, for example, new radio access technology. NR access technology can support high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and connection of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low-latency communications (URLLC)). The wireless communication module (192) can support a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate, for example. The wireless communication module (192) can support various technologies for securing performance in the high-frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full-dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large-scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), external electronic device (e.g., electronic device (104)), or network system (e.g., second network (199)). According to one embodiment, the wireless communication module (192) can support a Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mMTC, or U-plane latency (e.g., downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) for realizing URLLC.

[0040] An antenna module (197) can transmit a signal or power to or from an external source (e.g., an external electronic device). According to one embodiment, the antenna module (197) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as a first network (198) or a second network (199), may be selected from the plurality of antennas, for example, by a communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (197).

[0041] According to various embodiments, the antenna module (197) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the printed circuit board and capable of supporting a specified high frequency band (e.g., mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top surface or side surface) of the printed circuit board and capable of transmitting or receiving a signal of the specified high frequency band.

[0042] At least some of the above components can be connected to each other via a communication method between peripheral devices (e.g., bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)) and exchange signals (e.g., commands or data) with each other.

[0043] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) through a server (108) connected to a second network (199). Each of the external electronic devices (102, or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations performed on the electronic device (101) may be performed on one or more of the external electronic devices (102, 104, or 108). For example, if the electronic device (101) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (101) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (101) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server using machine learning and / or neural networks. According to one embodiment, the external electronic device (104) or the server (108) may be included within a second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

[0044] FIG. 2 illustrates an example of an environment including electronic devices (101, 210, 220), a hub device (202), and a server device (201). The electronic device (101) of FIG. 2 may be an example of the electronic device (101) of FIG. 1. For example, the hub device (202) of FIG. 2 may include at least some of the components of the electronic device (101) of FIG. 1. For example, the hub device (202) may be an example of the electronic device (102) of FIG. 1. As an example, but not limited to, the hub device (202) may be one of the electronic device (104) of FIG. 1. The hub device (202) may be used to control the electronic devices (210, 220). The hub device (202) may be used for a connection between the electronic devices (e.g., including electronic device (210) and electronic device (220). For example, the hub device (202) can establish a connection with the electronic device (210, 220).

[0045] Referring to FIG. 2, a server device (201) can communicate with an electronic device (101) and / or a hub device (202). The server device (201) can provide various services to the electronic device (101). Users of the electronic device (101) can use various services through the electronic device (101). The server device (201) can register the electronic device (101) and / or the hub device (202). For example, the server device (201) can register the hub device (202) as associated with the electronic device (101). For example, the server device (201) can register the hub device (202) as associated with the electronic device (210, 220) connected to the hub device (202). For example, the server device (201) can register the electronic device (101) in conjunction with the electronic device (210, 220). For example, the server device (201) can register the hub device (202) in conjunction with the electronic device (101) to a smart service platform (e.g., a platform that services a smart home and / or smart city). The user of the electronic device (101) can control the hub device (202), manage the hub device (202), and monitor the status of the hub device (202) through the electronic device (101). For example, a user of the electronic device (101) can control electronic devices (210, 220) connected to a hub device (202) via the electronic device (101), manage electronic devices (210, 220) connected to the hub device (202), and monitor the status of electronic devices (210, 220) connected to the hub device (202). For example, a server device (201) may be used to control and manage the hub device (202). For example, the server device (201) may include an intelligent server device using machine learning and / or a neural network. For example, the server device (201) may be an example of the server (108) of FIG. 1.The server device (201) can provide intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on IoT (Internet of Things) related technology. The server device (201) may be referred to as an IoT server in that it provides intelligent services based on IoT related technology.

[0046] According to one embodiment, an electronic device (101) may transmit a control signal to the server device (201) to execute a function of a hub device (202) registered with the server device (201). For example, the server device (201) may transmit a control signal to the hub device (202). For example, the control signal may cause the hub device (202) to execute a designated function. For example, the hub device (202) may control electronic devices (210, 220) connected to the hub device (202). For example, the electronic device (101) may transmit a control signal to the hub device (202) through the server device (201) to cause the hub device (202) to drive the operation of the electronic devices (210, 220). The hub device (202) may transmit the received control signal to the electronic devices (210, 220). For example, a control signal may cause an electronic device (210, 220) to execute a specified function based on identifying that the electronic device (210, 220) satisfies a specified condition. For example, the electronic device (210) that receives the control signal may periodically report information obtained from the electronic device (210) (e.g., indoor temperature information) to the server device (201) via the hub device (202) at specified intervals. For example, the electronic device (220) that receives the control signal may automatically change the state of the electronic device (220) from a low power consumption state to an active state based on identifying that a user is located within a specified distance. The server device (201) may receive a response signal for the control signal from the hub device (202). The response signal may indicate whether the function according to the control signal has been executed. The server device (201) may transmit or provide the received response signal to the electronic device (101). For example, the server device (201) can indirectly connect the electronic device (101) and the hub device (202).As a non-limiting example, a hub device (202) can be registered with an electronic device (101).

[0047] According to one embodiment, the server device (201) may provide a notification to the electronic device (101) in accordance with an event occurring in the hub device (202) and / or the electronic device (210, 220). For example, the server device (201) may provide a notification to the electronic device (101) indicating that an external object has been detected when the electronic device (220) (e.g., a smart motion sensor) detects an external object (e.g., a person, an animal).

[0048] According to one embodiment, an electronic device (101) can obtain information collected by a hub device (202) and / or an electronic device (210, 220) through a server device (201). For example, the electronic device (101) can obtain indoor temperature information collected by an electronic device (210) through the server device (201). For example, the electronic device (101) can obtain status information of an electronic device (220) through the server device (201). For example, the status information of an electronic device (220) may include whether the electronic device (220) is operating and the power consumption of the electronic device (220). However, it is not limited thereto.

[0049] According to one embodiment, the server device (201) may restrict at least some of the services provided to the electronic device (101) for security purposes. For example, the server device (201) may restrict at least some of the services related to a hub device (202) that is not registered in association with the electronic device (101). The electronic device (101) may register the hub device (202) to the electronic device (101). By registering the hub device (202) to the electronic device (101), the electronic device (101) may register the hub device (202) in association with the electronic device (101) at the server device (201).

[0050] A hub device (202) can be used to control electronic devices (210, 220). The hub device (202) can be used for connections between electronic devices (e.g., including electronic device (210) and electronic device (220)). For example, electronic devices (e.g., including electronic device (210) and electronic device (220)) may include IoT devices. For example, the hub device (202) can support communication between electronic devices (e.g., including electronic device (210) and electronic device (220)) in a smart home and / or smart city environment. The hub device (202) can support various communication protocols. For example, the hub device (202) can establish connections with electronic devices (e.g., electronic device (210) and electronic device (220)) based on various types of communication protocols such as Zigbee, Z-Wave, Wi-Fi (wireless fidelity), Bluetooth, BLE (Bluetooth low energy), thread, matter, Ethernet, LAN (local area network), and WAN (wide area network). The hub device (202) can collect status information of the connected electronic devices (e.g., electronic device (210) and electronic device (220). The hub device (202) can transmit the collected status information to the server device (201). Each of the electronic devices connected to the hub device (202) (e.g., electronic device (210) and electronic device (220)) may use a different communication protocol. The hub device (202) can act as a bridge for electronic devices using different communication protocols.

[0051] According to one embodiment, the hub device (202) can establish a connection with the electronic device (210, 220). The electronic device (210, 220) illustrated in FIG. 2 is merely exemplary and the embodiments of the present disclosure are not limited thereto. The electronic device (210, 220) may be one of various types of IoT devices such as a smart refrigerator, a smart washing machine, a smart dryer, a smart humidifier, a smart microwave oven, a smart monitor, a smart speaker, a smart plug, a smart temperature sensor, a smart light sensor.

[0052] The hub device (202) can execute functions according to a control signal received from the server device (201). For example, the hub device (202) can control electronic devices (210, 220) connected to the hub device (202) according to a control signal received from the server device (201). For example, the hub device (202) can control electronic devices (210, 220) connected to the hub device (202) according to conditions received from the server device (201). For example, the hub device (202) can transmit a control signal to the electronic devices (210, 220) when the conditions are met. The hub device (202) can receive data from an electronic device (210) (e.g., a smart thermometer) connected to the hub device (202). The hub device (202) can control other electronic devices (e.g., a smart heating device) based on the received data. The hub device (202) can be used to monitor the status of electronic devices (210, 220) connected to the hub device (202). The hub device (202) can be connected to a server device (201). The hub device (202) can be indirectly connected to the electronic device (101) through the server device (201). The hub device (202) can be registered with the server device (201) in association with the electronic device (101). Additionally, the electronic devices (210, 220) connected to the hub device (202) can also be registered with the server device (201) in association with the hub device (202). In other words, the electronic devices (210, 220) can be registered with the server device (201) in association with the electronic device (101). The hub device (202) can receive control signals transmitted from the electronic device (101) through the server device (201). The hub device (202) can transmit collected data received from the electronic devices (210, 220) to the server device (201). The hub device (202) can transmit the collected data received from the electronic devices (210, 220) to the electronic device (101) through the server device (201).

[0053] According to one embodiment, a hub device (202) may register a plurality of electronic devices (e.g., including electronic device (210), electronic device (220)). The hub device (202) may establish a connection with a plurality of electronic devices (e.g., including electronic device (210), electronic device (220)). The hub device (202) may include a device driver (e.g., device driver (340) of FIG. 3) to control electronic devices (210, 220) connected to the hub device (202). The device driver may be used to execute operations of electronic devices (210, 220) connected to the hub device (202) or to interpret data received from electronic devices (210, 220). The hub device (202) may execute a process for controlling electronic devices (210, 220) using the device driver. The memory usage of the hub device (202) may increase as the number of running processes increases. The more electronic devices (e.g., including electronic device (210) and electronic device (220)) connected to the hub device (202), the greater the memory usage of the hub device (202). As the memory usage of the hub device (202) increases, the execution speed of at least one running process may decrease. As the memory usage of the hub device (202) increases, the response speed of the hub device (202) may decrease.

[0054] Although not illustrated in FIG. 2, according to one embodiment, the hub device (202) may be connected to an external hub device (e.g., substantially identical to the hub device (202)). The external hub device may be used to assist the hub device (202). For example, the hub device (202) may use the external hub device to extend the communication range. For example, the external hub device may relay signals according to a communication protocol (e.g., Zigbee, Z-Wave, Thread, Matter). For example, the external hub device may be referred to as a repeater and / or an extender. The hub device (202) may communicate with electronic devices (210, 220) through a communication network (e.g., a short-range wireless communication network). The hub device (202) and the electronic devices (210, 220) may share network identification information (e.g., a personal area network identifier). Additionally, the hub device (202) can communicate with an external hub device through the communication network and share the network identification information with the external hub device.

[0055] According to one embodiment, even if electronic devices (210, 220) are connected to an external hub device, processes related to controlling electronic devices (210, 220) can be performed in the hub device (202). Processes related to controlling electronic devices (210, 220) can utilize the memory of the hub device (202). For example, the more electronic devices (e.g., including electronic device (210) and electronic device (220)) connected to the external hub device, the greater the usage of the memory of the hub device (202).

[0056] In the present disclosure, technology related to a multi-hub system comprising a hub device (202) and an external hub device (e.g., the external hub device (402) of FIG. 4) may be described. However, the embodiments are not limited to a multi-hub system. Embodiments of the present disclosure may be implemented by operations performed in the hub device (202). The hub device (202) may identify memory usage to generate a device driver. If the memory usage exceeds a reference amount, the hub device (202) may execute a method of using the memory of the external hub device. For example, if the memory usage exceeds a reference amount, the hub device (202) may execute a method for generating (or installing) a device driver in the external hub device. Such a method will be illustrated and described with reference to FIG. 4, FIG. 5, FIG. 6, FIG. 7a, and / or FIG. 7b. For example, the hub device (202) may include components for providing such a method. Such components will be described and illustrated in more detail with reference to FIG. 3.

[0057] FIG. 3 illustrates a simplified block diagram of an exemplary hub device (202).

[0058] The hub device (202) may be an electronic device capable of performing the function of the hub device (202) illustrated in FIG. 2. For example, the hub device (202) may be one of various types of mobile devices capable of performing the function of the hub device (202), such as a laptop, smartphones with various form factors (e.g., bar-type smartphones, foldable-type smartphones, or rollable-type smartphones), a smart monitor, a smart TV (television), a tablet, a cellular phone, and other similar computing devices. The hub device (202) may be referred to as a user device, a multi-functional device, or a portable device.

[0059] Referring to FIG. 3, the hub device (202) may include at least one processor (300), memory (310), and / or communication circuit (330). For example, at least one processor (300), memory (310), and / or communication circuit (330) may be electronically and / or operably coupled with each other by a communication bus. Hereinafter, operably coupled hardware components may mean that a direct or indirect connection between hardware components is established wired or wirelessly so that a second hardware component is controlled by a first hardware component among the hardware components. The hardware components illustrated in FIG. 3 are illustrated based on different blocks, but the present disclosure is not limited thereto.

[0060] According to one embodiment, the hub device (202) may include a core module (301). At least a portion of at least one processor (300), memory (310), and / or communication circuit (330) may be included in the core module (301). For example, at least a portion of at least one processor (300), memory (310), and / or communication circuit (330) may be included in a single integrated circuit, such as a system on chip (SoC) or a system in package (SIP). The core module (301) may be referred to as a hub core. The type and / or number of hardware components included in the hub device (202) are not limited to those shown in FIG. 3. For example, the hub device (202) may include only some of the hardware components shown in FIG. 3.

[0061] At least one processor (300) (e.g., an application processor (AP)) may include a hardware component for processing data based on one or more instructions. At least one processor (300) may be configured to execute instructions stored in memory (310) individually or collectively. At least one processor (300) may include a processing circuit. A hardware component for processing data may include, for example, an arithmetic and logic unit (ALU), a floating point unit (FPU), or a field programmable gate array (FPGA). As an example, a hardware component for processing data may include a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a microcontroller (MCU), and / or a neural processing unit (NPU). For example, at least one processor (300) may have the structure of a multi-core processor such as a dual core, a quad core, or a hexa core. At least one processor (300) of FIG. 3 may have substantially the same content as the processor (120) of FIG. 1.

[0062] Memory (310) may include a hardware component for storing data and / or instructions that are input to and / or output from at least one processor (300). Memory (310) may include one or more storage media. Memory (310) may include volatile memory, such as random-access memory (RAM), and / or non-volatile memory, such as read-only memory (ROM). Volatile memory may include at least one of dynamic RAM (DRAM), static RAM (SRAM), cache RAM, or pseudo SRAM (PSRAM). Non-volatile memory may include at least one of programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), flash memory, hard disk, compact disk, or embedded multimedia card (EMMC). The specific details regarding the memory (310) of Fig. 3 can be substantially applied in the same way as the details regarding the memory (130) of Fig. 1.

[0063] The communication circuit (330) may include hardware components to support the transmission and / or reception of signals between the hub device (202) and an external electronic device (e.g., electronic device (210, 220)). The communication circuit (330) may include hardware components to support the transmission and / or reception of signals between the hub device (202) and a server device (e.g., server device (201)). For example, the communication circuit (330) may include at least one of a modem, an antenna, or an O / E (optic / electronic) converter. The communication circuit (330) may support the transmission and / or reception of electrical signals based on various types of protocols such as Ethernet, LAN (local area network), WAN (wide area network), WiFi (wireless fidelity), Bluetooth, BLE (Bluetooth low energy), Zigbee, Thread, matter, LTE (long term evolution), 5G NR (new radio), and NFC (near field communication). The communication circuit (330) may include a communication circuit for each of the various types of protocols described above. The specific details regarding the communication circuit (330) of FIG. 3 may substantially apply the communication module (190) and / or antenna module (197) of FIG. 1.

[0064] A device driver (340) may be used to execute the operation of an electronic device (e.g., electronic device (210, 220)) connected to the hub device (202) or to interpret data received from an electronic device (e.g., electronic device (210, 220)) connected to the hub device (202) (e.g., data obtained from electronic device (210, 220)). The device driver (340) may be referred to as an edge driver. The device driver (340) may be used to convert the format of a message (e.g., Zigbee cluster library message) according to a communication protocol (e.g., Zigbee) used by the electronic device (e.g., electronic device (210, 220)) into a format that the hub device (202) can understand. Additionally, the device driver (340) may be used to convert a control signal received from a server device (e.g., server device (201)) into a data format of a communication protocol used by an electronic device (e.g., electronic device (210, 220)). For example, the device driver (340) may be used to transmit a control signal from the server device to the electronic device.

[0065] According to one embodiment, the device driver (340) may be included within the hub device (202) by the manufacturer of the hub device (202). In another example, the hub device (200) may receive the device driver (340) from a server device (e.g., server device (201)). For example, the hub device (200) may receive data for the installation (or creation) of the device driver (340) from the server device (e.g., server device (201)). In yet another example, the hub device (200) may obtain the device driver (340) through a wired connection with a storage medium having the device driver (340).

[0066] FIG. 4 illustrates an example of a multi-hub system including a hub device (401) and an external hub device (402). The hub device (401) may be an example of the hub device (202) of FIG. 2 and FIG. 3. The external hub device (402) may be an example of the hub device (202) of FIG. 2 and FIG. 3.

[0067] Referring to FIG. 4, the hub device (401) may be connected to an electronic device (210) and / or an electronic device (220). For convenience of explanation in FIG. 4, the electronic device (210) and the electronic device (220) are connected to the hub device (401), but the embodiments are not limited thereto. As a non-limiting example, the electronic device (210) may be connected to the hub device (401) and the electronic device (220) may be connected to an external hub device (402). In embodiments of the present disclosure, the electronic devices (210, 220) may be referred to as end devices and / or equivalent technical terms in terms of being connected to the hub device (401).

[0068] According to one embodiment, the hub device (401) may be used to control the electronic device (210) and / or the electronic device (220). The hub device (401) may include a first core module (410), a first device driver (411), and / or a virtual device driver (430). Since the first core module (410) may be substantially the same as the core module (301) of FIG. 3, a redundant description is omitted.

[0069] According to one embodiment, the first device driver (411) may be substantially identical to the device driver (340) of FIG. 3, so a redundant description is omitted. The first device driver (411) may be used to control an electronic device (210) connected to a hub device (401). The hub device (401) may transmit a control signal received from a server device (201) to the electronic device (210) using the first device driver (411). The hub device (401) may execute a process for controlling the electronic device (210) using the first device driver (411).

[0070] According to one embodiment, the hub device (401) may establish a connection with the electronic device (220) after establishing a connection with the electronic device (210). The hub device (401) may create or install a virtual device driver (430). Creating the virtual device driver (430) may include activating the virtual device driver (430). The virtual device driver (430) may be associated with a second device driver (412) within the external hub device (402). The virtual device driver (430) may be used to perform communication with the external hub device (402). For example, the hub device (401) may use the virtual device driver (430) to perform communication with the second device driver (412) within the external hub device (402). For example, the hub device (401) can establish a communication channel between the hub device (401) and the external hub device (402) using a virtual device driver (430). For example, the hub device (401) can transmit a control signal received from the server device (201) to the second device driver (412) within the external hub device (402) using the virtual device driver (430). For example, the hub device (401) can communicate with the second device driver (412) using the virtual device driver (430) to transmit a control signal from the server device (201) to the second electronic device (220). For example, the virtual device driver (430) can be used as a proxy to relay communication between the server device (201) and the second device driver (412). For example, a process for controlling an electronic device (220) may be executed in a second device driver (412) within an external hub device (402). In an example that is not limited to, a virtual device driver (430) may be used not only to communicate with the second device driver (412) but also to execute at least some of the functions of the second device driver (412).

[0071] The external hub device (402) may include a second core module (420) and / or a second device driver (412). Since the second core module (420) may be substantially identical to the core module (301) of FIG. 3, redundant descriptions will be omitted. Since the second device driver (412) may be substantially identical to the device driver (340) of FIG. 3, redundant descriptions will be omitted. The second device driver (412) may be used to execute a process for controlling the electronic device (220). The external hub device (402) may execute a process for controlling the electronic device (220) by using a memory (e.g., memory (310)) within the second core module (420). The external hub device (402) can convert a control signal for an electronic device (220) into a data format that can be understood by the hub device (401) and / or the external hub device (402) using the second device driver (412). The control signal for the electronic device (220) can be received from the server device (201) through the virtual device driver (430) within the hub device (401).

[0072] According to one embodiment, the communication channel between the hub device (401) and the external hub device (402) may be an encrypted secure channel. A security protocol may be used for the secure channel. To establish the secure channel, the hub device (401) and the external hub device (402) may perform an authentication procedure using cryptographic keys (e.g., public key, symmetric key). As an example, without limitation, a technique for data integrity (e.g., message authentication code, digital signature) may be used for the secure channel. For example, the communication channel between the hub device (401) and the external hub device (402) may be established based on various types of communication protocols capable of constituting a secure channel. For example, the communication protocol of the communication channel between the hub device (401) and the external hub device (402) may be the same as or different from the communication protocol between the hub device (401) and the electronic device (210) (or the electronic device (220)). For example, the communication protocol between the hub device (401) and the electronic device (210) (or the electronic device (220)) may be 'Zigbee', and the communication protocol of the communication channel between the hub device (401) and the external hub device (402) may be 'Wi-Fi'. For example, the first coverage of the communication protocol between the hub device (401) and the electronic device (210) (or the electronic device (220)) may be shorter than the second coverage of the communication protocol of the communication channel between the hub device (401) and the external hub device (402). For example, the longer the coverage of the communication protocol of the communication channel between the hub device (401) and the external hub device (402), the greater the scalability of the multi-hub system. As the scalability of the multi-hub system increases, the user experience provided to the user may be enhanced.

[0073] The creation of a virtual device driver (430) by a hub device (401) and the use of the virtual device driver (430) will be described and illustrated with reference to FIGS. 5, FIGS. 6, FIGS. 7a and / or FIGS. 7b.

[0074] FIG. 5 illustrates examples of operations in which a hub device (401) and an external hub device (402) are registered with a server device (201).

[0075] Referring to FIG. 5, in operation 501, a hub device (401) (e.g., at least one processor (300)) can transmit information of the hub device (401) to a server device (201). The information of the hub device (401) can be used to register the hub device (401) with the server device (201). The information of the hub device (401) may include user information of the hub device (401) (e.g., user account information), location information of the hub device (401), and / or unique information of the hub device (401). For example, the server device (201) can register the hub device (401) based on receiving information of the hub device (401).

[0076] In operation 503, the server device (201) may transmit identification information and synchronization information to the hub device (401) in response to registering the hub device (401). The identification information may include an identifier (ID) issued to the hub device (401). The identification information may be shared between the hub device (401) and the server device (201). The synchronization information may include information registered in the server device (201) in conjunction with the user information of the hub device (401).

[0077] In operation 505, the external hub device (402) can transmit information of the external hub device (402) to the server device (201). The information of the external hub device (402) can be used to register the external hub device (402) with the server device (201). The information of the external hub device (402) may include user information of the external hub device (402) (e.g., user account information), location information of the external hub device (402), and / or unique information of the external hub device (402). For example, the server device (201) can register the external hub device (402) based on receiving information of the external hub device (402).

[0078] According to one embodiment, the user information of the hub device (401) and the user information of the external hub device (402) may correspond. For example, the data represented by the user information of the hub device (401) and the data represented by the user information of the external hub device (402) may be the same.

[0079] According to one embodiment, the location information of the hub device (401) may correspond to the location information of the external hub device (402). The area (or indoor space) represented by the location information of the hub device (401) may be the same as the area (or indoor space) represented by the location information of the external hub device (402).

[0080] In operation 507, the server device (201) may transmit identification information and synchronization information to the external hub device (402) in response to registering the external hub device (402). The identification information may include an identifier (ID) issued to the external hub device (402). The identification information may be shared between the external hub device (402) and the server device (201). The synchronization information may include information registered in the server device (201) in conjunction with the user information of the external hub device (402).

[0081] In operation 509, the server device (201) can create a multi-hub group including the hub device (401) and the external hub device (402) based on identifying that the location information of the hub device (401) corresponds to the external hub device (402). For example, the server device (201) can identify that the hub device (401) is included within an area obtained through the location information of the external hub device (402). The server device (201) can determine the hub device (401) as the main hub device and the external hub device (402) as the sub-hub device. The server device (201) can register the hub device (401) and the external hub device (402) as a multi-hub group.

[0082] FIG. 6 illustrates examples of operations performed between a hub device (401) and a server device (201) to generate a first device driver in a hub device (401).

[0083] Referring to FIG. 6, in operation 601, a hub device (401) (e.g., at least one processor (300)) may receive a broadcasting signal from a first electronic device (e.g., electronic device (210)). For example, the hub device (401) may perform a scan. Based on the broadcasting signal received from the first electronic device (e.g., electronic device (210)), the hub device (401) may establish a connection with the first electronic device (e.g., electronic device (210)). The first electronic device may be referred to as a first end device.

[0084] In operation 603, a hub device (401) (e.g., at least one processor (300)) may transmit or report information of a first electronic device (e.g., electronic device (210)) to a server device (201). Information of the first electronic device (e.g., electronic device (210)) may be used to determine a first device driver (e.g., first device driver (411)) among at least one device driver within the server device (201). For example, information of the first electronic device (e.g., electronic device (210)) may include the manufacturer of the first electronic device (e.g., electronic device (210)), the type of the first electronic device (e.g., electronic device (210)), and / or unique data of the first electronic device (e.g., electronic device (210)). For example, the first device driver (411) may be used by the hub device (401) to control the first electronic device (e.g., electronic device (210)). For example, for the first device driver (411), the descriptions of the first device driver (411) of FIG. 4 may be referenced.

[0085] In operation 605, the server device (201) can determine a first device driver (411) for controlling the first electronic device (e.g., electronic device (210)) among at least one device driver based on information of the received first electronic device (e.g., electronic device (210)). For example, the server device (201) can determine a first device driver (411) for controlling the first electronic device (e.g., electronic device (210)) among at least one device driver by performing a fingerprinting method.

[0086] In operation 607, the server device (201) may transmit or provide the first device driver (411) to the hub device (401). For example, transmitting the first device driver (411) may include transmitting data (e.g., an installation file) for installing the first device driver (411).

[0087] According to one embodiment, a hub device (401) (e.g., at least one processor (300)) can receive a first device driver (411). For example, the hub device (401) can create or install the first device driver (411) using data for installing the first device driver (411).

[0088] In operation 609, a hub device (401) (e.g., at least one processor (300)) can communicate with a first electronic device (e.g., electronic device (210)) using a first device driver (411). For example, the hub device (401) can execute a process for controlling the first electronic device (e.g., electronic device (210)) using the first device driver (411). For example, the hub device (401) can transmit a control signal received from the server device (201) to the first electronic device (e.g., electronic device (210)) using the first device driver (411). For example, the hub device (401) can receive or obtain information collected by the first electronic device (e.g., electronic device (210)) from the first electronic device (e.g., electronic device (210)) using the first device driver (411).

[0089] FIG. 7a illustrates examples of operations of a hub device (401), an external hub device (402), and a server device (201) for generating a virtual device driver (e.g., a virtual device driver (430)) in a hub device (401).

[0090] Referring to FIG. 7a, in operation 701, a hub device (401) (e.g., at least one processor (300)) can communicate with a first electronic device (e.g., electronic device (210)) using a first device driver (e.g., first device driver (411)). For example, operation 701 of FIG. 7a may correspond to operation 609 of FIG. 6.

[0091] In operation 703, a hub device (401) (e.g., at least one processor (300)) may receive a broadcasting signal from a second electronic device (e.g., electronic device (220)). Based on the broadcasting signal received from the second electronic device (e.g., electronic device (220)), the hub device (401) may identify that the second electronic device (e.g., electronic device (220)) is not registered with the hub device (401). For example, the second electronic device may be referred to as a second end device.

[0092] According to one embodiment, the hub device (401) may determine whether to create a virtual device driver (430) based on the usage of memory (e.g., memory (310)). In an example that is not limited to, the hub device (401) may further determine whether to create a virtual device driver (430) based on the usage of at least one processor (e.g., at least one processor (300)) and / or the remaining capacity of memory (e.g., memory (310)). For example, the hub device (401) may determine whether the usage of at least one processor (e.g., at least one processor (300)) of the hub device (401) is greater than another reference amount based on a broadcasting signal received from a second electronic device (e.g., electronic device (220)). For example, the hub device (401) can determine whether the remaining capacity of the memory (e.g., memory (310)) of the hub device (401) is greater than the reference capacity based on a broadcasting signal received from the second electronic device (e.g., electronic device (220)).

[0093] In operation 705, the hub device (401) (e.g., at least one processor (300)) may determine that at least one condition is satisfied. At least one condition may be associated with at least one of the hub device (401), the second electronic device (e.g., electronic device (220)), or the external hub device (402). For example, the hub device (401) may execute operations 707, 709, 711, 713, 715, 717, 719, 723, and / or 725 depending on determining that at least one condition is satisfied. For example, the hub device (401) may execute the operations exemplified in FIG. 7b depending on determining that at least one condition is not satisfied. For example, at least one condition may be referenced as a condition for determining the hub device in which the second device driver (412) of the second electronic device (e.g., electronic device (220)) is installed among the hub device (401) and the external hub device (402).

[0094] According to one embodiment, at least one condition may include a condition that the usage of memory (e.g., memory (310)) is greater than a reference amount. For example, the hub device (401) may determine that the usage of the memory (e.g., memory (310)) of the hub device (401) is greater than a reference amount. For example, the usage of memory (e.g., memory (310)) may indicate how much of the resources of memory (e.g., memory (310)) including volatile memory are being consumed.

[0095] According to one embodiment, at least one condition may include a condition that the remaining capacity of the memory (e.g., memory (310)) is smaller than the reference capacity. For example, the remaining capacity of the memory (e.g., memory (310)) may indicate whether the storage space of the memory (e.g., memory (310)) including non-volatile memory is insufficient to install the second device driver (412).

[0096] According to one embodiment, at least one condition may include a condition that the usage of at least one processor (e.g., at least one processor (300)) is greater than a reference amount. For example, the usage of at least one processor (e.g., at least one processor (300)) may be related to the performance of the system of the hub device (401).

[0097] According to one embodiment, the hub device (401) may receive category information from the server device (201). For example, the category information may represent information about a second electronic device (e.g., electronic device (220)) that can be connected to the hub device (401) and / or the external hub device (402). For example, the category information may represent the type of the second electronic device (e.g., electronic device (220)) that can be connected to the hub device (401) and / or the external hub device (402). For example, the category information may represent the characteristics of the second electronic device (e.g., electronic device (220)) that can be connected to the hub device (401) and / or the external hub device (402).

[0098] According to one embodiment, at least one condition may include a condition in which category information indicates that the type of the second electronic device (e.g., the second electronic device (220)) is a battery-powered device. The category information may indicate whether the type of the second electronic device (e.g., the electronic device (220)) connectable to the hub device (401) and / or the external hub device (402) is a battery-powered device. As an example, but not limited to, the software update frequency of the battery-powered device may be lower than the software update frequency of the wired-powered device. For example, the frequency in which the second electronic device (e.g., the electronic device (220)) requires an update file transmitted from the server device (201) may be higher when the type of the second electronic device (e.g., the electronic device (220)) is a wired-powered device than when the type of the second electronic device (e.g., the electronic device (220)) is a battery-powered device. The higher the frequency with which update files transmitted from the server device (201) are required, the more advantageous it may be to install the second device driver (412) on the hub device (401) in terms of resources for the entire hub device (401) and external hub device (402).

[0099] According to one embodiment, at least one condition may include a condition indicating that the type of the second electronic device (e.g., the second electronic device (220)) is not associated with a security system. According to one embodiment, at least one condition may include a condition indicating that the type of the second electronic device (e.g., the second electronic device (220)) is not associated with a safety system. As an example not limited to, when rapid transmission and reception of data between the second electronic device and the server device (201) is required, such as between the hub device (401) and the external hub device (402), it may be advantageous in terms of user experience to install the second device driver (412) on the hub device (401). For example, the type associated with the safety system may include an alarm, a leak detection sensor, and / or a smoke detector, but the embodiments are not limited. For example, types related to the security system may include door opening sensors, door locks, motion detection sensors, occupancy detection sensors, and / or cameras, but the embodiments are not limited.

[0100] According to one embodiment, at least one condition may include a condition that the distance between the external hub device (402) and the second electronic device (e.g., electronic device (220)) is shorter than the distance between the hub device (401) and the electronic device (e.g., electronic device (220)). For example, the hub device (401) may identify the distance between the hub device (401) and the electronic device (e.g., second electronic device (220)) based on a signal transmitted or broadcast from the second electronic device (e.g., electronic device (220)). For example, the hub device (401) may identify the distance between the hub device (401) and the electronic device (e.g., second electronic device (220)) based on the strength of the signal transmitted from the second electronic device (e.g., electronic device (220)). For example, the hub device (401) can receive information from the external hub device (402) indicating the distance between the external hub device (402) and the second electronic device (e.g., electronic device (220)).

[0101] According to one embodiment, the hub device (401) may execute operation 707 as at least one condition is satisfied. The hub device (401) may decide to install a second device driver (412) for controlling a second electronic device (e.g., electronic device (220)) on an external hub device (402) as at least one condition is satisfied. The hub device (401) may decide to create or install a virtual device driver (430) as at least one condition is satisfied.

[0102] In operation 707, a hub device (401) (e.g., at least one processor (300)) may transmit information of a second electronic device (e.g., electronic device (220)) to the external hub device (402) in order to request information of the external hub device (402). The external hub device (402) may determine whether to create (or install) a second device driver (412) for controlling the second electronic device (e.g., electronic device (220)) based on the received information of the second electronic device (e.g., electronic device (220)). The information of the external hub device (402) may indicate whether the external hub device (402) can create a second device driver (412). As an example not limited to, the information of the external hub device (402) may include the usage of the memory of the external hub device (402), the remaining capacity of the memory of the external hub device (402), and / or the usage of at least one processor of the external hub device (402).

[0103] In operation 709, the external hub device (402) can transmit information of the external hub device (402) to the hub device (401). The hub device (402) can determine whether to create a virtual device driver (430) based on the received information of the external hub device (402).

[0104] According to one embodiment, the hub device (401) may execute operation 711 if the information of the received external hub device (402) indicates that the external hub device (402) can generate a second device driver (412). In an example that is not limited to, the hub device (401) may determine whether the external hub device (402) can generate a second device driver (412) based on the usage of the memory of the external hub device (402), the remaining capacity of the memory of the external hub device (402), and / or the usage of at least one processor of the external hub device (402) included in the information of the external hub device (402). The hub device (401) may execute operation 711 based on the determination that the external hub device (402) can generate a second device driver (412).

[0105] In operation 711, the hub device (401) (e.g., at least one processor (300)) may report or transmit information about the second electronic device (e.g., electronic device (220)) and information about the external hub device (402) to the server device (201). For example, the hub device (401) may request data about the virtual device driver (430) from the server device (201). For example, the virtual device driver may be used to communicate with the second device driver (412) to be installed in the external hub device (402). The server device (201) may determine the second device driver (412) among at least one device driver based on the information about the second electronic device (e.g., electronic device (220)) and the information about the external hub device (402). For example, the hub device (401) can determine a second device driver (412) for controlling a second electronic device (e.g., electronic device (220)) among at least one device driver by performing a fingerprinting method. For example, the hub device (401) can determine a virtual device driver (430) corresponding to the second device driver (412).

[0106] In operation 713, the server device (201) may transmit information to the hub device (401) for creating a virtual device driver (430). For example, the information for creating the virtual device driver (430) may include data (e.g., an installation file) for installing the virtual device driver (430). For example, the information for creating the virtual device driver (430) may include string data used to create the virtual device driver (430) at the hub device (401).

[0107] In operation 715, a hub device (401) (e.g., at least one processor (300)) can establish a connection between the hub device (401) and an external hub device (402). The hub device (402) can establish a communication channel between the hub device (401) and the external hub device (402). For example, the communication channel may include a security channel. For the security channel, the descriptions of the security channel in FIG. 4 may be referenced.

[0108] In operation 717, a hub device (401) (e.g., at least one processor (300)) can generate a virtual device driver (430). In response to generating the virtual device driver (430), the hub device (401) can transmit information of the virtual device driver (430) and information of the second device driver (412) to a second electronic device (e.g., electronic device (220)). For example, the hub device (401) can transmit type information of the virtual device driver (430) and type information of the second device driver (412) to the second electronic device (e.g., electronic device (220)). For example, the hub device (401) can transmit network identification information of the virtual device driver (430) (e.g., personal area network identifier) ​​to the second electronic device (e.g., electronic device (220)).

[0109] In operation 719, a hub device (401) (e.g., at least one processor (300)) may transmit information for generating a second device driver (412) to an external hub device (402). The external hub device (402) may receive information for generating a second device driver (412) from the hub device (401).

[0110] In operation 721, the server device (201) may create or install the second device driver (412) based on information for creating the second device driver (412). For example, the information for creating the second device driver (412) may include data (e.g., an installation file) for installing the second device driver (412). The server device (201) may install the second device driver (412) using the data for installing the second device driver (412).

[0111] According to one embodiment, information for creating a second device driver (412) may include the manufacturer of the second electronic device (e.g., electronic device (220)), the type of the second electronic device (e.g., electronic device (220)), and / or unique data of the second electronic device (e.g., electronic device (220)). An external hub device (402) may transmit information for creating a second device driver (412) to a server device (201) in order to request data for installing the second device driver (412). The server device (201) may determine the second device driver (412) among at least one device driver based on the information for creating the second device driver (412). The external hub device (402) may receive data for installing the second device driver (412) from the server device (201).

[0112] According to one embodiment, the external hub device (402) can transmit network identification information of the second device driver (412) to the hub device (401) based on generating the second device driver (412).

[0113] In operation 723, the server device (201) can transmit a control signal to the hub device (401) to execute the function of the second electronic device (e.g., electronic device (220)). For example, the control signal may be received from an electronic device (e.g., electronic device (101)) connected to the server device (201).

[0114] In operation 725, a hub device (401) (e.g., at least one processor (300)) can transmit a received control signal to an external hub device (402) using a virtual device driver (430). For example, the hub device (401) can transmit the control signal to the external hub device (402) using a secure channel established using the virtual device driver (430). For example, the hub device (401) can communicate with a second device driver (412) within the external hub device (402) using the virtual device driver (430) to transmit a control signal from the server device (201) to a second electronic device (e.g., electronic device (220)).

[0115] According to one embodiment, the external hub device (402) can execute a process for controlling a second electronic device (e.g., electronic device (220)) according to a received control signal.

[0116] According to one embodiment, the hub device (401) can receive a response signal for a control signal from an external hub device (402) using a virtual device driver (430). The hub device (401) can transmit the received response signal to a server device (201) using the virtual device driver (430). As another example, the hub device (401) can communicate with a second device driver (412) within the external hub device (402) using the virtual device driver (430) to transmit data obtained from a second electronic device (e.g., electronic device (220)) from the second electronic device (e.g., electronic device (220)) to the server device (201).

[0117] FIG. 7b illustrates examples of operations of a hub device (401) and a server device (201) for controlling a second electronic device (e.g., electronic device (220)) using a first device driver (e.g., first device driver (411)).

[0118] Referring to FIG. 7b, in operation 731, the hub device (401) (e.g., at least one processor (300)) may determine that at least one condition is not satisfied. For at least one condition, the descriptions of operation 705 of FIG. 7a may be referenced. Operation 731 of FIG. 7b may be an operation following operation 703 of FIG. 7a.

[0119] In operation 733, a hub device (401) (e.g., at least one processor (300)) may transmit a request signal to a server device (201). For example, the hub device (401) may request information from the server device (201) for creating a second device driver (412). For example, the request signal may be used to request information for installing or creating a second device driver (412) of a second electronic device (e.g., electronic device (220)). For example, information for installing or creating a second device driver (412) may include an installation file for the second device driver (412).

[0120] According to one embodiment, a request signal may be used to request information for controlling a second electronic device (e.g., electronic device (220)) using a first device driver (411). For example, the information for controlling the second electronic device (e.g., electronic device (220)) using the first device driver (411) may be data for updating the first device driver (411). For example, the updated first device driver (411) may be used to control the first electronic device (e.g., electronic device (210)) and the second electronic device (e.g., electronic device (220)).

[0121] In operation 735, the server device (201) may transmit information to the hub device (401) for creating a second device driver (412). For example, the information for creating the second device driver (412) may include an installation file for the second device driver (412). For example, the hub device (401) may install, create, or activate the second device driver (412) within the hub device (401) based on receiving the information for creating the second device driver (412).

[0122] According to one embodiment, the server device (201) can transmit information to the hub device (401) for controlling a second electronic device (e.g., electronic device (220)) using the first device driver (411).

[0123] In operation 737, a hub device (401) (e.g., at least one processor (300)) can communicate with a second electronic device (e.g., electronic device (220)) using a second device driver (412). The second electronic device may be referred to as a second end device. For example, the hub device (401) can execute a process for controlling the second electronic device (e.g., electronic device (220)) using the second device driver (412). For example, the hub device (401) can transmit a control signal received from the server device (201) to the second electronic device (e.g., electronic device (220)) using the second device driver (412). For example, the hub device (401) can receive or obtain data collected by the second electronic device (e.g., electronic device (220)) from the second electronic device (e.g., electronic device (220)) using the second device driver (412). For example, the hub device (401) can communicate with the second electronic device (e.g., electronic device (220)) using the second device driver (430) to transmit a control signal from the server device (201) to the second electronic device (e.g., electronic device (220)).

[0124] According to one embodiment, a hub device (401) (e.g., at least one processor (300)) may update the first device driver (411) based on information for controlling a second electronic device (e.g., electronic device (220)) using the first device driver (411). The hub device (401) may communicate with the second electronic device (e.g., electronic device (220)) using the updated first device driver (411). For example, the hub device (401) may execute a process for controlling the second electronic device (e.g., electronic device (220)) using the first device driver (411). For example, the hub device (401) may transmit a control signal received from the server device (201) to the second electronic device (e.g., electronic device (220)) using the first device driver (411). For example, the hub device (401) can receive or obtain information collected by the second electronic device (e.g., electronic device (220)) from the second electronic device (e.g., electronic device (220)) using the first device driver (411).

[0125] FIG. 8 illustrates an example of a user interface displayed in an electronic device (101). The electronic device (101) of FIG. 8 may be an example of the electronic device (101) of FIG. 1 and FIG. 2.

[0126] Referring to FIG. 8, the electronic device (101) may display a user interface for controlling or managing a hub device (e.g., hub device (401), external hub device (402)) and / or an external electronic device (e.g., electronic device (210, 220)) through a display (e.g., display module (160)). For example, the electronic device (101) may be registered with a server device (e.g., server device (201)) in conjunction with a hub device (e.g., hub device (401), external hub device (402)). For example, an external electronic device (e.g., electronic device (210, 220)) may be connected to a hub device (e.g., hub device (401), external hub device (402)). For example, the electronic device (101) may be registered with a server device (e.g., server device (201)) in conjunction with an external electronic device (e.g., electronic device (210, 220)).

[0127] According to one embodiment, the visual object (810) may correspond to a first hub device (e.g., hub device (401)). For example, the electronic device (101) may transmit a control signal to the first hub device (e.g., hub device (401)) based on user input regarding the visual object (810). For example, the electronic device (101) may display status information of the first hub device (e.g., hub device (401)) based on user input regarding the visual object (810). For example, the visual object (820) may correspond to a second hub device (e.g., external hub device (402)). For example, the electronic device (101) may transmit a control signal to the second hub device (e.g., external hub device (402)) based on user input regarding the visual object (820). For example, the electronic device (101) can display status information of a second hub device (e.g., an external hub device (402)) based on user input regarding a visual object (820).

[0128] According to one embodiment, a visual object (810) may include a visual object (811). The visual object (811) may indicate that the first hub device (e.g., hub device (401)) is the main hub device among the first hub device (e.g., hub device (401)) and the second hub device (e.g., external hub device (402)). A visual object (820) may include a visual object (821). The visual object (821) may indicate that the second hub device (e.g., external hub device (402)) is the sub-hub device among the first hub device (e.g., hub device (401)) and the second hub device (e.g., external hub device (402)).

[0129] According to one embodiment, the visual object (830) may correspond to a first external electronic device (e.g., electronic device (210)). For example, the electronic device (101) may transmit a control signal to the first external electronic device (e.g., electronic device (210)) to the first hub device (e.g., hub device (401)) based on user input regarding the visual object (830). For example, the electronic device (101) may display status information of the first external electronic device (e.g., electronic device (210)) based on user input regarding the visual object (830). For example, the electronic device (101) may display information indicating the indoor temperature. For example, the visual object (840) may correspond to a second external electronic device (e.g., electronic device (220)). For example, the electronic device (101) can transmit a control signal to the first hub device (e.g., hub device (401)) for the second external electronic device (e.g., electronic device (220)) based on user input regarding the visual object (840). For example, the electronic device (101) can display status information of the second external electronic device (e.g., electronic device (220)) based on user input regarding the visual object (840). For example, the electronic device (101) can display information indicating that the second external electronic device (e.g., electronic device (220)) has detected an external object (e.g., person, animal).

[0130] According to one embodiment, a visual object (830) may include a visual object (831). The visual object (831) may indicate that a first external electronic device (e.g., electronic device (210)) is connected to the first hub device (e.g., hub device (401)) among a first hub device (e.g., hub device (401)) and a second hub device (e.g., external hub device (402)). A visual object (840) may include a visual object (841). The visual object (841) may indicate that a second external electronic device (e.g., electronic device (220)) is connected to the first hub device (e.g., hub device (401)) among a first hub device (e.g., hub device (401)) and a second hub device (e.g., external hub device (402)).

[0131] Although not illustrated in FIG. 8, a hub device (e.g., hub device (401), external hub device (402)) to which a third external electronic device will be connected can be determined through the user interface of the electronic device (101). For example, the electronic device (101) may cause the third external electronic device to be connected to the first hub device (e.g., hub device (401)) among the first hub device (e.g., hub device (401)) and the second hub device (e.g., external hub device (402)) based on user input to a visual object (810). As an example not limited to examples, a hub device (e.g., hub device (401), external hub device (402)) to which a device driver (e.g., second device driver (412)) to perform a process for controlling the third external electronic device will be installed can be determined through the user interface of the electronic device (101). For example, the electronic device (101) may cause a device driver (e.g., a second device driver (412)) to be installed in a second hub device (e.g., an external hub device (402)) to perform a process for controlling a third external electronic device based on user input for a visual object (820). For example, the electronic device (101) may cause a virtual device driver (e.g., a virtual device driver (430)) to be installed in a first hub device (e.g., a hub device (401)).

[0132] According to one embodiment, the electronic device (101) may indicate, based on user input for a visual object (810), the usage of memory of a first hub device (e.g., hub device (401)), the remaining capacity of memory of the first hub device (e.g., hub device (401)), and / or the usage of at least one processor of the first hub device (e.g., hub device (401)). The electronic device (101) may indicate, based on user input for a visual object (820), the usage of memory of a second hub device (e.g., external hub device (402)), the remaining capacity of memory of the second hub device (e.g., external hub device (402)), and / or the usage of at least one processor of the second hub device (e.g., external hub device (402)).

[0133] According to one embodiment, the electronic device (101) may represent a list of external electronic devices controlled by a device driver (e.g., a first device driver (411)) within a first hub device (e.g., a hub device (401)) based on user input for a visual object (810). The electronic device (101) may represent a list of external electronic devices controlled by a device driver (e.g., a second device driver (412)) within a second hub device (e.g., an external hub device (402)) based on user input for a visual object (820).

[0134] In an embodiment according to the present disclosure, a device driver (e.g., a second device driver (412)) for controlling an external electronic device (e.g., an electronic device (220)) may be created within an external hub device (e.g., an external hub device (402)) depending on whether at least one condition is satisfied. For example, if at least one condition is satisfied, a process for controlling an external electronic device may be performed in the external hub device (402). For example, if at least one condition is satisfied, resources for the device driver may be distributed to the external hub device (402). For example, if the memory usage of the hub device (401) exceeds a reference amount, a process may be performed in the external hub device (402) so that memory resources can be used efficiently without waste. For example, if the usage of at least one process of the hub device (401) exceeds a reference amount, a process may be performed in the external hub device (402) so that an overload of the hub device (401) can be prevented. A multi-hub system including a hub device (401) and an external hub device (402) can ensure the execution speed of a process because resources are guaranteed. Additionally, if the type of external electronic device (e.g., electronic device (220)) is related to a safety system and / or a security system, rapid data communication between the external electronic device and the server device (e.g., server device (201)) can be ensured by performing the process at the hub device (401).

[0135] The effects obtainable from the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present disclosure belongs from the description below.

[0136] The technical problems to be solved in this disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which this disclosure pertains.

[0137] A hub device for communicating with an external hub device as described above may include a first communication circuit configured to communicate with an end device. The hub device may include a second communication circuit configured to communicate with a server device. The hub device may include a memory comprising one or more storage media for storing instructions. The hub device may include at least one processor comprising a processing circuitry. The instructions may cause the hub device to receive a signal broadcast from the end device through the first communication circuit when executed individually or collectively by the at least one processor. The instructions may cause the hub device to identify information of the end device not registered with the hub device when executed individually or collectively by the at least one processor. The above instructions may cause the hub device to determine whether at least one condition associated with at least one of the hub device, the end device, or the external hub device is satisfied when executed individually or collectively by the at least one processor. The above instructions may cause the hub device to transmit information of the end device to the external hub device so that, when the at least one condition is satisfied, the device driver of the end device is installed on the external hub device, when executed individually or collectively by the at least one processor.When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to request data for a virtual device driver to communicate with the device driver installed in the external hub device from the server device. When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to receive the data based on the request. When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to install the virtual device driver based on receiving the data. When the above instructions are executed individually or collectively by the at least one processor, as the at least one condition is satisfied, the hub device may be caused to communicate with the device driver installed in the external hub device using the virtual device driver to transmit a control signal from the server device to the end device.

[0138] According to one embodiment, the instructions may cause the hub device to request information from the server device for installing the device driver in the hub device when executed individually or collectively by the at least one processor, as the at least one condition is not satisfied. The instructions may cause the hub device to receive the information based on the request when executed individually or collectively by the at least one processor, as the at least one condition is not satisfied. The instructions may cause the hub device to install the device driver in the hub device based on receiving the information when executed individually or collectively by the at least one processor, as the at least one condition is not satisfied. The instructions may cause the hub device to communicate with the end device using the device driver in the hub device to transmit the control signal from the server device to the end device when executed individually or collectively by the at least one processor, as the at least one condition is not satisfied.

[0139] According to one embodiment, the at least one condition may include a condition that the usage of the memory is greater than a reference amount.

[0140] According to one embodiment, the at least one condition may include a condition that the remaining capacity of the memory is smaller than the reference capacity.

[0141] According to one embodiment, the at least one condition may include a condition that the usage of the at least one processor is greater than a reference amount.

[0142] According to one embodiment, the at least one condition may include a condition that the distance between the external hub device and the end device is shorter than the distance between the hub device and the end device.

[0143] According to one embodiment, the at least one condition may include a condition in which category information transmitted from the server device indicates that the type of the end device is a battery-powered device.

[0144] According to one embodiment, the at least one condition may include a condition indicating that category information transmitted from the server device indicates that the type of the end device is not associated with a security system.

[0145] According to one embodiment, the at least one condition may include a condition in which category information transmitted from the server device indicates that the type of the end device is not associated with a safety system.

[0146] According to one embodiment, a first communication protocol may be used for communication between the hub device and the end device. A second communication protocol may be used for communication between the virtual device driver installed in the hub device and the device driver installed within the external hub device. The first communication protocol and the second communication protocol may be the same. The first coverage of the first communication protocol may be shorter than the second coverage of the second communication protocol.

[0147] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the hub device may be caused to communicate with the device driver installed in the external hub device using the virtual device driver to transfer data acquired from the end device to the server device.

[0148] A method performed in a hub device having a first communication circuit configured to communicate with an end device and a second communication circuit configured to communicate with a server device, as described above, may include an operation of receiving a signal broadcast from the end device through the first communication circuit. The method may include an operation of identifying information of the end device that is not registered in the hub device. The method may include an operation of determining whether at least one condition associated with at least one of the hub device, the end device, or an external hub device is satisfied. The method may include an operation of transmitting information of the end device to the external hub device so that a device driver of the end device is installed in the external hub device as the at least one condition is satisfied. The method may include an operation of requesting data for a virtual device driver for communicating with the device driver installed in the external hub device from the server device as the at least one condition is satisfied. The method may include an operation of receiving data based on the request as the at least one condition is satisfied. The above method may include an operation of installing a virtual device driver based on receiving the data as the at least one condition is satisfied. The above method may include an operation of communicating with a device driver installed on an external hub device using the virtual device driver to transmit a control signal from the server device to the end device as the at least one condition is satisfied.

[0149] According to one embodiment, the method may include an operation of requesting information from the server device to install the device driver in the hub device as the at least one condition is not satisfied. The method may include an operation of receiving the information based on the request as the at least one condition is not satisfied. The method may include an operation of installing the device driver in the hub device based on receiving the information as the at least one condition is not satisfied. The method may include an operation of communicating with the end device using the device driver in the hub device to transmit the control signal from the server device to the end device as the at least one condition is not satisfied.

[0150] According to one embodiment, the hub device may include memory. The at least one condition may include a condition that the usage of the memory is greater than a reference amount.

[0151] According to one embodiment, the hub device may include a memory. The at least one condition may include a condition that the remaining capacity of the memory is smaller than a reference capacity.

[0152] According to one embodiment, the hub device may include at least one processor. The at least one condition may include a condition that the usage of the at least one processor is greater than a reference amount.

[0153] According to one embodiment, the at least one condition may include a condition that the distance between the external hub device and the end device is shorter than the distance between the hub device and the end device.

[0154] According to one embodiment, the at least one condition may include a condition in which category information transmitted from the server device indicates that the type of the end device is a battery-powered device.

[0155] According to one embodiment, the at least one condition may include a condition indicating that category information transmitted from the server device indicates that the type of the end device is not associated with a security system.

[0156] According to one embodiment, the at least one condition may include a condition in which category information transmitted from the server device indicates that the type of the end device is not associated with a safety system.

[0157] According to one embodiment, a first communication protocol may be used for communication between the hub device and the end device. A second communication protocol may be used for communication between the virtual device driver installed in the hub device and the device driver installed within the external hub device. The first communication protocol and the second communication protocol may be the same. The first coverage of the first communication protocol may be shorter than the second coverage of the second communication protocol.

[0158] According to one embodiment, the method may include an operation of communicating with a device driver installed in an external hub device using the virtual device driver to transmit data acquired from the end device to the server device.

[0159] In a computer-readable storage medium in which one or more programs are stored as described above, the one or more programs may include instructions that cause the hub device to receive a signal broadcast from the end device through the first communication circuit when executed by the hub device, the hub device having a first communication circuit configured to communicate with an end device and a second communication circuit configured to communicate with a server device. The one or more programs may include instructions that cause the hub device to identify information of the end device that is not registered with the hub device when executed by the hub device. The one or more programs may include instructions that cause the hub device to determine whether at least one condition associated with at least one of the hub device, the end device, or an external hub device is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to transmit information of the end device to the external hub device so that the device driver of the end device is installed on the external hub device, as the at least one condition is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to request data for a virtual device driver for communicating with the device driver installed on the external hub device from the server device, as the at least one condition is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to receive the data based on the request, as the at least one condition is satisfied when executed by the hub device.The above one or more programs may include instructions that cause the hub device to install the virtual device driver based on receiving the data when the at least one condition is satisfied when executed by the hub device. The above one or more programs may include instructions that cause the hub device to communicate with the device driver installed on the external hub device using the virtual device driver to transmit a control signal from the server device to the end device when the at least one condition is satisfied when executed by the hub device.

[0160] According to one embodiment, the one or more programs may include instructions that cause the hub device to request information from the server device for installing the device driver in the hub device when executed by the hub device, as the at least one condition is not satisfied. The one or more programs may include instructions that cause the hub device to receive the information based on the request when executed by the hub device, as the at least one condition is not satisfied. The one or more programs may include instructions that cause the hub device to install the device driver in the hub device based on receiving the information when executed by the hub device, as the at least one condition is not satisfied. The one or more programs may include instructions that cause the hub device to communicate with the end device using the device driver in the hub device to transmit the control signal from the server device to the end device when executed by the hub device, as the at least one condition is not satisfied.

[0161] According to one embodiment, the hub device may include memory. The at least one condition may include a condition that the usage of the memory is greater than a reference amount.

[0162] According to one embodiment, the hub device may include a memory. The at least one condition may include a condition that the remaining capacity of the memory is smaller than a reference capacity.

[0163] According to one embodiment, the hub device may include at least one processor. The at least one condition may include a condition that the usage of the at least one processor is greater than a reference amount.

[0164] According to one embodiment, the at least one condition may include a condition that the distance between the external hub device and the end device is shorter than the distance between the hub device and the end device.

[0165] According to one embodiment, the at least one condition may include a condition in which category information transmitted from the server device indicates that the type of the end device is a battery-powered device.

[0166] According to one embodiment, the at least one condition may include a condition indicating that category information transmitted from the server device indicates that the type of the end device is not associated with a security system.

[0167] According to one embodiment, the at least one condition may include a condition in which category information transmitted from the server device indicates that the type of the end device is not associated with a safety system.

[0168] According to one embodiment, a first communication protocol may be used for communication between the hub device and the end device. A second communication protocol may be used for communication between the virtual device driver installed in the hub device and the device driver installed within the external hub device. The first communication protocol and the second communication protocol may be the same. The first coverage of the first communication protocol may be shorter than the second coverage of the second communication protocol.

[0169] According to one embodiment, the one or more programs may include instructions that cause the hub device to communicate with the device driver installed in the external hub device using the virtual device driver to transmit data acquired from the end device to the server device when executed by the hub device.

[0170] The electronic devices according to the various embodiments disclosed in this document may be of various forms. The electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, electronic devices, or consumer electronics. The electronic devices according to the embodiments of this document are not limited to the devices described above.

[0171] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of said items unless the relevant context clearly indicates otherwise. In this document, 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" may each include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish said components from other said components and do not limit said components in any other aspect (e.g., importance or order). Where any (e.g., 1st) component is referred to as “coupled” or “connected” to another (e.g., 2nd) component, with or without the terms “functionally” or “communicationly,” it means that said any component may be connected to said other component directly (e.g., via a wire), wirelessly, or through a third component.

[0172] The term “module” as used in the various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be a component formed integrally, or a minimum unit of said component or a part thereof that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0173] Various embodiments of the present document may be implemented as software (e.g., program (140)) comprising one or more instructions stored in a storage medium (e.g., internal memory (136), external memory (138), memory (310)) readable by a machine (e.g., electronic device (101) of FIG. 1, hub device (202) of FIG. 2). For example, a processor (e.g., processor (120), at least one processor (300)) of the machine (e.g., electronic device (101), hub device (202)) may call at least one of the one or more instructions stored from the storage medium and execute it. This enables the machine to be operated to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. The storage medium readable by the machine may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily.

[0174] According to one embodiment, the method according to the various embodiments disclosed herein may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or distributed online (e.g., download or upload) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.

[0175] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities, and some of the multiple entities may be separated and placed in other components. According to various embodiments, one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to integration. According to various embodiments, operations performed by the module, program, or other components may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. A hub device for communicating with an external hub device, A first communication circuit configured to communicate with an end device; A second communication circuit configured to communicate with a server device; Memory comprising one or more storage media for storing instructions; and It includes at least one processor including a processing circuit, and When the above instructions are executed individually or collectively by the at least one processor, the hub device: A signal broadcast from the above end device is received through the first communication circuit, and Identifying information of the end device that is not registered in the hub device, and Determining whether at least one condition associated with at least one of the hub device, the end device, or the external hub device is satisfied, and As at least one of the above conditions is satisfied: Transmitting information of the end device to the external hub device so that the device driver of the end device is installed on the external hub device, and Request data for a virtual device driver for communicating with the device driver installed in the external hub device from the server device, and Receive the above data based on the above request, and Based on receiving the above data, install the virtual device driver, and Causing communication with the device driver installed in the external hub device using the virtual device driver to transmit a control signal from the server device to the end device, Hub device.

2. In Claim 1, When the above instructions are executed individually or collectively by the at least one processor, the hub device: As at least one of the above conditions is not satisfied: Request information from the server device for installing the above device driver on the hub device, and Receive the above information based on the above request, and Based on receiving the above information, install the device driver on the hub device, and Causing communication with the end device using the device driver within the hub device to transmit the control signal from the server device to the end device, Hub device.

3. In Claim 1, The above at least one condition includes a condition that the usage of the memory is greater than a reference amount, Hub device.

4. In Claim 1, The above at least one condition includes a condition that the remaining capacity of the memory is smaller than the reference capacity, Hub device.

5. In Claim 1, The above at least one condition includes a condition that the usage of the above at least one processor is greater than a reference amount, Hub device.

6. In Claim 1, The above at least one condition includes a condition that the distance between the external hub device and the end device is shorter than the distance between the hub device and the end device, Hub device.

7. In Claim 1, The above at least one condition includes a condition in which category information transmitted from the server device indicates that the type of the end device is a battery-powered device. Hub device.

8. In Claim 1, The above at least one condition includes a condition in which category information transmitted from the server device indicates that the type of the end device is not associated with a security system, Hub device.

9. In Claim 1, The above at least one condition includes a condition in which category information transmitted from the server device indicates that the type of the end device is not associated with a safety system, Hub device.

10. In Claim 1, A first communication protocol is used for communication between the hub device and the end device, and A second communication protocol is used for communication between the virtual device driver installed in the hub device and the device driver installed in the external hub device, and The first communication protocol and the second communication protocol are the same, or the first coverage of the first communication protocol is shorter than the second coverage of the second communication protocol. Hub device.

11. In Claim 1, When the above instructions are executed individually or collectively by the at least one processor, the hub device: Causing communication with the device driver installed in the external hub device using the virtual device driver to transfer data acquired from the end device to the server device, Hub device.

12. A method performed in a hub device having a first communication circuit configured to communicate with an end device and a second communication circuit configured to communicate with a server device, The operation of receiving a signal broadcast from the above end device through the first communication circuit, An operation to identify information of the end device that is not registered in the hub device, An operation to determine whether at least one condition associated with at least one of the hub device, the end device, or the external hub device is satisfied, and As at least one of the above conditions is satisfied: The operation of transmitting information of the end device to the external hub device so that the device driver of the end device is installed in the external hub device, The operation of requesting data for a virtual device driver for communicating with the device driver installed in the external hub device from the server device, The operation of receiving data based on the above request, Based on receiving the above data, the operation of installing a virtual device driver, and The operation of communicating with the device driver installed in the external hub device using the virtual device driver to transmit a control signal from the server device to the end device, method.

13. In Claim 12, As at least one of the above conditions is not satisfied: The operation of requesting information from the server device for installing the above device driver on the hub device, The operation of receiving the above information based on the above request, Based on receiving the above information, the operation of installing the device driver on the hub device, and The operation further includes communicating with the end device using the device driver within the hub device to transmit the control signal from the server device to the end device. method.

14. In Claim 12, The above at least one condition includes a condition that the distance between the external hub device and the end device is shorter than the distance between the hub device and the end device, method.

15. In a non-transient computer-readable storage medium storing one or more programs, When the above one or more programs are executed by a hub device having a first communication circuit configured to communicate with an end device and a second communication circuit configured to communicate with a server device, A signal broadcast from the above end device is received through the first communication circuit, and Identifying information of the end device that is not registered in the hub device, and Determining whether at least one condition associated with at least one of the hub device, the end device, or the external hub device is satisfied, and As at least one of the above conditions is satisfied: Transmitting information of the end device to the external hub device so that the device driver of the end device is installed on the external hub device, and Request data for a virtual device driver for communicating with the device driver installed in the external hub device from the server device, and Receive the above data based on the above request, and Based on receiving the above data, install a virtual device driver, and Instructions that cause the hub device to communicate with the device driver installed in the external hub device using the virtual device driver to transmit a control signal from the server device to the end device, Non-transient computer-readable storage media.