Optimizing appliance based on preparation time

The program directs a computer processor to implement a method that dynamically operates one or more appliances. The method estimates a time period for a user to arrive at a location, wherein the estimated time period is based on one or more time constraints, and identifies one or more appliances needed based on at least an instruction set. The method further generates and sends one or more operating commands to the identified one or more appliances based on the estimated time period, updates the estimated time period based on a change in the one or more time constraints, and generates and sends one or more updated operating commands to the identified one or more appliances, based on the updated estimated time period. The method may further detect a current location of the user and receive travel data that corresponds to the one or more time constraints.

BACKGROUND

The present disclosure relates generally to the field of cognitive computing, Internet of Things (IoT), and more particularly to data processing and dynamic operation of appliances. Deciding on what to make for dinner may depend on an availability of ingredients and an availability of functioning appliances to prepare the ingredients. Oftentimes, there is a significant amount of preparation time of one or more appliances prior to utilizing the appliance. For example, a recipe may include pre-heating an oven or a fryer to 350 degrees, which may take more or less than twenty minutes, depending on the type of appliance.

Time is a valuable commodity in this world. A problem that many individuals encounter on a daily basis is deciding what to make for a meal while commuting home. Even if a consumer has a recipe, the time requirement to prepare various appliances, such as the amount of time required to pre-heat the oven or the fryer for example, may deter an individual from following a particular recipe and opt for something more expedient.

BRIEF SUMMARY

Embodiments of the present invention disclose a method, a computer program product, and a system.

According to an embodiment, a method, in a data processing system including a processor and a memory, for implementing a program that operates one or more appliances. The method includes estimating a time period for a user to arrive at a location, wherein the estimated time period is based on one or more time constraints. The method further includes identifying one or more appliances needed based on at least an instruction set, and generating and sending one or more operating commands to the identified one or more appliances based on the estimated time period. The method further includes updating the estimated time period based on a change in the one or more time constraints, and generating and sending one or more updated operating commands to the identified one or more appliances, based on the updated estimated time period.

According to another embodiment, a computer program product for directing a computer processor to implement a program that operates one or more appliances. The storage device embodies program code that is executable by a processor of a computer to perform a method. The method includes estimating a time period for a user to arrive at a location, wherein the estimated time period is based on one or more time constraints. The method further includes identifying one or more appliances needed based on at least an instruction set, and generating and sending one or more operating commands to the identified one or more appliances based on the estimated time period. The method further includes updating the estimated time period based on a change in the one or more time constraints, and generating and sending one or more updated operating commands to the identified one or more appliances, based on the updated estimated time period.

According to another embodiment, a computer system for implementing a program that manages a device, includes one or more computer devices each having one or more processors and one or more tangible storage devices. The one or more storage devices embody a program. The program has a set of program instructions for execution by the one or more processors. The program instructions include instructions for estimating a time period for a user to arrive at a location, wherein the estimated time period is based on one or more time constraints. The program instructions further include instructions for identifying one or more appliances needed based on at least an instruction set, and generating and sending one or more operating commands to the identified one or more appliances based on the estimated time period. The program instructions further include instructions for updating the estimated time period based on a change in the one or more time constraints, and generating and sending one or more updated operating commands to the identified one or more appliances, based on the updated estimated time period.

DETAILED DESCRIPTION

The present invention discloses a method that remotely, and dynamically, operates one or more appliances in a user's home based on a user's real time commute, estimated arrival time, recipe, and availability of appliances. The present invention accounts for time constraints of a user's commute, such as traffic, unexpected delays and/or travel interruptions, and so forth.

Advantages of the present invention include, but are not limited to: reduced wait time for a user between arriving home and eating a home-cooked meal; an enhanced user experience for cooking a meal; enhanced time management for a user; and higher efficiency of an appliance usage.

The present invention is not limited to the exemplary embodiments below, but may be implemented with various modifications within the scope of the present invention. In addition, the drawings used herein are for purposes of illustration, and may not show actual dimensions.

FIG. 1illustrates home appliance computing environment100, in accordance with an embodiment of the present invention. Home appliance computing environment100includes computing device110, home appliance130, and database server140all connected via network102. The setup inFIG. 1represents an example embodiment configuration for the present invention, and is not limited to the depicted setup in order to derive benefit from the present invention.

