WO2022211245A1 - 전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법 - Google Patents

전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법 Download PDF

Info

Publication number
WO2022211245A1
WO2022211245A1 PCT/KR2022/001429 KR2022001429W WO2022211245A1 WO 2022211245 A1 WO2022211245 A1 WO 2022211245A1 KR 2022001429 W KR2022001429 W KR 2022001429W WO 2022211245 A1 WO2022211245 A1 WO 2022211245A1
Authority
WO
WIPO (PCT)
Prior art keywords
condition
context
electronic device
dynamic
rule
Prior art date
Application number
PCT/KR2022/001429
Other languages
English (en)
French (fr)
Inventor
김혁중
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Publication of WO2022211245A1 publication Critical patent/WO2022211245A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/30Control

Definitions

  • Various embodiments relate to an electronic device and a method of performing a task under a dynamic condition in the electronic device.
  • the Internet of Things refers to a technology in which various devices with built-in sensors and communication functions are connected to the Internet, and may provide a monitor and control function for each of various devices connected through the Internet.
  • IoT can be applied to various fields such as smart home, smart building, smart city, smart car or connected car, smart grid, healthcare, smart home appliance, and advanced medical service through various convergence with existing information technology (IT).
  • IT information technology
  • a home IoT system is a home IoT system that connects devices such as home appliances (eg TVs, air conditioners, refrigerators, etc.), energy consumption devices (eg water, electricity, air conditioning, etc.), or security devices (eg door locks, surveillance cameras, etc.) connected to the communication network.
  • devices such as home appliances (eg TVs, air conditioners, refrigerators, etc.), energy consumption devices (eg water, electricity, air conditioning, etc.), or security devices (eg door locks, surveillance cameras, etc.) connected to the communication network.
  • a system that can be monitored or controlled.
  • a user may connect and control devices in a home using a mobile terminal.
  • Home IoT systems have evolved from remote control, so that artificial intelligence (AI) devices learn the situation and the user's preferences, and provide the appropriate results by themselves.
  • AI artificial intelligence
  • an electronic device or a server capable of controlling a plurality of devices in a house may generate and store a rule so that the plurality of devices may perform a task corresponding to a condition.
  • a rule stored in an electronic device or a server capable of controlling a plurality of devices in the house includes a simple condition and a task indicating the operation of a specific device. In the case of a rule containing a task that indicates performing an action on a non-specific device, it cannot be executed.
  • an electronic device capable of executing a rule including a dynamic condition including a complex condition and a task indicating performing an action for a non-specific device, and a method for performing a task with a dynamic condition in the electronic device.
  • An electronic device includes a communication module, a memory, and a processor, wherein the processor checks a rule including a dynamic condition and a dynamic task to be executed when the dynamic condition is performed according to the dynamic condition, and checks the dynamic condition If at least one context that can be detected is detected, and when the at least one context is confirmed based on information related to a plurality of external devices, the satisfaction of the dynamic condition is determined, and when the satisfaction of the dynamic condition is determined, the plurality of determine at least one device for performing the dynamic task among external devices of
  • a method of performing a task under a dynamic condition in an electronic device includes an operation of checking a rule including a dynamic condition and a dynamic task to be executed when the dynamic condition is performed according to the dynamic condition, and at least one of identifying the dynamic condition.
  • Detecting a context of The method may include determining at least one device for performing the dynamic task among devices, and requesting the at least one device to perform the dynamic task through the communication module.
  • the electronic device may support a rule including a dynamic condition including a complex condition and a task indicating operation performance for a non-specific device.
  • FIG. 1 is a diagram illustrating an Internet of things (IoT) system according to various embodiments of the present disclosure
  • FIG. 2 is a block diagram of an electronic device in a network environment according to various embodiments of the present disclosure
  • FIG. 3 is a block diagram of an electronic device according to various embodiments of the present disclosure.
  • FIG. 4 is a diagram illustrating an electronic device capable of executing a dynamic task according to a dynamic condition according to various embodiments of the present disclosure
  • FIG. 5 is a flowchart illustrating an operation of executing a dynamic task according to a dynamic condition in an electronic device according to various embodiments of the present disclosure
  • FIG. 1 is a diagram illustrating an Internet of things (IoT) system 100 according to an embodiment. Meanwhile, at least some of the components of FIG. 1 may be omitted, and components not shown may be further included.
  • IoT Internet of things
  • an IoT system 100 includes a plurality of electronic devices connectable to a data network 116 or 146 .
  • the IoT system 100 includes a first IoT server 110 , a first node 120 , a voice assistance server 130 , a second IoT server 140 , and a second node. 150 , or at least one of devices 121 , 122 , 123 , 124 , 125 , 136 , 137 , 151 , 152 and 153 .
  • the first IoT server 110 may include at least one of a communication interface 111 , a processor 112 , and a storage unit 113 .
  • the second IoT server 140 may include at least one of a communication interface 141 , a processor 142 , and a storage unit 143 .
  • “IoT server” in this document is, for example, based on a data network (eg, data network 116 or data network 146), a relay device (eg, the first node 120 or the second node ( 150)), or directly without a relay device, one or more devices (eg, devices 121,122,123,124,125,151,152,153) may be remotely controlled and/or monitored.
  • a “device” herein means a sensor, home appliance, office electronic device, or A device for performing a process, the type is not limited.
  • a device that receives the control command and performs an operation corresponding to the control command may be called a “target device”.
  • the IoT server may be referred to as a central server in that it selects a target device from among a plurality of devices and provides a control command.
  • the first IoT server 110 may communicate with the devices 121 , 122 , and 123 through the data network 116 .
  • the data network 116 may refer to a network for long-distance communication, such as, for example, the Internet, or a computer network (eg, LAN or WAN), or may include a cellular network.
  • the first IoT server 110 may be connected to the data network 116 through the communication interface 111 .
  • the communication interface 111 may include a communication device (or communication module) for supporting communication of the data network 116 , and may be integrated into one component (eg, a single chip), or a plurality of separate components. may be implemented with components (eg, a plurality of chips).
  • the first IoT server 110 may communicate with the devices 121 , 122 , and 123 through the first node 120 .
  • the first node 120 may receive data from the first IoT server 110 through the data network 116 and transmit the received data to at least some of the devices 121 , 122 , and 123 .
  • the first node 120 may receive data from at least some of the devices 121 , 122 , and 123 , and transmit the received data to the first IoT server 110 through the data network 116 .
  • the first node 120 may serve as a bridge between the data network 116 and the devices 121 , 122 , 123 .
  • the first node 120 is illustrated as one, but this is merely exemplary, and the number is not limited.
  • a “node” in this document may be an edge computing system, or may be a hub device.
  • the first node 120 may support wired and/or wireless communication of the data network 116 , and may also support wired and/or wireless communication with the devices 121 , 122 , and 123 .
  • the first node 120 is a short-range communication network such as at least one of Bluetooth, Wi-Fi, Wi-Fi direct, Z-wave, Zig-bee, INSETEON, X10, etc.) or IrDA (infrared data association).
  • the devices 121 , 122 , and 123 may be connected to the devices 121, 122, 123 through Accordingly, the devices 121 , 122 , and 123 may be monitored and/or controlled by the service provided by the first IoT server 110 , and the devices 121 , 122 , 123 may It may not be required to have the capability of a complete network communication (eg, Internet communication) for direct connection to the first IoT server 110.
  • the devices 121 , 122 , and 123 may include, for example, a light switch, proximity Although shown as implemented as an electronic device in a home environment as a sensor, a temperature sensor, etc., this is illustrative and not limited.
  • the first IoT server 110 may support direct communication with the devices 124 and 125 .
  • direct communication is, for example, communication without a relay device such as the first node 120 , and may mean communication through a cellular communication network and/or a data network.
  • the first IoT server 110 may transmit a control command to at least some of the devices 121 , 122 , 123 , 124 and 125 .
  • the “control command” may mean data that causes a controllable device to perform a specific operation, and the specific operation is an operation performed by the device, including output of information, sensing of information, reporting of information, It may include management (eg, deletion or creation) of information, and there is no limitation on the type.
  • the processor 112 generates a control command from an external (eg, at least some of the voice assistant server 130 , the second IoT server 140 , the external system 160 , or the devices 121 , 122 , 123 , 124 , 125 ).
  • the processor 112 may generate a control command based on a result of monitoring at least some of the devices 121 , 122 , 123 , 124 and 125 satisfying a specified condition.
  • the processor 112 may control the communication interface 111 to transmit a control command to the target device.
  • the processor 112 may include a central processing unit (CPU), a digital signal processor (DSP), an application processor (AP), a communication processor (CP), or the like. It may be implemented as a combination of one or more of a general-purpose processor, a graphic processing unit (GPU), a graphics-only processor such as a vision processing unit (VPU), or an artificial intelligence-specific processor such as a neural processing unit (NPU).
  • CPU central processing unit
  • DSP digital signal processor
  • AP application processor
  • CP communication processor
  • GPU graphic processing unit
  • GPU graphics-only processor
  • VPU vision processing unit
  • NPU neural processing unit
  • the processor 112 executes instructions stored in the memory 113, for example, and there is no limitation as long as it is an arithmetic means capable of outputting the executed result.
  • the processor 112 may configure a web-based interface based on the API 114 or expose a resource managed by the first IoT server 110 to the outside. .
  • the web-based interface may support communication between the first IoT server 110 and an external web service, for example.
  • the processor 112 may, for example, allow an external system 160 to control and/or access the devices 121 , 122 , and 123 .
  • External system 160 may be, for example, an independent system that is not associated with, or is not part of, system 100 .
  • the external system 160 may be, for example, an external server or a web site. However, security is required for access to the resources of the devices 121 , 122 , 123 , or the first IoT server 110 from the external system 160 .
  • the processor 112 may expose the automation application to an API endpoint (eg, a universal resource locator (URL)) based on the API 114 to the outside.
  • the first IoT server 110 may transmit a control command to a target device among the devices 121 , 122 , and 123 .
  • the description of the communication interface 141 of the second IoT server 140 , the processor 142 , the API 144 of the storage unit 143 , and the database 145 the communication of the first IoT server 110 .
  • the description of the interface 111 , the processor 112 , the API 114 of the storage 113 , and the database 115 may be substantially the same.
  • the description of the second node 150 may be substantially the same as the description of the first node 120 .
  • the second IoT server 140 may transmit a control command to a target device among the devices 151 , 152 , and 153 .
  • the first IoT server 110 and the second IoT server 140 may be operated by the same service provider in one embodiment, but may be operated by different service providers in another embodiment.
  • the voice assistant server 130 may transmit/receive data to and from the first IoT server 110 through the data network 116 .
  • the voice assistant server 130 may include at least one of a communication interface 131 , a processor 132 , and a storage unit 133 .
  • the communication interface 131 may communicate with the smart phone 136 or the AI speaker 137 through a data network (not shown) and/or a cellular network (not shown).
  • the smart phone 136 or the AI speaker 137 may include a microphone, obtain a user voice, convert it into a voice signal, and transmit the voice signal to the voice assistant server 130 .
  • the processor 132 may receive a voice signal from the smart phone 136 or the AI speaker 137 through the communication interface 131 .
  • the processor 132 may process the received voice signal based on the stored model 134 .
  • the processor 132 may generate (or confirm) a control command using the processing result based on information stored in the database 135 .
  • the storage units 113 , 133 , and 143 may include a flash memory type, a hard disk type, a multimedia card micro type, and a card type memory (eg, SD or XD memory, etc.), RAM (RAM, Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) Memory), a magnetic memory, a magnetic disk, and an optical disk may include at least one type of non-transitory storage medium, and the type is not limited.
  • FIG. 2 is a block diagram of an electronic device 201 in a network environment 200 according to various embodiments.
  • the electronic device 201 communicates with the electronic device 202 through a first network 298 (eg, a short-range wireless communication network) or a second network 299 . It may communicate with the electronic device 204 or the server 208 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 201 may communicate with the electronic device 204 through the server 208 .
  • a first network 298 eg, a short-range wireless communication network
  • a second network 299 e.g., a second network 299 . It may communicate with the electronic device 204 or the server 208 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 201 may communicate with the electronic device 204 through the server 208 .
  • the electronic device 201 includes a processor 220 , a memory 230 , an input module 250 , a sound output module 255 , a display module 260 , an audio module 270 , and a sensor module ( 276), interface 277, connection terminal 278, haptic module 279, camera module 280, power management module 288, battery 289, communication module 290, subscriber identification module 296 , or an antenna module 297 .
  • at least one of these components eg, the connection terminal 278
  • some of these components are integrated into one component (eg, display module 260 ). can be
  • the processor 220 executes software (eg, a program 240) to execute at least one other component (eg, a hardware or software component) of the electronic device 201 connected to the processor 220 It can control and perform various data processing or operations. According to one embodiment, as at least part of data processing or computation, the processor 220 converts commands or data received from other components (eg, the sensor module 276 or the communication module 290 ) to the volatile memory 232 . may be stored in the volatile memory 232 , may process commands or data stored in the volatile memory 232 , and may store the result data in the non-volatile memory 234 .
  • software eg, a program 240
  • the processor 220 converts commands or data received from other components (eg, the sensor module 276 or the communication module 290 ) to the volatile memory 232 .
  • the volatile memory 232 may be stored in the volatile memory 232 , may process commands or data stored in the volatile memory 232 , and may store the result data in the non-volatile memory 234
  • the processor 220 includes the main processor 221 (eg, a central processing unit or an application processor) or a secondary processor 223 (eg, a graphic processing unit, a neural network processing unit (eg, a graphic processing unit) capable of operating independently or together with the main processor 221 .
  • a neural processing unit NPU
  • an image signal processor e.g. a sensor hub processor
  • a communication processor e.g. a communication processor.
  • the main processor 221 and the sub-processor 223 uses less power than the main processor 221 or is set to be specialized for a specified function.
  • the auxiliary processor 223 may be implemented separately from or as a part of the main processor 221 .
  • the auxiliary processor 223 may, for example, act on behalf of the main processor 221 while the main processor 221 is in an inactive (eg, sleep) state, or when the main processor 221 is active (eg, executing an application). ), together with the main processor 221 , at least one of the components of the electronic device 201 (eg, the display module 260 , the sensor module 276 , or the communication module 290 ). It is possible to control at least some of the related functions or states.
  • the coprocessor 223 eg, an image signal processor or a communication processor
  • may be implemented as part of another functionally related component eg, the camera module 280 or the communication module 290). have.
  • the auxiliary processor 223 may include a hardware structure specialized for processing an artificial intelligence model.
  • Artificial intelligence models can be created through machine learning. Such learning may be performed, for example, in the electronic device 201 itself on which artificial intelligence is performed, or may be performed through a separate server (eg, the server 208).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but in the above example not limited
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the above example.
  • the artificial intelligence model may include, in addition to, or alternatively, a software structure in addition to the hardware structure.
  • the memory 230 may store various data used by at least one component (eg, the processor 220 or the sensor module 276 ) of the electronic device 201 .
  • the data may include, for example, input data or output data for software (eg, the program 240 ) and instructions related thereto.
  • the memory 230 may include a volatile memory 232 or a non-volatile memory 234 .
  • the program 240 may be stored as software in the memory 230 , and may include, for example, an operating system 242 , middleware 244 , or an application 246 .
  • the input module 250 may receive a command or data to be used by a component (eg, the processor 220 ) of the electronic device 201 from the outside (eg, a user) of the electronic device 201 .
  • the input module 250 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
  • the sound output module 255 may output a sound signal to the outside of the electronic device 201 .
  • the sound output module 255 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from or as part of the speaker.
  • the display module 260 may visually provide information to the outside (eg, a user) of the electronic device 201 .
  • the display module 260 may include, for example, a control circuit for controlling a display, a hologram device, or a projector and a corresponding device.
  • the display module 260 may include a touch sensor configured to sense a touch or a pressure sensor configured to measure the intensity of a force generated by the touch.
  • the audio module 270 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound. According to an embodiment, the audio module 270 acquires a sound through the input module 250 , or an external electronic device (eg, a sound output module 255 ) connected directly or wirelessly with the electronic device 201 . The sound may be output through the electronic device 202 (eg, a speaker or headphones).
  • an external electronic device eg, a sound output module 255
  • the sound may be output through the electronic device 202 (eg, a speaker or headphones).
  • the sensor module 276 detects an operating state (eg, power or temperature) of the electronic device 201 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the sensed state. can do.
  • the sensor module 276 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 277 may support one or more specified protocols that may be used for the electronic device 201 to directly or wirelessly connect with an external electronic device (eg, the electronic device 202 ).
  • the interface 277 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • the connection terminal 278 may include a connector through which the electronic device 201 can be physically connected to an external electronic device (eg, the electronic device 202 ).
  • the connection terminal 278 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 279 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense.
  • the haptic module 279 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 280 may capture still images and moving images.
  • the camera module 280 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 288 may manage power supplied to the electronic device 201 .
  • the power management module 288 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 289 may supply power to at least one component of the electronic device 201 .
  • battery 289 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 290 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 201 and an external electronic device (eg, the electronic device 202, the electronic device 204, or the server 208). It can support establishment and communication performance through the established communication channel.
  • the communication module 290 may include one or more communication processors that operate independently of the processor 220 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 290 is a wireless communication module 292 (eg, a cellular communication module, a short-range communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 294 (eg, : It may include a local area network (LAN) communication module, or a power line communication module).
  • a wireless communication module 292 eg, a cellular communication module, a short-range communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 294 eg, : It may include a local area network (LAN) communication module, or a power line communication module.
  • a corresponding communication module among these communication modules is a first network 298 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 299 (eg, legacy It may communicate with the external electronic device 204 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a telecommunication network such as a computer network (eg, LAN or WAN).
  • a first network 298 eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network 299 eg, legacy It may communicate with the external electronic device 204 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a telecommunication network such as a computer network (eg, LAN or WAN).
  • a cellular network e.g, a 5G
  • the wireless communication module 292 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 296 within a communication network, such as the first network 298 or the second network 299 .
  • subscriber information eg, International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the electronic device 201 may be identified or authenticated.
  • the wireless communication module 292 may support a 5G network after a 4G network and a next-generation communication technology, for example, a new radio access technology (NR).
  • NR access technology includes high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency) -latency communications)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low-latency
  • the wireless communication module 292 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
  • a high frequency band eg, mmWave band
  • the wireless communication module 292 uses various technologies for securing performance in a high-frequency band, for example, beamforming, massive multiple-input and multiple-output (MIMO), all-dimensional multiplexing. It may support technologies such as full dimensional MIMO (FD-MIMO), an array antenna, analog beam-forming, or a large scale antenna.
  • the wireless communication module 292 may support various requirements specified in the electronic device 201 , an external electronic device (eg, the electronic device 204 ), or a network system (eg, the second network 299 ).
  • the wireless communication module 292 may include a peak data rate (eg, 20 Gbps or more) for realizing eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency for realizing URLLC ( Example: Downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) can be supported.
  • a peak data rate eg, 20 Gbps or more
  • loss coverage eg, 164 dB or less
  • U-plane latency for realizing URLLC
  • the antenna module 297 may transmit or receive a signal or power to the outside (eg, an external electronic device).
  • the antenna module 297 may include an antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
  • the antenna module 297 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 298 or the second network 299 is connected from the plurality of antennas by, for example, the communication module 290 . can be selected. A signal or power may be transmitted or received between the communication module 290 and an external electronic device through the selected at least one antenna.
  • other components eg, a radio frequency integrated circuit (RFIC)
  • RFIC radio frequency integrated circuit
  • the antenna module 297 may form a mmWave antenna module.
  • the mmWave antenna module comprises a printed circuit board, an RFIC disposed on or adjacent to a first side (eg, underside) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, an array antenna) disposed on or adjacent to a second side (eg, top or side) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • the command or data may be transmitted or received between the electronic device 201 and the external electronic device 204 through the server 208 connected to the second network 299 .
  • Each of the external electronic devices 202 or 204 may be the same as or different from the electronic device 201 .
  • all or part of the operations executed by the electronic device 201 may be executed by one or more external electronic devices 202 , 204 , or 208 .
  • the electronic device 201 may perform the function or service itself instead of executing the function or service itself.
  • one or more external electronic devices may be requested to perform at least a part of the function or the service.
  • One or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 201 .
  • the electronic device 201 may process the result as it is or additionally and provide it as at least a part of a response to the request.
  • cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 201 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 204 may include an Internet of things (IoT) device.
  • the server 208 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 204 or the server 208 may be included in the second network 299 .
  • the electronic device 201 may be applied to an intelligent service (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • FIG. 3 is a block diagram 300 of an electronic device according to various embodiments of the present disclosure.
  • the electronic device 301 may include a processor 320 , a memory 330 , a display 360 , and a communication module 320 .
  • the electronic device 301 is not limited to the components illustrated in FIG. 3 , and may be implemented to include more components or fewer components.
  • the electronic device 301 may be implemented to further include the components described above with reference to FIG. 1 or FIG. 2 .
  • the electronic device 301 may be a device that provides a service using edge computing, and may include the first IoT server 110 , the voice assistant server 130 of FIG. 1 , or the second IoT server 140 of FIG. 1 . ), the electronic device 201 of FIG. 2 , or at least one of an electronic device to be described later.
  • the electronic device 301 as a host device capable of performing a Home IoT Edge function, establishes communication with the plurality of external devices (eg, the devices 121,122,123,124,125,151,152,153 of FIG. 1 ). may manage the plurality of external devices while transmitting/receiving information with each of the plurality of devices in the home.
  • the plurality of external devices eg, the devices 121,122,123,124,125,151,152,153 of FIG. 1 .
  • the processor 320 may control the overall operation of the electronic device 301 .
  • the processor 320 may include one or more processors.
  • the processor 320 may be included in at least one of the processor 112 , the processor 132 , or the processor 142 of FIG. 1 , or the processor 220 of FIG. 2 .
  • the processor 320 may control the memory 320 and the communication module 390 , and may perform operations performed in an electronic device according to various embodiments to be described later.
  • the processor 320 may identify at least one rule including a dynamic condition and a dynamic task executed according to the dynamic condition.
  • the processor 320 may be configured by a user through at least one rule received from a server (eg, the server 208 of FIG. 2 ) or/and an interface provided by the electronic device 301 .
  • the rule may be checked in the memory 330 in which at least one provided rule is stored.
  • the processor 320 may check the rule acquired through the user's utterance.
  • the processor 320 may determine whether the dynamic condition is satisfied by using at least one context in a rule including a dynamic condition and a dynamic task executed according to the dynamic condition.
  • the processor 320 may distinguish at least one first phrase corresponding to a condition from among a plurality of phrases included in the rule and at least one second phrase for performing a dynamic task.
  • the processor 320 may identify at least one phrase including a conditional phrase (eg, if, if, if, etc.) as at least one first phrase corresponding to the condition.
  • the processor 320 sets the condition as a dynamic condition. can be decided with
  • the processor 320 may store in the memory 330 a plurality of contexts including at least one context received from a server and/or at least one context input by a user. .
  • the plurality of contexts include user identification information and a first context for confirming the user's location, and status information (eg, power on/off, content information, and volume information of a plurality of external devices located in the home). etc.) a second context for confirmation, a third context for confirming the user's utterance, and a method for confirming the configuration of a plurality of external devices located in the house (eg, whether a screen is included, whether a speaker is included, whether a microphone is included, etc.) It may include 4 contexts, and a fifth context for confirming date and time information.
  • the type of the context is not limited, and the context may be automatically or manually added, modified, or deleted.
  • the processor 320 analyzes at least one first phrase corresponding to the dynamic condition, checks at least one condition based on the first phrase, and stores the at least one condition in the memory 330 . At least one context that can be confirmed in the at least one condition among a plurality of stored contexts may be detected.
  • the processor 320 uses information related to a plurality of external devices managed by the electronic device 301 and a checking method for checking the at least one context in the memory 330 . , when a situation that satisfies the at least one context is identified, it may be determined that the dynamic condition is satisfied.
  • the processor 320 may provide information related to the plurality of external devices (eg, location information, state information, utterance information, and configuration) from each of the plurality of external devices managed by the electronic device 301 . information, etc.).
  • information related to the plurality of external devices eg, location information, state information, utterance information, and configuration
  • the processor 320 may store the plurality of contexts and a confirmation method for identifying each of the plurality of contexts in the memory 330, and a plurality of confirmation methods are stored in one context.
  • the processor 320 may be configured to receive user identification information (eg, mobile terminal identification information), location information, door sensor information, or camera information received from the user's mobile terminal as a method of checking the first context. At least one of the received image information may be used, status information received from a plurality of external devices may be used as a method of checking the second context, and received from a plurality of external devices as a method of checking the third context One user's utterance information may be used.
  • the processor 320 may use configuration information received from a plurality of external devices as a method of checking the fourth context, and may use date and/or time information as a method of checking the fifth context.
  • the TV content viewed in the living room is continuously played on the TV in the room.
  • the phrase “if the user enters the room while the user is watching TV in the living room alone” including a conditional phrase such as “if” may be identified as at least one first phrase corresponding to the dynamic condition.
  • the processor 320 analyzes at least one first phrase corresponding to a condition such as "if the user enters the room in a situation where the user is watching TV in the living room alone", and "non-specific watching TV in the living room”
  • a first condition such as “the user is moving from the current location to another location” and a second condition such as “the TV is on in the living room” may be checked.
  • the processor 320 is the user's first condition, such as "the non-specific user watching TV in the living room is moving from the current location to another location" among the plurality of contexts stored in the memory 330 .
  • Status information eg, power on
  • a plurality of external devices located in the premises that can check identification information and a first context for confirming the user's location and a second condition such as "TV is on in the living room" /off state
  • the processor 320 the user's identification information received from the user's mobile terminal through the first context confirmation method (eg, a method of using the user's identification information and the user's location information received from the user's mobile terminal) , based on the location information of the user, the information of the door sensor, or the image information received from the camera, the user watching TV alone in the living room can be identified as User A, and it can be confirmed that the user A has moved from the living room to the room .
  • the processor 320 based on the power information of the TV received from the TV located in the living room, through the second context checking method (eg, a method using state information received from a plurality of external devices), You can check whether the TV's power is on.
  • the processor 320 based on the method of identifying the first context and the method of identifying the second context, performs the “user in a situation where the user is watching TV in the living room” corresponding to the first context and the second context. It can be determined that the above dynamic condition is satisfied by confirming that the bag has moved to the bag.
  • the processor 320 is, "When there is only one person in the house, and when a person approaches any TV among TVs, if the content is being played on other TVs other than the TV accessed by the person, the content is displayed.
  • the phrase "if content is being played on a TV other than the TV that the person has approached” may be identified as at least one first phrase corresponding to the dynamic condition.
  • the processor 320 is configured to correspond to a condition such as "If there is only one person in the house and when a person approaches a TV among TVs, content is being played on another TV other than the TV that the person has accessed”
  • a condition such as “If there is only one person in the house and when a person approaches a TV among TVs, content is being played on another TV other than the TV that the person has accessed”
  • a first condition such as “check the location of a non-specific user in the house” and a second condition such as “the TV is currently on” may be identified.
  • the processor 320 includes a first context for determining the location of a user capable of confirming a first condition such as “checking the location of a non-specific user existing in the home” among a plurality of contexts stored in the memory 330 , and It is possible to detect a second context for checking status information (eg, power on/off status) of a plurality of external devices located in the house capable of checking a second condition such as “the TV is currently on”. have.
  • a first context for determining the location of a user capable of confirming a first condition such as “checking the location of a non-specific user existing in the home” among a plurality of contexts stored in the memory 330 .
  • a second context for checking status information eg, power on/off status
  • the processor 320 the user's identification information received from the user's mobile terminal through the first context confirmation method (eg, a method of using the user's identification information and the user's location information received from the user's mobile terminal) , based on the user's location information, door sensor information, or image information received from the camera, it is possible to identify a user who is alone in the house as user B, and to check the TV closest to the user based on user B's location. .
  • the processor 320 based on the power information of the TV received from the TV that is currently powered on, through the second context checking method (eg, a method using status information received from a plurality of external devices) , you can check the TV that is currently powered on.
  • the processor 320 based on the method of identifying the first context and the method of identifying the second context, performs the “TV1 close to the user when the user is alone at home” corresponding to the first context and the second context. If it is checked that the power is in an off state and the power in TV2 other than TV1 is in an on state”, it may be determined that the dynamic condition is satisfied.
  • the processor 320 in the rule of "if an utterance related to announcement is obtained in the living room, notify the family located in the house", "in the living room announcement and When a related utterance is obtained, the phrase " may be identified as at least one first phrase corresponding to the dynamic condition.
  • the processor is configured to analyze at least one first phrase corresponding to a condition such as “if an utterance related to a notice is obtained in the living room” and a first condition such as “user presence in the living room” and “an utterance related to an announcement” and The same second condition can be confirmed.
  • the processor 320 includes a first context for confirming the location of a user capable of confirming a first condition such as “there is a user in the living room” among a plurality of contexts stored in the memory 330 and a “speech related to announcement” and A third context for confirming the same second condition may be detected.
  • the processor 320 receives the location information received from the user's mobile terminal, the door sensor information, or the camera through the first context confirmation method (eg, a method using the location information received from the user's mobile terminal). Based on the image information, it can be confirmed that the user is located alone in the living room.
  • the processor 320 is configured to check at least one phrase (eg, " Let everyone know"), it is possible to confirm the occurrence of the user's utterance related to the announcement.
  • the processor 320 based on the first context identification method and the third context identification method, determines that “an announcement-related utterance has been acquired in the living room” corresponding to the first context and the third context. Upon confirmation, it may be determined that the above dynamic condition is satisfied.
  • the phrase “if there is a powered-on device among external devices having a screen” including the condition phrase may be identified as at least one first phrase corresponding to the dynamic condition.
  • the processor 320 analyzes at least one first phrase corresponding to a condition such as “if there is a device with power on among external devices with a screen”, and provides a method such as “check external devices with a screen” 1 condition, and the first condition such as "check that the device is powered on” can be checked.
  • the processor 320 is configured to determine a configuration state (eg, a plurality of external devices located in the home) that can check a first condition such as “check external devices with a screen” among a plurality of contexts stored in the memory 330 . screen is included) and status information (eg, power on/off state) of a plurality of external devices located in the premises that can check a fourth context for checking and a second condition such as “check device that is powered on” It is possible to detect a second context for The processor 320 is configured to check the configuration information of a plurality of external devices located in the house stored in the memory 330 through the fourth context checking method (eg, a method using configuration information received from a plurality of external devices).
  • a configuration state eg, a plurality of external devices located in the home
  • a first condition such as “check external devices with a screen” among a plurality of contexts stored in the memory 330 . screen is included
  • status information eg, power on/off state
  • At least one external device including a screen configuration among the plurality of devices may be identified.
  • the processor 320 is configured to check the second context based on power information received from a plurality of external devices located in the house through a method of checking the second context (eg, a method using state information received from a plurality of external devices). , at least one external device that is currently powered on may be identified.
  • the processor 320 based on the method of identifying the fourth context and the method of identifying the second context, determines whether the fourth context and the external devices having a screen corresponding to the second context are powered on. If the "existence of the device" is confirmed, it can be determined that the above dynamic condition is satisfied.
  • the processor 320 in the rule "If the temperature is 28 and the humidity is 60% or more, turn on the air conditioner and set the temperature to 20 degrees", "temperature is 28 and the humidity is greater than or equal to 60%" may be identified as at least one first phrase corresponding to the dynamic condition.
  • the processor 320 analyzes at least one first phrase corresponding to a condition such as "if the temperature is 28 and the humidity is 60% or more", and "external device capable of measuring temperature and A first condition such as “check external device” and a second condition such as “check device that is powered on” may be checked.
  • the processor 320 is located in the house that can check a first condition, such as "check an external device capable of measuring temperature and an external device capable of measuring humidity" among a plurality of contexts stored in the memory 330 .
  • a fourth context for checking the configuration of a plurality of external devices eg, whether a temperature measurement function is included or whether a humidity measurement function is included
  • a second condition such as “check that the device is powered on”
  • a second context for checking state information (eg, power on/off state) of a plurality of external devices may be detected.
  • the processor 320 checks the configuration information of a plurality of external devices located in the house stored in the memory 330 through the fourth context checking method (eg, a method using configuration information received from a plurality of external devices).
  • the processor 320 is configured to check the second context based on the power state information received from a plurality of external devices located in the house through the method (a method of using state information received from a plurality of external devices). It can be confirmed that the power of an external device capable of measuring temperature and an external device capable of measuring humidity is on.
  • the processor 320 based on the method of identifying the fourth context and the method of identifying the second context, determines that "the temperature is 28 and the humidity is 60% or more" corresponding to the fourth context and the second context. Upon confirmation, it may be determined that the above dynamic condition is satisfied.
  • the processor 320 in the rule "when the user arrives at home while listening to music, continuously outputs the music the user is listening to through an external device in the house", a conditional phrase such as " ⁇ if"
  • the phrase "when the user arrives home while listening to music” including
  • the processor 320 analyzes at least one first phrase corresponding to a condition such as "when the user arrives at home while listening to music", and analyzes the first condition such as "user's location” and "user's mobile terminal.”
  • a second condition such as “check status” may be checked.
  • the processor 320 includes a first context for confirming the user's location and "checking the status of the user's mobile terminal" for checking a first condition such as "user's location” among a plurality of contexts stored in the memory 330 . It is possible to detect a second context for checking status information (eg, while playing music content) of a plurality of external devices located in the house that can check the second condition such as ", and the status of the user's mobile terminal. .
  • the processor 320 receives the location information received from the user's mobile terminal, the door sensor information, or the camera through the first context confirmation method (eg, a method using the location information received from the user's mobile terminal). Based on the image information, it can be confirmed that the user has entered the house.
  • the processor 320 is configured to check the second context in the user's mobile terminal based on the state information received from the user's mobile terminal through the method (eg, a method using state information received from a plurality of external devices). You can check the currently playing music content.
  • the processor 320 may store the music content in the memory 330 upon checking the music content currently being played in the user's mobile terminal.
  • the processor 320 based on the method of identifying the first context and the method of identifying the second context, the processor 320 determines that “the user arrives at home while listening to music through the user terminal” corresponding to the first context and the second context. ", it can be determined that the above dynamic condition is satisfied.
  • the processor 320 may include a conditional phrase such as "if The phrase “when the user turns on the TV at 10 pm” may be identified as at least one first phrase corresponding to the dynamic condition.
  • the processor 320 analyzes at least one first phrase corresponding to a condition such as "when the user turns on the TV at 10 pm", and the first condition such as “check time” and “check the device that is powered on” The second condition such as " can be confirmed.
  • the processor 320 is.
  • a fifth context capable of confirming a first condition such as “check time” and a plurality of contexts located in the premises capable of checking a second condition such as “check a device that is powered on”
  • a second context for checking the state information (eg, power on/off state) of the external device of the controller may be detected.
  • the processor 320 checks the current time through the fifth context confirmation method (eg, using date and/or time information), and the second context confirmation method (eg, receives from a plurality of external devices) It can be confirmed that the power of the TV is in an on state based on power information received from a plurality of external devices located in the house through the method of using one state information).
  • the processor 320 determines “the user turned on the TV at 10 pm” corresponding to the fifth context and the second context. Upon confirmation, it may be determined that the above dynamic condition is satisfied.
  • the processor 320 determines satisfaction of the dynamic condition in a rule including a dynamic condition and a dynamic task executed according to the dynamic condition, at least one method for executing the dynamic task An external device may be identified, and the at least one identified external device may be controlled to execute a dynamic task.
  • the processor 320 dynamically generates a phrase from among a plurality of phrases included in the rule except for at least one first phrase corresponding to the condition. It can be confirmed as at least one second phrase for performing the task.
  • the processor 320 may identify the specific external device included in the second phrase as at least one external device for performing the task.
  • the processor 320 may control the at least one identified external device to execute the dynamic task.
  • the processor 320 may control to execute the dynamic task in different ways based on the identified type of the at least one external device.
  • the processor 320 may include a first context for identifying a non-specific user detected for determining a dynamic condition and a user's location, and state information (eg, power on/off state) of a plurality of external devices located in the home.
  • TV in the room and “TV in the living room” included in the second phrase may be identified as at least one external device for executing the dynamic task.
  • the processor 320 transmits a power-on command to the TV in the room and a playback command of the content along with information on the content being played in the living room, and "living room” You can send a power off command to "TV" in
  • the processor 320 is, "When there is only one person in the house, and when a person approaches any TV among TVs, if the content is being played on other TVs other than the TV accessed by the person, the content is displayed. In the rule that a person plays with a nearby TV and turns off the TV that is currently playing", the phrase “Contents that a person closes It can be confirmed as at least one second phrase for performing the dynamic task, "play on TV and turn off the power of the TV that is currently being played.”
  • the processor 320 is configured to include a first context for identifying a non-specific user detected for determining a dynamic condition and a user's location, and state information (eg, power on/off state) of a plurality of external devices located in the home.
  • the processor 320 includes a power on command to TV1 adjacent to the user, and information on the content being played on TV2 together with the content. It is possible to transmit a playback command of , and a power-off command to “TV2” in which “power is on”.
  • the processor 320 may be configured to correspond to a dynamic condition including a conditional phrase such as “if A phrase other than the first phrase, “notify a family located in the house” may be identified as at least one second phrase for performing the dynamic task.
  • the processor 320 may output a method of notifying each of the family members located in the house differently according to the type of the external device.
  • the processor 320 checks the location of the first user based on the location information of the mobile terminal of the first user among family members, and when the first user is wearing the earbuds, the audio is transmitted through the earbuds. notice can be printed.
  • the processor 320 checks the location of the second user based on the location information of the mobile terminal of the second user among family members, and when the power of the TV in the room where the second user is located is turned on , it is possible to output the announcement in video and audio through the TV.
  • the processor 320 checks the location of the third user based on the location information of the mobile terminal of the third user among family members, and if there is an AI speaker in the room where the third user is located, through the AI speaker Announcements can be output as audio.
  • the processor 320 checks the location of the fourth user based on the location information of the mobile terminal of the fourth user among family members, and when there is no external device other than the mobile terminal in the room where the fourth user is located , it is possible to output the announcement in audio through the mobile terminal.
  • a phrase other than the first phrase corresponding to the dynamic condition including the same condition phrase, “execution of content A from an external device that is turned on,” may be identified as at least one second phrase for performing the dynamic task.
  • the processor 320 is configured to: a fourth context for checking configuration states (eg, whether screens are included) of a plurality of external devices located in a home detected for determining a dynamic condition, and states of a plurality of external devices located in a home Based on the second context for checking information (eg, power on/off state), it is possible to check the "power-on external device" included in the second phrase as at least one external device for dynamic task execution. .
  • the processor 320 may transmit a reproduction command of the content A together with the information of the content A to an external device that is powered on and includes a screen configuration.
  • the processor 320 in the rule "If the temperature is 28 and the humidity is 60% or more, turn on the air conditioner and set the temperature to 20 degrees", dynamic conditions including condition phrases such as " ⁇ if" and " A phrase other than the first phrase corresponding to "Turn on the air conditioner and set the temperature to 20 degrees" may be identified as at least one second phrase for performing the dynamic task.
  • the processor 320 is included in the second phrase At least one external device for executing the dynamic task may be identified as the “air conditioner.”
  • the processor 320 may transmit a command for setting a temperature of 20 degrees to the air conditioner for executing the dynamic task.
  • the processor 320 may be A phrase other than the first phrase corresponding to the dynamic condition including the phrase "continuously output the music the user is listening to through the external device in the house” may be identified as at least one second phrase for performing the dynamic task.
  • the processor 320 is configured to provide a first context for confirming the user's location detected to determine the dynamic condition and a second context for checking status information (eg, while playing music content) of a plurality of external devices located in the home.
  • the processor 320 is a BT speaker device for executing the dynamic task, music content stored in the memory 330, content information being played in the mobile terminal (eg, content playback time (2 minutes 30 seconds) ), and the mobile terminal may transmit the content execution command together with the end time of the content).
  • the processor 320 includes conditional phrases such as " ⁇ if" and “if the user turns on the TV at 10 o'clock at night,” in the rule “turn off the light in the room where the turned on TV is located” “Turn off the light in the room in which the TV is turned on”, which is a phrase other than the first phrase corresponding to the dynamic condition, may be identified as at least one second phrase for performing the dynamic task.
  • At least one of a fifth context for checking the date and/or time for determining a dynamic condition and a second context for checking status information (eg, power on/off state) of a plurality of external devices located in the premises Based on the plurality of external devices located in the house, it is possible to identify at least one external device for executing a dynamic task for a light device in a TV room in which the power is on. For execution, a power off command may be sent to a light device in the room where the powered-on TV is located.
  • the processor 320 may generate a recommendation rule based on the user's action and provide it to the user, and may set the recommendation rule to be executed when the recommendation rule is activated by the user's selection.
  • the processor 320 when the user returns home at 7 o'clock and turns on the TV, the processor 320 creates a recommendation rule "turn on the TV when the user returns home at 7 o'clock" every day, on a specific day, or on a specific date. can be provided to users.
  • the processor 320 may be configured to execute different dynamic tasks for each user with respect to the same rule.
  • the processor 320 may create a rule saying "When the temperature is 28 and the humidity is 60% or more, the user existing in the house is classified and the temperature of the air conditioner is set", the user together with the rule Preferred temperature information set for each (eg, user A's preferred temperature is 18 degrees, user B's preferred temperature is 20 dong, etc.) may be stored in advance.
  • the processor 320 may control to set the temperature of the air conditioner in the living room to 18 degrees when only user A exists in the living room in the house, the temperature is 28 and the humidity is 60% or more.
  • the memory 330 may include a plurality of devices (eg, devices 121,122,123,124,125,151,152,153 of FIG. 1 ) in the house managed by the electronic device 301 (eg, the electronic device 201 of FIG. 2 ).
  • Device information eg, location information, status information, configuration information, etc.
  • the device may be collected and stored.
  • the memory 330 may store at least one of information transmitted through the communication module 320 or information received through the communication module 320 , and information generated by the processor 330 . .
  • the memory 330 may store at least one rule, a plurality of contexts for checking a dynamic condition included in the rule, and a plurality of checking methods for checking the plurality of contexts.
  • the memory 310 may include a volatile memory or a non-volatile memory, and may include one of the storage unit 113 , the storage unit 133 , or the storage unit 143 of FIG. 1 , or FIG. 2 . may be included in at least one of the memories 230 of the
  • the display 360 may display a function currently being performed by the electronic device 301 under the control of the processor 320 .
  • the display 36 may provide information notifying the execution of the dynamic task included in the rule.
  • the communication module 390 may include a plurality of communication circuits using different communication technologies.
  • the communication module 390 may include a mobile communication module (not shown) or a sub communication module (not shown) that performs short-range communication with a wireless LAN.
  • the communication module 390 may communicate with an external device using at least one antenna (not shown) under the control of the processor 320 .
  • the communication module 390 may include at least one of a wireless LAN module (not shown) and a short-range communication module (not shown), and includes an NFC communication module as the short-range communication module (not shown); It may include a Bluetooth legacy communication module and/or a BLE communication module.
  • the communication module 390 may transmit information for controlling the processor 320 to a plurality of external devices in the house to the mobile terminal.
  • the mobile terminal may be, for example, one of a smart phone, a tablet terminal, or a wearable device connected to an electronic device to control each external device.
  • the plurality of external devices may include, for example, home appliances (eg, TVs, air conditioners, refrigerators, etc.), energy consuming devices (eg, water, electricity, air conditioning, etc.), or security devices (eg, door locks, surveillance cameras, etc.). It may include at least one.
  • the communication module 390 may be included in at least one of the communication interface 111 , the communication interface 131 , or the communication interface 141 of FIG. 1 , or the communication module 290 of FIG. 2 . can
  • the electronic device 401 is the electronic device (eg, the first IoT server 110 , the electronic device 201 , the electronic device 301 ), the processor 320 ) illustrated in FIGS. 1 to 3 , or a combination thereof. may be implemented by or include.
  • the electronic device 401 may include a rule engine module 410 , a context collection module 430 , a device search module 450 , and a task execution module 470 .
  • the rule engine module 410 includes a rule interface module 411 , a rule storage module 413 , a rule analysis module 415 , a rule processing module 417 , a condition monitor module 419 , and a context providing module 421 . , a device processing module 423 , and a task processing module 425 .
  • the rule interface module 411 receives a rule obtained from a server (eg, the server 208 of FIG. 2 ) or a rule obtained from a user's utterance, and the rule may be transmitted to the storage module 413 .
  • a server eg, the server 208 of FIG. 2
  • the rule may be transmitted to the storage module 413 .
  • the rule storage module 413 may store at least one rule received through the rule interface module 411 .
  • the rule storage module 413 may store a rule in JSON format.
  • the rule storage module 413 may store the at least one rule and an activation state or a deactivation state for each of the at least one rule.
  • the rule storage module 413 may store a list of at least one rule stored in the rule storage module 413 .
  • the rule analysis module 415 checks at least one rule in an active state among at least one rule stored in the rule storage module 413 and analyzes the activated at least one rule.
  • the rule analysis module 415 may analyze a JSON format rule into a rule data structure, and transmit the analysis result to the rule processing module 417 .
  • the rule analysis module 415 distinguishes at least one first phrase corresponding to a dynamic condition from among a plurality of phrases included in the rule and at least one second phrase corresponding to the task, and The divided result may be transmitted to the rule processing module 417 .
  • the rule processing module 417 detects at least one context in which a dynamic condition included in the rule can be checked according to the analysis of the rule, and when the at least one context is checked, the rule In order to execute the included task, the condition monitoring module 419 , the context providing module 421 , the device processing module 423 , and the task processing module 425 may be controlled.
  • the rule processing module 417 may provide at least one context for checking a dynamic condition included in a private interest rule to the condition monitoring module 419 and the context providing module 421 . have.
  • the rule processing module 417 may request the device processing module 423 to search for at least one external device for performing the dynamic task included in the rule.
  • the rule processing module 417 determines the satisfaction of a dynamic condition by checking at least one context based on the information received from the condition monitoring module 419, and the device processing module 423 ), when information on at least one external device for performing the dynamic task is received, an execution command of the dynamic task included in the rule may be transmitted to the at least one external device to the task processing module 425 .
  • the condition monitor module 419 when receiving at least one context for checking a dynamic condition from the rule processing module 417 , the condition monitor module 419 is based on the information received from the context collection module 430 . , it is possible to determine whether to check at least one context.
  • condition monitor module 419 may check at least one context based on the information received from the context collection module 430 to display information indicating that the current dynamic condition is satisfied. It can be transmitted to the rule processing module 417 .
  • the context providing module 421 may provide at least one context for checking the dynamic condition included in the rule to the context collection module 430 .
  • the device processing module 423 may transmit a discovery request to the device discovery module 450 to at least one external device for performing the task provided from the rule processing module 417 . .
  • the device processing module 423 may transmit a search result to the rule processing module 417 to at least one external device for performing the task received from the device search module 450 . .
  • the task processing module 425 may transmit a task execution command to the task execution module 470 to at least one external device provided from the rule processing module 417 .
  • the context collection module 430 may include the condition monitor module 419 and the context among information received from a plurality of external devices in the house or information received from a plurality of external devices in the house. Information for checking at least one context received from the providing module 421 may be transmitted to the condition monitoring module 419 .
  • the device search module 450 may be configured to search for at least one external device among a plurality of external devices located in the home. When at least one external device is found, the search result may be transmitted to the device processing module 423 .
  • the task execution module 470 executes the task with the at least one external device based on a command for executing the task with the at least one external device received from the task processing module 425 . can be controlled to do so.
  • the electronic device (eg, the first IoT server 110 of FIG. 1 , the electronic device 201 of FIG. 2 , the electronic device 301 of FIG. 3 , and/or the electronic device 401 of FIG. 4 ))) includes a communication module (eg, the communication module 390 of FIG. 3 , a memory (eg, the memory 330 of FIG. 3 ), and a processor (eg, the processor 320 of FIG.
  • a communication module eg, the communication module 390 of FIG. 3
  • a memory eg, the memory 330 of FIG. 3
  • a processor eg, the processor 320 of FIG.
  • the processor comprising: , determine a rule including a dynamic condition and a dynamic task to be executed when the dynamic condition is executed according to the dynamic condition, detect at least one context capable of identifying the dynamic condition, and based on information related to a plurality of external devices, the at least If one context is confirmed, it is determined that the dynamic condition is satisfied, and when the satisfaction of the dynamic condition is determined, at least one device for performing the dynamic task among the plurality of external devices is determined, and the communication module is configured. It may be configured to request the at least one device to perform the dynamic task through the
  • the processor may be configured to confirm the rule stored in the memory or the rule acquired through a user's utterance.
  • the processor may identify at least one first phrase corresponding to a condition from among a plurality of phrases included in the rule, and the at least one first phrase may be identified as at least one context. If determined by a phrase, it can be set to confirm the condition as the dynamic condition.
  • the processor is configured to detect at least one context in which at least one first phrase corresponding to a dynamic condition can be identified from among a plurality of phrases included in the rule among a plurality of contexts stored in the memory. can be set.
  • the processor analyzes at least one first phrase corresponding to a dynamic condition from among a plurality of phrases included in the rule to identify at least one condition included in the dynamic condition, and the memory It may be set to detect at least one context in which the at least one condition can be confirmed among a plurality of stored contexts.
  • the processor may be configured to check the at least one context based on information related to the plurality of external devices and a checking method for checking at least one context stored in the memory .
  • the processor may be configured to receive information related to the plurality of external devices from each of the plurality of external devices managed by the electronic device.
  • the processor when the dynamic condition is satisfied, identifies at least one second phrase for performing a task among a plurality of phrases included in the rule, and determines the satisfaction of the dynamic condition as at least one second phrase. It may be configured to identify an external device included in the second phrase among the plurality of external devices based on one context, and determine the identified external device as at least one external device for executing the task. .
  • the processor may be configured to differently apply the execution method of the task based on the type of the at least one external device.
  • the processor may be configured to generate and provide a recommendation rule based on user's action information, and to execute the recommendation rule when the recommendation rule is activated.
  • the operation for executing the task may include operations 501 to 505 .
  • operations 501 to 505 may be omitted, the order of some operations may be changed, or another operation may be added.
  • the electronic device may identify at least one rule including a dynamic condition and a dynamic task executed according to the dynamic condition.
  • the electronic device provides at least one rule received from a server (eg, the server 208 of FIG. 2 ) or/and is provided by a user through an interface provided by the electronic device 301 .
  • the rule may be checked in the memory 330 in which at least one rule is stored.
  • the electronic device may identify the rule acquired through the user's utterance.
  • the electronic device may determine whether the dynamic condition is satisfied by using at least one context in a rule including a dynamic condition and a dynamic task executed according to the dynamic condition.
  • the electronic device may distinguish at least one first phrase corresponding to a condition from among the plurality of phrases included in the rule and at least one second phrase for performing a dynamic task.
  • the electronic device may identify at least one phrase including a conditional phrase (eg, if, if, if, etc.) as at least one first phrase corresponding to the condition.
  • the electronic device identifies the at least one first phrase corresponding to the condition as at least one context among a plurality of contexts stored in a memory (eg, the memory 330 of FIG. 3 ). Then, the condition can be determined as a dynamic condition.
  • the electronic device may store in the memory a plurality of contexts including at least one context received from the server and/or at least one context input by a user.
  • the plurality of contexts include a first context for checking the user's location, and status information (eg, power on/off, content information and volume information, etc.) of a plurality of external devices located in the house.
  • a second context e.g., a third context for confirming the user's utterance, a fourth context for checking the configuration of a plurality of external devices located in the house (eg, whether a screen is included, whether a speaker is included, whether a microphone is included, etc.), and a date and a fifth context for checking time information.
  • the type of the context is not suggested, and the context may be added, modified, or deleted automatically or manually.
  • the electronic device analyzes at least one first phrase corresponding to the dynamic condition, identifies at least one condition based on the first phrase, and selects at least one condition from among a plurality of contexts stored in the memory. At least one context that can be checked for the at least one condition may be detected.
  • the electronic device determines the at least one context by using information related to a plurality of external devices managed by the electronic device and a checking method for identifying the at least one context in the memory. If a satisfactory situation is confirmed, it may be determined that the dynamic condition is satisfied.
  • the electronic device receives information (eg, location information, state information, utterance information, configuration information, etc.) related to the plurality of external devices from each of the plurality of external devices managed by the electronic device.
  • information eg, location information, state information, utterance information, configuration information, etc.
  • the electronic device eg, the first IoT server 110 of FIG. 1 , the electronic device 201 of FIG. 2 , the electronic device 301 of FIG. 3 , and/or the electronic device 401 of FIG. 4
  • a rule including a dynamic condition and a dynamic task executed according to the dynamic condition when the satisfaction of the dynamic condition is determined, at least one external device for executing the dynamic task is identified, and the identified at least A dynamic task can be controlled to be executed by one external device.
  • the electronic device when the dynamic condition included in the rule is satisfied, performs a dynamic task on a phrase excluding at least one first phrase corresponding to the condition from among a plurality of phrases included in the rule It can be confirmed with at least one second phrase for
  • the electronic device includes information identified as at least one context detected to satisfy a dynamic condition (eg, location information of a user identified based on a user's mobile terminal, status information of an external device, and an external device).
  • a dynamic condition eg, location information of a user identified based on a user's mobile terminal, status information of an external device, and an external device.
  • the electronic device may identify the specific external device included in the second phrase as at least one external device for performing the task.
  • the electronic device may control to execute the dynamic task in at least one external device identified for dynamic task execution.
  • the electronic device may transmit a command for executing the dynamic task to the at least one identified external device.
  • the electronic device may control to execute the dynamic task in different ways based on the identified type of the at least one external device.
  • a method of performing a task with a dynamic condition in an electronic device at least an operation capable of identifying a dynamic condition and a rule including a dynamic task to be executed when the dynamic condition is performed according to the dynamic condition
  • the method may include determining at least one device for performing the dynamic task from among external devices, and requesting the at least one device to perform the dynamic task through the communication module.
  • the operation of confirming the rule may include the operation of confirming the rule stored in the memory or the rule acquired through a user's utterance.
  • the operation of checking at least one first phrase corresponding to a condition from among a plurality of phrases included in the rule; and determining the condition as the dynamic condition when the at least one first phrase is determined as a phrase that can be confirmed by at least one context is performed.
  • the method further includes detecting at least one context in which at least one first phrase corresponding to a dynamic condition can be identified from among a plurality of phrases included in the rule among a plurality of contexts stored in the memory. can do.
  • analyzing at least one first phrase corresponding to a dynamic condition from among a plurality of phrases included in the rule to check at least one condition included in the dynamic condition, and the operation stored in the memory may further include detecting at least one context in which the at least one condition can be confirmed among a plurality of contexts.
  • the method may further include checking the at least one context based on the information related to the plurality of external devices and the checking method for checking the at least one context stored in the memory.
  • the method may further include receiving information related to the plurality of external devices from each of the plurality of external devices managed by the electronic device.
  • an operation of checking as at least one second phrase for performing a task among a plurality of phrases included in the rule, the at least one context in which the satisfaction of the dynamic condition is determined based on , identifying an external device included in the second phrase among the plurality of external devices, and determining the identified external device as at least one external device for executing the task can
  • the method may further include a method of differently applying the execution method of the task based on the type of the at least one external device.
  • the method may further include generating and providing a recommendation rule based on the user's action information, and executing the recommendation rule when the recommendation rule is activated.
  • the electronic device may be a device of various types.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a laptop, a desktop, a tablet, or a portable multimedia device
  • portable medical device e.g., a portable medical device
  • camera e.g., a camera
  • a wearable device e.g., a smart watch
  • a home appliance device e.g., a smart bracelet
  • first, second, or first or second may simply be used to distinguish an element from other elements in question, and may refer elements to other aspects (e.g., importance or order) is not limited. It is said that one (eg, first) component is “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively”. When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as, for example, logic, logic block, component, or circuit.
  • a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments of the present document include one or more instructions stored in a storage medium (eg, internal memory 136 or external memory 138) readable by a machine (eg, electronic device 101).
  • a storage medium eg, internal memory 136 or external memory 138
  • the processor eg, the processor 120
  • the device eg, the electronic device 101
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium is a tangible device and does not contain a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.
  • a signal eg, electromagnetic wave
  • the method according to various embodiments disclosed in this document may be provided as included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store (eg Play Store TM ) or on two user devices ( It can be distributed (eg downloaded or uploaded) directly or online between smartphones (eg: smartphones).
  • a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a memory of a relay server.
  • each component eg, a module or a program of the above-described components may include a singular or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. have.
  • one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg, a module or a program
  • the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, or omitted. , or one or more other operations may be added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)

Abstract

다양한 실시 예들에 따른 전자 장치는, 통신 모듈, 메모리, 및 프로세서를 포함하고, 상기 프로세서는, 동적 조건 및 상기 동적 조건에 따라 때 실행되는 동적 태스크를 포함하는 규칙을 확인하고, 상기 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하고, 복수의 외부 장치들과 관련된 정보를 기반으로 상기 적어도 하나의 컨텍스트를 확인하면, 상기 동적 조건의 만족을 결정하고, 상기 동적 조건의 만족을 결정하면, 상기 복수의 외부 장치들 중 상기 동적 태스크 수행을 위한 적어도 하나의 장치를 결정하고, 상기 통신 모듈을 통해 상기 적어도 하나의 장치로 상기 동적 태스크의 수행을 요청하도록 설정될 수 있다. 그 밖에 다양한 실시 예가 제공될 수 있다.

Description

전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법
다양한 실시 예들은, 전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법에 관한 것이다.
IoT(Internet of Things)는 센서와 통신 기능을 내장한 각종 장치들이 인터넷에 연결된 기술을 의미하며, 인터넷을 통하여 연결된 각종 장치들 각각에 대한 모니터 및 제어기능을 제공할 수 있다.
IoT는 기존 정보 기술(information technology: IT)과의 다양한 융합을 통해 스마트 홈, 스마트 빌딩, 스마트 시티, 스마트 카 또는 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단 의료 서비스 등 다양한 분야에 적용될 수 있다.
홈 IoT 시스템은 통신망에 연결된 가전 제품(예: TV, 에어컨, 냉장고 등), 에너지 소비 장치(예: 수도, 전기, 냉난방 등), 또는 보안 기기(예: 도어록, 감시 카메라 등) 등의 장치들을 모니터링 또는 제어할 수 있도록 하는 시스템이다. 사용자는 이동 단말을 이용하여 댁 내의 장치들을 연결하고 제어할 수 있다. 홈 IoT 시스템은 원격 제어에서 발전하여 인공 지능(artificial intelligence: AI) 장치가 상황과 사용자의 취향을 학습하고, 이에 맞는 결과를 스스로 제공하는 방향으로 발전하고 있다.
홈 IoT 시스템에서 댁 내의 복수의 장치들을 제어할 수 있는 전자 장치 또는 서버는, 상기 복수의 장치들이 조건에 대응되는 태스크를 수행할 수 있도록 규칙(rule)을 생성하여 저장할 수 있다.
홈 IoT 시스템에서 댁 내의 복수의 장치들을 제어할 수 있는 전자 장치 또는 서버에 저장된 규칙은 단순한 조건 및 특정 장치에 대한 동작 수행을 나타내는 태스크를 포함하고 있음으로, 복잡한 복수의 조건을 포함하는 동적 조건 및 비 특정 장치에 대한 동작 수행을 나타내는 태스크를 포함하는 규칙의 경우, 실행이 불가능 하다.
다양한 실시 예들에 따르면, 복잡한 조건을 포함하는 동적 조건, 및 비 특정 장치에 대한 동작 수행을 나타내는 태스크를 포함하는 규칙을 실행할 수 있는 전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법을 제공할 수 있다.
다양한 실시 예들에 따른 전자 장치는, 통신 모듈, 메모리, 및 프로세서를 포함하고, 상기 프로세서는, 동적 조건 및 상기 동적 조건에 따라 때 실행되는 동적 태스크를 포함하는 규칙을 확인하고, 상기 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하고, 복수의 외부 장치들과 관련된 정보를 기반으로 상기 적어도 하나의 컨텍스트를 확인하면, 상기 동적 조건의 만족을 결정하고, 상기 동적 조건의 만족을 결정하면, 상기 복수의 외부 장치들 중 상기 동적 태스크 수행을 위한 적어도 하나의 장치를 결정하고, 상기 통신 모듈을 통해 상기 적어도 하나의 장치로 상기 동적 태스크의 수행을 요청하도록 설정될 수 있다.
다양한 실시 예들에 따른 전자 장치에서 동적 조건으로 태스크를 수행하는 방법은, 동적 조건 및 상기 동적 조건에 따라 때 실행되는 동적 태스크를 포함하는 규칙을 확인하고는 동작, 상기 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하는 동작, 복수의 외부 장치들과 관련된 정보를 기반으로 상기 적어도 하나의 컨텍스트를 확인하면, 상기 동적 조건의 만족을 결정하는 동작, 상기 동적 조건의 만족을 결정하면, 상기 복수의 외부 장치들 중 상기 동적 태스크 수행을 위한 적어도 하나의 장치를 결정하는 동작, 및 상기 통신 모듈을 통해 상기 적어도 하나의 장치로 상기 동적 태스크의 수행을 요청하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 전자 장치는, 복잡한 조건을 포함하는 동적 조건, 및 비 특정 장치에 대한 동작 수행을 나타내는 태스크를 포함하는 규칙을 지원 할 수 있는 효과가 있다.
도 1은 다양한 실시 예들에 따른 IoT(internet of things) 시스템을 도시한 도면이다.
도 2는 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치의 블록 도이다.
도 3은 다양한 실시 예들에 따른 전자 장치의 블록 도이다.
도 4는 다양한 실시 예들에 따른 동적 조건에 따른 동적 태스크를 실행할 수 있는 전자 장치를 도시한 도면이다.
도 5는 다양한 실시 예들에 따른 전자 장치에서 동적 조건에 따른 동적 태스크를 실행할 수 있는 동작을 설명하기 위한 흐름도이다.
도 1은 일 실시예에 따른 IoT(internet of things) 시스템(100)을 도시한 도면이다. 한편, 도 1의 구성 요소 중 적어도 일부는 생략될 수도 있으며, 도시되지 않은 구성 요소가 더 포함되도록 구현될 수도 있다.
도 1을 참조하면, 일 실시예에 따른 IoT 시스템(100)은, 데이터 네트워크(116 또는 146)에 연결 가능한 복수의 전자 장치들을 포함한다. 예를 들어, IoT 시스템(100)은 제 1 IoT 서버(110), 제 1 노드(node)(120), 보이스 어시스턴트(voice assistance) 서버(130), 제 2 IoT 서버(140), 제 2 노드(150), 또는 디바이스들(121,122,123,124,125,136,137,151,152,153) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따라서, 제 1 IoT 서버(110)는, 통신 인터페이스(111), 프로세서(112), 또는 저장부(113) 중 적어도 하나를 포함할 수 있다. 제 2 IoT 서버(140)는, 통신 인터페이스(141), 프로세서(142), 또는 저장부(143) 중 적어도 하나를 포함할 수 있다. 본 문서에서의 “IoT 서버”는, 예를 들어 데이터 네트워크(예: 데이터 네트워크(116) 또는 데이터 네트워크(146))에 기반하여, 중계 디바이스(예: 제 1 노드(120) 또는 제 2 노드(150))를 통하거나, 또는 중계 디바이스 없이 직접적으로(directly), 하나 또는 그 이상의 디바이스들(예: 디바이스들(121,122,123,124,125,151,152,153))을 원격으로 제어 및/또는 모니터링할 수 있다. 여기에서의 “디바이스”는, 예를 들어 가택, 사무실, 공장, 빌딩, 외부 지점, 또는 다른 타입의 부지들과 같은 로컬 환경 내에 배치되는(또는, 위치하는) 센서, 가전, 사무용 전자 디바이스, 또는 공정 수행을 위한 디바이스로, 그 종류에는 제한이 없다. 제어 명령을 수신하여 제어 명령에 대응하는 동작을 수행하는 디바이스를 “타겟 디바이스”로 명명할 수 있다. IoT 서버는, 복수의 디바이스들 중 타겟 디바이스를 선택하고 제어 명령을 제공하는 점에서, 중앙 서버(central server)로 명명될 수도 있다.
일 실시예에 따라서, 제 1 IoT 서버(110)는, 데이터 네트워크(116)를 통하여 디바이스들(121,122,123)과 통신을 수행할 수 있다. 데이터 네트워크(116)는, 예를 들어 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신을 위한 네트워크를 의미할 수 있으며, 또는 셀룰러 네트워크를 포함할 수도 있다.
일 실시예에 따라서, 제 1 IoT 서버(110)는, 통신 인터페이스(111)를 통하여 데이터 네트워크(116)에 연결될 수 있다. 통신 인터페이스(111)는, 데이터 네트워크(116)의 통신을 지원하기 위한 통신 디바이스(또는, 통신 모듈)를 포함할 수 있으며, 하나의 구성 요소(예: 단일 칩)로 통합되거나, 또는 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 제 1 IoT 서버(110)는, 제 1 노드(120)를 통하여 디바이스들(121,122,123)와 통신을 수행할 수 있다. 제 1 노드(120)는, 제 1 IoT 서버(110)로부터의 데이터를 데이터 네트워크(116)를 통하여 수신하고, 수신한 데이터를 디바이스들(121,122,123) 중 적어도 일부로 송신할 수 있다. 또는, 제 1 노드(120)는, 디바이스들(121,122,123) 중 적어도 일부로부터 데이터를 수신하고, 수신한 데이터를 데이터 네트워크(116)를 통하여 제 1 IoT 서버(110)로 송신할 수 있다. 제 1 노드(120)는, 데이터 네트워크(116) 및 디바이스들(121,122,123) 사이의 브릿지(bridge)로서 기능할 수 있다. 한편, 도 1에서는 제 1 노드(120)가 하나인 것과 같이 도시되어 있지만 이는 단순히 예시적인 것으로, 그 숫자에는 제한이 없다.
본 문서에서의 “노드”는, 엣지 컴퓨팅 시스템(edge computing system)일 수 있거나, 또는 허브(hub) 디바이스일 수 있다. 일 실시예에 따라서, 제 1 노드(120)는, 데이터 네트워크(116)의 유선 및/또는 무선의 통신을 지원하며, 아울러 디바이스들(121,122,123)과의 유선 및/또는 무선의 통신을 지원할 수 있다. 예를 들어, 제 1 노드(120)는, 블루투스, Wi-Fi, Wi-Fi direct, Z-wave, Zig-bee, INSETEON, X10 등) 또는 IrDA(infrared data association 중 적어도 하나와 같은 근거리 통신 네트워크를 통하여 디바이스들(121,122,123)과 연결될 수 있으나, 통신 종류에는 제한이 없다. 제 1 노드(120)는, 예를 들어 가택, 사무실, 공장, 빌딩, 외부 지점, 또는 다른 타입의 부지들과 같은 환경 내에 배치(또는, 위치)될 수 있다. 이에 따라, 디바이스들(121,122,123)은, 제 1 IoT 서버(110)에 의하여 제공되는 서비스에 의하여 모니터링 및/또는 제어될 수 있으며, 디바이스들(121,122,123)은 제 1 IoT 서버(110)로의 직접 연결을 위한 완전한 네트워크 통신(예: 인터넷 통신)의 캐퍼빌리티(capability)를 갖출 것이 요구되지 않을 수 있다. 디바이스들(121,122,123)은, 예를 들어 전등 스위치, 근접 센서, 온도 센서 등으로 가택 환경 내의 전자 장치로 구현된 것과 같이 도시되었지만, 이는 예시적인 것으로 제한은 없다.
일 실시예에 따라서, 제 1 IoT 서버(110)는, 디바이스들(124,125)과의 직접 통신(direct communication)을 지원할 수도 있다. 여기에서, “직접 통신”은, 예를 들어 제 1 노드(120)와 같은 중계 디바이스를 통하지 않은 통신으로, 예를 들어 셀룰러 통신 네트워크 및/또는 데이터 네트워크를 통한 통신을 의미할 수 있다.
일 실시예에 따라서, 제 1 IoT 서버(110)는, 디바이스들(121,122,123,124,125) 중 적어도 일부로 제어 명령을 송신할 수 있다. 여기에서, “제어 명령”은, 제어 가능한 디바이스가 특정 동작을 수행하도록 야기하는 데이터를 의미할 수 있으며, 특정 동작은 디바이스에 의하여 수행되는 동작으로, 정보의 출력, 정보의 센싱, 정보의 보고, 정보의 관리(예: 삭제, 또는 생성)를 포함할 수 있으며, 그 종류에는 제한이 없다. 예를 들어, 프로세서(112)는, 외부(예: 보이스 어시스턴트 서버(130), 제 2 IoT 서버(140), 외부 시스템(160), 또는 디바이스들(121,122,123,124,125) 중 적어도 일부)로부터 제어 명령을 생성하기 위한 정보(또는, 요청)를 획득하고, 획득한 정보에 기반하여 제어 명령을 생성할 수 있다. 또는, 프로세서(112)는, 디바이스들(121,122,123,124,125) 중 적어도 일부의 모니터링 결과가 지정된 조건을 만족함에 기반하여 제어 명령을 생성할 수 있다. 프로세서(112)는, 제어 명령을, 타겟 디바이스로 송신하도록 통신 인터페이스(111)를 제어할 수 있다.
일 실시예에 따라서, 프로세서(112), 또는 프로세서(132), 프로세서(142)는, CPU(central processing unit), DSP(digital signal processor), AP(application processor), CP(communication processor) 등과 같은 범용 프로세서, GPU(graphical processing unit), VPU(vision processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU(neural processing unit)와 같은 인공 지능 전용 프로세서 중 하나 이상의 조합으로 구현될 수 있다. 상술한 처리 유닛은 단순히 예시적인 것으로, 프로세서(112)는, 예를 들어 메모리(113)에 저장된 인스트럭션을 실행하여, 실행된 결과를 출력할 수 있는 연산 수단이라면 제한이 없음을 당업자는 이해할 것이다.
일 실시예에 따라서, 프로세서(112)는, API(114)에 기반하여 웹-기반 인터페이스를 구성하거나, 또는 제 1 IoT 서버(110)에 의하여 관리되는 리소스(resource)를 외부에 노출시킬 수 있다. 웹-기반 인터페이스는, 예를 들어 제 1 IoT 서버(110) 및 외부 웹 서비스 사이의 통신을 지원할 수 있다. 프로세서(112)는, 예를 들어 외부 시스템(160)으로 하여금 디바이스들(121,122,123)의 제어 및/또는 억세스를 허용할 수도 있다. 외부 시스템(160)은, 예를 들어 시스템(100)과 연관이 없거나, 또는 일부가 아닌 독립적인 시스템일 수 있다. 외부 시스템(160)은, 예를 들어 외부 서버이거나, 또는 웹 사이트일 수 있다. 하지만, 외부 시스템(160)으로부터의 디바이스들(121,122,123), 또는 제 1 IoT 서버(110)의 리소스로의 억세스에 대한 보안이 요구된다. 일 실시예에 따라서, 프로세서(112)는, 자동화 어플리케이션은 API(114)에 기반한 API 엔드 포인트(예: URL(universal resource locator))을 외부에 노출할 수 있다. 상술한 바에 따라서, 제 1 IoT 서버(110)는, 제어 명령을 디바이스들(121,122,123) 중 타겟 디바이스에게 전달할 수 있다. 한편, 제 2 IoT 서버(140)의 통신 인터페이스(141), 프로세서(142), 저장부(143)의 API(144), 데이터베이스(145)에 대한 설명은, 제 1 IoT 서버(110)의 통신 인터페이스(111), 프로세서(112), 저장부(113)의 API(114), 데이터베이스(115)에 대한 설명과 실질적으로 동일할 수 있다. 아울러, 제 2 노드(150)에 대한 설명은, 제 1 노드(120)에 대한 설명과 실질적으로 동일할 수 있다. 제 2 IoT 서버(140)는, 제어 명령을 디바이스들(151,152,153) 중 타겟 디바이스에게 전달할 수 있다. 제 1 IoT 서버(110) 및 제 2 IoT 서버(140)는, 하나의 실시예에서는 동일한 서비스 제공자에 의하여 운영될 수 있으나, 다른 실시예에서는 상이한 서비스 제공자들에 의하여 각각 운영될 수도 있다.
일 실시예에 따라서, 보이스 어시스턴트 서버(130)는, 데이터 네트워크(116)를 통하여 제 1 IoT 서버(110)와 데이터를 송수신할 수 있다. 일 실시예에 따른 보이스 어시스턴트 서버(130)는, 통신 인터페이스(131), 프로세서(132), 또는 저장부(133) 중 적어도 하나를 포함할 수 있다. 통신 인터페이스(131)는, 데이터 네트워크(미도시) 및/또는 셀룰러 네트워크(미도시)를 통하여 스마트 폰(136) 또는 AI 스피커(137)와 통신을 수행할 수 있다. 스마트 폰(136) 또는 AI 스피커(137)는 마이크를 포함할 수 있으며, 사용자 음성(user voice)을 획득하여 음성 신호로 변환하여, 음성 신호를 보이스 어시스턴트 서버(130)로 송신할 수 있다. 프로세서(132)는, 통신 인터페이스(131)를 통하여 스마트 폰(136) 또는 AI 스피커(137)로부터 음성 신호를 수신할 수 있다. 프로세서(132)는, 수신한 음성 신호를 저장된 모델(134)에 기반하여 처리할 수 있다. 프로세서(132)는, 데이터베이스(135)에 저장된 정보에 기반하여, 처리 결과를 이용하여 제어 명령을 생성(또는, 확인)할 수 있다. 일 실시예에 따라서, 저장부(113,133,143)는, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 비 일시적(non-transitory) 저장매체를 포함할 수 있으며, 그 종류에는 제한이 없다.
도 2는 다양한 실시예들에 따른 네트워크 환경(200) 내의 전자 장치(201)의 블록도이다.
도 2을 참조하면, 네트워크 환경(200)에서 전자 장치(201)는 제 1 네트워크(298)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(202)와 통신하거나, 또는 제 2 네트워크(299)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(204) 또는 서버(208)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(201)는 서버(208)를 통하여 전자 장치(204)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(201)는 프로세서(220), 메모리(230), 입력 모듈(250), 음향 출력 모듈(255), 디스플레이 모듈(260), 오디오 모듈(270), 센서 모듈(276), 인터페이스(277), 연결 단자(278), 햅틱 모듈(279), 카메라 모듈(280), 전력 관리 모듈(288), 배터리(289), 통신 모듈(290), 가입자 식별 모듈(296), 또는 안테나 모듈(297)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(201)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(278))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(276), 카메라 모듈(280), 또는 안테나 모듈(297))은 하나의 구성요소(예: 디스플레이 모듈(260))로 통합될 수 있다.
프로세서(220)는, 예를 들면, 소프트웨어(예: 프로그램(240))를 실행하여 프로세서(220)에 연결된 전자 장치(201)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(220)는 다른 구성요소(예: 센서 모듈(276) 또는 통신 모듈(290))로부터 수신된 명령 또는 데이터를 휘발성 메모리(232)에 저장하고, 휘발성 메모리(232)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(234)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(220)는 메인 프로세서(221)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(223)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(201)가 메인 프로세서(221) 및 보조 프로세서(223)를 포함하는 경우, 보조 프로세서(223)는 메인 프로세서(221)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(223)는 메인 프로세서(221)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(223)는, 예를 들면, 메인 프로세서(221)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(221)를 대신하여, 또는 메인 프로세서(221)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(221)와 함께, 전자 장치(201)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(260), 센서 모듈(276), 또는 통신 모듈(290))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(223)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(280) 또는 통신 모듈(290))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(223)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(201) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(208))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(230)는, 전자 장치(201)의 적어도 하나의 구성요소(예: 프로세서(220) 또는 센서 모듈(276))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(240)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(230)는, 휘발성 메모리(232) 또는 비휘발성 메모리(234)를 포함할 수 있다.
프로그램(240)은 메모리(230)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(242), 미들 웨어(244) 또는 어플리케이션(246)을 포함할 수 있다.
입력 모듈(250)은, 전자 장치(201)의 구성요소(예: 프로세서(220))에 사용될 명령 또는 데이터를 전자 장치(201)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(250)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(255)은 음향 신호를 전자 장치(201)의 외부로 출력할 수 있다. 음향 출력 모듈(255)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(260)은 전자 장치(201)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(260)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(260)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(270)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(270)은, 입력 모듈(250)을 통해 소리를 획득하거나, 음향 출력 모듈(255), 또는 전자 장치(201)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(202))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(276)은 전자 장치(201)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(276)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(277)는 전자 장치(201)가 외부 전자 장치(예: 전자 장치(202))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(277)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(278)는, 그를 통해서 전자 장치(201)가 외부 전자 장치(예: 전자 장치(202))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(278)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(279)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(279)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(280)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(280)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(288)은 전자 장치(201)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(288)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(289)는 전자 장치(201)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(289)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(290)은 전자 장치(201)와 외부 전자 장치(예: 전자 장치(202), 전자 장치(204), 또는 서버(208)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(290)은 프로세서(220)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(290)은 무선 통신 모듈(292)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(294)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(298)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(299)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(204)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(292)은 가입자 식별 모듈(296)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(298) 또는 제 2 네트워크(299)와 같은 통신 네트워크 내에서 전자 장치(201)를 확인 또는 인증할 수 있다.
무선 통신 모듈(292)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(292)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(292)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(292)은 전자 장치(201), 외부 전자 장치(예: 전자 장치(204)) 또는 네트워크 시스템(예: 제 2 네트워크(299))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(292)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(297)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(297)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(297)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(298) 또는 제 2 네트워크(299)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(290)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(290)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(297)의 일부로 형성될 수 있다.
다양한 실시예들에 따르면, 안테나 모듈(297)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(299)에 연결된 서버(208)를 통해서 전자 장치(201)와 외부의 전자 장치(204)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(202, 또는 204) 각각은 전자 장치(201)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(201)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(202, 204, 또는 208) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(201)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(201)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(201)로 전달할 수 있다. 전자 장치(201)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(201)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(204)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(208)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(204) 또는 서버(208)는 제 2 네트워크(299) 내에 포함될 수 있다. 전자 장치(201)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
도 3은 다양한 실시 예들에 따른 전자 장치의 블록도(300)이다.
상기 도 3을 참조하면, 전자 장치(301)는, 프로세서(320), 메모리(330), 디스플레이(360), 및 통신 모듈(320)을 포함할 수 있다.
다양한 실시 예들에 따르면, 전자 장치(301)는 도 3에 도시된 구성들에 국한되지 않고, 더 많은 구성들을 포함하거나 더 적은 구성들을 포함하도록 구현될 수도 있다. 예를 들어, 전자 장치(301)는 도 1 또는 도 2에서 상술한 구성들을 더 포함하도록 구현될 수 있다.
다양한 실시 예들에 따른 전자 장치(301)는 에지 컴퓨팅을 이용하여 서비스를 제공하는 장치일 수 있으며, 도 1의 제 1 IoT 서버(110), 보이스 어시스턴트 서버(130), 또는 제 2 IoT 서버(140) 중 하나, 또는 도 2의 전자 장치(201), 또는 후술될 전자 장치 중 적어도 하나일 수 있다.
다양한 실시 예들에 따르면, 전자 장치(301)는, Home IoT Edge 기능을 수행할 수 있는 호스트 장치로써, 상기 복수의 외부 장치들(예: 도 1의 디바이스들(121,122,123,124,125,151,152,153)과 통신을 성립하고 있는 상태에서 댁내의 상기 복수의 장치들 각각과 정보를 송수신하면서 상기 복수의 외부 장치들을 관리할 수 있다.
다양한 실시 예에 따르면, 프로세서(320)는, 전자 장치(301)의 전반적인 동작을 제어할 수 있다.
일 실시 예에 따르면, 프로세서(320)는 하나 이상의 프로세서들을 포함할 수 있다.
일 실시 예에 따르면, 프로세서(320)는 도 1의 프로세서(112), 프로세서(132), 또는 프로세서(142) 중 하나, 또는 도 2의 프로세서(220) 중 적어도 하나에 포함될 수 있다.
일 실시 예에 따르면, 프로세서(320)는 메모리(320) 및 통신 모듈(390)를 제어할 수 있고, 후술될 다양한 실시 예들에 따른 전자 장치에서 수행되는 동작들을 수행할 수 있다.
다양한 실시 예에 따르면, 프로세서(320)는, 동적 조건 및 상기 동적 조건에 따라 실행되는 동적 태스크를 포함하는 적어도 하나의 규칙(rule)을 확인할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 서버(예: 도 2의 서버(208))로부터 수신하는 적어도 하나의 규칙, 또는/및 전자 장치(301)에서 제공하는 인터페이스를 통해 사용자에 의해 제공되는 적어도 하나의 규칙이 저장된 메모리(330)에서 상기 규칙을 확인할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 사용자의 발화를 통해 획득한 상기 규칙을 확인할 수 있다.
다양한 실시 예들에 따르면, 프로세서(320)는, 동적 조건 및 상기 동적 조건에 따라 실행되는 동적 태스크를 포함하는 규칙(rule)에서, 적어도 하나의 컨텍스트를 이용하여 상기 동적 조건이 만족하는지 결정할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구와 동적 태스크 수행을 위한 적어도 하나의 제2 문구를 구분할 수 있다. 상기 프로세서(320)는, 조건 문구(예: ~면, ~라면, ~경우등)를 포함하는 적어도 하나의 문구를 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 조건에 대응되는 적어도 하나의 제1 문구가 메모리(330)에 저장된 복수의 컨텍스트 중 적어도 하나의 컨텍스트로 확인할 수 있는 문구이면 상기 조건을 동적 조건으로 결정할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 메모리(330)에 서버로부터 수신한 적어도 하나의 컨텍스트, 또는/및 사용자에 의해 입력된 적어도 하나의 컨텍스트를 포함하는 복수의 컨텍스트를 저장할 수 있다.
일 실시 예에 따르면, 상기 복수의 컨텍스트는 사용자의 식별 정보 및 사용자의 위치 확인을 위한 제1 컨텍스트, 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프, 컨텐츠 정보 및 볼륨 정보 등) 확인을 위한 제2 컨텍스트, 사용자의 발화를 확인하기 위한 제3 컨텍스트, 댁 내에 위치된 복수의 외부 장치들의 구성(예: 화면 포함여부, 스피커 포함여부, 마이크 포함 여부등) 확인을 위한 제4 컨텍스트, 및 날짜 및 시간 정보 확인을 위한 제5 컨텍스트를 포함할 수 있다. 상기 컨텍스트의 종류는 제한되지 않으며, 컨텍스트는 자동 또는 수동으로 추가, 수정 또는 삭제될 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 동적 조건에 대응되는 적어도 하나의 제1 문구를 분석하여, 상기 제1 문구를 기반으로 적어도 하나의 조건을 확인하고, 상기 메모리(330)에 저장된 복수의 컨텍스트 중 상기 적어도 하나의 조건에 확인할 수 있는 적어도 하나의 컨텍스트를 검출할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 전자 장치(301)에서 관리하는 복수의 외부 장치들과 관련된 정보와 상기 메모리(330)에서 상기 적어도 하나의 컨텍스트를 확인할 수 있는 확인 방법을 이용하여, 상기 적어도 하나의 컨텍스트를 만족하는 상황을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 전자 장치(301)에서 관리하는 복수의 외부 장치들 각각으로부터 상기 복수의 외부 장치들과 관련된 정보(예: 위치 정보, 상태 정보, 발화 정보 및 구성 정보등)를 수신할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 메모리(330)에 상기 복수의 컨텍스트 및 상기 복수의 컨텍스트 각각을 확인할 수 있는 확인 방법을 저장할 수 있으며, 하나의 컨텍스트에 복수의 확인 방법이 저장될 수 있다. 예를 들어, 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법으로 사용자의 이동 단말로부터 수신한 사용자의 식별 정보(예: 이동 단말의 식별 정보), 위치 정보, 도어 센서의 정보 또는 카메라로부터 수신한 이미지 정보 중 적어도 하나를 이용할 수 있으며, 상기 제2컨텍스트의 확인 방법으로 복수의 외부 장치들로부터 수신한 상태 정보를 이용할 수 있으며, 상기 제3컨텍스트의 확인 방법으로 복수의 외부 장치들로부터 수신한 사용자의 발화 정보를 이용할 수 있다. 상기 프로세서(320)는, 상기 제4컨텍스트의 확인 방법으로 복수의 외부 장치들로부터 수신한 구성 정보를 이용할 수 있으며, 상기 제5컨텍스트의 확인 방법으로 날짜 및/ 시간 정보를 이용할 수 있다.
예를 들어, 상기 프로세서(320)는, "사용자가 혼자서 거실에서 TV를 보고 있는 상황에서 사용자가 방으로 들어가면, 방에 있는 TV에서 거실에서 보던 TV 컨텐츠를 이어서 재생한다."라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 "사용자가 혼자서 거실에서 TV를 보고 있는 상황에서 사용자가 방으로 들어가면" 문구를 동적 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다. 상기 프로세서(320)는, "사용자 가 혼자서 거실에서 TV를 보고 있는 상황에서 사용자 가 방으로 들어가면"과 같은 조건에 대응되는 적어도 하나의 제1 문구를 분석하여, "거실에서 TV를 보고 있는 비 특정 사용자의 현재 위치에서 다른 위치로 이동하고 있음"과 같은 제1 조건과 "거실에 TV가 온(on) 되어 있음"과 같은 제2 조건을 확인할 수 있다.
상기 프로세서(320)는, 상기 메모리(330)에 저장된 복수의 컨텍스트 중 "거실에서 TV를 보고 있는 비 특정 사용자의 현재 위치에서 다른 위치로 이동하고 있음" 과 같은 제1 조건을 확인할 수 있는 사용자의 식별 정보 및 사용자의 위치 확인을 위한 제1 컨텍스트와 "거실에 TV가 온(on) 되어 있음"과 같은 제2 조건을 확인할 수 있는 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프 상태) 확인을 위한 제2 컨텍스트를 검출할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법(예: 사용자의 이동 단말로부터 수신한 사용자의 식별 정보 및 사용자의 위치 정보를 이용하는 방법)을 통해 사용자의 이동 단말로부터 수신한 사용자의 식별 정보, 사용자의 위치 정보, 도어 센서의 정보 또는 카메라로부터 수신한 이미지 정보를 기반으로, 거실에서 혼자 TV를 보고 있는 사용자는 사용자 A로 확인하고, 상기 사용자 A가 거실에서 방으로 이동하였음을 확인할 수 있다. 상기 프로세서(320)는, 상기 제2 컨텍스트의 확인 방법(예: 복수의 외부 장치들로부터 수신한 상태 정보를 이용하는 방법)을 통해, 거실에 위치한 TV로부터 수신한 TV의 전원 정보를 기반으로, 거실의 TV의 전원이 온(on) 상태인지 확인할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법 및 상기 제2 컨텍스트의 확인 방법을 기반으로, 상기 제1 컨텍스트 및 상기 제2 컨텍스트에 대응되는 "사용자가 거실에서 TV를 보고 있는 상황에서 사용자가 방으로 이동하였음"을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
예를 들어, 상기 프로세서(320)는, "집에 사람이 한 명만 존재하고, TV들 중 어떤 TV에 사람이 접근 했을 때, 사람이 접근한 TV 이외에 다른 TV에서 컨텐츠를 재생 중이면, 컨텐츠를 사람이 근접한 TV로 재생하고, 기존 재생 중인 TV의 전원을 끈다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 "집에 사람이 한 명만 존재하고, TV들 중 어떤 TV에 사람이 접근 했을 때, 사람이 접근한 TV 이외에 다른 TV에서 컨텐츠를 재생 중이면" 문구를 동적 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다. 상기 프로세서(320)는, "집에 사람이 한 명만 존재하고, TV들 중 어떤 TV에 사람이 접근 했을 때, 사람이 접근한 TV 이외에 다른 TV에서 컨텐츠를 재생 중이면"과 같은 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 "댁 내에 존재하는 비 특정 인 사용자의 위치 확인"과 같은 제1 조건과 "현재 TV가 온(on) 되어 있음"과 같은 제2 조건을 확인할 수 있다. 상기 프로세서(320)는 상기 메모리(330)에 저장된 복수의 컨텍스트 중 "댁 내에 존재하는 비 특정 인 사용자의 위치를 확인" 과 같은 제1 조건을 확인할 수 있는 사용자의 위치 확인을 위한 제1 컨텍스트와 "현재 TV가 온(on) 되어 있음"과 같은 제2 조건을 확인할 수 있는 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프 상태) 확인을 위한 제2 컨텍스트를 검출할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법(예: 사용자의 이동 단말로부터 수신한 사용자의 식별 정보 및 사용자의 위치 정보를 이용하는 방법)을 통해 사용자의 이동 단말로부터 수신한 사용자의 식별 정보, 사용자의 위치정보, 도어 센서의 정보 또는 카메라로부터 수신한 이미지 정보를 기반으로, 댁 내에 혼자 존재하는 사용자를 사용자 B로 확인하고, 사용자 B의 위치를 기반으로 사용자와 가장 근접한 TV를 확인할 수 있다. 상기 프로세서(320)는, 상기 제2 컨텍스트의 확인 방법(예: 복수의 외부 장치들로부터 수신한 상태 정보를 이용하는 방법)을 통해, 현재 전원이 온 상태인 TV로부터 수신한 TV의 전원 정보를 기반으로, 현재 전원이 온 상태인 TV를 확인할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법 및 상기 제2 컨텍스트의 확인 방법을 기반으로, 상기 제1 컨텍스트 및 상기 제2 컨텍스트에 대응되는 "사용자가 집에 혼자 있을 때 사용자 가까이 있는 TV1은 전원이 오프 상태이고, 상기 TV1 외에 TV2에서 전원이 온 상태임"을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
예를 들어, 상기 프로세서(320)는, "거실에서 공지와 관련된 발화를 획득하면, 댁 내에 위치한 가족에게 공지한다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 "거실에서 공지와 관련된 발화를 획득하면," 문구를 동적 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다. 상기 프로세서는, "거실에서 공지와 관련된 발화를 획득하면"과 같은 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 "거실에서 사용자 존재"와 같은 제1 조건과, "공지와 관련된 발화"와 같은 제2 조건을 확인할 수 있다. 상기 프로세서(320)는, 상기 메모리(330)에 저장된 복수의 컨텍스트 중 "거실에서 사용자 있음" 과 같은 제1 조건을 확인할 수 있는 사용자의 위치 확인을 위한 제1 컨텍스트와 "공지와 관련된 발화"와 같은 제2 조건을 확인하기 위한 제3 컨텍스트를 검출할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법(예: 사용자의 이동 단말로부터 수신한 위치 정보를 이용하는 방법)을 통해 사용자의 이동 단말로부터 수신한 위치정보, 도어 센서의 정보 또는 카메라로부터 수신한 이미지 정보를 기반으로, 사용자가 거실에 혼자 위치하고 있음을 확인할 수 있다. 상기 프로세서(320)는, 상기 제3 컨텍스트의 확인 방법(예: 거실에 존재하는 외부 장치로부터 수신한 사용자의 발화를 이용하는 방법)을 통해 사용자의 발화에서 공지와 관련된 적어도 하나의 문구(예: " 모두에게 알려줘")의 검출을 기반으로, 공지와 관련된 사용자의 발화의 발생을 확인할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법 및 상기 제3 컨텍스트의 확인 방법을 기반으로, 상기 제1 컨텍스트 및 상기 제3 컨텍스트에 대응되는 "거실에서 공지와 관련된 발화를 획득하였음"을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
예를 들어, 상기 프로세서(320)는, "화면을 가진 외부 장치들 중 전원이 켜져 있는 장치가 있으면, 전원이 켜져 있는 외부 장치에서 컨텐츠A를 실행한다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 "화면을 가진 외부 장치들 중 전원이 켜져 있는 장치가 있으면" 문구를 동적 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다. 상기 프로세서(320)는, "화면을 가진 외부 장치들 중 전원이 켜져 있는 장치가 있으면"과 같은 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 "화면을 가진 외부 장치들 확인"과 같은 제1 조건과, "전원이 켜져 있는 장치 확인"과 같은 제1 조건을 확인할 수 있다. 상기 프로세서(320)는, 상기 메모리(330)에 저장된 복수의 컨텍스트 중 "화면을 가진 외부 장치들 확인" 과 같은 제1 조건을 확인할 수 있는 댁 내에 위치된 복수의 외부 장치들의 구성 상태(예: 화면 포함 여부) 확인을 위한 제4 컨텍스트와 "전원이 켜져 있는 장치 확인"과 같은 제2 조건을 확인할 수 있는 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프 상태) 확인을 위한 제2 컨텍스트를 검출할 수 있다. 상기 프로세서(320)는, 상기 제4 컨텍스트의 확인 방법(예: 복수의 외부 장치들로부터 수신한 구성 정보를 이용하는 방법)을 통해 메모리(330)에 저장된 댁 내에 위치된 복수의 외부 장치들의 구성 정보를 기반으로, 상기 복수의 장치들 중 화면 구성을 포함하는 적어도 하나의 외부 장치를 확인할 수 있다. 상기 프로세서(320)는, 상기 제2 컨텍스트의 확인 방법(예: 복수의 외부 장치들로부터 수신한 상태 정보를 이용하는 방법)을 통해 댁 내에 위치된 복수의 외부 장치들로부터 수신한 전원 정보를 기반으로, 현재 전원이 온(on) 상태인 적어도 하나의 외부 장치를 확인할 수 있다. 상기 프로세서(320)는, 상기 제4컨텍스트의 확인 방법 및 상기 제2 컨텍스트의 확인 방법을 기반으로, 상기 제4 컨텍스트 및 상기 제2 컨텍스트에 대응되는 "화면을 가진 외부 장치들 중 전원이 켜져 있는 장치의 존재"를 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
예를 들어, 상기 프로세서(320)는, "온도가 28이고 습도가 60%이상이면, 에어컨를 켜고 온도를 20도로 설정한다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 "온도가 28이고 습도가 60%이상이면" 문구를 동적 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다. 상기 프로세서(320)는, "온도가 28이고 습도가 60%이상이면"과 같은 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 "온도를 측정할 수 있는 외부 장치와 습도를 측정할 수 있는 외부 장치 확인"과 같은 제1 조건과, "전원이 켜져 있는 장치 확인"과 같은 제2 조건을 확인할 수 있다. 상기 프로세서(320)는 , 상기 메모리(330)에 저장된 복수의 컨텍스트 중 "온도를 측정할 수 있는 외부 장치와 습도를 측정할 수 있는 외부 장치 확인" 과 같은 제1 조건을 확인할 수 있는 댁 내에 위치된 복수의 외부 장치의 구성 확인(예: 온도 측정 기능 포함여부 및 습도 측정 기능 포함 여부)을 위한 제4 컨텍스트와, "전원이 켜져 있는 장치 확인"과 같은 제2 조건을 확인할 수 있는 댁내에 위치한 복수의 외부 장치의 상태 정보(예: 전원 온/오프 상태) 확인을 위한 제2 컨텍스트를 검출할 수 있다. 상기 프로세서(320)는, 상기 제4 컨텍스트의 확인 방법(예: 복수의 외부 장치들로부터 수신한 구성 정보를 이용하는 방법)을 통해 메모리(330)에 저장된 댁 내에 위치한 복수의 외부 장치들의 구성 정보를 기반으로, 상기 복수의 외부 장치들 중 온도를 측정할 수 있는 외부 장치와 습도를 측정할 수 있는 외부 장치의 존재를 확인할 수 있다. 상기 프로세서(320)는, 상기 제2 컨텍스트의 확인 방법(: 복수의 외부 장치들로부터 수신한 상태 정보를 이용하는 방법)을 통해 댁 내에 위치된 복수의 외부 장치들로 수신한 전원 상태 정보를 기반으로 온도를 측정할 수 있는 외부 장치와 습도를 측정할 수 있는 외부 장치의 전원이 온 상태임을 확인할 수 있다. 상기 프로세서(320)는, 상기 제4 컨텍스트의 확인 방법 및 상기 제2 컨텍스트의 확인 방법을 기반으로, 상기 제4 컨텍스트 및 상기 제2 컨텍스트에 대응되는 "온도가 28이고 습도가 60%이상임"을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
예를 들어, 상기 프로세서(320)는, "사용자가 음악을 들으면서 집에 도착하면, 댁 내의 외부 장치를 통해 사용자가 듣고 있는 음악을 이어서 출력한다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 "사용자가 음악을 들으면서 집에 도착하면" 문구를 동적 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다. 상기 프로세서(320)는, "사용자가 음악을 들으면서 집에 도착하면"과 같은 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 "사용자의 위치"와 같은 제1 조건과 "사용자의 이동 단말의 상태 확인"과 같은 제2 조건을 확인할 수 있다. 상기 프로세서(320)는, 상기 메모리(330)에 저장된 복수의 컨텍스트 중 "사용자의 위치" 와같은 제1 조건을 확인할 수 있는 사용자의 위치 확인을 위한 제1 컨텍스트와 "사용자의 이동 단말의 상태 확인"과 같은 제2 조건을 확인할 수 있는 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 음악 컨텐츠 재생 중)확인을 위한 제2 컨텍스트와, 상기 사용자의 이동 단말의 상태가 를 검출할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법(예: 사용자의 이동 단말로부터 수신한 위치 정보를 이용하는 방법)을 통해 사용자의 이동 단말로부터 수신한 위치정보, 도어 센서의 정보 또는 카메라로부터 수신한 이미지 정보를 기반으로, 사용자가 집으로 들어왔음을 확인할 수 있다. 상기 프로세서(320)는, 상기 제2 컨텍스트의 확인 방법(예: 복수의 외부 장치들로부터 수신한 상태 정보를 이용하는 방법)을 통해 사용자의 이동 단말로부터 수신된 상태 정보를 기반으로 사용자의 이동 단말에서 현재 재생 중인 음악 컨텐츠를 확인할 수 있다. 상기 프로세서(320)는 사용자의 이동 단말에서 현재 재생 중인 음악 컨텐츠를 확인하면, 메모리(330)에 상기 음악 컨텐츠를 저장할 수 있다. 상기 프로세서(320)는, 상기 제1 컨텍스트의 확인 방법 및 상기 제2컨텍스트의 확인 방법을 기반으로, 상기 제1 컨텍스트 및 상기 제2 컨텍스트에 대응되는 "사용자가 사용자 단말로 음악을 들으면서 집에 도착"을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
예를 들어, 상기 프로세서(320)는, "사용자가 밤 10시에 TV를 켜면, 전원이 켜진 TV가 위치된 방에 불을 끈다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 "사용자가 밤 10시에 TV를 켜면" 문구를 동적 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다. 상기 프로세서(320)는, "사용자가 밤 10시에 TV를 켜면"과 같은 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 "시간 확인"과 같은 제1 조건과 "전원이 켜져 있는 장치 확인"과 같은 제2 조건을 확인할 수 있다. 상기 프로세서(320)는. 상기 메모리(330)에 저장된 복수의 컨텍스트 중 "시간 확인" 과 같은 제1 조건을 확인할 수 있는 제5 컨텍스트와 "전원이 켜져 있는 장치 확인"과 같은 제2 조건을 확인할 수 있는 댁내에 위치된 복수의 외부 장치의 상태 정보(예: 전원 온/오프 상태)확인을 위한 제2 컨텍스트를 검출할 수 있다. 상기 프로세서(320)는, 상기 제5 컨텍스트의 확인 방법(예: 날짜 및/ 시간 정보를 이용)을 통해 현재 시간을 확인하고, 상기 제2 컨텍스트의 확인 방법(예: 복수의 외부 장치들로부터 수신한 상태 정보를 이용하는 방법)을 통해 댁 내에 위치된 복수의 외부 장치들로 수신한 전원 정보를 기반으로 TV의 전원이 온 상태임을 확인할 수 있다. 상기 프로세서(320)는, 상기 제5 컨텍스트의 확인 방법 및 상기 제2 컨텍스트의 확인 방법을 기반으로, 상기 제5 컨텍스트 및 상기 제2 컨텍스트에 대응되는 "사용자가 밤 10시에 TV를 켰음"을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
다양한 실시 예들에 따르면, 프로세서(320)는, 동적 조건 및 상기 동적 조건에 따라 실행되는 동적 태스크를 포함하는 규칙(rule)에서, 상기 동적 조건의 만족을 결정하면, 동적 태스크 실행을 위한 적어도 하나의 외부 장치를 확인하고, 상기 확인된 적어도 하나의 외부 장치에서 동적 태스크를 실행하도록 제어할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 규칙에 포함된 상기 동적 조건을 만족하면, 상기 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구를 제외한 문구를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 동적 조건의 만족 위해 검출한 적어도 하나의 컨텍스트로 확인된 정보(예: 사용자의 이동 단말을 기반으로 확인한 사용자의 위치 정보, 외부 장치의 상태 정보, 외부 장치의 구성 정보 및 사용자의 발화 정보 등)를 기반으로, 상기 제2 문구에 포함된 비 특정 외부 장치를 검출하고, 상기 검출한 비 특정 외부 장치를 동적 태스크를 수행을 위한 적어도 하나의 외부 장치로 확인할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 제2 문구에 포함된 특정 외부 장치를 태스크 수행을 위한 적어도 하나의 외부 장치로 확인할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 확인된 적어도 하나의 외부 장치에서 상기 동적 태스크를 실행하도록 제어할 수 있다.
일 실시 예에 따르면, 상기 프로세서(320)는, 상기 확인된 적어도 하나의 외부 장치의 종류를 기반으로 서로 다른 방식으로 상기 동적 태스크를 실행하도록 제어할 수 있다.
예를 들어, 상기 프로세서(320)는, "사용자가 혼자서 거실에서 TV를 보고 있는 상황에서 사용자가 방으로 들어가면, 방에 있는 TV에서 거실에서 보던 TV 컨텐츠를 이어서 재생한다."라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 동적 조건에 대응되는 제1 문구를 제외한 문구인 "방에 있는 TV에서 거실에서 보던 TV 컨텐츠를 이어서 재생한다" 를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다. 상기 프로세서(320)는, 동적 조건의 결정 위해 검출한 비 특정 인 사용자의 확인 및 사용자의 위치 확인을 위한 제1 컨텍스트 및 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프 상태) 확인을 위한 제2 컨텍스트 중 적어도 하나를 기반으로, 상기 제2 문구에서 포함된 "방의 TV"와 "거실에 있는 TV"를 동적 태스크 실행을 위한 적어도 하나의 외부 장치로 확인할 수 있다. 상기 프로세서(320)는, 상기 동적 태스크의 수행을 위해, 상기 방에 있는 TV로 전원 온(on) 명령어, 및 거실에서 재생 중이었던 컨텐츠의 정보와 함께 상기 컨텐츠의 재생 명령어를 전송하고, "거실에 있는 TV"로 전원 오프(off) 명령어를 전송할 수 있다.
예를 들어, 상기 프로세서(320)는, "집에 사람이 한 명만 존재하고, TV들 중 어떤 TV에 사람이 접근 했을 때, 사람이 접근한 TV 이외에 다른 TV에서 컨텐츠를 재생 중이면, 컨텐츠를 사람이 근접한 TV로 재생하고, 기존 재생 중인 TV의 전원을 끈다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 동적 조건에 대응되는 제1 문구를 제외한 문구인 "컨텐츠를 사람이 근접한 TV로 재생하고, 기존 재생 중인 TV의 전원을 끈다" 를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다. 상기 프로세서(320)는, 동적 조건의 결정을 위해 검출한 비 특정인 사용자의 확인 및 사용자의 위치 확인을 위한 제1 컨텍스트 및 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프 상태) 확인을 위한 제2 컨텍스트 중 적어도 하나를 기반으로, 상기 제2 문구에 포함된 "사용자가 근접한 TV1"과 "사용자가 근접한 V1외에 전원이 온(on) 상태인 TV2를 동적 태스크 실행을 위한 적어도 하나의 외부 장치로 확인할 수 있다. 상기 프로세서(320)는, 상기 동적 태스크의 수행을 위해, 상기 사용자가 근접한 TV1로 전원 온(on) 명령어, 및 TV2에서 재생 중이 었던 컨텐츠의 정보와 함께 상기 컨텐츠의 재생 명령어를 전송하고, "전원이 온(on) 상태인 "TV2"로 전원 오프(off) 명령어를 전송할 수 있다.
예를 들어, 상기 프로세서(320)는, "거실에서 공지와 관련된 발화를 획득하면, 댁 내에 위치한 가족에게 공지한다"라는 규칙에서, "~면"과 같은 조건 문구를 포함하는 동적 조건에 대응되는 제1 문구를 제외한 문구인 "댁 내에 위치한 가족에게 공지한다" 를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다. 상기 프로세서(320)는, 댁 내에 위치한 가족 구성원 각각에게 공지할 수 있는 방법을 외부 장치의 종류에 따라 서로 다르게 출력할 수 있다. 상기 프로세서(320)는, 가족 구성원 중 제1 사용자의 이동 단말의 위치 정보를 기반으로 제1 사용자의 위치를 확인하고, 상기 제1 사용자가 이어 버드를 착용하고 있는 경우, 상기 이어 버드를 통해 오디오로 공지를 출력할 수 있다. 상기 프로세서(320)는, 가족 구성원 중 제2 사용자의 이동 단말의 위치 정보를 기반으로 제2 사용자의 위치를 확인하고, 상기 제2 사용자가 위치한 방에 있는 TV의 전원이 온(on)상태이면, 상기 TV를 통해 비디오 및 오디오로 공지를 출력할 수 있다. 상기 프로세서(320)는, 가족 구성원 중 제3 사용자의 이동 단말의 위치 정보를 기반으로 제3 사용자의 위치를 확인하고, 상기 제3 사용자가 위치한 방에 AI 스피커가 있는 경우, 상기 AI스피커를 통해 오디오로 공지를 출력할 수 있다. 상기 프로세서(320)는, 가족 구성원 중 제4 사용자의 이동 단말의 위치 정보를 기반으로 제4 사용자의 위치를 확인하고, 상기 제4 사용자가 위치한 방에 이동 단말 외에 다른 외부 장치가 존재하지 않는 경우, 상기 이동 단말을 통해 오디오로 공지를 출력할 수 있다.
예를 들어, 상기 프로세서(320)는, "화면을 가진 외부 장치들 중 전원이 켜져 있는 장치가 있으면, 전원이 켜져 있는 외부 장치에서 컨텐츠A를 실행한다"라는 규칙에서, "~면"과 "같은 조건 문구를 포함하는 동적 조건에 대응되는 제1 문구를 제외한 문구인 "전원이 켜져 있는 외부 장치에서 컨텐츠A를 실행한다" 를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다.
상기 프로세서(320)는, 동적 조건의 결정을 위해 검출한 댁 내에 위치된 복수의 외부 장치들의 구성 상태(예: 화면 포함 여부) 확인을 위한 제4 컨텍스트 및 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프 상태) 확인을 위한 제2 컨텍스트를 기반으로, 상기 제2 문구에 포함된 "전원이 켜져 있는 외부 장치"를 동적 태스크 실행을 위한 적어도 하나의 외부 장치로 확인할 수 있다. 상기 프로세서(320)는, 상기 동적 태스크의 수행을 위해, 전원이 온(on)상태이고 화면 구성을 포함하는 외부 장치로 컨텐츠A의 정보와 함께 상기 컨텐츠A의 재생 명령어를 전송할 수 있다.
예를 들어, 상기 프로세서(320)는, "온도가 28이고 습도가 60%이상이면, 에어컨를 켜고 온도를 20도로 설정한다"라는 규칙에서, "~면"과 "같은 조건 문구를 포함하는 동적 조건에 대응되는 제1 문구를 제외한 문구인 "에어컨를 켜고 온도를 20도로 설정한다" 를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다. 상기 프로세서(320)는, 상기 제2 문구에 포함된 "에어컨"을 동적 태스크 실행을 위한 적어도 하나의 외부 장치를 확인할 수 있다. 상기 프로세서(320)는, 상기 동적 태스크의 실행을 위해 에어컨으로 온도 20도 설정 실행을 위한 명령어를 전송할 수 있다.
예를 들어, 상기 프로세서(320)는, "사용자가 음악을 들으면서 집에 도착하면, 댁 내의 외부 장치를 통해 사용자가 듣고 있는 음악을 이어서 출력한다"라는 규칙에서, "~면"과 "같은 조건 문구를 포함하는 동적 조건에 대응되는 제1 문구를 제외한 문구인 "댁 내의 외부 장치를 통해 사용자가 듣고 있는 음악을 이어서 출력한다" 를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다. 상기 프로세서(320)는, 동적 조건의 결정을 위해 검출한 사용자의 위치 확인을 위한 제1 컨텍스트 및 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 음악 컨텐츠 재생 중)확인을 위한 제2 컨텍스트 중 적어도 하나를 기반으로, 상기 제2 문구에 포함된 "댁 내에서 음악 컨텐츠를 재생할 수 있는 BT스피커 장치"를 검출하고 상기 "BT스피커 장치"를 동적 태스크 실행을 위한 적어도 하나의 외부 장치를 확인할 수 있다. 상기 프로세서(320)는, 상기 동적 태스크의 실행을 위해 BT스피커 장치로, 상기 메모리(330)에 저장된 음악 컨텐츠, 이동 단말에서 재생 중인 컨텐츠 정보(예: 컨텐츠 재생 시간(2분 30초), 및 이동 단말기에서 컨텐츠의 종료 시점)와 함께 상기 컨텐츠 실행 명령어를 전송할 수 있다.
예를 들어, 상기 프로세서(320)는, "사용자가 밤 10시에 TV를 켜면, 전원이 켜진 TV가 위치된 방에 불을 끈다"라는 규칙에서, "~면"과 "같은 조건 문구를 포함하는 동적 조건에 대응되는 제1 문구를 제외한 문구인 "전원이 켜진 TV가 위치된 방에 불을 끈다"을 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다. 상기 프로세서(320)는, 동적 조건의 결정을 위해 날짜 및/또는 시간을 확인할 수 있는 제5 컨텍스트 및 댁내에 위치된 복수의 외부 장치의 상태 정보(예 : 전원 온/오프 상태)확인을 위한 제2 컨텍스트 중 적어도 하나를 기반으로, 댁 내에 위치된 복수의 외부 장치들 중 전원이 온 상태인 TV한 방의 전등 장치를 동적 태스크 실행을 위한 적어도 하나의 외부 장치를 확인할 수 있다. 상기 프로세서(320)는, 상기 동적 태스크의 실행을 위해, 전원이 켜진 TV가 위치한 방의 전등 장치로 전원 오프(off) 명령어를 전송할 수 있다.
다양한 실시 예들에 따르면, 프로세서(320)는, 사용자의 동작을 기반으로 추천 규칙을 생성하여 사용자에게 제공하고, 사용자의 선택에 의해 추천 규칙의 활성화되면 상기 추천 규칙을 실행하도록 설정할 수 있다.
예를 들어, 상기 프로세서(320)는, 사용자가 7시에 귀가하여 TV를 켰을 경우, 매일, 특정요일, 또는 특정 날짜에 "사용자가 7시에 귀가하면 TV를 켠다"라는 추천 규칙을 생성하여 사용자에게 제공할 수 있다.
다양한 실시 예에 따르면, 프로세서(320)는, 동일한 규칙에 대해 사용자 별로 다른 동적 태스크를 실행하도록 설정할 수 있다.
예를 들어, 상기 프로세서(320)는, "온도가 28이고 습도가 60%이상일 때 댁 내에 존재하는 사용자를 구분하여, 에어컨의 온도를 설정한다"라는 규칙을 생성하는 경우, 상기 규칙과 함께 사용자 별로 설정된 선호하는 온도 정보(예: 사용자 A의 선호 온도는 18도, 사용자 B의 선호 온도는 20동 등)를 미리 저장할 수 있다. 상기 프로세서(320)는, 댁 내의 거실에 사용자 A만이 존재하고, 온도가 28이고 습도가 60%이상일 때, 거실의 에어컨 온도를 18도 설정하도록 제어할 수 있다.
다양한 실시 예들에 따르면, 메모리(330)는, 전자 장치(301)(예: 도 2의 전자 장치(201))에서 관리하는 댁내의 복수의 장치들(예: 도 1의 디바이스들(121,122,123,124,125,151,152,153))로부터 수신한 장치의 정보(예: 위치 정보, 상태 정보, 및 구성 정보등)가 수집되어 저장될 수 있다.
일 실시 예에 따르면, 메모리(330)는 통신 모듈(320)를 통해 송신된 정보 또는 통신 모듈(320)를 통해 수신된 정보 중 적어도 하나와, 프로세서(330)에 의해 생성된 정보를 저장할 수 있다.
일 실시 예에 따르면, 메모리(330)는, 적어도 하나의 규칙들, 규칙에 포함된 동적 조건을 확인할 수 있는 복수의 컨텍스트 및 상기 복수의 컨텍스트를 확인할 수 있는 복수의 확인 방법들을 저장할 수 있다.
일 실시 예에 따르면, 메모리(310)는 휘발성 메모리 또는 비 휘발성 메모리를 포함할 수 있고, 도 1의 저장부(113), 저장부(133), 또는 저장부(143) 중 하나, 또는 도 2의 메모리(230) 중 적어도 하나에 포함될 수 있다.
다양한 실시 예들에 따르면, 디스플레이(360)는, 프로세서(320)의 제어 하에 전자 장치(301)에서 현재 수행하고 있는 기능이 표시될 수 있다.
일 실시 예에 따르면, 상기 디스플레이(36)는, 규칙에 포함된 동적 태스크의 실행을 알리는 정보를 제공할 수 있다.
다양한 실시 예들에 따르면, 통신 모듈(390)는, 서로 다른 통신 기술을 사용하는 복수의 통신 회로를 포함할 수 있다.
일 실시 예에 따르면, 통신 모듈(390)은, 이동 통신 모듈(미도시), 또는 무선랜과 근거리 통신을 수행하는 서브 통신 모듈(미도시)을 포함할 수 있다. 통신 모듈(390)은 프로세서(320)의 제어에 따라 적어도 하나의 안테나(도시되지 아니함)를 이용하여 외부 기기와 통신을 수행할 수 있다.
일 실시 예에 따르면, 통신 모듈(390)은, 무선랜 모듈(미도시)과 근거리 통신 모듈(미도시) 중 적어도 하나를 포함할 수 있으며, 상기 근거리 통신 모듈(미도시)로 NFC 통신 모듈, 블루투스 레거시(Legacy) 통신 모듈 및/또는 BLE통신 모듈을 포함할 수 있다.
일 실시 예에 따르면, 통신 모듈(390)는 프로세서(320)에서 댁 내의 복수의 외부 장치들에 제어하기 위한 정보를 이동 단말로 송신할 수 있다. 이동자 단말은 예를 들어, 전자 장치와 연결되어 각 외부 장치를 제어할 수 있는 스마트 폰, 태블릿 단말, 또는 웨어러블 장치 중 하나일 수 있다. 상기 복수의 외부 장치들는 예를 들어, 가전 제품(예: TV, 에어컨, 냉장고 등), 에너지 소비 장치(예: 수도, 전기, 냉난방 등), 또는 보안 기기(예: 도어록, 감시 카메라 등) 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 통신 모듈(390)는 도 1의 통신 인터페이스(111), 통신 인터페이스(131), 또는 통신 인터페이스(141) 중 하나, 또는 도 2의 통신 모듈(290) 중 적어도 하나에 포함될 수 있다.
도 4는 다양한 실시 예들에 따른 동적 조건에 따른 동적 태스크를 실행할 수 있는 전자 장치를 도시한 도면(400)이다. 전자 장치(401)는 도 1 내지 도 3에 도시된 전자 장치(예: 제 1 IoT 서버(110), 전자 장치(201), 전자 장치(301)), 프로세서(320)), 또는 이들의 조합에 의해 구현되거나 이를 포함할 수 있다.
도 4를 참조하면, 전자 장치(401)는, 규칙 엔진 모듈(410), 컨텍스트 수집 모듈(430), 장치 검색 모듈(450) 및 태스크 실행 모듈(470)을 포함할 수 있다. 상기 규칙 엔진 모듈(410)은, 규칙 인터페이스 모듈(411), 규칙 저장 모듈(413), 규칙 분석 모듈(415), 규칙 처리 모듈(417), 조건 모니터 모듈(419), 컨텍스트 제공 모듈(421), 장치 처리 모듈(423), 및 태스크 처리 모듈(425)을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 규칙 인터페이스 모듈(411)은, 서버(예: 도 2의 서버(208))로부터 획득한 규칙(rule)또는 사용자의 발화로 획득한 규칙(rule)을 수신하여 상기 규칙 저장 모듈(413)로 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 규칙 저장 모듈(413)은, 상기 규칙 인터페이스 모듈(411)을 통해 수신되는 적어도 하나의 규칙을 저장할 수 있다.
일 실시 예에 따르면, 상기 규칙 저장 모듈(413)은, JSON포맷의 규칙을 저장할 수 있다.
일 실시 예에 따르면, 상기 규칙 저장 모듈(413)은, 상기 적어도 하나의 규칙 및 상기 적어도 하나의 규칙 각각에 대한 활성화 상태 또는 비활성화 상태가 저장될 수 있다.
일 실시 예에 따르면, 상기 규칙 저장 모듈(413)은, 상기 규칙 저장 모듈(413)에 저장된 적어도 하나의 규칙에 대한 리스트가 저장될 수 있다.
다양한 실시 예들에 따르면, 상기 규칙 분석 모듈(415)은, 상기 규칙 저장 모듈(413)에 저장된 적어도 하나의 규칙 중 활성화 상태인 적어도 하나의 규칙을 확인하고, 상기 활성화된 적어도 하나의 규칙을 분석할 수 있다.
일 실시 예에 따르면, 상기 규칙 분석 모듈(415)은, JSON포맷의 규칙을 규칙 데이터 구조로 분석하고, 상기 분석 결과를 상기 규칙 처리 모듈(417)로 전송할 수 있다.
일 실시 예에 따르면, 상기 규칙 분석 모듈(415)은, 규칙에 포함된 복수의 문구 중 동적 조건에 대응되는 적어도 하나의 제1 문구와 태스크에 대응되는 적어도 하나의 제2 문구를 구분하고, 상기 구분한 결과를 상기 규칙 처리 모듈(417)로 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 규칙 처리 모듈(417)은, 규칙의 분석에 따라 상기 규칙에 포함된 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하고, 상기 적어도 하나의 컨텍스트를 확인하면 상기 규칙에 포함된 태스크를 실행하기 위해, 상기 조건 모니터 모듈(419), 상기 컨텍스트 제공 모듈(421), 상기 장치 처리 모듈(423) 및 상기 태스크 처리 모듈(425)를 제어할 수 있다.
일 실시 예에 따르면, 상기 규칙 처리 모듈(417)은, 상기 조건 모니터 모듈(419)과 상기 컨텍스트 제공 모듈(421)로 사익 규칙에 포함된 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 제공할 수 있다.
일 실시 예에 따르면, 상기 규칙 처리 모듈(417)은, 상기 장치 처리 모듈(423)로, 상기 규칙에 포함된 동적 태스크를 수행하기 위한 적어도 하나의 외부 장치의 검색을 요청할 수 있다.
일 실시 예에 따르면, 상기 규칙 처리 모듈(417)은, 상기 조건 모니터 모듈(419)로 수신한 정보를 기반으로 적어도 하나의 컨텍스트를 확인하여 동적 조건의 만족을 결정하고, 상기 장치 처리 모듈(423)로부터 동적 태스크를 수행하기 위한 적어도 하나의 외부 장치에 대한 정보를 수신하면, 상기 태스크 처리 모듈(425)로 상기 적어도 하나의 외부 장치로 상기 규칙에 포함된 동적 태스크의 실행 명령어를 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 조건 모니터 모듈(419)은, 상기 규칙 처리 모듈(417)로부터 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 수신하면, 상기 컨텍스트 수집 모듈(430)로부터 수신하는 정보를 기반으로, 적어도 하나의 컨텍스트를의 확인 여부를 결정할 수 있다.
일 실시 예에 따르면, 상기 조건 모니터 모듈(419)은, 상기 컨텍스트 수집 모듈(430)로부터 수신하는 정보를 기반으로, 적어도 하나의 컨텍스트를 확인하면, 현재 동적 조건의 만족하는 상태임을 나타내는 정보를 상기 규칙 처리모듈(417)로 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 컨텍스트 제공 모듈(421)은, 상기 규칙에 포함된 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 상기 컨텍스트 수집 모듈(430)로 제공할 수 있다.
다양한 실시 예들에 따르면, 상기 장치 처리 모듈(423)은, 상기 규칙 처리 모듈(417)로부터 제공되는 태스크를 수행하기 위한 적어도 하나의 외부 장치에 검색 요청을 상기 장치 검색 모듈(450)로 전송할 수 있다.
일 실시 예에 따르면, 상기 장치 처리 모듈(423)은, 상기 장치 검색 모듈(450)로부터 수신한 태스크를 수행하기 위한 적어도 하나의 외부 장치에 검색 결과를 상기 칙 처리 모듈(417)로 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 태스크 처리 모듈(425)은, 상기 규칙 처리 모듈(417)로부터 제공되는 적어도 하나의 외부 장치로 태스크 실행 명령어를 상기 태스크 실행 모듈(470)로 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 컨텍스트 수집 모듈(430)은, 댁 내의 복수의 외부 장치들로부터 수신한 정보, 또는 댁 내의 복수의 외부 장치들로부터 수신한 정보 중 상기 조건 모니터 모듈(419) 및 상기 컨텍스트 제공 모듈(421)로부터 수신한 적어도 하나의 컨텍스트를 확인할 수 있는 정보를 상기 조건 모니터 모듈(419)로 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 장치 검색 모듈(450)은, 상기 장치 처리 모듈(423)로부터 수신한 태스크 실행을 위한 적어도 하나의 외부 장치의 검색이 요청되면, 댁 내에 위치한 복수의 외부 장치들 중 상기 적어도 하나의 외부 장치가 검색되면, 상기 검색 결과를 상기 장치 처리 모듈(423)로 전송할 수 있다.
다양한 실시 예들에 따르면, 상기 태스크 실행 모듈(470)은, 상기 태스크 처리 모듈(425)로부터 수신한 적어도 하나의 외부 장치로 태스크 실행하는 명령어를 기반으로, 상기 적어도 하나의 외부 장치로 상기 태스크를 실행하도록 제어할 수 있다.
다양한 실시 예들에 따르면, 전자 장치는(예: 도 1의 제 1 IoT 서버(110), 도 2의 전자 장치(201), 도 3의 전자 장치(301) 및/또는 도 4의 전자 장치(401))는, 통신 모듈(예: 도 3의 통신 모듈(390), 메모리(예: 도 3의 메모리(330), 및 프로세서(예: 도 3의 프로세서(320))를 포함하고, 상기 프로세서는, 동적 조건 및 상기 동적 조건에 따라 때 실행되는 동적 태스크를 포함하는 규칙을 확인하고, 상기 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하고, 복수의 외부 장치들과 관련된 정보를 기반으로 상기 적어도 하나의 컨텍스트를 확인하면, 상기 동적 조건의 만족을 결정하고, 상기 동적 조건의 만족을 결정하면, 상기 복수의 외부 장치들 중 상기 동적 태스크 수행을 위한 적어도 하나의 장치를 결정하고, 상기 통신 모듈을 통해 상기 적어도 하나의 장치로 상기 동적 태스크의 수행을 요청하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 메모리에 저장된 상기 규칙 또는 사용자의 발화를 통해 획득한 상기 규칙을 확인하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구를 확인하고, 상기 적어도 하나의 제1 문구가 적어도 하나의 컨텍스트로 확인할 수 있는 문구로 결정하면, 상기 조건을 상기 동적 조건으로 확인하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 메모리에서 저장된 복수의 컨텍스트 중 상기 규칙에 포함된 복수의 문구들 중에서 동적 조건에 대응되는 적어도 하나의 제1 문구를 확인할 수 있는 적어도 하나의 컨텍스트를 검출하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 규칙에 포함된 복수의 문구들 중에서 동적 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 상기 동적 조건에 포함된 적어도 하나의 조건을 확인하고, 상기 메모리에서 저장된 복수의 컨텍스트 중 상기 적어도 하나의 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 복수의 외부 장치들과 관련된 정보 및 상기 메모리에 저장된 적어도 하나의 컨텍스트를 확인할 수 있는 확인 방법을 기반으로, 상기 적어도 하나의 컨텍스트를 확인하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 전자 장치에서 관리하는 상기 복수의 외부 장치들 각각으로부터 상기 복수의 외부 장치들과 관련된 정보를 수신하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 동적 조건을 만족하면, 상기 규칙에 포함된 복수의 문구들 중에서 태스크 수행을 위한 적어도 하나의 제2 문구로 확인하고, 상기 동적 조건의 만족을 결정한 상기 적어도 하나의 컨텍스트를 기반으로, 상기 복수의 외부 장치들 중 상기 제2 문구에 포함된 외부 장치를 확인하고, 상기 확인된 외부 장치를 상기 태스크 실행을 위한 적어도 하나의 외부 장치를 결정하도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 상기 적어도 하나의 외부 장치의 종류를 기반으로 상기 태스크의 실행 방식을 상이하게 적용할 수 있도록 설정될 수 있다.
다양한 실시 예들에 따르면, 상기 프로세서는, 사용자의 동작 정보를 기반으로 추천 규칙을 생성하여 제공하고, 상기 추천 규칙이 활성화 되면, 상기 추천 규칙을 실행하도록 설정될 수 있다.
도 5는 다양한 실시 예들에 따른 전자 장치에서 동적 조건에 따른 동적 태스크를 실행할 수 있는 동작을 설명하기 위한 흐름도(500)이다. 상기 태스크 실행을 위한 동작은 501동작 내지 505동작들을 포함할 수 있다. 일 실시 예에 따르면, 501동작 내지 505 동작 중 적어도 하나가 생략되거나, 일부 동작들의 순서가 바뀌거나, 다른 동작이 추가될 수 있다.
501동작에서, 전자 장치는(예: 도 1의 제 1 IoT 서버(110), 도 2의 전자 장치(201), 도 3의 전자 장치(301) 및/또는 도 4의 전자 장치(401))는, 동적 조건 및 상기 동적 조건에 따라 실행되는 동적 태스크를 포함하는 적어도 하나의 규칙(rule)을 확인할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 서버(예: 도 2의 서버(208)) 부터 수신하는 적어도 하나의 규칙, 또는/및 전자 장치(301)에서 제공하는 인터페이스를 통해 사용자에 의해 제공되는 적어도 하나의 규칙이 저장된 메모리(330)에서 상기 규칙을 확인할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 사용자의 발화를 통해 획득한 상기 규칙을 확인할 수 있다.
503동작에서, 전자 장치는(예: 도 1의 제 1 IoT 서버(110), 도 2의 전자 장치(201), 도 3의 전자 장치(301) 및/또는 도 4의 전자 장치(401))는, 동적 조건 및 상기 동적 조건에 따라 실행되는 동적 태스크를 포함하는 규칙(rule)에서, 적어도 하나의 컨텍스트를 이용하여 상기 동적 조건이 만족하는지 결정할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구와 동적 태스크 수행을 위한 적어도 하나의 제2 문구를 구분할 수 있다. 상기 전자 장치는, 조건 문구(예: ~면, ~라면, ~경우등)를 포함하는 적어도 하나의 문구를 조건에 대응되는 적어도 하나의 제1 문구로 확인할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 조건에 대응되는 적어도 하나의 제1 문구가 메모리(예: 도 3의 메모리(330))에 저장된 복수의 컨텍스트 중 적어도 하나의 컨텍스트로 확인할 수 있는 문구이면 상기 조건을 동적 조건으로 결정할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 서버로부터 수신한 적어도 하나의 컨텍스트, 또는/및 사용자에 의해 입력된 적어도 하나의 컨텍스트를 포함하는 복수의 컨텍스트를 상기 메모리에 저장할 수 있다.
일 실시 예에 따르면, 상기 복수의 컨텍스트는 사용자의 위치 확인을 위한 제1 컨텍스트, 댁내에 위치된 복수의 외부 장치들의 상태 정보(예: 전원 온/오프, 컨텐츠 정보 및 볼륨 정보 등) 확인을 위한 제2 컨텍스트, 사용자의 발화를 확인하기 위한 제3 컨텍스트, 댁 내에 위치된 복수의 외부 장치들의 구성(예: 화면 포함여부, 스피커 포함여부, 마이크 포함 여부등) 확인을 위한 제4 컨텍스트, 및 날짜 및 시간 정보 확인을 위한 제5 컨텍스트를 포함할 수 있다. 상기 컨텍스트의 종류는 제안되지 않으며, 컨텍스트는 자동 또는 수동으로 추가, 수정 또는 삭제될 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 동적 조건에 대응되는 적어도 하나의 제1 문구를 분석하여, 상기 제1 문구를 기반으로 적어도 하나의 조건을 확인하고, 상기 메모리에 저장된 복수의 컨텍스트 중 상기 적어도 하나의 조건에 확인할 수 있는 적어도 하나의 컨텍스트를 검출할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 전자 장치에서 관리하는 복수의 외부 장치들과 관련된 정보와 상기 메모리에서 상기 적어도 하나의 컨텍스트를 확인할 수 있는 확인 방법을 이용하여, 상기 적어도 하나의 컨텍스트를 만족하는 상황을 확인하면, 상기 동적 조건을 만족하는 것으로 결정할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 전자 장치에서 관리하는 복수의 외부 장치들 각각으로부터 상기 복수의 외부 장치들과 관련된 정보(예: 위치 정보, 상태 정보, 발화 정보 및 구성 정보등)를 수신할 수 있다.
505동작에서, 전자 장치는(예: 도 1의 제 1 IoT 서버(110), 도 2의 전자 장치(201), 도 3의 전자 장치(301) 및/또는 도 4의 전자 장치(401))는, 동적 조건 및 상기 동적 조건에 따라 실행되는 동적 태스크를 포함하는 규칙(rule)에서, 상기 동적 조건의 만족을 결정하면, 동적 태스크 실행을 위한 적어도 하나의 외부 장치를 확인하고, 상기 확인된 적어도 하나의 외부 장치에서 동적 태스크를 실행하도록 제어할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 규칙에 포함된 상기 동적 조건을 만족하면, 상기 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구를 제외한 문구를 동적 태스크 수행을 위한 적어도 하나의 제2 문구로 확인할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 동적 조건의 만족 위해 검출한 적어도 하나의 컨텍스트로 확인된 정보(예: 사용자의 이동 단말을 기반으로 확인한 사용자의 위치 정보, 외부 장치의 상태 정보, 외부 장치의 구성 정보 또는/및 사용자의 발화 정보 등)를 기반으로, 상기 제2 문구에 포함된 비 특정 외부 장치를 검출하고, 상기 검출한 비 특정 외부 장치를 동적 태스크를 수행을 위한 적어도 하나의 외부 장치로 확인할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 제2 문구에 포함된 특정 외부 장치를 태스크 수행을 위한 적어도 하나의 외부 장치로 확인할 수 있다.
507동작에서, 전자 장치는(예: 도 1의 제 1 IoT 서버(110), 도 2의 전자 장치(201), 도 3의 전자 장치(301) 및/또는 도 4의 전자 장치(401))는, 동적 태스크 실행을 위해 확인된 적어도 하나의 외부 장치에서 동적 태스크를 실행하도록 제어할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 확인된 적어도 하나의 외부 장치로 상기 동적 태스크를 실행을 위한 명령어를 전송할 수 있다.
일 실시 예에 따르면, 상기 전자 장치는, 상기 확인된 적어도 하나의 외부 장치의 종류를 기반으로 서로 다른 방식으로 상기 동적 태스크를 실행하도록 제어할 수 있다.
다양한 실시 예들에 따르면, 전자 장치에서 동적 조건으로 태스크를 수행하는 방법은, 동적 조건 및 상기 동적 조건에 따라 때 실행되는 동적 태스크를 포함하는 규칙을 확인하고는 동작, 상기 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하는 동작, 복수의 외부 장치들과 관련된 정보를 기반으로 상기 적어도 하나의 컨텍스트를 확인하면, 상기 동적 조건의 만족을 결정하는 동작, 상기 동적 조건의 만족을 결정하면, 상기 복수의 외부 장치들 중 상기 동적 태스크 수행을 위한 적어도 하나의 장치를 결정하는 동작, 및 상기 통신 모듈을 통해 상기 적어도 하나의 장치로 상기 동적 태스크의 수행을 요청하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 규칙을 확인하는 동작은, 상기 메모리에 저장된 상기 규칙 또는 사용자의 발화를 통해 획득한 상기 규칙을 확인하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구를 확인하는 동작; 및 상기 적어도 하나의 제1 문구가 적어도 하나의 컨텍스트로 확인할 수 있는 문구로 결정하면, 상기 조건을 상기 동적 조건으로 확인하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 메모리에서 저장된 복수의 컨텍스트 중 상기 규칙에 포함된 복수의 문구들 중에서 동적 조건에 대응되는 적어도 하나의 제1 문구를 확인할 수 있는 적어도 하나의 컨텍스트를 검출하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 규칙에 포함된 복수의 문구들 중에서 동적 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 상기 동적 조건에 포함된 적어도 하나의 조건을 확인하는 동작, 및 상기 메모리에서 저장된 복수의 컨텍스트 중 상기 적어도 하나의 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 복수의 외부 장치들과 관련된 정보 및 상기 메모리에 저장된 적어도 하나의 컨텍스트를 확인할 수 있는 확인 방법을 기반으로, 상기 적어도 하나의 컨텍스트를 확인하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치에서 관리하는 상기 복수의 외부 장치들 각각으로부터 상기 복수의 외부 장치들과 관련된 정보를 수신하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 동적 조건을 만족하면, 상기 규칙에 포함된 복수의 문구들 중에서 태스크 수행을 위한 적어도 하나의 제2 문구로 확인하는 동작, 상기 동적 조건의 만족을 결정한 상기 적어도 하나의 컨텍스트를 기반으로, 상기 복수의 외부 장치들 중 상기 제2 문구에 포함된 외부 장치를 확인하는 동작, 및 상기 확인된 외부 장치를 상기 태스크 실행을 위한 적어도 하나의 외부 장치를 결정하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 적어도 하나의 외부 장치의 종류를 기반으로 상기 태스크의 실행 방식을 상이하게 적용하는 방법을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 사용자의 동작 정보를 기반으로 추천 규칙을 생성하여 제공하는 동작, 및 상기 추천 규칙이 활성화 되면, 상기 추천 규칙을 실행하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치에 있어서,
    통신 모듈;
    메모리; 및
    프로세서를 포함하고, 상기 프로세서는,
    동적 조건 및 상기 동적 조건에 따라 때 실행되는 동적 태스크를 포함하는 규칙을 확인하고,
    상기 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하고,
    복수의 외부 장치들과 관련된 정보를 기반으로 상기 적어도 하나의 컨텍스트를 확인하면, 상기 동적 조건의 만족을 결정하고,
    상기 동적 조건의 만족을 결정하면, 상기 복수의 외부 장치들 중 상기 동적 태스크 수행을 위한 적어도 하나의 장치를 결정하고,
    상기 통신 모듈을 통해 상기 적어도 하나의 장치로 상기 동적 태스크의 수행을 요청하도록 설정된 전자 장치.
  2. 제1 항에 있어서, 상기 프로세서는,
    상기 메모리에 저장된 상기 규칙 또는 사용자의 발화를 통해 획득한 상기 규칙을 확인하도록 설정된 전자 장치.
  3. 제1 항에 있어서, 상기 프로세서는,
    상기 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구를 확인하고,
    상기 적어도 하나의 제1 문구가 적어도 하나의 컨텍스트로 확인할 수 있는 문구로 결정하면, 상기 조건을 상기 동적 조건으로 확인하도록 설정된 전자 장치.
  4. 제1 항에 있어서, 상기 프로세서는,
    상기 메모리에서 저장된 복수의 컨텍스트 중 상기 규칙에 포함된 복수의 문구들 중에서 동적 조건에 대응되는 적어도 하나의 제1 문구를 확인할 수 있는 적어도 하나의 컨텍스트를 검출하도록 설정된 전자 장치.
  5. 제1 항에 있어서, 상기 프로세서는,
    상기 규칙에 포함된 복수의 문구들 중에서 동적 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 상기 동적 조건에 포함된 적어도 하나의 조건을 확인하고, 상기 메모리에서 저장된 복수의 컨텍스트 중 상기 적어도 하나의 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하도록 설정된 전자 장치.
  6. 제1 항에 있어서, 상기 프로세서는,
    상기 복수의 외부 장치들과 관련된 정보 및 상기 메모리에 저장된 적어도 하나의 컨텍스트를 확인할 수 있는 확인 방법을 기반으로, 상기 적어도 하나의 컨텍스트를 확인하도록 설정된 전자 장치.
  7. 제1 항에 있어서, 상기 프로세서는,
    상기 전자 장치에서 관리하는 상기 복수의 외부 장치들 각각으로부터 상기 복수의 외부 장치들과 관련된 정보를 수신하도록 설정된 전자 장치.
  8. 제1 항에 있어서, 상기 프로세서는,
    상기 동적 조건을 만족하면, 상기 규칙에 포함된 복수의 문구들 중에서 태스크 수행을 위한 적어도 하나의 제2 문구로 확인하고,
    상기 동적 조건의 만족을 결정한 상기 적어도 하나의 컨텍스트를 기반으로, 상기 복수의 외부 장치들 중 상기 제2 문구에 포함된 외부 장치를 확인하고,
    상기 확인된 외부 장치를 상기 태스크 실행을 위한 적어도 하나의 외부 장치를 결정하도록 설정된 전자 장치.
  9. 제1 항에 있어서, 상기 프로세서는,
    상기 적어도 하나의 외부 장치의 종류를 기반으로 상기 태스크의 실행 방식을 상이하게 적용할 수 있도록 설정된 전자 장치.
  10. 제1 항에 있어서, 상기 프로세서는,
    사용자의 동작 정보를 기반으로 추천 규칙을 생성하여 제공하고, 상기 추천 규칙이 활성화 되면, 상기 추천 규칙을 실행하도록 설정된 전자 장치.
  11. 전자 장치에서 동적 조건으로 태스크를 수행하는 방법에 있어서,
    동적 조건 및 상기 동적 조건에 따라 때 실행되는 동적 태스크를 포함하는 규칙을 확인하는 동작;
    상기 동적 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하는 동작;
    복수의 외부 장치들과 관련된 정보를 기반으로 상기 적어도 하나의 컨텍스트를 확인하면, 상기 동적 조건의 만족을 결정하는 동작;
    상기 동적 조건의 만족을 결정하면, 상기 복수의 외부 장치들 중 상기 동적 태스크 수행을 위한 적어도 하나의 장치를 결정하는 동작; 및
    상기 통신 모듈을 통해 상기 적어도 하나의 장치로 상기 동적 태스크의 수행을 요청하는 동작을 포함하는 방법.
  12. 제11 항에 있어서,
    상기 규칙에 포함된 복수의 문구들 중에서 조건에 대응되는 적어도 하나의 제1 문구를 확인하는 동작; 및
    상기 적어도 하나의 제1 문구가 적어도 하나의 컨텍스트로 확인할 수 있는 문구로 결정하면, 상기 조건을 상기 동적 조건으로 확인하는 동작을 더 포함하는 방법.
  13. 제11 항에 있어서,
    상기 규칙에 포함된 복수의 문구들 중에서 동적 조건에 대응되는 적어도 하나의 제1 문구를 분석하여 상기 동적 조건에 포함된 적어도 하나의 조건을 확인하는 동작; 및
    상기 메모리에서 저장된 복수의 컨텍스트 중 상기 적어도 하나의 조건을 확인할 수 있는 적어도 하나의 컨텍스트를 검출하는 동작을 더 포함하는 방법.
  14. 제11 항에 있어서,
    상기 복수의 외부 장치들과 관련된 정보 및 상기 메모리에 저장된 적어도 하나의 컨텍스트를 확인할 수 있는 확인 방법을 기반으로, 상기 적어도 하나의 컨텍스트를 확인하는 동작을 더 포함하는 방법.
  15. 제11 항에 있어서,
    상기 동적 조건을 만족하면, 상기 규칙에 포함된 복수의 문구들 중에서 태스크 수행을 위한 적어도 하나의 제2 문구로 확인하는 동작;
    상기 동적 조건의 만족을 결정한 상기 적어도 하나의 컨텍스트를 기반으로, 상기 복수의 외부 장치들 중 상기 제2 문구에 포함된 외부 장치를 확인하는 동작; 및
    상기 확인된 외부 장치를 상기 태스크 실행을 위한 적어도 하나의 외부 장치를 결정하는 동작을 더 포함하는 방법.
PCT/KR2022/001429 2021-04-01 2022-01-27 전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법 WO2022211245A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0042496 2021-04-01
KR1020210042496A KR20220136625A (ko) 2021-04-01 2021-04-01 전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법

Publications (1)

Publication Number Publication Date
WO2022211245A1 true WO2022211245A1 (ko) 2022-10-06

Family

ID=83459251

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/001429 WO2022211245A1 (ko) 2021-04-01 2022-01-27 전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법

Country Status (2)

Country Link
KR (1) KR20220136625A (ko)
WO (1) WO2022211245A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101713000B1 (ko) * 2015-08-31 2017-03-08 (주)지산웨어 시나리오의 생성 지원용 시나리오 빌더
KR20170115802A (ko) * 2016-04-08 2017-10-18 삼성전자주식회사 전자 장치 및 전자장치의 외부장치 제어 방법
US20180173706A1 (en) * 2016-12-21 2018-06-21 Sap Se Rule execution based on context data
KR20190065136A (ko) * 2017-12-01 2019-06-11 한국전자통신연구원 능동적인 IoT 서비스 제공 방법 및 장치
KR20190109627A (ko) * 2018-02-27 2019-09-26 폴스타헬스케어(주) 사물인터넷을 이용한 디바이스 관리 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101713000B1 (ko) * 2015-08-31 2017-03-08 (주)지산웨어 시나리오의 생성 지원용 시나리오 빌더
KR20170115802A (ko) * 2016-04-08 2017-10-18 삼성전자주식회사 전자 장치 및 전자장치의 외부장치 제어 방법
US20180173706A1 (en) * 2016-12-21 2018-06-21 Sap Se Rule execution based on context data
KR20190065136A (ko) * 2017-12-01 2019-06-11 한국전자통신연구원 능동적인 IoT 서비스 제공 방법 및 장치
KR20190109627A (ko) * 2018-02-27 2019-09-26 폴스타헬스케어(주) 사물인터넷을 이용한 디바이스 관리 시스템 및 방법

Also Published As

Publication number Publication date
KR20220136625A (ko) 2022-10-11

Similar Documents

Publication Publication Date Title
WO2022055068A1 (ko) 음성에 포함된 커맨드를 확인하는 전자 장치와 이의 동작 방법
WO2022131739A1 (ko) 영상 처리 방법 및 이를 지원하는 전자 장치
WO2022019682A1 (ko) 엣지 컴퓨팅 시스템 및 방법
WO2022030860A1 (ko) Iot 환경에서 타겟 전자 장치를 제어하기 위한 전자 장치 및 그에 관한 방법
WO2022154286A1 (ko) 사용자 인터페이스를 제공하는 방법 및 그 전자 장치
WO2022211245A1 (ko) 전자 장치 및 전자 장치에서 동적 조건으로 태스크를 수행하는 방법
WO2022154546A1 (ko) 자동 음량 제어를 수행하는 웨어러블 장치
WO2022197088A1 (ko) Iot 서비스를 제공하는 장치 및 그 방법
WO2022191395A1 (ko) 사용자 명령을 처리하는 장치 및 그 동작 방법
WO2020111727A1 (ko) 전자 장치 및 전자 장치의 제어 방법
WO2022215865A1 (ko) 전자 장치 및 iot 제어 정보 공유 방법
WO2023146137A1 (ko) 사물 인터넷 서비스를 제공하는 전자 장치 및 그 동작 방법
WO2022098004A1 (ko) 통신 연결을 통하여 데이터를 전송하는 전자 장치와 이의 동작 방법
WO2024025194A1 (ko) 알림과 관련된 동작을 수행하기 위한 방법 및 이를 지원하는 전자 장치
WO2023219230A1 (ko) 사물 인터넷 장치를 제어하는 전자 장치 및 그 동작 방법
WO2023043073A1 (ko) 복수의 사물 인터넷 장치들을 제어하기 위한 웨어러블 전자 장치, 그 동작 방법 및 저장 매체
WO2024076008A1 (ko) 파일을 공유하는 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체
WO2023085642A1 (ko) 동작 제어 방법 및 그 전자 장치
WO2024076084A1 (ko) 사물 인터넷 서비스를 제공하는 전자 장치 및 그 동작 방법
WO2023022349A1 (ko) 적어도 하나의 외부 장치를 제어하는 전자 장치 및 이의 동작 방법
WO2023085822A1 (ko) 디바이스 위치 결정 방법 및 상기 방법을 수행하는 전자 장치
WO2023096271A1 (ko) 탑승자 모니터링 시스템에 기반하여 외부 장치를 제어하는 전자 장치 및 그 방법
WO2024043492A1 (ko) 사물 인터넷 장치를 관리하는 전자 장치 및 그 동작 방법
WO2024049088A1 (ko) 미디어 기반의 조명 제어 서비스를 제공하기 위한 전자 장치, 그 동작 방법 및 저장 매체
WO2022085926A1 (ko) 전자 장치 및 서버를 포함하는 시스템, 및 그 시스템을 이용한 컨텐츠 추천 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22781366

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22781366

Country of ref document: EP

Kind code of ref document: A1