In the example embodiment, computing device110contains user interface112, global positioning system (GPS)114, travel application116, and home appliance assistant120. In various embodiments, computing device110may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with home appliance130and database server140via network102. Computing device110may include internal and external hardware components, as depicted and described in further detail below with reference toFIG. 5. In other embodiments, computing device110may be implemented in a cloud computing environment, as described in relation toFIGS. 6 and 7, herein. Computing device110may also have wireless connectivity capabilities allowing it to communicate with home appliance130, database server140, and other computers or servers over network102.

In the example embodiment, computing device110includes user interface112, which may be a computer program that allows a user to interact with computing device110and other connected devices via network102. For example, user interface112may be a graphical user interface (GUI). In addition to comprising a computer program, user interface112may be connectively coupled to hardware components, such as those depicted inFIG. 5, for receiving user input. In the example embodiment, user interface112is a web browser, however in other embodiments user interface112may be a different program capable of receiving user interaction and communicating with other devices.

In the example embodiment, GPS114is a computer program on computing device110that provides time and location information for a user. Modern GPS systems operate on the concept of time and location. In modern GPS systems, four or more satellites broadcast a continuous signal detailing satellite identification information, time of transmission (TOT), and the precise location of the satellite at the time of transmission. When a GPS receiver picks up the signal, it determines the difference in time between the time of transmission (TOT) and the time of arrival (TOA). Based on the amount of time it took to receive the signals and the precise locations of the satellites when the signals were sent, GPS receivers are capable of determining the location where the signals were received. In the example embodiment, GPS114is capable of providing real-time location detection of the user, together with an estimated time of arrival for a given destination based on real-time traffic, weather conditions, and so forth. GPS114may also include alternate routes and/or means of transportation to reach a destination.

In an exemplary embodiment, travel application116may be a software program, on computing device110, that contains transportation information for mass transit such as local train schedules, bus schedules, airplane schedules or any other public transportation schedules that a user frequents, together with notifications, announcements, and alerts regarding schedule delays, cancellations, interrupted services, and so forth. In exemplary embodiments, transportation information may further include private entities such as car services, bike services, and any other transportation means that are commonly frequented. For example, transportation information for bike services may include locations of bike rental stations, availability of bike rentals, and estimated time for a user to reach a destination from the bike rental station.

In exemplary embodiments, travel application116may include real-time information regarding emergency happenings (i.e. car accident, bridge collapse, fire, etc.) or public events (i.e. sporting events, concerts) that may affect transportation information. In alternative embodiments, travel application116may provide alternate routes and/or means of transportation recommendations to reach a destination.

Travel application116, in exemplary embodiments, is capable of communicating with home appliance assistant120.

With continued reference toFIG. 1, home appliance130may include one or more electronic appliances found within a home of a user. In exemplary embodiments, home appliance130may be an electrical/mechanical machine which accomplishes some household functions, such as cooking or cleaning. Some examples of home appliance130may include a kitchen device (i.e. blender, fryer, oven, mixer, crockpot, coffee maker, refrigerator, dishwasher, microwave, etc.), a washer/dryer, an air-conditioner, a television, a space heater, and so forth.

In exemplary embodiments, home appliance130may be a kitchen appliance or cooking device located in the kitchen of the user that is capable of wirelessly communicating with computing device110and database server140via network102to relay relevant information to the user in real-time via home appliance assistant120. Relevant information to the user may include the availability of the specific home appliance130, for example whether it is functioning properly, whether it is clean, whether it needs time to warm up (and how much time) prior to using, and whether it has power in its batteries (if battery operated). The specific home appliance130may also convey to the user, with regards to a kitchen appliance, the required time to cook a food item, the preparation time involved, and the typical amount of time to clean up after the food item is cooked or prepared.

In exemplary embodiments, one or more home appliances130may be capable of communicating with each other based on an internet of things (IoT) network. An IoT network may comprise a network of physical devices, vehicles, home appliances130, and other items embedded with electronics, sensors, actuators, and connectivity which enables these objects to connect and exchange data.

In exemplary embodiments, each home appliance130may be uniquely identifiable through its embedded computing system but is able to inter-operate within the existing Internet infrastructure. The IoT network allows objects to be sensed or controlled remotely across existing network infrastructure, thereby creating opportunities for more direct integration of the physical world into a computer-based system resulting in improved efficiency, accuracy, and economic benefit in addition to reduced human intervention.

Furthermore, home appliance130may be capable of collecting useful data with the help of various existing technologies and then autonomously flow the data between other devices within the IoT network. For example, the blender may receive an alert when the oven reaches a pre-heat temperature of 350 degrees, or the coffee maker may turn on when it receives information that the oven has been turned off, and so forth.

With continued reference toFIG. 1, database server140includes travel data142and may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, a server, or any programmable electronic device capable of communicating with computing device110and home appliance130via network102. While database server140is shown as a single device, in other embodiments, database server140may be comprised of a cluster or plurality of computing devices, working together or working separately.

In exemplary embodiments, travel data142may include historical travel data of a plurality of users, and/or of one or more specific users. For example, travel data142may further include average driving speeds of drivers located in specific geographical areas, together with traffic patterns for specific times of day, and specific days of the week. For example, travel data142may distinguish between peak and off-peak hours of road congestion, as well as average delays due to inclement weather conditions. In exemplary embodiments, travel data142may further include average travel speed for mass transit in various weather conditions in order to assist in determining estimated arrival times during inclement weather.

Travel data142may further include user-specific travel habits, such as days and times of the week driving on highways, days and times of the week using public transit, average driving speed in various weather conditions, and so forth. Travel data142, in exemplary embodiments, may continually be updated, stored, and used as a reference for home appliance assistant120in estimating travel time for a user.

With continued reference toFIG. 1, home appliance assistant120, in the example embodiment, may be a computer application on computing device110that contains instruction sets, executable by a processor. The instruction sets may be described using a set of functional modules. Home appliance assistant120receives input from user interface112, GPS114, travel application116, home appliance130, and database server140. In alternative embodiments, home appliance assistant120may be a standalone program on a separate electronic device.

With continued reference toFIG. 1, the functional modules of home appliance assistant120include time period estimator122, home appliance identifier124, home appliance database126, and communication module128.

FIG. 2is a flowchart illustrating the operation of home appliance assistant120ofFIG. 1, in accordance with embodiments of the present invention.

With reference toFIGS. 1 and 2, time period estimator122includes a set of programming instructions in home appliance assistant120, to estimate a time period for a user to arrive at a location, wherein the estimated time period is based on one or more time constraints (step202). In exemplary embodiments, one or more time constraints include at least one, or any combination thereof, of the following: travel time to arrive at the location, traffic patterns, weather conditions, transportation delays, public events, interrupted transportation services, emergency events, public transportation schedules, and an amount of time required to fulfill an instruction set. In an exemplary embodiment, the instruction set may include a recipe, such as a food recipe detailing necessary ingredients, steps, required appliances, appliance preparation time, food preparation time, and so forth.

In an exemplary embodiment, time period estimator122may further include a set of programming instructions in home appliance assistant120to detect a current location of the user, and receive travel data that corresponds to the one or more time constraints, wherein the estimated time period for the user to arrive at a location is based on evaluating the received travel data. Travel data may, in the exemplary embodiment, includes mass transit departure/arrival schedules, delay/cancellation notifications, emergency alerts, and so forth.

FIG. 3illustrates a first use case of home appliance assistant120ofFIG. 1, in accordance with an embodiment of the present invention.

With reference to an illustrative example, as depicted inFIG. 3, Mark has just boarded his train at 6:00 pm for his one-hour ride home from work on a Wednesday night. Using home appliance assistant120on his mobile device, Mark begins to scroll through his phone for recipe ideas for dinner. Time period estimator122determines that Mark will not arrive home until 7:00 pm after considering the one-hour train ride with no anticipated delays or extraneous time constraints. As such, home appliance assistant120refers an optimized cooking plan based on Mark's chosen recipe of a pork tenderloin and his anticipated time of arrival at home. The pork tenderloin has a fairly straight forward cooking procedure as follows: (1) Pre-heat oven to 500 degrees for 20 minutes; (2) Roast pork tenderloin for 18 minutes; and (3) Serve.

With continued reference toFIGS. 1 and 2, home appliance identifier124includes a set of programming instructions in home appliance assistant120, to identify one or more appliances needed based on at least an instruction set (step204). The set of programming instructions is executable by a processor.

In an exemplary embodiment, home appliance identifier124is capable of determining if the one or more appliances is being utilized, not being utilized, or non-functioning. For example, “being utilized” may mean that the appliance is currently being used and is unavailable; “not being utilized” may mean that the appliance is currently available to be used; and “non-functioning” may mean that the appliance does not work, needs to be cleaned, gas line is disconnected, power cord is broken, or is unavailable for some other technical reason. Furthermore, home appliance identifier124may receive property specifications for the one or more appliances that are not being utilized and identify the one or more appliances that are needed based on the determined one or more appliances that are not being utilized, as well as based on the received property specifications for the one or more appliances that are not being utilized.

With continued reference to the illustrative example inFIG. 3, the majority of Mark's pork tenderloin recipe involves the preparation/wait time of the oven pre-heating, which is 20 minutes. Thus, even if Mark hurries home to pre-heat the oven, he must still wait 20 minutes until the oven is ready for the pork tenderloin to be placed inside. Luckily for Mark, his phone is connected to the IoT network of devices within his kitchen at home. Home appliance identifier124is capable of detecting the IoT connected oven in his kitchen, which, over time has developed a profile for the oven based on monitored historical pre-heating times, based on various recipes. The monitored data for the IoT oven is stored, in home appliance database126. As such, home appliance identifier124is capable of recognizing the extensive pre-heat/wait time associated with the selected pork tenderloin recipe.

In an exemplary embodiment, home appliance database126is local data storage on home appliance assistant120that may contain a list of one or more home appliances with associated property specifications. While home appliance database126is depicted as being stored on home appliance assistant120, in other embodiments, home appliance database126may be stored on computing device110, or database server140, as a separate database.

In exemplary embodiments, property specifications may include the size of the home appliance130(i.e. how much it can hold), whether it is currently available to be used (i.e. it was recently used and is now in the dishwasher; it is non-functioning; it is currently in use), how long it takes for the home appliance130to be ready for use (i.e. pre-heating time based on model), and so forth. For example, a newer model oven may only require 10 minutes of pre-heating to reach 250 degrees, while an older model oven may require 30 minutes of pre-heating to reach 250 degrees. Home appliance database126, in exemplary embodiments, may continually, and dynamically, be updated and used as a reference for property specifications and active status of a home appliance130.

With continued reference toFIGS. 1 and 2, communication module128includes a set of programming instructions in home appliance assistant120, to generate and send one or more operating commands to the identified one or more appliances based on the estimated time period (step206). The set of programming instructions is executable by a processor. In exemplary embodiments, one or more operating commands may include, but are not limited to, turning on, turning off, raising, lowering, increasing, and decreasing. For example, communication module128may send a command to a home appliance130, such as an oven, to increase the pre-heating temperature or to decrease the pre-heating temperature. In other embodiments, communication module128may send a command to turn on, or turn off, a home appliance130. In exemplary embodiments, communication module128sends the one or more operating commands to the identified one or more home appliances130via network102.

In exemplary embodiments, communication module128may be capable of comparing the estimated time period for a user to arrive at a location with an amount of time required to prepare the one or more appliances according to the instruction set, and adjusting the one or more appliances, in accordance with the instruction set, before the user arrives at the location based on the estimated time period for the user to arrive at the location.

With continued reference to the illustrative example inFIG. 3, communication module128communicates to Mark's IoT oven to begin pre-heating to 500 degrees when Mark is 20 minutes away from his home, according to the learning of pre-heating times that the oven has done in the past, and based on time period estimator122. When Mark duly arrives home as expected at 7:00 pm, the oven is pre-heated to 500 degrees and he is able to place the pork tenderloin in the oven immediately. Thanks to home appliance assistant120, Mark has saved 20 minutes of oven preparation time and has enhanced his cooking experience and overall efficiency.

In various embodiments, adjusting the one or more appliances, via communication module128, may further include at least one, or a combination thereof, of the following: turning on, turning off, raising, lowering, increasing, and decreasing. For example, communication module128may be capable of generating and sending one or more commands to turn on an oven, based on a user's anticipated arrival time at home, and likewise lower the pre-heat temperature of the oven based on a delay in the user's anticipated arrival time.

In exemplary embodiments, communication module128is capable of updating the estimated time period based on a change in the one or more time constraints, and generating and sending one or more updated operating commands to the identified one or more appliances, based on the updated estimated time period (step208).

In exemplary embodiments, communication module128is capable of generating and sending one or more updated operating commands to the identified one or more appliances, based on the updated estimated time period (step210).

In exemplary embodiments, communication module128is capable of dynamically generating and sending one or more updated operating commands to the identified one or more home appliances130based on a detected change in an estimated time of arrival, via time period estimator122. For example, if a user's train is running 10 minutes late, communication module128may delay the pre-heating of the oven by 10 minutes. In exemplary embodiments, home appliance assistant120is capable of updating itself in real-time.

In alternative embodiments, adjusting the one or more appliances, via communication module128, may further include turning the one or more appliances on, turning the one or more appliances off, and turning the one or more appliances on again based on an updated estimated time period for the user to arrive at the location. In alternative embodiments, communication module128may adjust the operation of the one or more appliances pursuant to building code regulations, such as avoidance of utilizing more than two plugged-in kitchen devices at the same time, fire hazards, detection of a smoke alarm sounding, and so forth. In various embodiments, home appliance assistant120may be linked to a user's home security system and/or local fire department in order to effectively alert the authorities in the event of a fire or other emergency.

With reference to a specific embodiment, adjusting the one or more appliances, via communication module128, may further include initiating a pre-heating cycle for an oven so that the oven is ready to bake when the user arrives at the location. Further, communication module128may be capable of extending the pre-heating cycle for the oven by reducing a change in input energy, based on an updated estimated time period for the user to arrive at the location.

In a further exemplary embodiment, communication module128may include leaving the pre-heating cycle for the oven intact until a delay threshold is met, turning off the pre-heating cycle for the oven if the delay threshold is greater than a pre-defined value, and extending the pre-heating cycle for the oven if the delay threshold is equal to or less than a pre-defined value.

FIG. 4illustrates a second use case of home appliance assistant120ofFIG. 1, in accordance with an embodiment of the present invention.

With reference toFIG. 4, Rob is on his way home from work and has selected a recipe for baked vegetables and fried chicken. The chicken requires 6 minutes frying in 350-degree oil and the vegetables require 15 minutes of bake time in the oven at 350-degrees. Time period estimator122determines that Rob is due home in 35 minutes. Home appliance identifier124determines that Rob has a functioning personal size fryer and oven in his home, both of which home appliance assistant120has monitored preheating times since he bought the devices. As such, home appliance identifier124has a developed an optimal preparation time profile specific to each device, stored in home appliance database126. Based on the stored data, the fryer requires 15 minutes of pre-heating time to reach 350-degrees and the oven requires 17 minutes of pre-heating time to reach 350-degrees.

With continued reference to the illustrative example inFIG. 4, home appliance assistant120is capable of initiating the oven pre-heat 17 minutes before Rob's expected arrival at home and the fryer pre-heat 6 minutes before Rob's expected arrival at home, via communication module128. Rob bakes his vegetables first because of the longer bake time, and fries the chicken second using the pre-heated devices, initiated at variable pre-heating times. By using home appliance assistant120to pre-heat his cooking devices, Rob's food comes out at the same time producing the highest efficiency meal. Additionally, Rob has exercised effective time management.

In the example embodiment, network102is a communication channel capable of transferring data between connected devices and may be a telecommunications network used to facilitate telephone calls between two or more parties comprising a landline network, a wireless network, a closed network, a satellite network, or any combination thereof. In another embodiment, network102may be the Internet, representing a worldwide collection of networks and gateways to support communications between devices connected to the Internet. In this other embodiment, network102may include, for example, wired, wireless, or fiber optic connections which may be implemented as an intranet network, a local area network (LAN), a wide area network (WAN), or any combination thereof. In further embodiments, network102may be a Bluetooth network, a WiFi network, or a combination thereof. In general, network102can be any combination of connections and protocols that will support communications between computing device110, home appliance130, and database server140.

FIG. 5is a block diagram depicting components of a computing device (such as computing device110, as shown inFIG. 1), in accordance with an embodiment of the present invention. It should be appreciated thatFIG. 5provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

Computing device110may include one or more processors902, one or more computer-readable RAMs904, one or more computer-readable ROMs906, one or more computer readable storage media908, device drivers912, read/write drive or interface914, network adapter or interface916, all interconnected over a communications fabric918. Communications fabric918may be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system.

One or more operating systems910, and one or more application programs911, such as recipe optimizer assistant120, may be stored on one or more of the computer readable storage media908for execution by one or more of the processors902via one or more of the respective RAMs904(which typically include cache memory). In the illustrated embodiment, each of the computer readable storage media908may be a magnetic disk storage device of an internal hard drive, CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk, a semiconductor storage device such as RAM, ROM, EPROM, flash memory or any other computer-readable tangible storage device that can store a computer program and digital information.

Computing device110may also include a R/W drive or interface914to read from and write to one or more portable computer readable storage media926. Application programs911on computing device110may be stored on one or more of the portable computer readable storage media926, read via the respective R/W drive or interface914and loaded into the respective computer readable storage media908.

Computing device110may also include a display screen920, a keyboard or keypad922, and a computer mouse or touchpad924. Device drivers912interface to display screen920for imaging, to keyboard or keypad922, to computer mouse or touchpad924, and/or to display screen920for pressure sensing of alphanumeric character entry and user selections. The device drivers912, R/W drive or interface914and network adapter or interface916may comprise hardware and software (stored on computer readable storage media908and/or ROM906).