User interface for managing controllable external device

A touch-sensitive interface on electronic devices simplifies the management of external devices, reducing interaction complexity and conserving power by allowing direct selection and control of device states.

JP2025138682APending Publication Date: 2025-09-25APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025095706
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2017-02-08
Filing Date
2025-06-09
Publication Date
2025-09-25

AI Technical Summary

Technical Problem

Existing techniques for managing controllable external devices, such as thermostats and lighting devices, are cumbersome and inefficient, often requiring multiple key presses and consuming unnecessary time and device power, particularly in battery-operated devices.

Method used

An electronic device with a touch-sensitive surface and display provides a user interface that allows for quick selection and control of external devices by displaying representations and states, reducing the need for complex interactions and conserving power.

Benefits of technology

The solution reduces cognitive burden on users and conserves power by enabling efficient management of external devices through simplified user interactions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025138682000109
    Figure 2025138682000109
  • Figure 2025138682000110
    Figure 2025138682000110
  • Figure 2025138682000111
    Figure 2025138682000111
Patent Text Reader

Abstract

To provide an electronic device with a display, a touch-sensitive surface, one or more processors, and memory, the device displaying, on a first user interface screen, an indication of a location.SOLUTION: A device displays, on a first user interface screen, a representation of a controllable external device at a location. The device detects a first user input corresponding to selection of the controllable external device, and, in response to detecting the first user input, displays a user interface object indicating a plurality of possible states of the controllable external device. While displaying the user interface object indicating the plurality of possible states of the controllable external device, the device detects a second user input corresponding to selection of a designated state of the controllable external device, and, in response to detecting the second user input, sends instructions to set the controllable external device to the designated state.SELECTED DRAWING: None
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 62 / 349,057, filed June 12, 2016, entitled "USER INTERFACE FOR MANAGING CONTROLLABLE EXTERNAL DEVICES," the entire contents of which are incorporated herein by reference. This application claims priority to U.S. Nonprovisional Patent Application No. 15 / 427,516, filed February 8, 2017, entitled "USER INTERFACE FOR MANAGING CONTROLLABLE EXTERNAL DEVICES," the entire contents of which are incorporated herein by reference. This application claims priority to Danish Patent Application No. PA 2016 70601, filed August 9, 2016, entitled "USER INTERFACE FOR MANAGING CONTROLLABLE EXTERNAL DEVICES," the entire contents of which are incorporated herein by reference. This application claims priority to Danish Patent Application No. PA 2016 70602, entitled "USER INTERFACE FOR MANAGING CONTROLLABLE EXTERNAL DEVICES," filed August 9, 2016, the contents of which are incorporated herein by reference in their entirety. This application claims priority to Danish Patent Application No. PA 2016 70603, entitled "USER INTERFACE FOR MANAGING CONTROLLABLE EXTERNAL DEVICES," filed August 9, 2016, the contents of which are incorporated herein by reference in their entirety. This application claims priority to Danish Patent Application No. PA 2016 70604, entitled "USER INTERFACE FOR MANAGING CONTROLLABLE EXTERNAL DEVICES," filed August 9, 2016, the contents of which are incorporated herein by reference in their entirety.This application claims priority to Danish Patent Application No. PA 2016 70605, filed August 9, 2016, entitled "USER INTERFACE FOR MANAGING CONTROLLABLE EXTERNAL DEVICES," the entire contents of which are incorporated herein by reference.

[0002] This application is related to U.S. patent application Ser. No. 14 / 725,912, entitled "Accessory Management System Using Environment Model," filed May 28, 2015, the contents of which are incorporated herein by reference in their entirety. This application is also related to U.S. provisional patent application (Attorney Docket No. P30795USP1), entitled "Devices and Methods for Accessing Prevalent Device Functions," filed June 12, 2016, the contents of which are included as Appendix A to this application and are incorporated herein by reference in their entirety. [Technical field]

[0003] FIELD OF THE DISCLOSURE The present disclosure relates generally to computer user interfaces, and more particularly to techniques for managing controllable external devices. [Background technology]

[0004] Electronic devices are becoming increasingly prevalent in a variety of applications: mobile phones, tablet computers, and home entertainment systems are just a few of the electronic devices with which users typically interact.

[0005] Additionally, various electronically controllable devices such as thermostats, lighting devices, household appliances, etc. are also becoming more prevalent. Summary of the Invention

[0006] However, some techniques for managing controllable external devices using an electronic device are generally cumbersome and inefficient. For example, some existing techniques use complex and time-consuming user interfaces that may involve multiple key presses or strokes. Existing techniques require more time than necessary, wasting user time and device power. The latter problem is particularly acute in battery-operated devices.

[0007] The present technology thus provides electronic devices with faster, more efficient methods and interfaces for managing controllable external devices. Such methods and interfaces optionally complement or replace other methods for managing controllable external devices. Such methods and interfaces reduce the cognitive burden on users and provide a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power and increase the time between battery charges.

[0008] The method includes, on an electronic device having a display, a touch-sensitive surface, one or more processors, and a memory, displaying an indication of a location on a first user interface screen; displaying a representation of a controllable external device at the location on the first user interface screen; detecting a first user input corresponding to a selection of the controllable external device; and, in response to detecting the first user input, displaying a user interface object illustrating a plurality of possible states of the controllable external device; detecting a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object illustrating the plurality of possible states of the controllable external device; and, in response to detecting the second user input, transmitting an instruction to set the controllable external device to the specified state.

[0009] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for displaying an indication of the location on a first user interface screen, displaying a representation of the controllable external device at the location on the first user interface screen, detecting a first user input corresponding to a selection of the controllable external device, and in response to detecting the first user input, displaying a user interface object illustrating a plurality of possible states of the controllable external device, detecting a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object illustrating the plurality of possible states of the controllable external device, and in response to detecting the second user input, transmitting instructions to set the controllable external device to the specified state.

[0010] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: display an indication of the location on a first user interface screen; display a representation of a controllable external device at the location on the first user interface screen; detect a first user input corresponding to a selection of the controllable external device; in response to detecting the first user input, display a user interface object that illustrates a plurality of possible states of the controllable external device; detect a second user input that corresponds to a selection of a specified state of the controllable external device while displaying the user interface object that illustrates the plurality of possible states of the controllable external device; and in response to detecting the second user input, transmit instructions that set the controllable external device to the specified state.

[0011] A transient computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: display an indication of the location on a first user interface screen; display a representation of a controllable external device at the location on the first user interface screen; detect a first user input corresponding to a selection of the controllable external device; in response to detecting the first user input, display a user interface object indicating a plurality of possible states of the controllable external device; detect a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object indicating the plurality of possible states of the controllable external device; and in response to detecting the second user input, transmit instructions to set the controllable external device to the specified state.

[0012] The electronic device comprises a display, a touch-sensitive surface, means for displaying an indication of the location on a first user interface screen, means for displaying a representation of the controllable external device at the location on the first user interface screen, means for detecting a first user input corresponding to a selection of the controllable external device, means for displaying a user interface object indicating a plurality of possible states of the controllable external device in response to detecting the first user input, means for detecting a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object indicating the plurality of possible states of the controllable external device, and means for transmitting an instruction to set the controllable external device to the specified state in response to detecting the second user input.

[0013] The electronic device comprises a display unit configured to display a graphical user interface, a touch-sensitive surface unit configured to receive contact, and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: enable display of an indication of the location on a first user interface screen; enable display of a representation of the controllable external device at the location on the first user interface screen; detect a first user input corresponding to a selection of the controllable external device; in response to detecting the first user input, enable display of a user interface object indicating a plurality of possible states of the controllable external device; detect a second user input corresponding to a selection of a specified state of the controllable external device while the user interface objects indicating the plurality of possible states of the controllable external device are displayed; and in response to detecting the second user input, cause transmission of an instruction to set the controllable external device to the specified state.

[0014] The method includes displaying, on an electronic device having a display, a touch-sensitive surface, one or more processors, and a memory, a first representation of a first controllable external device located at a location; detecting a first user input corresponding to a selection of the first controllable external device; and including data identifying the first controllable external device and a first state of the first controllable external device in a scene profile after detecting the first user input.

[0015] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions to display a first representation of a first controllable external device located at a location, detect a first user input corresponding to a selection of the first controllable external device, and, after detecting the first user input, include data identifying the first controllable external device and a first state of the first controllable external device in a scene profile.

[0016] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to display a first representation of a first controllable external device located at a location, detect a first user input corresponding to a selection of the first controllable external device, and, after detecting the first user input, include data identifying the first controllable external device and a first state of the first controllable external device in a scene profile.

[0017] A temporary computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to display a first representation of a first controllable external device located at a location, detect a first user input corresponding to a selection of the first controllable external device, and, after detecting the first user input, include data identifying the first controllable external device and a first state of the first controllable external device in a scene profile.

[0018] The electronic device comprises a display, a touch-sensitive surface, means for displaying a first representation of a first controllable external device located at a location, means for detecting a first user input corresponding to a selection of the first controllable external device, and means for including data identifying the first controllable external device and a first state of the first controllable external device in a scene profile after detecting the first user input.

[0019] The electronic device comprises a display unit configured to display a graphical user interface, a touch-sensitive surface unit configured to receive contact, and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: enable display of a first representation of a first controllable external device located at a location; detect a first user input corresponding to selection of the first controllable external device; and include data identifying the first controllable external device and a first state of the first controllable external device in a scene profile after detecting the first user input.

[0020] The method includes detecting, on an electronic device having a display, a touch-sensitive surface, one or more processors, and a memory, a first user input corresponding to a selection of a first criterion; in response to detecting the first user input, associating the first criterion with an automation profile including automation criteria that include at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location; detecting a second user input corresponding to a selection of a first controllable external device located at the location; adding data indicating the specified state of the first controllable external device to the automation profile; determining whether the automation criterion is met; and, in accordance with a determination that the automation criterion is met, sending an instruction to set the first controllable external device to the specified state.

[0021] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for detecting a first user input corresponding to a selection of a first criterion, and in response to detecting the first user input, associating the first criterion with an automation profile including automation criteria that include at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location, detecting a second user input corresponding to a selection of a first controllable external device located at the location, adding data indicating the specified state of the first controllable external device to the automation profile, determining whether the automation criteria are met, and, in accordance with a determination that the automation criteria are met, transmitting instructions to set the first controllable external device to the specified state.

[0022] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: detect a first user input corresponding to a selection of a first criterion; in response to detecting the first user input, associate the first criterion with an automation profile including automation criteria that include at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location; detect a second user input corresponding to a selection of a first controllable external device located at the location; add data indicating the specified state of the first controllable external device to the automation profile; determine whether the automation criteria are met; and, in accordance with a determination that the automation criteria are met, transmit instructions to set the first controllable external device to the specified state.

[0023] A temporary computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: detect a first user input corresponding to a selection of a first criterion; in response to detecting the first user input, associate the first criterion with an automation profile including automation criteria that include at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location; detect a second user input corresponding to a selection of a first controllable external device located at the location; add data indicating the specified state of the first controllable external device to the automation profile; determine whether the automation criteria are met; and, in accordance with a determination that the automation criteria are met, transmit instructions to set the first controllable external device to the specified state.

[0024] The electronic device comprises a display, a touch-sensitive surface, means for detecting a first user input corresponding to a selection of a first criterion, means for associating the first criterion with an automation profile including automation criteria that include at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location in response to detecting the first user input, means for detecting a second user input corresponding to a selection of the first controllable external device located at the location, means for adding data indicating the specified state of the first controllable external device to the automation profile, means for determining whether the automation criterion is met, and means for sending an instruction to set the first controllable external device to the specified state in accordance with a determination that the automation criterion is met.

[0025] The electronic device comprises a display unit configured to display a graphical user interface, a touch-sensitive surface unit configured to receive contact, and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: detect a first user input corresponding to a selection of a first criterion; in response to detecting the first user input, associate the first criterion with an automation profile including automation criteria that include at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location; detect a second user input corresponding to a selection of a first controllable external device located at the location; add data indicating the specified state of the first controllable external device to the automation profile; determine whether the automation criteria are met; and, in accordance with a determination that the automation criteria are met, cause transmission of an instruction to set the first controllable external device to the specified state.

[0026] The method includes, in an electronic device having a display, a touch-sensitive surface, a camera, one or more processors, and a memory, capturing an image of a pattern using the camera; determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; in response to determining that the pattern corresponds to the controllable external device, associating the controllable external device with a location having at least one designated room; detecting a first user input representing a selection of a room from the at least one designated room; and in response to detecting the first user input, associating the selected room with the controllable external device.

[0027] The electronic device comprises a display, a touch-sensitive surface, a camera, one or more processors, a memory, and one or more programs, the one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for capturing an image of a pattern using the camera; determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; in response to determining that the pattern corresponds to the controllable external device, associating the controllable external device with a location having at least one designated room; detecting a first user input representing a selection of a room from the at least one designated room; and in response to detecting the first user input, associating the selected room with the controllable external device.

[0028] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, a touch-sensitive surface, and a camera, cause the device to capture an image of a pattern using the camera; determine that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; in response to determining that the pattern corresponds to the controllable external device, associate the controllable external device with a location having at least one designated room; detect a first user input representing a selection of a room from the at least one designated room; and in response to detecting the first user input, associate the selected room with the controllable external device.

[0029] A temporary computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, a touch-sensitive surface, and a camera, cause the device to capture an image of a pattern using the camera; determine that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; in response to determining that the pattern corresponds to the controllable external device, associate the controllable external device with a location having at least one designated room; detect a first user input representing a selection of a room from the at least one designated room; and in response to detecting the first user input, associate the selected room with the controllable external device.

[0030] The electronic device comprises a display, a touch-sensitive surface, a camera, means for capturing an image of the pattern using the camera, means for determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states, means for associating the controllable external device with a location having at least one designated room in response to determining that the pattern corresponds to the controllable external device, means for detecting a first user input representing a selection of a room from the at least one designated room, and means for associating the selected room with the controllable external device in response to detecting the first user input.

[0031] The electronic device comprises a display unit configured to display a graphical user interface, a touch-sensitive surface unit configured to receive contacts, a camera unit configured to capture images, and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: cause capture of an image of a pattern using the camera; determine that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; in response to determining that the pattern corresponds to the controllable external device, associate the controllable external device with a location having at least one designated room; detect a first user input representing a selection of a room from the at least one designated room; and in response to detecting the first user input, associate the selected room with the controllable external device.

[0032] The method includes detecting, at an electronic device having a display, a touch-sensitive surface, one or more processors, and a memory, user input corresponding to specification of position-based criteria based at least in part on a position of the electronic device relative to a first location having at least one controllable external device; in response to detecting the user input corresponding to the specification of the criteria, adding the position-based criteria to an automation profile associated with the location including automation criteria for controlling the at least one controllable external device and data representing a specified state of the at least one controllable external device; determining a position of the electronic device; determining, at least in part based on the determined position of the electronic device, whether the automation criteria for controlling the at least one controllable external device are satisfied; and transmitting instructions to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied.

[0033] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for: detecting user input corresponding to specification of position-based criteria based at least in part on a position of the electronic device relative to a first location having at least one controllable external device; in response to detecting the user input corresponding to the specification of the criteria, adding the position-based criteria to an automation profile associated with the location including automation criteria for controlling the at least one controllable external device and data representing a specified state of the at least one controllable external device; determining a position of the electronic device; determining, at least in part based on the determined position of the electronic device, whether the automation criteria for controlling the at least one controllable external device are satisfied; and transmitting instructions to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied.

[0034] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to detect user input corresponding to specification of position-based criteria based at least in part on a position of the electronic device relative to a first location having at least one controllable external device, and in response to detecting the user input corresponding to the specification of the criteria, add the position-based criteria to an automation profile associated with the location including automation criteria for controlling the at least one controllable external device and data representing a specified state of the at least one controllable external device, determine a location of the electronic device, determine whether the automation criteria for controlling the at least one controllable external device are satisfied based at least in part on the determined position of the electronic device, and transmit instructions to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied.

[0035] A transient computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to detect user input corresponding to specification of position-based criteria based at least in part on a position of the electronic device relative to a first location having at least one controllable external device, and in response to detecting the user input corresponding to the specification of the criteria, add the position-based criteria to an automation profile associated with the location including automation criteria for controlling the at least one controllable external device and data representing a specified state of the at least one controllable external device, determine a location of the electronic device, determine whether the automation criteria for controlling the at least one controllable external device are satisfied based at least in part on the determined position of the electronic device, and transmit instructions to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied.

[0036] The electronic device comprises a display, a touch-sensitive surface, and means for detecting user input corresponding to specification of position-based criteria based at least in part on a position of the electronic device relative to a first location having the at least one controllable external device; means for, in response to detecting the user input corresponding to the specification of the criteria, adding the position-based criteria to an automation profile associated with the location, the automation profile including the position-based criteria for controlling the at least one controllable external device, and data representing a specified state of the at least one controllable external device; means for determining a position of the electronic device; means for determining, at least in part based on the determined position of the electronic device, whether the automation criteria for controlling the at least one controllable external device are satisfied; and means for transmitting an instruction to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied.

[0037] The electronic device comprises: a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive contacts; and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: detect user input corresponding to specification of position-based criteria based at least in part on a position of the electronic device relative to a first location having at least one controllable external device; in response to detecting the user input corresponding to the specification of the criteria, add the position-based criteria to an automation profile associated with the location, the automation profile including the position-based criteria for controlling the at least one controllable external device and data representing a specified state of the at least one controllable external device; determine a position of the electronic device; determine, based at least in part on the determined position of the electronic device, whether the automation criteria for controlling the at least one controllable external device are satisfied; and, in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied, cause transmission of an instruction to set the at least one controllable external device to the specified state.

[0038] The method includes, on an electronic device having a display, a touch-sensitive surface, one or more processors, and a memory, determining whether criteria of an automation profile are met, the criteria including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device; displaying a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile in accordance with a determination that the criteria of the automation profile are met; detecting user input; and in response to detecting the user input, sending instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirming implementation of the automation profile, and sending instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to not confirming implementation of the automation profile.

[0039] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for determining whether criteria of an automation profile are met, the automation profile including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device, displaying a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile in accordance with a determination that the criteria of the automation profile are met, detecting user input, and in response to detecting the user input, transmitting instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirming implementation of the automation profile, and transmitting instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to not confirming implementation of the automation profile.

[0040] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to determine whether criteria of an automation profile, the criteria including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device, are met; in accordance with a determination that the criteria of the automation profile are met, display a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; detect user input; and, in response to detecting the user input, transmit instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirming implementation of the automation profile, and transmit instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to not confirming implementation of the automation profile.

[0041] A temporary computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to determine whether criteria of an automation profile, the criteria including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device, are met; in accordance with a determination that the criteria of the automation profile are met, display a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; detect user input; and, in response to detecting the user input, transmit instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirming implementation of the automation profile, and transmit instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to not confirming implementation of the automation profile.

[0042] The electronic device comprises a display, a touch-sensitive surface, means for determining whether criteria of an automation profile are met, the automation profile including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device, means for displaying a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile in accordance with a determination that the criteria of the automation profile are met, means for detecting user input, and means for, in response to detecting the user input, sending instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirming implementation of the automation profile and sending instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to not confirming implementation of the automation profile.

[0043] The electronic device comprises a display unit configured to display a graphical user interface, a touch-sensitive surface unit configured to receive contacts, and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: determine whether criteria of an automation profile, the automation profile including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device, are met; in accordance with a determination that the criteria of the automation profile are met, enable display of a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; detect user input; and, in response to detecting the user input, cause transmission of instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirming implementation of the automation profile, and cause transmission of instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to not confirming implementation of the automation profile.

[0044] The method includes displaying a representation of a controllable external device configured to operate in a plurality of states, the controllable external device being in a first state of the plurality of states, on an electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory; detecting a first user input corresponding to a selection of the controllable external device; determining whether the first user input satisfies an input criterion; and, in accordance with a determination that the first user input does not satisfy the input criterion, transmitting an instruction to set the state of the controllable external device to a second state of the plurality of states; in accordance with a determination that the first user input satisfies the input criterion, displaying an affordance indicative of the plurality of states of the controllable external device; detecting a second user input on an affordance corresponding to a selection of a third state of the plurality of states while displaying the affordance indicative of the plurality of states of the controllable external device; and, in response to detecting the second user input, transmitting an instruction to set the state of the controllable external device to the third state.

[0045] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to operate in a plurality of states, and includes instructions for: displaying a representation of the controllable external device in a first state of the plurality of states; detecting a first user input corresponding to a selection of the controllable external device; determining whether the first user input satisfies an input criterion; transmitting instructions to set the state of the controllable external device to a second state of the plurality of states in accordance with a determination that the first user input does not satisfy the input criterion; displaying an affordance indicating the plurality of states of the controllable external device; detecting a second user input on an affordance corresponding to a selection of a third state of the plurality of states while displaying the affordance indicating the plurality of states of the controllable external device; and transmitting instructions to set the state of the controllable external device to the third state in response to detecting the second user input.

[0046] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: display a representation of a controllable external device configured to operate in a plurality of states and in a first of the plurality of states; detect a first user input corresponding to a selection of the controllable external device; determine whether the first user input satisfies an input criterion; transmit instructions to set the state of the controllable external device to a second of the plurality of states in accordance with a determination that the first user input does not satisfy the input criterion; display an affordance indicative of the plurality of states of the controllable external device; detect a second user input on an affordance corresponding to a selection of a third of the plurality of states while displaying the affordance indicative of the plurality of states of the controllable external device; and transmit instructions to set the state of the controllable external device to the third state in response to detecting the second user input.

[0047] A transient computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: display a representation of a controllable external device configured to operate in a plurality of states and in a first of the plurality of states; detect a first user input corresponding to a selection of the controllable external device; determine whether the first user input satisfies an input criterion; transmit instructions to set the state of the controllable external device to a second of the plurality of states in accordance with a determination that the first user input does not satisfy the input criterion; display an affordance indicative of the plurality of states of the controllable external device; detect a second user input on an affordance corresponding to a selection of a third of the plurality of states while displaying the affordance indicative of the plurality of states of the controllable external device; and transmit instructions to set the state of the controllable external device to the third state in response to detecting the second user input.

[0048] The electronic device comprises a display, a touch-sensitive surface, and means configured to operate in a plurality of states and for displaying a representation of the controllable external device in a first state of the plurality of states; means for detecting a first user input corresponding to a selection of the controllable external device; means for determining whether the first user input satisfies an input criterion; and means for transmitting an instruction to set the state of the controllable external device to a second state of the plurality of states in accordance with a determination that the first user input does not satisfy the input criterion; and means for displaying an affordance indicating the plurality of states of the controllable external device, and detecting a second user input on an affordance corresponding to a selection of a third state of the plurality of states while displaying the affordance indicating the plurality of states of the controllable external device, and transmitting an instruction to set the state of the controllable external device to the third state in response to detecting the second user input.

[0049] The electronic device comprises: a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive contacts; and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to operate in a plurality of states and is configured to: enable display of a representation of the controllable external device in a first state of the plurality of states; detect a first user input corresponding to a selection of the controllable external device; determine whether the first user input satisfies an input criterion; in accordance with a determination that the first user input does not satisfy the input criterion, cause transmission of an instruction to set the state of the controllable external device to a second state of the plurality of states; in accordance with a determination that the first user input satisfies the input criterion, enable display of an affordance indicative of the plurality of states of the controllable external device; detect a second user input on an affordance corresponding to a selection of a third state of the plurality of states while displaying the affordance indicative of the plurality of states of the controllable external device; and in response to detecting the second user input, cause transmission of an instruction to set the state of the controllable external device to the third state.

[0050] The method includes, on an electronic device having a display, one or more processors, and a memory, determining a first position of the electronic device within a location including at least one designated room, determining that the first position corresponds to a first room of the at least one designated room, and displaying a representation of a first controllable external device associated with the first room in response to determining that the first position corresponds to the first room.

[0051] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions to determine a first position of the electronic device within a location including at least one designated room, determine that the first position corresponds to a first room of the at least one designated room, and, in response to determining that the first position corresponds to the first room, display a representation of a first controllable external device associated with the first room.

[0052] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the device to determine a first position of the electronic device within a location including at least one designated room, determine that the first position corresponds to a first room of the at least one designated room, and, in response to determining that the first position corresponds to the first room, display a representation of a first controllable external device associated with the first room.

[0053] A temporary computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the device to determine a first position of the electronic device within a location including at least one designated room, determine that the first position corresponds to a first room of the at least one designated room, and, in response to determining that the first position corresponds to the first room, display a representation of a first controllable external device associated with the first room.

[0054] The electronic device comprises a display, means for determining a first position of the electronic device within a location including at least one designated room, means for determining that the first position corresponds to a first room of the at least one designated room, and means for displaying a representation of a first controllable external device associated with the first room in response to determining that the first position corresponds to the first room.

[0055] The electronic device comprises a display unit configured to display a graphical user interface; and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: determine a first position of the electronic device within a location including at least one designated room; determine that the first position corresponds to a first of the at least one designated room; and, in response to determining that the first position corresponds to the first room, enable display of a representation of a first controllable external device associated with the first room.

[0056] The method includes, on an electronic device having a display, a touch-sensitive surface, one or more processors, and a memory, displaying a first affordance representing a first personal contact; detecting a first user input corresponding to a selection of the first affordance representing the first personal contact; displaying a second affordance representing access parameters that determine access to a location profile that includes information about external devices associated with the location that are controllable at the location; detecting the second user input corresponding to a selection of the second affordance; granting the external device associated with the first personal contact access based on the access parameters to the location profile; and sending data including an invitation to access the location profile to the external device associated with the first personal contact.

[0057] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions to: display a first affordance representing a first personal contact; detect a first user input corresponding to a selection of the first affordance representing the first personal contact; display a second affordance representing access parameters that determine access to a location profile associated with the location, the location profile including information about controllable external devices for the location; detect a second user input corresponding to a selection of the second affordance; grant the external device associated with the first personal contact access based on the access parameters to the location profile; and send data including an invitation to access the location profile to the external device associated with the first personal contact.

[0058] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to display a first affordance representing a first personal contact, detect a first user input corresponding to a selection of the first affordance representing the first personal contact, display a second affordance representing access parameters that determine access to a location profile that includes information about external devices associated with the location that are controllable at the location, detect a second user input corresponding to a selection of the second affordance, grant an external device associated with the first personal contact access based on the access parameters to the location profile, and send data including an invitation to access the location profile to the external device associated with the first personal contact.

[0059] A temporary computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to display a first affordance representing a first personal contact, detect a first user input corresponding to a selection of the first affordance representing the first personal contact, display a second affordance representing access parameters that determine access to a location profile that includes information about external devices associated with the location that are controllable at the location, detect a second user input corresponding to a selection of the second affordance, grant an external device associated with the first personal contact access based on the access parameters to the location profile, and send data including an invitation to access the location profile to the external device associated with the first personal contact.

[0060] The electronic device comprises a display, a touch-sensitive surface, means for displaying a first affordance representing a first personal contact, means for detecting a first user input corresponding to a selection of the first affordance representing the first personal contact, means for displaying a second affordance representing access parameters that determine access to a location profile associated with a location and including information about external devices controllable at the location, means for detecting a second user input corresponding to a selection of the second affordance, means for granting access to an external device associated with the first personal contact based on the access parameters to the location profile, and means for sending data including an invitation to access the location profile to an external device associated with the first personal contact.

[0061] The electronic device comprises a display unit configured to display a graphical user interface, a touch-sensitive surface unit configured to receive contacts, and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: enable display of a first affordance representing a first personal contact; detect a first user input corresponding to a selection of the first affordance representing the first personal contact; enable display of a second affordance representing access parameters that determine access to a location profile associated with a location, the location profile including information about external devices controllable at the location; detect a second user input corresponding to a selection of the second affordance; cause an external device associated with the first personal contact to grant access based on the access parameters to the location profile; and cause transmission of data including an invitation to access the location profile to the external device associated with the first personal contact.

[0062] The method includes receiving, at an electronic device having a display, a touch-sensitive surface, one or more processors, and a memory, data including information about a location and including information about a first controllable external device at the location; displaying an affordance corresponding to the first controllable external device in accordance with receiving the data; detecting a first user input corresponding to a selection of the affordance; and displaying a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input.

[0063] The electronic device comprises a display, a touch-sensitive surface, one or more processors, a memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions to receive data including information about a location and including information about a first controllable external device at the location, display an affordance corresponding to the first controllable external device in accordance with receiving the data, detect a first user input corresponding to a selection of the affordance, and display a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input.

[0064] A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to receive data including information about a location and including information about a first controllable external device at the location, display an affordance corresponding to the first controllable external device in accordance with receiving the data, detect a first user input corresponding to a selection of the affordance, and display a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input.

[0065] A temporary computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to receive data including information about a location and including information about a first controllable external device at the location, display an affordance corresponding to the first controllable external device in accordance with receiving the data, detect a first user input corresponding to a selection of the affordance, and display a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input.

[0066] The electronic device comprises a display, a touch-sensitive surface, means for receiving data including information about a location and including information about a first controllable external device at the location, means for displaying an affordance corresponding to the first controllable external device in accordance with receiving the data, means for detecting a first user input corresponding to a selection of the affordance, and means for displaying a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input.

[0067] The electronic device comprises a display unit configured to display a graphical user interface, a touch-sensitive surface unit configured to receive contacts, and a processing unit coupled to the display unit and the touch-sensitive surface unit, wherein the processing unit is configured to: receive data including information about a location and including information about a first controllable external device at the location; display an affordance corresponding to the first controllable external device in accordance with receiving the data; detect a first user input corresponding to a selection of the affordance; and display a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input.

[0068] Executable instructions to perform these functions are optionally contained in a non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. Executable instructions to perform these functions are optionally contained in a transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors.

[0069] This provides devices with faster, more efficient methods and interfaces for managing controllable external devices, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces can complement or replace other methods for managing controllable external devices. [Brief explanation of the drawings]

[0070] For a better understanding of the various described embodiments, reference should be made to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the drawings, in which:

[0071] [Figure 1A] FIG. 1 is a block diagram illustrating a portable multifunction device with a touch-sensitive display according to some embodiments.

[0072] [Figure 1B] FIG. 2 is a block diagram illustrating example components for event processing, according to some embodiments.

[0073] [Figure 2] 1 illustrates a portable multifunction device with a touch screen according to some embodiments.

[0074] [Figure 3]FIG. 1 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface in accordance with some embodiments.

[0075] [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device according to some embodiments.

[0076] [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device with a touch-sensitive surface that is separate from the display, according to some embodiments.

[0077] [Figure 5A] 1 illustrates a personal electronic device according to some embodiments.

[0078] [Figure 5B] FIG. 1 is a block diagram illustrating a personal electronic device according to some embodiments.

[0079] [Figure 5C] 1 illustrates example components of a personal electronic device having a touch-sensitive display and intensity sensor according to some embodiments. [Figure 5D] 1 illustrates example components of a personal electronic device having a touch-sensitive display and intensity sensor according to some embodiments.

[0080] [Figure 5E] 1 illustrates example components and a user interface of a personal electronic device according to some embodiments. [Figure 5F] 1 illustrates example components and a user interface of a personal electronic device according to some embodiments. [Figure 5G] 1 illustrates example components and a user interface of a personal electronic device according to some embodiments. [Figure 5H] 1 illustrates example components and a user interface of a personal electronic device according to some embodiments.

[0081] [Figure 6A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6B] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6C] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6D] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6E] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6F] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6G] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6H] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6I] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6J] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6K] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6L] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6M] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6N] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6O] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6P]1 illustrates an exemplary user interface, according to some embodiments. [Figure 6Q] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6R] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6S] 1 illustrates an exemplary user interface, according to some embodiments.

[0082] [Figure 7A] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments. [Figure 7B] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments. [Figure 7C] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0083] [Figure 8] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0084] [Figure 9A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 9B] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 9C] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 9D] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 9E] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 9F] 1 illustrates an exemplary user interface, according to some embodiments.

[0085] [Figure 10] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0086] [Figure 11] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0087] [Figure 12A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12B] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12C] 1 illustrates an exemplary user interface, according to some embodiments.

[0088] [Figure 13] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0089] [Figure 14] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0090] [Figure 15A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 15B] 1 illustrates an exemplary user interface, according to some embodiments.

[0091] [Figure 16] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0092] [Figure 17] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0093] [Figure 18A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 18B] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 18C] 1 illustrates an exemplary user interface, according to some embodiments.

[0094] [Figure 19] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0095] [Figure 20] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0096] [Figure 21] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0097] [Figure 22] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0098] [Figure 23] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0099] [Figure 24] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0100] [Figure 25] 1 illustrates an exemplary user interface, according to some embodiments.

[0101] [Figure 26] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0102] [Figure 27] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0103] [Figure 28A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 28B] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 28C] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 28D] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 28E] 1 illustrates an exemplary user interface, according to some embodiments.

[0104] [Figure 29] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0105] [Figure 30] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0106] [Figure 31A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 31B] 1 illustrates an exemplary user interface, according to some embodiments.

[0107] [Figure 32] FIG. 1 is a flow diagram illustrating a process for managing controllable external devices, according to some embodiments.

[0108] [Figure 33] FIG. 1 is a functional block diagram of an electronic device, according to some embodiments.

[0109] [Figure 34A] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34B] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34C] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34D] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34E] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34F] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34G] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34H] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34I] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34J] 1 illustrates an exemplary user interface, according to some embodiments. [Figure 34K] 1 illustrates an exemplary user interface, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0110] The following description sets forth example methods, parameters, etc. However, it should be recognized that such description is not intended as a limitation on the scope of the present disclosure, but is instead provided as a description of example embodiments.

[0111] There is a need for an electronic device that provides an efficient method and interface for managing controllable external devices. In some embodiments, an electronic device provides access to designated (e.g., favorite) controllable devices on a home screen for managing a system of controllable devices. In some embodiments, a user can control a device coarsely by toggling the state between two states (e.g., on / off) using inputs with one type of characteristic and gain more fine-grained control of the device using inputs with different characteristics. In some embodiments, a user-defined set of devices is controlled in response to user-defined conditions. Various other techniques are also described. Such techniques can reduce the cognitive burden on a user managing controllable external devices, thereby increasing productivity. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user inputs.

[0112] 1A-1B, 2, 3, 4A-4B, and 5A-5H provide descriptions of example devices for performing techniques for managing controllable external devices. 6A-6S, 9A-9F, 12A-12C, 15A-15B, 18A-18C, 25, 28A-28E, 31A-31B, and 34A-34K illustrate example user interfaces for managing controllable external devices. 7A-7C, 10, 13, 16, 19, 21, 23, 26, 29, and 32 are flow diagrams illustrating methods for managing controllable external devices, according to some embodiments. Figures 6A-6S, 9A-9F, 12A-12C, 15A-15B, 18A-18C, 25, 28A-28E, 31A-31B, and 34A-34K are used to illustrate the processes described below, including the processes of Figures 7A-7C, 10, 13, 16, 19, 21, 23, 26, 29, and 32.

[0113] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch, without departing from the scope of the various embodiments described. Although a first touch and a second touch are both touches, they are not the same touch.

[0114] The terminology used in the description of various embodiments set forth herein is for the purpose of describing particular embodiments only and is not intended to be limiting. Within the description of the various embodiments set forth and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. Also, as used herein, the term "and / or" should be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0115] The term "if" is interpreted, optionally, depending on the context, to mean "when" or "upon," or "in response to determining" or "in response to detecting." Similarly, the phrase "if it is determined" or "if [a stated condition or event] is detected" is interpreted, optionally, depending on the context, to mean "upon determining" or "in response to determining," or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]."

[0116] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile phone, that also includes other functions, such as PDA and / or music player functions. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. Optionally, other portable electronic devices, such as laptop or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads), are also used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer with a touch-sensitive surface (e.g., touchscreen displays and / or touchpads).

[0117] In the following discussion, we describe an electronic device that includes a display and a touch-sensitive surface, but it should be understood that the electronic device optionally includes one or more other physical user-interface devices, such as a physical keyboard, a mouse, and / or a joystick.

[0118] The device typically supports a variety of applications, such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephony application, a video conferencing application, an email application, an instant messaging application, a training support application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, and / or a digital video player application.

[0119] Various applications running on the device optionally use at least one common physical user-interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface and corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within each application. In this way, the common physical architecture of the device (such as the touch-sensitive surface) optionally supports various applications with user interfaces that are intuitive and transparent to the user.

[0120] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating a portable multifunction device 100 having a touch-sensitive display system 112 according to some embodiments. Touch-sensitive display 112 may conveniently be referred to as a "touch screen" and may also be known or referred to as a "touch-sensitive display system." Device 100 includes memory 102 (optionally including one or more computer-readable storage media), a memory controller 122, one or more processing units (CPUs) 120, a peripherals interface 118, RF circuitry 108, audio circuitry 110, a speaker 111, a microphone 113, an input / output (I / O) subsystem 106, other input control devices 116, and an external port 124. Device 100 optionally includes one or more light sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on device 100 (e.g., a touch-sensitive surface such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 that generate a tactile output on device 100 (e.g., generate a tactile output on a touch-sensitive surface such as touch-sensitive display system 112 of device 100 or touchpad 355 of device 300). These components optionally communicate via one or more communication buses or signal lines 103.

[0121] As used herein and in the claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a surrogate (proxy) for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values ​​that includes at least four different values ​​and more typically includes hundreds (e.g., at least 256) different values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors under or adjacent to the touch-sensitive surface are optionally used to measure force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted average) to determine an estimated force of the contact. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface proximate the contact, and / or the resistance and / or change in the capacitance of the touch-sensitive surface proximate the contact are optionally used as surrogates for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measures for the force or pressure of the contact are used directly to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is stated in units corresponding to the surrogate measures). In some implementations, these surrogate measures for the force or pressure of the contact are converted to an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using contact intensity as an attribute of user input allows a user to access additional device functionality that may not otherwise be accessible by a user on devices of reduced size that have limited area for displaying affordances (e.g., on a touch-sensitive display) and / or receiving user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical controls such as knobs or buttons).

[0122] As used herein and in the claims, the term “tactile output” refers to a physical displacement of a device relative to a previous position of the device, a physical displacement of a component of the device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., a housing), or a displacement of a component relative to the center of mass of the device, that will be detected by a user with the user's sense of touch. For example, in a situation where a device or a component of a device is in contact with a touch-sensitive surface of a user (e.g., the fingers, palm, or other part of the user's hand), the tactile output produced by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in a physical property of the device or a component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, a user feels a tactile sensation such as a “downclick” or “upclick” even when no movement of a physical actuator button associated with the touch-sensitive surface has been physically pressed (e.g., displaced) by the user's action. As another example, movement of a touch-sensitive surface is optionally interpreted or perceived by a user as "roughness" of the touch-sensitive surface, even when there is no change in the smoothness of the touch-sensitive surface. While such user interpretation of touch depends on the user's personal sensory perception, there are many sensory perceptions of touch that are common to the majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., "upclick," "downclick," "roughness"), unless otherwise specified, the generated tactile output corresponds to a physical displacement of the device, or a component of the device, that produces the described sensory perception for a typical (or average) user.

[0123] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than those shown, optionally combines two or more components, or optionally has a different configuration or arrangement of its components. The various components shown in Figure 1A are implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.

[0124] Memory 102 optionally includes high-speed random access memory, and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Memory controller 122 optionally controls access to memory 102 by other components of device 100.

[0125] Peripheral interface 118 may be used to couple input and output peripherals of the device to CPU 120 and memory 102. One or more processors 120 operate or execute various software programs and / or instruction sets stored in memory 102 to perform various functions and process data for device 100. In some embodiments, peripheral interface 118, CPU 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.

[0126] RF (radio frequency) circuitry 108 transmits and receives RF signals, also called electromagnetic signals. RF circuitry 108 converts electrical signals to or from electromagnetic signals and communicates with communication networks and other communication devices via electromagnetic signals. RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, etc. RF circuitry 108 optionally communicates via wireless communication with networks, such as the Internet, also known as the World Wide Web (WWW), an intranet, and / or wireless networks, such as cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and with other devices. RF circuitry 108 optionally includes well-known circuitry for detecting near field communication (NFC) fields, such as by near field communication radio. Wireless communication optionally uses any of a number of communication standards, protocols, and technologies, including Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (Dual-Cell HSPA), and the like.HSPA, DC-HSPA, long term evolution (LTE), near field communication (NFC), wideband code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth®, Bluetooth Low Energy (BTLE), Wireless Fidelity (Wi-Fi)® (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11ac), voice over Internet Protocol (VoIP), Wi-MAX, protocols for email (e.g., Internet message access protocol (IMAP) and / or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol), messaging and presence protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS), and / or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.

[0127] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 also includes a headset jack (e.g., 212 in FIG. 2 ). The headset jack provides an interface between audio circuitry 110 and a detachable audio input / output peripheral, such as an output-only headphone or a headset with both an output (e.g., mono or binaural headphones) and an input (e.g., a microphone).

[0128] I / O subsystem 106 couples input / output peripherals on device 100, such as touchscreen 112 and other input control devices 116, to peripheral interface 118. I / O subsystem 106 optionally includes display controller 156, light sensor controller 158, intensity sensor controller 159, haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. One or more input controllers 160 receive / send electrical signals to / from other input control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, input controller(s) 160 are optionally coupled to any (or none) of a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2) optionally include up / down buttons for adjusting the volume of the speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (e.g., 206 in FIG. 2).

[0129] This quick press of the push button optionally unlocks the touchscreen 112 or, optionally, initiates a process to unlock the device using gestures on the touchscreen, as described in U.S. Patent Application No. 11 / 322,549, "Unlocking a Device by Performing Gestures on an Unlock Image," filed December 23, 2005, U.S. Patent No. 7,657,849, which is incorporated herein by reference in its entirety. A longer press of a push button (e.g., 206) optionally powers the device 100 on or off. The functionality of one or more of the buttons is optionally customizable by the user. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.

[0130] Touch-sensitive display 112 provides an input and output interface between the device and a user. Display controller 156 receives and / or sends electrical signals to and from touchscreen 112. Touchscreen 112 displays visual output to the user. This visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively "graphics"). In some embodiments, some or all of these visual outputs optionally correspond to user-interface objects.

[0131] Touchscreen 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on haptic and / or tactile contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detects contacts (and any movement or cessation of contact) on touchscreen 112 and translates the detected contacts into interactions with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In an exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.

[0132] Touchscreen 112 optionally uses liquid crystal display (LCD), light emitting polymer display (LPD), or light emitting diode (LED) technology, although other display technologies are used in other embodiments. Touchscreen 112 and display controller 156 optionally use any of a number of now-known or later-developed touch-sensing technologies to detect contact and any movement or disruption of that contact, including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touchscreen 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone® and iPod Touch® by Apple Inc. (Cupertino, California).

[0133] The touch-sensitive display in some embodiments of touchscreen 112 is optionally similar to the multi-touch-sensing touchpad described in U.S. Patent Nos. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and / or 6,677,932 (Westerman), and / or U.S. Patent Application Publication No. 2002 / 0015024 A1, each of which is incorporated by reference in its entirety. However, touchscreen 112 displays visual output from device 100, whereas a touch-sensitive touchpad does not provide visual output.

[0134] The touch-sensitive displays in some embodiments of touchscreen 112 are described in the following applications: (1) U.S. patent application Ser. No. 11 / 381,313, filed May 2, 2006, entitled "Multipoint Touch Surface Controller," (2) U.S. patent application Ser. No. 10 / 840,862, filed May 6, 2004, entitled "Multipoint Touchscreen," (3) U.S. patent application Ser. No. 10 / 903,964, filed July 30, 2004, entitled "Gestures For Touch Sensitive Input Devices," (4) U.S. patent application Ser. No. 11 / 048,264, filed January 31, 2005, entitled "Gestures For Touch Sensitive Input Devices," and (5) U.S. patent application Ser. No. 11 / 038,590, filed January 18, 2005, entitled "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices." (6) U.S. Patent No. 11 / 228,758, filed September 16, 2005, entitled "Virtual Input Device Placement On A Touch Screen User Interface," (7) U.S. Patent No. 11 / 228,700, filed September 16, 2005, entitled "Operation Of A Computer With A Touch Screen Interface," (8) U.S. Patent No. 11 / 228,737, filed September 16, 2005, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," and (9) U.S. Patent No. 11 / 367,749, filed March 3, 2006, entitled "Multi-Functional Hand-Held Device." All of these applications are incorporated herein by reference in their entirety.

[0135] Touchscreen 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. A user optionally contacts touchscreen 112 using any suitable object or accessory, such as a stylus, finger, or the like. In some embodiments, the user interface is designed to function primarily through finger-based contact and gestures, which may be less precise than stylus-based input due to the larger contact area of ​​a finger on the touchscreen. In some embodiments, the device translates coarse finger-based input into precise pointer / cursor positions or commands to perform actions desired by the user.

[0136] In some embodiments, in addition to the touchscreen, device 100 optionally includes a touchpad (not shown) for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of ​​the device that, unlike the touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface separate from touchscreen 112 or an extension of the touch-sensitive surface formed by the touchscreen.

[0137] Device 100 also includes a power system 162 that provides power to the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of electrical power within a portable device.

[0138] Device 100 also optionally includes one or more light sensors 164. FIG. 1A shows a light sensor coupled to light sensor controller 158 in I / O subsystem 106. Light sensor 164 optionally includes a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor 164 receives light from the environment projected through one or more lenses and converts the light into data representing an image. Light sensor 164 optionally interfaces with imaging module 143 (also referred to as a camera module) to capture still images or video. In some embodiments, the light sensor is located on the back of device 100, opposite touchscreen display 112 on the front of the device, so that the touchscreen display is enabled for use as a viewfinder for capturing still and / or video images. In some embodiments, a light sensor is located on the front of the device so that an image of the user is optionally captured for video conferencing while the user views other video conference participants on the touchscreen display. In some embodiments, the position of the light sensor 164 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that a single light sensor 164 is used for both video conferencing and capturing still and / or video images, along with the touchscreen display.

[0139] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows a contact intensity sensor coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electrical force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a proxy for pressure information) from the surrounding environment. In some embodiments, at least one contact intensity sensor is collocated with or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.

[0140] Device 100 also optionally includes one or more proximity sensors 166. Figure 1A shows proximity sensor 166 coupled to peripherals interface 118. Alternatively, proximity sensor 166 is optionally coupled to input controller 160 within I / O subsystem 106. Proximity sensor 166 optionally functions as described in U.S. patent application Ser. No. 11 / 241,839, "Proximity Detector In Handheld Device," Ser. No. 11 / 240,788, "Proximity Detector In Handheld Device," Ser. No. 11 / 620,702, "Using Ambient Light Sensor To Augment Proximity Sensor Output," Ser. No. 11 / 586,862, "Automated Response To And Sensing Of User Activity In Portable Devices," and Ser. No. 11 / 638,251, "Methods And Systems For Automatic Configuration Of Peripherals," which are incorporated herein by reference in their entireties. In some embodiments, the proximity sensor turns off and disables touchscreen 112 when the multifunction device is placed near the user's ear (e.g., when the user is talking on the phone).

[0141] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows tactile output generators 167 coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator 167 optionally includes one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output generating components (e.g., components that convert electrical signals into tactile output on the device). Contact intensity sensor 165 receives tactile feedback generation commands from haptic feedback module 133 and generates a tactile output on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is located on or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112) and, optionally, generates a tactile output by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or horizontally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.

[0142] Device 100 also optionally includes one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 is optionally coupled to input controller 160 in I / O subsystem 106. Accelerometer 168 optionally functions as described in U.S. Patent Application Publication Nos. 20050190059, "Acceleration-based Theft Detection System for Portable Electronic Devices," and 20060017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer," both of which are incorporated herein by reference in their entireties. In some embodiments, information is displayed on the touchscreen display in portrait or landscape orientation based on an analysis of data received from the one or more accelerometers. In addition to the accelerometer(s) 168, the device 100 optionally includes a magnetometer (not shown) and a GPS (or GLONASS or other global navigation system) receiver (not shown) for obtaining information regarding the location and orientation (e.g., portrait or landscape) of the device 100.

[0143] In some embodiments, software components stored in memory 102 include operating system 126, communication module (or instruction set) 128, touch / motion module (or instruction set) 130, graphics module (or instruction set) 132, text input module (or instruction set) 134, Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction sets) 136. Additionally, in some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) stores device / global internal state 157, as shown in FIGS. 1A and 3. Device / global internal state 157 includes one or more of: active application state, which indicates which applications, if any, are currently active; display state, which indicates which applications, views, or other information occupy various regions of touchscreen display 112; sensor state, which includes information obtained from the device's various sensors and input control devices 116; and location information regarding the device's position and / or orientation.

[0144] Operating system 126 (e.g., Darwin®, RTXC®, LINUX®, UNIX®, OS X®, iOS®, WINDOWS®, or an embedded operating system such as VxWorks®) includes various software components and / or drivers for controlling and managing common system tasks (e.g., memory management, storage device control, power management, etc.) and facilitating communication between various hardware and software components.

[0145] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE®, etc.) is adapted to couple to other devices directly or indirectly via a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector the same as or similar to, and / or compatible with, the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.

[0146] Contact / motion module 130, optionally in cooperation with display controller 156, detects contact with touch screen 112 and other touch-sensing devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact occurs (e.g., detecting a finger-down event), determining the intensity of the contact (e.g., the force or pressure of the contact, or a surrogate for the force or pressure of the contact), determining whether there is contact movement and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has stopped (e.g., detecting a finger-up event or an interruption of the contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact, as represented by the series of contact data, optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact. These actions are optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.

[0147] In some embodiments, contact / motion module 130 uses one or more sets of intensity thresholds to determine whether an action has been performed by a user (e.g., to determine whether a user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a particular physical actuator and may be adjusted without modifying the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display can be set to any of a wide range of pre-defined thresholds without modifying the hardware of the trackpad or touchscreen display. Furthermore, in some implementations, a user of the device is provided with software settings to adjust one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once using a system-level click “intensity” parameter).

[0148] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensities of detected contacts). Thus, gestures are optionally detected by detecting particular contact patterns. For example, detecting a finger tap gesture includes detecting a finger down event (e.g., at the location of an icon), followed by detecting a finger lift (lift-off) event at the same location (or substantially the same location) as the finger down event. As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger down event, followed by one or more finger drag events, followed by detecting a finger lift (lift-off) event.

[0149] Graphics module 132 includes various known software components for rendering and displaying graphics on touchscreen 112 or other display, including components for modifying the visual effects (e.g., brightness, transparency, saturation, contrast, or other visual attributes) of the displayed graphics. As used herein, the term "graphics" includes any object that can be displayed to a user, including, but not limited to, text, web pages, icons (e.g., user interface objects, including soft keys), digital images, video, animation, etc.

[0150] In some embodiments, graphics module 132 stores data representing the graphics to be used. Each graphic is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, including coordinate data and other graphic characteristic data, as needed, from an application or the like, and then generates screen image data to output to display controller 156.

[0151] The tactile feedback module 133 includes various software components for generating instructions used by the tactile output generator(s) 167 to generate tactile outputs at one or more locations on the device 100 in response to user interaction with the device 100.

[0152] Text input module 134 is optionally a component of graphics module 132 and provides a soft keyboard for entering text in various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other application requiring text input).

[0153] The GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., to the phone 138 for use in location-based dialing, to the camera 143 as photo / video metadata, and to applications that provide location-based services such as weather widgets, local yellow pages widgets, and map / navigation widgets).

[0154] Application 136 optionally includes the following modules (or sets of instructions), or a subset or superset thereof: • a contacts module 137 (sometimes called an address book or contact list); ●Telephone module 138, ●Videoconferencing module 139, ● an email client module 140; ● Instant messaging (IM) module 141; ●Training support module 142, a camera module 143 for still and / or video images, ● Image management module 144; ●Video player module, ●Music player module, ● Browser module 147, ●Calendar module 148, a widget module 149, optionally including one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5, and other widgets obtained by the user, and a user-created widget 149-6; a widget creation module 150 for creating user-created widgets 149-6; ● Search module 151, A video and music player module 152 that integrates a video player module and a music player module; ● Memo module 153, Map module 154, and / or ●Online video module 155.

[0155] Examples of other applications 136 optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, voice recognition, and voice duplication.

[0156] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, contacts module 137 is optionally used to manage an address book or contact list (e.g., stored in memory 102 or in the application internal state 192 of contacts module 137 in memory 370), including adding name(s) to the address book, removing name(s) from the address book, associating phone number(s), email address(es), street address(es), or other information with names, associating images with names, categorizing and sorting names, providing phone numbers or email addresses to initiate and / or facilitate communication by telephone 138, videoconferencing module 139, email 140, or IM 141, etc.

[0157] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, telephone module 138 is optionally used to enter character strings corresponding to telephone numbers, access one or more telephone numbers in contacts module 137, modify entered telephone numbers, dial corresponding telephone numbers, conduct a conversation, and disconnect or hang up when the conversation is completed. As noted above, wireless communication optionally uses any of a number of communication standards, protocols, and technologies.

[0158] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch screen 112, display controller 156, light sensor 164, light sensor controller 158, touch / motion module 130, graphics module 132, text input module 134, contacts module 137, and telephone module 138, videoconferencing module 139 includes executable instructions to initiate, conduct, and terminate videoconferences between a user and one or more other participants according to the user's commands.

[0159] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, email client module 140 contains executable instructions for composing, sending, receiving, and managing emails in response to user commands. In conjunction with image management module 144, email client module 140 greatly facilitates composing and sending emails with still or video images captured by camera module 143.

[0160] In cooperation with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, instant messaging module 141 includes executable instructions to enter characters corresponding to an instant message, modify previously entered characters, send the corresponding instant message (e.g., using Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephone-based instant messaging, or using XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receive instant messages, and view received instant messages. In some embodiments, the sent and / or received instant messages optionally include graphics, photos, audio files, video files, and / or other attachments, such as those supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephone-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).

[0161] In conjunction with the RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the training support module 142 includes executable instructions to create workouts (e.g., with time, distance, and / or calorie burn goals), communicate with training sensors (sports devices), receive training sensor data, calibrate sensors used to monitor workouts, select and play music for workouts, and display, store, and transmit workout data.

[0162] In conjunction with touch screen 112, display controller 156, light sensor(s) 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, camera module 143 contains executable instructions to capture still images or video (including video streams), store them in memory 102, modify characteristics of the still images or video, or delete the still images or video from memory 102.

[0163] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, image management module 144 contains executable instructions for arranging, modifying (e.g., editing) or otherwise manipulating, labeling, deleting, presenting (e.g., as a digital slideshow or album), and storing still and / or video images.

[0164] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, browser module 147 contains executable instructions for browsing the Internet according to user commands, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.

[0165] In cooperation with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, calendar module 148 includes executable instructions that create, display, modify, and store calendars and data associated with calendars (e.g., calendar entries, to-do lists, etc.) according to user instructions.

[0166] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget module 149 is a mini-application (e.g., weather widget 149-1, stocks widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5) that is optionally downloaded and used by a user, or a mini-application (e.g., user-created widget 149-6) that is created by a user. In some embodiments, a widget includes a Hypertext Markup Language (HTML) file, a Cascading Style Sheets (CSS) file, and a JavaScript file. In some embodiments, a widget includes an Extensible Markup Language (XML) file and a JavaScript file (e.g., Yahoo! Widgets).

[0167] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget creation module 150 is optionally used by a user to create widgets (e.g., turn user-specified portions of a web page into widgets).

[0168] In cooperation with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, search module 151 contains executable instructions that, in accordance with user commands, search memory 102 for text, music, sound, images, video, and / or other files that match one or more search criteria (e.g., one or more user-specified search terms).

[0169] In cooperation with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 contains executable instructions that enable a user to download and play pre-recorded music or other sound files stored in one or more file formats, such as MP3 files or AAC files, and executable instructions to display, present, or otherwise play videos (e.g., on touchscreen 112 or on an external display connected via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).

[0170] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, notes module 153 contains executable instructions for creating and managing notes, to-do lists, and the like according to user commands.

[0171] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 is used to receive, display, modify, and store maps and data associated with maps (e.g., driving directions, data about businesses and other points of interest at or near a particular location, and other location-based data), optionally in accordance with user commands.

[0172] In cooperation with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, online video module 155 contains instructions that enable a user to access, view, receive (e.g., by streaming and / or downloading), play (e.g., on the touchscreen or on an external display connected via external port 124), send emails containing links to the particular online videos, and otherwise manage the online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141 is used to send links to particular online videos, rather than email client module 140. Further description of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, filed June 20, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," and U.S. Patent Application No. 11 / 968,067, filed December 31, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," the contents of which are incorporated herein by reference in their entireties.

[0173] Each of the above-identified modules and applications corresponds to a set of executable instructions that perform one or more of the functions described above and methods described in the present application (e.g., computer-implemented methods and other information processing methods described herein). These modules (e.g., sets of instructions) need not be implemented as separate software program procedures or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise rearranged. For example, a video player module is optionally combined with a music player module into a single module (e.g., video and music player module 152 of FIG. 1A). In some embodiments, memory 102 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 102 optionally stores additional modules and data structures not described above.

[0174] In some embodiments, device 100 is a device in which operation of a predetermined set of functions on the device is performed exclusively through a touchscreen and / or touchpad. Using the touchscreen and / or touchpad as the primary input control device for operation of device 100 optionally reduces the number of physical input control devices (push buttons, dials, etc.) on device 100.

[0175] The set of predetermined functions performed only through the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 to a main menu, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device rather than a touchpad.

[0176] 1B is a block diagram illustrating exemplary components for event processing, according to some embodiments. In some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) includes an event sorter 170 (e.g., within operating system 126) and a respective application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).

[0177] Event sorter 170 receives the event information and determines application 136-1 and application view 191 of application 136-1 to which the event information should be delivered. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view(s) that are displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, device / global internal state 157 is used by event sorter 170 to determine which application(s) are currently active, and application internal state 192 is used by event sorter 170 to determine application view 191 to which the event information should be delivered.

[0178] In some embodiments, application internal state 192 includes additional information such as one or more of resume information used when application 136-1 resumes execution, user interface state information indicating information being displayed or ready to be displayed by application 136-1, a state queue that allows the user to return to a previous state or view of application 136-1, and a redo / undo queue of previous actions taken by the user.

[0179] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about sub-events (e.g., a user touch on touch-sensitive display 112 as part of a multi-touch gesture). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer(s) 168, and / or microphone 113 (via audio circuitry 110). The information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.

[0180] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., receiving an input above a predetermined noise threshold and / or for longer than a predetermined duration).

[0181] In some embodiments, the event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .

[0182] Hit view determination module 172 provides software procedures for determining where within one or more views a sub-event occurred when touch-sensitive display 112 displays more than one view. A view consists of the controls and other elements that a user can see on the display.

[0183] Another aspect of a user interface associated with an application is the set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application view (of the respective application) in which the touch is detected optionally corresponds to a programmatic level within the application's programmatic or view hierarchy. For example, the lowest-level view in which the touch is detected is optionally referred to as the hit view, and the set of events that are recognized as appropriate inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch gesture.

[0184] Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized hierarchically, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, this hit view is the lowest-level view in which an initiating sub-event occurs (e.g., the first sub-event in a sequence of sub-events that form an event or potential event). Once a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events associated with the same touch or input source for which it was identified as the hit view.

[0185] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive the particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive the particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-event are actively participating views, and therefore determines that all actively participating views should receive the particular sequence of sub-events. In other embodiments, even if the touch sub-event is completely confined to the area associated with one particular view, views higher in the hierarchy still remain actively participating views.

[0186] Event dispatcher module 174 dispatches event information to event recognizers (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers event information to the event recognizers determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores event information obtained by corresponding event receivers 182 in an event queue.

[0187] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or part of another module stored in memory 102, such as contact / motion module 130.

[0188] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for processing touch events that occur within a respective view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, each application view 191 includes multiple event recognizers 180. In other embodiments, one or more of the event recognizers 180 are part of a separate module, such as a user interface kit (not shown) or a higher-level object from which application 136-1 inherits methods and other properties. In some embodiments, the corresponding event handler 190 includes one or more of a data updater 176, an object updater 177, a GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 optionally utilizes or invokes data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of the application views 191 include one or more corresponding event handlers 190. Also, in some embodiments, one or more of the data updater 176, the object updater 177, and the GUI updater 178 are included in the corresponding application view 191.

[0189] Each event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies an event from the event information. Event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, event recognizer 180 also includes metadata 183 and at least a subset of event delivery instructions 188 (optionally including sub-event delivery instructions).

[0190] The event receiver 182 receives event information from the event sorter 170. The event information includes information about a sub-event, for example, information about a touch or a touch movement. Depending on the sub-event, the event information also includes additional information, such as the position of the sub-event. When the sub-event involves a touch movement, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, the event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape or vice versa), and the event information includes corresponding information about the device's current orientation (also called the device's attitude).

[0191] The event comparator 184 compares the event information to predefined event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a predefined sequence of sub-events), such as Event 1 (187-1) and Event 2 (187-2). In some embodiments, sub-events within Event 187 include, for example, touch start, touch end, touch movement, touch cancellation, and multiple touches. In one example, the definition for Event 1 (187-1) is a double tap on a displayed object. This double tap includes, for example, a first touch on a displayed object for a predefined stage (touch start), a first lift-off (touch end) for the predefined stage, a second touch on a displayed object for a predefined stage (touch start), and a second lift-off (touch end) for the predefined stage. In another example, a definition of event 2 (187-2) is a drag on a displayed object. This drag operation includes, for example, a touch (or contact) on the displayed object for a predetermined step, a movement of the touch across the touch-sensitive display 112, and a lift-off of the touch (end of the touch). In some embodiments, the event also includes information about one or more associated event handlers 190.

[0192] In some embodiments, event definitions 187 include a definition of the event for each user interface object. In some embodiments, event comparator 184 performs a hit test to determine which user interface object is associated with the sub-event. For example, in an application view in which three user interface objects are displayed on touch-sensitive display 112, when a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a corresponding event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 to activate. For example, event comparator 184 selects the event handler associated with the sub-event and object that triggers the hit test.

[0193] In some embodiments, the definition for each event (187) also includes a delay action that delays delivery of the event information until it is determined whether the sequence of sub-events corresponds to the event type of the event recognizer.

[0194] If the respective event recognizer 180 determines that the sequence of sub-events does not match any event in the event definition 186, the respective event recognizer 180 enters an event disabled, event failed, or event finished state and thereafter ignores subsequent sub-events of the touch gesture. In this situation, any other event recognizers that remain active for the hit view continue to track and process sub-events of the ongoing touch gesture.

[0195] In some embodiments, corresponding event recognizers 180 include metadata 183 with configurable properties, flags, and / or lists that indicate to actively participating event recognizers how the event delivery system should perform sub-event delivery. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how event recognizers interact with each other or how event recognizers are enabled to interact with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how sub-events are delivered to various levels in the view or programmatic hierarchy.

[0196] In some embodiments, each event recognizer 180 activates an event handler 190 associated with an event when one or more specific sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and deferring sending) sub-events to the respective hit view. In some embodiments, the event recognizer 180 pops a flag associated with the recognized event, and the event handler 190 associated with that flag captures the flag and performs a predetermined process.

[0197] In some embodiments, the event delivery instructions 188 include sub-event delivery instructions that deliver event information about a sub-event without activating an event handler. Instead, the sub-event delivery instructions deliver the event information to an event handler associated with a set of sub-events or to an actively participating view. The event handler associated with the set of sub-events or the actively participating view receives the event information and performs predetermined processing.

[0198] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used by contacts module 137 or stores video files used by a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends the display information to graphics module 132 for display on the touch-sensitive display.

[0199] In some embodiments, event handler(s) 190 include or have access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of the respective application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.

[0200] It should be understood that the above description of event processing of a user's touch on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 with input devices, not all of which are initiated on a touchscreen. For example, mouse movements and mouse button presses, touch movements such as tapping, dragging, scrolling on a touchpad, optionally coordinated with single or multiple keyboard presses or holds, pen stylus input, device movement, verbal commands, detected eye movement, biometric input, and / or any combination thereof, are optionally utilized as inputs corresponding to sub-events that define the recognized event.

[0201] 2 illustrates portable multifunction device 100 having touchscreen 112, according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as other embodiments described below, a user may select one or more of the graphics by performing a gesture on the graphics, for example, using one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics is performed when the user breaks contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upward, and / or downward), and / or rolling (right to left, left to right, upward, and / or downward) of a finger in contact with device 100. In some implementations or situations, accidental contact with a graphic does not select the graphic, for example, if the gesture corresponding to selection is a tap, a swipe gesture sweeping over an application icon optionally does not select the corresponding application.

[0202] Device 100 also optionally includes one or more physical buttons, such as a "home" or menu button 204. As mentioned above, menu button 204 is optionally used to navigate to any application 136 within a set of applications optionally running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key within a GUI displayed on touchscreen 112.

[0203] In some embodiments, device 100 includes touchscreen 112, menu button 204, pushbutton 206 for powering the device on / off and locking the device, volume control button(s) 208, subscriber identity module (SIM) card slot 210, headset jack 212, and external docking / charging port 124. Pushbutton 206 is optionally used to power the device on / off by pressing and holding the button down for a predetermined period of time, to lock the device by pressing and releasing the button before the predetermined period of time has elapsed, and / or to unlock the device or initiate the unlocking process. In alternative embodiments, device 100 also accepts verbal input via microphone 113 for activating or deactivating some functions. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on touchscreen 112 and / or one or more tactile output generators 167 for generating a tactile output for a user of device 100.

[0204] FIG. 3 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface, according to some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, a desktop computer, a tablet computer, a multimedia playback device, a navigation device, an educational device (such as a child's learning toy), a gaming system, or a control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 for interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes called a chipset) that interconnects and controls communication between system components. Device 300 includes input / output (I / O) interface 330 with display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350 and a touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator 167 described above with reference to FIG. 1A ) for generating tactile output on device 300, sensors 359 (e.g., optical sensors, acceleration sensors, proximity sensors, touch-sensitive sensors, and / or contact intensity sensors similar to contact intensity sensor 165 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU 310. In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, the programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A).Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, ​​word processing module 384, website creation module 386, disc authoring module 388, and / or spreadsheet module 390, whereas memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.

[0205] 3 is optionally stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to an instruction set that performs the described function. The above-identified modules or programs (e.g., instruction sets) need not be implemented as separate software programs, procedures, or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise reconfigured. In some embodiments, memory 370 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 370 optionally stores additional modules and data structures not described above.

[0206] Attention is now directed to embodiments of user interfaces, optionally implemented on portable multifunction device 100, for example.

[0207] 4A shows an exemplary user interface for a menu of applications on portable multifunction device 100, according to some embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicator(s) 402 for wireless communication(s), such as cellular and Wi-Fi signals; ●Time 404, ●Bluetooth (registered trademark) indicator 405, ● Battery status indicator 406, A tray 408 containing icons for frequently used applications, such as: an icon 416 for the phone module 138 labeled "Phone," optionally including an indicator 414 of the number of missed calls or voicemail messages; an icon 418 for the email client module 140, labeled "Mail," optionally including an indicator 410 of the number of unread emails; ○ An icon 420 for the browser module 147, labeled "Browser", and ○ An icon 422 labeled "iPod" for the video and music player module 152, also known as the iPod (registered trademark of Apple Inc.) module 152; and ●Icons for other applications, such as: ○ Icon 424 for IM module 141, labeled "Messages"; ○ Icon 426 for the calendar module 148, labeled "Calendar" ○ Icon 428 for the image management module 144, labeled "Photos" ○ An icon 430 for the camera module 143, labeled "camera"; ○ Icon 432 for the online video module 155, labeled "Online Video" Icon 434 for stock price widget 149-2, labeled "Stock Prices" ○ Icon 436 for map module 154, labeled "Map" ○ Icon 438 for weather widget 149-1, labeled "Weather" ○ Icon 440 for alarm clock widget 149-4, labeled "Clock" ○ Icon 442 for Training Support Module 142, labeled "Training Support"; ○ An icon 444 for the notes module 153, labeled "Notes," and An icon 446 for a settings application or module, labeled "Settings," that provides access to settings for the device 100 and its various applications 136.

[0208] 4A are merely exemplary. For example, icon 422 for video and music player module 152 may be labeled "Music" or "Music Player," although other labels are optionally used for the various application icons. In some embodiments, the label for each application icon includes the name of the application corresponding to the respective application icon. In some embodiments, the label for a particular application icon is different from the name of the application corresponding to that particular application icon.

[0209] 4B shows an exemplary user interface on a device (e.g., device 300 of FIG. 3 ) that has touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3 ) that is separate from display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 359) for detecting the intensity of a contact on touch-sensitive surface 451 and / or one or more tactile output generators 357 for generating a tactile output for a user of device 300.

[0210] Although some of the following examples are described with reference to input on touchscreen display 112 (when the touch-sensitive surface and display are combined), in some embodiments, the device detects input on a touch-sensitive surface that is separate from the display, as shown in FIG. 4B . In some embodiments, this touch-sensitive surface (e.g., 451 in FIG. 4B ) has a major axis (e.g., 452 in FIG. 4B ) that corresponds to a major axis (e.g., 453 in FIG. 4B ) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to respective locations on the display (e.g., in FIG. 4B , 460 corresponds to 468 and 462 corresponds to 470). In this manner, when the touch-sensitive surface is separate from the display, user input (e.g., contacts 460 and 462 and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device. It should be understood that similar methods are optionally used for the other user interfaces described herein.

[0211] Furthermore, while the following examples are described primarily with reference to finger input (e.g., finger touches, finger tap gestures, finger swipe gestures), it should be understood that in some embodiments, one or more of those finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced by a mouse click (e.g., instead of a touch) followed by cursor movement along the path of the swipe (e.g., instead of a touch movement). As another example, a tap gesture is optionally replaced with a mouse click while the cursor is positioned over the tap gesture location (e.g., instead of detecting a touch and then ceasing contact detection). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger touches are optionally used simultaneously.

[0212] FIG. 5A shows an exemplary personal electronic device 500. Device 500 includes a main body 502. In some embodiments, device 500 can include some or all of the features described with respect to device 100 and device 300 (e.g., FIGS. 1A-4B ). In some embodiments, device 500 has a touch-sensitive display screen 504, hereafter referred to as touchscreen 504. Alternatively, or in addition to touchscreen 504, device 500 has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touchscreen 504 (or the touch-sensitive surface) optionally includes one or more intensity sensors that detect the intensity of contact (e.g., touch) being applied. The one or more intensity sensors of touchscreen 504 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. A user interface of device 500 can respond to a touch based on the intensity of the touch, meaning that touches of different intensities can invoke different user interface actions on device 500.

[0213] Exemplary techniques for detecting and processing touch intensity are found, for example, in related applications, International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application" (published as WO 2013 / 169849), and International Patent Application No. PCT / US2013 / 069483, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships" (published as WO 2014 / 105276), each of which is incorporated herein by reference in its entirety.

[0214] In some embodiments, device 500 has one or more input mechanisms 506 and 508. Input mechanisms 506 and 508, if included, can be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, can allow device 500 to be attached to, for example, hats, eyewear, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These attachment mechanisms allow device 500 to be worn by a user.

[0215] FIG. 5B illustrates an exemplary personal electronic device 500. In some embodiments, device 500 can include some or all of the components described with respect to FIGS. 1A, 1B, and 3. Device 500 has a bus 512 that operably couples an I / O section 514 to one or more computer processors 516 and a memory 518. I / O section 514 can be connected to a display 504, which can have touch-sensing components 522 and, optionally, an intensity sensor 524 (e.g., a contact intensity sensor). Additionally, I / O section 514 can be connected to a communication unit 530 that receives application and operating system data using Wi-Fi, Bluetooth, near-field communication (NFC), cellular, and / or other wireless communication techniques. Device 500 can include input mechanisms 506 and / or 508. For example, input mechanism 506 is optionally a rotatable input device, or a depressible and rotatable input device, or a depressible and rotatable input device. In some embodiments, input mechanism 508 is optionally a button.

[0216] In some embodiments, input mechanism 508 is optionally a microphone. Personal electronic device 500 optionally includes various sensors, such as a GPS sensor 532, an accelerometer 534, an orientation sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or combinations thereof, all of which may be operably connected to I / O section 514.

[0217] The memory 518 of the personal electronic device 500 can include one or more non-transitory computer-readable storage media that store computer-executable instructions that, when executed by one or more computer processors 516, can cause the computer processors to perform techniques described below, including, for example, processes 700, 1000, 1300, 1600, 1900, 2100, 2300, 2600, 2900, and 3200 (FIGS. 7A-7C, 10, 13, 16, 19, 21, 23, 26, 29, and 32). A computer-readable storage medium can be any medium that can tangibly contain or store computer-executable instructions for use by or in connection with an instruction execution system, apparatus, or device. In some examples, the storage medium is a transitory computer-readable storage medium. In some implementations, the storage medium is a non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may include, but are not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical disks based on CD, DVD, or Blu-ray technology, and persistent solid-state memory such as flash and solid-state drives. Personal electronic device 500 is not limited to the components and configuration of FIG. 5B and may include other or additional components in multiple configurations.

[0218] As used herein, the term "affordance" refers to a user-interactive graphical user interface object that is optionally displayed on a display screen of device 100, 300, and / or 500 (FIGS. 1A, 3, and 5A-5B). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) each optionally constitute an affordance.

[0219] As used herein, the term “focus selector” refers to an input element that indicates the current portion of the user interface with which the user is interacting. In some implementations involving a cursor or other location marker, the cursor acts as the “focus selector,” such that when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 of FIG. 3 or touch-sensitive surface 451 of FIG. 4B) while the cursor is positioned over a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted according to the detected input. In some implementations involving a touchscreen display (e.g., touch-sensitive display system 112 of FIG. 1A or touchscreen 112 of FIG. 4A) that allows direct interaction with user interface elements on the touchscreen display, contact detected on the touchscreen acts as the “focus selector,” such that when input (e.g., a press input) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface without a corresponding movement of the cursor or movement of a contact on a touchscreen display (e.g., by using the tab key or arrow keys to move focus from one button to another), and in these implementations, the focus selector moves to follow the movement of focus between various regions of the user interface. Regardless of the specific form that the focus selector takes, the focus selector is generally a user interface element (or a contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface with which the user intends to interact).For example, while a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen), the position of a focus selector (e.g., a cursor, touch, or selection box) over a corresponding button indicates that the user intends to activate that corresponding button (and not other user interface elements shown on the device's display).

[0220] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of that contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predetermined number of intensity samples, i.e., a set of intensity samples collected during a predetermined period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) associated with a predetermined event (e.g., after detecting the contact, before detecting lift-off of the contact, before or after detecting the start of contact movement, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean value of the intensity of the contact, the average value of the intensity of the contact, the top 10 percentile of the intensity of the contact, half the maximum intensity of the contact, 90 percent of the maximum intensity of the contact, etc. In some embodiments, the duration of the contact is used to determine the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an operation is performed by the user. For example, the set of one or more intensity thresholds optionally includes a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity that does not exceed the first threshold results in a first action, a contact having a characteristic intensity that exceeds the first intensity threshold but not the second intensity threshold results in a second action, and a contact having a characteristic intensity that exceeds the second threshold results in a third action. In some embodiments, the comparison of the characteristic intensity to the one or more thresholds is not used to determine whether to perform the first action or the second action, but rather to determine whether to perform one or more actions (e.g., whether to perform the respective action or to forgo performing the respective action).

[0221] FIG. 5C illustrates the detection of multiple contacts 552A-552E on the touch-sensitive display screen 504 by multiple intensity sensors 524A-524D. FIG. 5C additionally includes an intensity diagram showing the current intensity measurements of intensity sensors 524A-524D relative to intensity units. In this example, intensity sensors 524A and 524D each measure 9 intensity units, and intensity sensors 524B and 524C each measure 7 intensity units. In some implementations, the aggregate intensity is the sum of the intensity measurements of the multiple intensity sensors 524A-524D, which in this example is 32 intensity units. In some embodiments, each contact is assigned a respective intensity that is a portion of this aggregate intensity. FIG. 5D illustrates the allocation of aggregate intensity to contacts 552A-552E based on their distance from the center of force 554. In this example, contact 552A, contact 552B, and contact 552E are each assigned a contact intensity of 8 intensity units of the total intensity, and contact 552C and contact 552D are each assigned a contact intensity of 4 intensity units of the total intensity. More generally, in some implementations, each contact j is assigned a respective intensity Ij, which is a portion of the total intensity A, according to a predetermined mathematical function Ij=A·(Dj / ΣDi), where Dj is the distance from the center of force to the respective contact j, and ΣDi is the sum of the distances from the center of force to all respective contacts (e.g., from i=1 to the end). The operations described with reference to FIGS. 5C-5D can be performed using electronic devices similar to or identical to device 100, 300, or 500. In some embodiments, the characteristic intensity of a contact is based on one or more intensities of that contact. In some embodiments, an intensity sensor is used to determine a single characteristic intensity (e.g., a single characteristic intensity of a single contact). Note that the intensity plots are not part of the displayed user interface, but are included in FIGS. 5C-5D for the reader's convenience.

[0222] In some embodiments, a portion of the gesture is identified for purposes of determining the characteristic intensity. For example, the touch-sensitive surface optionally receives successive swipe contacts that transition from a start position and reach an end position, at which point the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end position is optionally based on only a portion of the successive swipe contacts (e.g., only the portion of the swipe contact at the end position), rather than the entire swipe contact. In some embodiments, before determining the characteristic intensity of the contact, a smoothing algorithm is optionally applied to the intensity of the swipe contact. For example, the smoothing algorithm optionally includes one or more of an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, these smoothing algorithms eliminate small increases or decreases in the intensity of the swipe contact for purposes of determining the characteristic intensity.

[0223] The intensity of a contact on the touch-sensitive surface is optionally characterized with respect to one or more intensity thresholds, such as a contact-detection intensity threshold, a light pressure intensity threshold, a deep pressure intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light pressure intensity threshold corresponds to an intensity that will cause the device to perform an action typically associated with clicking a physical mouse button or trackpad. In some embodiments, the deep pressure intensity threshold corresponds to an intensity that will cause the device to perform an action different from an action typically associated with clicking a physical mouse button or trackpad. In some embodiments, if a contact is detected with a characteristic intensity below the light pressure intensity threshold (e.g., and above a weak contact-detection intensity threshold below which the contact is no longer detected), the device will move a focus selector in accordance with the movement of the contact on the touch-sensitive surface without performing an action associated with the light pressure intensity threshold or the deep pressure intensity threshold. Generally, unless otherwise noted, these intensity thresholds are consistent across different sets of user interface illustrations.

[0224] An increase in the characteristic intensity of the contact from an intensity below the light pressure intensity threshold to an intensity between the light pressure intensity threshold and the deep pressure intensity threshold may be referred to as a "light press" input. An increase in the characteristic intensity of the contact from an intensity below the deep pressure intensity threshold to an intensity above the deep pressure intensity threshold may be referred to as a "deep press" input. An increase in the characteristic intensity of the contact from an intensity below the contact-detection intensity threshold to an intensity between the contact-detection intensity threshold and the light pressure intensity threshold may be referred to as detecting a contact on the touch surface. A decrease in the characteristic intensity of the contact from an intensity above the contact-detection intensity threshold to an intensity below the contact-detection intensity threshold may be referred to as detecting a lift-off of the contact from the touch surface. In some embodiments, the contact-detection intensity threshold is zero. In some embodiments, the contact-detection intensity threshold is greater than zero.

[0225] In some embodiments described herein, one or more actions are performed in response to detecting a gesture including a corresponding pressure input or in response to detecting a corresponding pressure input performed with a corresponding contact (or contacts) that is detected at least in part based on detecting an increase in intensity of the contact (or contacts) above a pressure input intensity threshold. In some embodiments, the corresponding action is performed in response to detecting an increase in intensity of the corresponding contact (e.g., a "downstroke" of the corresponding pressure input) above a pressure input intensity threshold. In some embodiments, the pressure input includes an increase in intensity of the corresponding contact above a pressure input intensity threshold and a subsequent decrease in intensity of the contact below the pressure input intensity threshold, and the corresponding action is performed in response to detecting a subsequent decrease in intensity of the corresponding contact (e.g., an "upstroke" of the corresponding pressure input) below the pressure input intensity threshold.

[0226] Figures 5E to 5H show the results of the light pressure intensity threshold (e.g., "IT" in Figure 5E). L " ) to the deep press intensity threshold (e.g., "IT D5 illustrates the detection of a gesture including a press input corresponding to an increase in the intensity of contact 562 to an intensity above a deep pressure intensity threshold (e.g., "IT 2"). A gesture performed with contact 562 is detected on touch-sensitive surface 560 while cursor 576 is displayed over application icon 572B corresponding to app2 on displayed user interface 570, which includes application icons 572A-572D displayed within default region 574. In some embodiments, this gesture is detected on touch-sensitive display 504. An intensity sensor detects the intensity of the contact on touch-sensitive surface 560. The device detects whether the intensity of contact 562 exceeds a deep pressure intensity threshold (e.g., "IT 2"). D Contact 562 is maintained on touch-sensitive surface 560. In response to detecting the gesture, a deep press intensity threshold (e.g., "IT") is reached during the gesture. D ”), reduced representations 578A-578C (e.g., thumbnails) of recently opened documents are displayed for App2, as shown in FIGS. 5F-5H. In some embodiments, the intensity compared to one or more intensity thresholds is a characteristic intensity of the contact. Note that the intensity diagram of contact 562 is not part of the displayed user interface, but is included in FIGS. 5E-5H for the reader's benefit.

[0227] In some embodiments, the display of representations 578A-578C includes animation. For example, representation 578A is initially displayed near application icon 572B, as shown in FIG. 5F. As the animation progresses, representation 578A moves up, displaying representation 578B near application icon 572B, as shown in FIG. 5G. Then, as shown in FIG. 5H, representation 578A moves up, and representation 578B moves up toward representation 578A, displaying representation 578C near application icon 572B. Representations 578A-578C form an array above icon 572B. In some embodiments, the animation progresses as a function of the intensity of contact 562, as shown in FIGS. 5F-5G, where the intensity of contact 562 exceeds a deep pressure intensity threshold (e.g., "ITD Representations 578A-578C appear and move upward as the intensity increases toward "0." In some embodiments, the intensity on which this animation progresses is based is a characteristic intensity of the contact. The operations described with reference to FIGS. 5E-5H can be performed using electronic devices similar to or identical to device 100, 300, or 500.

[0228] In some embodiments, the device employs intensity hysteresis to avoid accidental input, sometimes referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold that has a predetermined relationship to the pressure input intensity threshold (e.g., the hysteresis intensity threshold is X intensity units below the pressure input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the pressure input intensity threshold). Thus, in some embodiments, the pressure input includes a corresponding increase in the intensity of the contact above the pressure input intensity threshold and a subsequent decrease in the intensity of the contact below a hysteresis intensity threshold that corresponds to the pressure input intensity threshold, and a corresponding action is performed in response to detecting a subsequent corresponding decrease in the intensity of the contact below the hysteresis intensity threshold (e.g., an “upstroke” of the corresponding pressure input). Similarly, in some embodiments, a pressure input is detected only if the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the pressure input intensity threshold, and optionally a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a corresponding action is performed in response to detecting that pressure input (e.g., an increase in the intensity of the contact or a decrease in the intensity of the contact, as the case may be).

[0229] For ease of explanation, descriptions of actions performed in response to a pressure input associated with a pressure input intensity threshold or in response to a gesture including that pressure input are optionally triggered in response to detecting any of: an increase in the intensity of the contact above the pressure input intensity threshold, an increase in the intensity of the contact from an intensity below a hysteresis intensity threshold to an intensity above the pressure input intensity threshold, a decrease in the intensity of the contact below the pressure input intensity threshold, and / or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the pressure input intensity threshold. Furthermore, in embodiments where an action is described as being performed in response to detecting a decrease in the intensity of the contact below a pressure input intensity threshold, the action is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to and below the pressure input intensity threshold.

[0230] Attention is now directed to embodiments of user interfaces (“UIs”) and related processes implemented on an electronic device such as portable multifunction device 100, device 300, or device 500.

[0231] Figures 6A-6S show exemplary user interfaces for managing controllable external devices, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes in Figures 7A-7C and 23.

[0232] 6A shows an electronic device 600 with a touch-sensitive display 602. In some embodiments, device 600 includes some or all of the features of devices 100, 300, and 500 described above. Device 600 is configured to receive data associated with a controllable external device. Device 600 is also configured to send commands to the controllable external device.

[0233] In FIG. 6A , device 600 displays user interface screen 610-1 for managing controllable external devices associated with a particular location. In some embodiments, user interface screen 610 is included in an application for managing controllable external devices associated with one or more locations. Examples of locations include, but are not limited to, an address, a place, a building, a business, an environment (e.g., a backyard, a car, a porch), etc. In some embodiments, a location includes multiple designated areas within or associated with a location, such as rooms within a location. In some embodiments, a location includes an environment model having a hierarchical representation of a physical environment (e.g., a home) that can include the lowest level of objects (e.g., rooms), such as those described in paragraph

[0017] of U.S. patent application Ser. No. 14 / 725,912, filed May 29, 2015, entitled “Accessory Management Systems Using Environment Model,” which is incorporated by reference above.

[0234] Device 600 is configured to access a location profile for a location indicated on user interface screen 610-1. In some embodiments, the location profile is accessed from local memory on device 600 or from a remote server. The location profile includes information associated with the location, which may include, for example, a name, an address, people associated with the location, an image (e.g., a wallpaper image) associated with the location, a year (e.g., when the location was built), notes, accessories associated with the location, the current state of the accessories at the location, an automation profile associated with the location, and a scene profile associated with the location. The terms accessory, automation profile, and scene profile are described in more detail below.

[0235] In some embodiments, the user selects a location profile through user input (e.g., by selecting a location from a list of locations). In some embodiments, device 600 determines its location and determines a location profile based on the location of device 600. In this manner, device 600 automatically presents information and controls to the user for a location that corresponds to the user's current location.

[0236] User interface screen 610-1 is the home screen corresponding to tab 604-1 and may be referred to as "home screen 610-1." Home screen 610-1 includes a location indication 606 ("Ellsworth St."). In the illustrated embodiment, indication 606 includes text. In some embodiments, the location indication includes an image or other identifying information.

[0237] The home screen 610-1 also includes representations 620-1 of controllable external devices of or associated with the location. A controllable external device, also referred to for purposes of this disclosure as an "accessory," refers to any item or device configured to be monitored and / or controlled by another device. In some embodiments, an accessory is configured to operate in two or more states and is remotely controllable between two or more states. Non-limiting examples of accessories include lights, thermostats, outlets, fans, appliances (e.g., televisions, washing machines, dryers, dishwashers, coffee machines), doors (e.g., door locks), automatic door openers (e.g., garage door openers), air conditioners, furnaces, still or video cameras, smoke alarms, carbon monoxide alarms, security systems and alarms, etc. An accessory may include an electronic device that can be controlled by a dedicated computing device or by a general-purpose computing device, such as a desktop computer, laptop computer, smartphone, other mobile phone, or other handheld or wearable computing device, by providing the general-purpose computing device with appropriate executable program code or instructions, such as those described in paragraph

[0008] of filed U.S. patent application Ser. No. 14 / 725,912, entitled "Accessory management Systems Using Environment Model," filed May 29, 2015, which is incorporated by reference above.

[0238] Representation 620-1 corresponds to a thermostat accessory and includes an indication of the thermostat's current state. Specifically, representation 620-1 indicates that the current temperature is 70 degrees and that the thermostat is heating to a setpoint of 72 degrees. In some embodiments, the accessory representation includes an indication of the action that selecting the representation will cause. For example, representation 620-2, which corresponds to a fan accessory, includes the text "Turn On." This indicates that selecting the representation will turn on the fan, and also means that the fan is currently off.

[0239] Representation 620-1 is located on home screen 610-1 under the heading "Favorite Accessories." In some embodiments, a user can manually designate an accessory as a favorite accessory. In some embodiments, an accessory is represented as a favorite accessory based on its behavior, such as how frequently it is controlled or triggered. In some embodiments, an accessory is represented as a favorite accessory based on its behavior with respect to a particular device or user profile, such as how frequently it is controlled by a particular device or user associated with a particular device.

[0240] In the illustrated embodiment, representation 620-1 includes an affordance. In FIG. 6A , device 600 detects user input 630-1 (e.g., a finger tap) on representation 920-1 corresponding to selection of a thermostat accessory. At the time of user input 630-1, the thermostat accessory is in a first state toward 72 degrees. In some embodiments, device 600 transmits an instruction to set the thermostat accessory to a second state in response to user input 630-1.

[0241] In some embodiments, device 600 determines the duration of user input 630-1 (e.g., the duration of a contact on touch-sensitive display 602). In some embodiments, device 600 determines a characteristic intensity of the user input (e.g., the characteristic intensity of a contact on touch-sensitive display 602). Device 600 determines whether user input 630-1 meets input criteria. In some embodiments, the input criteria include whether the duration of the user input exceeds a predetermined time and / or whether the characteristic intensity of the user input exceeds a predetermined intensity.

[0242] In accordance with a determination that the user input 630-1 does not satisfy the input criteria, the device 600 transmits an instruction to set the state of the thermostat accessory to a second state. In some embodiments, the representation of the accessory includes an indication of the state to which the accessory will be set in response to the user input not satisfying the input criteria. For example, representation 620-2 in FIG. 6A indicates that selecting representation 620-2 can turn on the exhaust fan accessory.

[0243] 6C shows an example response when user input 630-1 does not meet the input criteria. As shown in FIG. 6C, device 600 sends a command to turn off the thermostat and updates representation 620-1 to indicate the off state. In some embodiments, device 600 outputs a haptic sensation to indicate the state has changed.

[0244] Optionally, following a determination that user input 630-1 does not satisfy the input criteria, device 600 transmits a command to switch the state of the accessory from a first of two predetermined states to a second of two predetermined states (e.g., on / off, open / closed, locked / unlocked). In one implementation of this technique, in response to another user input identical to user input 630-1, device 600 transmits a command to return the thermostat to its previous state and set it on (e.g., to heat, set to 72 degrees). In this manner, a user can provide a relatively short or light tap to quickly toggle the state of the accessory between two predetermined states. In some embodiments, following a determination that the user input does not satisfy the input criteria, device 600 transmits a command to switch the state to an adjacent state in a predetermined sequence of states (e.g., off->low->high->off). In this manner, a user can easily cycle through a sequence of states.

[0245] Alternatively, following a determination that user input 630-1 meets the input criteria, device 600 displays a control affordance indicating the accessory's available state. FIG. 6D shows an example user interface screen 610-2 having a control affordance 608 indicating the accessory's current state (set to 72 degrees) and the accessory's available state. User interface screen 610-2 also includes affordance 622 that, when selected, displays information about the corresponding accessory and, optionally, an affordance for modifying information associated with the accessory. The information associated with the accessory optionally includes the name, room, type, manufacturer, and representative icon. Optionally, user interface screen 610-2 is partially translucent so that home screen 610-1 is partially visible.

[0246] With respect to control affordance 698, a horizontal bar on control affordance 608 represents temperatures to which the thermostat can be set, e.g., in one-degree increments. In response to detecting user input on control affordance 608 corresponding to the selection of a particular state, device 600 transmits a command to set the accessory's state to the selected state. In this manner, a user can interact with control affordance 608 to select an unavailable state in response to user input that does not meet the input criteria, or to go directly to a state that is not adjacent to the current state. In FIG. 6D , device 600 detects user input 630-2 (e.g., a tap) and, in response, sets the thermostat to 75 degrees. Optionally, the thermostat can be changed to 75 degrees by a vertical swipe from bar 614 to bar 616 on control affordance 608.

[0247] Optionally, in response to detecting user input 631-2 on control affordance 608 corresponding to selection of a particular state, device updates the visual appearance of control affordance 608 to indicate that the accessory is set to the selected state, e.g., as shown in FIG. 6E . Optionally, device 600 ceases displaying control affordance 608 in response to selection of the state (e.g., device 600 returns to user interface screen 610-1). In some embodiments, device 600 ceases displaying control affordance 608 in response to detecting user input corresponding to selection of a location (e.g., area 612) on touch-sensitive display 602 that does not correspond to control affordance 608.

[0248] In some embodiments, device 600 updates the appearance of control affordance 608 to indicate the selected state but does not send a command to set the accessory's state until further user input is detected. In some embodiments, device 600 sends a command to set the accessory to the selected state in response to selection of another affordance (e.g., the "Set" or "Done" affordance) or input on touch-sensitive display 602 located outside the response area of ​​control affordance 608 (e.g., area 612).

[0249] Control affordance 608 is an example of a control affordance for an accessory that operates in discrete states (e.g., a digital thermostat adjustable in one-degree increments). FIGS. 6F-6I show other examples of control affordances for accessories that operate in discrete states. More specifically, FIG. 6F shows an example control affordance for an exhaust fan accessory that can operate in four distinct states. FIG. 6G shows an example control affordance for a home security system that can operate in various distinct alarm modes, and FIGS. 6H-6I show example control affordances for a door or other lockable accessory that has two distinct states. In some embodiments, device 600 displays the time the accessory's current state was set, as shown in the example of FIG. 6H (e.g., unlocked at 5:00 PM).

[0250] In some embodiments, the available states of an accessory are continuous. Figure 6J shows an example control affordance 621 for a dimmable light switch that can operate over a continuous range of brightness. In some embodiments, a particular state is selected, for example, by either tapping a corresponding location on affordance 621 (as indicated by element 630-3) or by dragging the top of bar 623 vertically (as indicated by arrow 630-4) until the desired state is achieved.

[0251] In some embodiments, the accessory is a color-adjustable light bulb configured to operate in different color states. The left side of FIG. 6K shows a control affordance 625 for the color-adjustable light bulb, similar to control affordance 621 of FIG. 6J. However, affordance 627 is also displayed. Selection of affordance 627 provides control affordance 629 for selecting the operating color of the color-adjustable light bulb, as shown on the right side of FIG. 6K. Marker 618 indicates the current color of the light bulb. In some embodiments, touching a location on control affordance 629 selects a different color.

[0252] In some embodiments, a relationship exists between two or more accessories such that when one accessory is controlled or manipulated, another associated accessory is controlled. In some embodiments, in response to device 600 sending a command to change the state of a first accessory, an associated second accessory is automatically controlled in addition to the first accessory. For example, a command to operate a camera on a location's front porch automatically turns on the microphone and / or speaker on the porch. In some embodiments, in response to a first accessory being activated, an associated second accessory is automatically controlled. For example, when a visitor rings the front door bell, the front door lock, porch camera, and intercom system associated with the front porch are automatically operated (e.g., set to a specified state).

[0253] In some embodiments, when an accessory is activated, device 600 displays a notification indicating that the accessory has been activated. In some embodiments, the notification includes information about the accessory associated with the activated accessory and / or affordances for controlling the accessory associated with the activated accessory. In one example, when the doorbell is rung, device 600 displays a notification including an image captured by a camera on the front porch and affordances to activate the front door intercom system, unlock the front door, and turn on the porch lights. Exemplary embodiments of notifications corresponding to this example are described in more detail below with reference to FIGS. 34I-34K.

[0254] In some embodiments, relationships between accessories are specified by a user (e.g., by user input) to explicitly link the functionality of two or more devices, triggering each to function together when one is triggered either manually or by an automatic trigger (e.g., time of day, sensor, etc.). In some embodiments, relationships are established automatically based on the location of the accessories within a location (e.g., a relationship is established automatically between certain accessories because they are associated with a common area or room of the location). Similarly, devices that are associated based on location function together when one is triggered manually or by an automatic trigger (e.g., time of day, sensor, etc.).

[0255] In some embodiments, relationships between accessories are established based on accessory type. In one example, a television, soundbar, AppleTV, and home theater amplifier are automatically associated because they are associated with an entertainment system. In this example, selecting an affordance to turn off the television optionally causes the other accessories (soundbar, AppleTV, and home theater amplifier) ​​to power off. In some embodiments, device 600 displays affordances representing groups of accessories having the same type, which can be automatically generated by the system. Referring again to the entertainment system example, device 600 optionally displays an affordance labeled "Entertainment System" that controls all of the system's accessories listed above.

[0256] Referring back to FIG. 6A , home screen 610-1 also includes representations 624 of individuals (e.g., personal contacts, friends, family members) associated with the location. In some embodiments, device 600 receives data indicating that a remote electronic device (e.g., smartphone, tablet) associated with the individual is present at the location. In some embodiments, representation 624 is displayed on home screen 610-1 in response to receiving data indicating the remote electronic device is present at the location. In the illustrated embodiment, representation 624 includes an image of the individual. In some embodiments, the representation includes the individual's name, initials, a designated image associated with the individual, or other text, image, video, etc. associated with the individual. In some embodiments, individuals not present at the location or associated with devices with unknown locations (e.g., remote or inactive) are not represented on home screen 610-1. In some embodiments, home screen 610-1 includes one or more representations of individuals determined to not be present at the location.

[0257] In some embodiments, home screen 610-1 includes an indication of the individual's status or location. In some embodiments, the status or location is relative to the location. For example, in some embodiments, home screen 610-1 includes an indication of whether the individual is determined to be present at the location or away from the location, or whether the individual's status is determined to be unknown or inactive. In some embodiments, the away or unknown status is indicated by shading or graying out a representation of the individual. In some embodiments, the individual's status is determined based on the location of a device associated with the individual. The status optionally also indicates whether the individual has been invited to be associated with the location for purposes of accessing information about the location.

[0258] Home screen 610-1 also includes an indication 626 of the status of the location. In some embodiments, the status includes an overall rating of the location (e.g., "all safe and sound"). In the embodiment shown in FIG. 6A, indication 626 includes the status of accessories associated with the location (e.g., garage door open, 70-degree thermostat currently heating to 72 degrees, kitchen exhaust fan on). In some embodiments, accessory status is categorized (e.g., emergency, caution, or non-critical) and displayed based on hazardous conditions, with more hazardous conditions displayed above less hazardous conditions. Examples of emergency conditions may include the activation of a security alarm, smoke detector, carbon monoxide detector, or an indication that the hub providing the accessory status is not working. Examples of caution conditions may include an open or unlocked door or window, or an accessory not connected or available. Examples of non-critical conditions may include a light being on and the status of a thermostat.

[0259] Home screen 610-1 also includes a representation 640-1 of a scene profile. A scene profile contains data about the specified state of one or more accessories at a location. A scene profile may also be referred to simply as a "scene." In FIG. 6A, the scene profile corresponding to representation 640-1 is designated as a "favorite scene." In some embodiments, a scene profile is designated based on one or more of the following: (1) a user input explicitly designating the scene profile; (2) how frequently the scene profile is applied; (3) how recently the scene profile was applied; and (4) how frequently or recently the accessory associated with the scene profile was selected, controlled, or triggered. Similar to the designated accessories described above, in some embodiments, a scene profile is designated based on actions taken by a particular device or user associated with a device (e.g., which scene profiles are frequently selected by the user).

[0260] In the embodiment of FIG. 6A , representation 640-1 includes an affordance. In some embodiments, in response to detecting user input corresponding to a selection of representation 640-1, device 600 transmits an instruction to apply a specified state of an accessory included in the corresponding scene profile. In some embodiments, in response to detecting user input corresponding to a selection of representation 640-1 of a scene profile, device 600 displays user interface screen 610-3 shown in FIG. 6L including representations of accessories associated with the scene profile. The representations of multiple accessories in user interface screen 610-3 include an indication of the specified state of each accessory (e.g., the state the accessory will be set to when the scene profile is implemented). In some embodiments, the indication of the specified state includes an action (e.g., turn off) to be taken when the scene profile is implemented.

[0261] Home screen 610-1 also includes affordance 628. In response to detecting user input on affordance 628, device 600 displays option 630 to create additional scene profiles, as shown in FIG. 6M, for example. In some embodiments, device 600 displays the option to create additional scene profiles in response to other types of user input.

[0262] In some embodiments, home screen 610-1 includes images captured by a controllable external camera of the location. In the embodiment shown in FIG. 6N, home screen 610-1 is scrollable and scrolls using known techniques to reveal area 632 for displaying images included in a live video feed from a controllable external camera in the location's kitchen. In some embodiments, the images are from a single point in time. In some embodiments, the images are a live video feed. In some embodiments, the images are a single image that can be selected (e.g., tapped) to display the live video feed from the controllable external camera. In some embodiments, one or more affordances or camera images can be off-screen and can be displayed by an input such as a button or a scrolling gesture such as a swipe. In some embodiments, displaying one or more affordances or camera images that were initially off-screen displaces one or more affordances so that they are no longer displayed.

[0263] Device 600 also displays a room tab 604-2. In response to detecting user input (e.g., a tap) on room tab 604-2, device 600 displays a representation of at least one room associated with the location, as shown, for example, on user interface screen 610-4 of FIG. 6O. In the embodiment of FIG. 6O, the room representation includes an image associated with the corresponding room. In response to detecting user input selecting a room on user interface 610-4, device 600 displays a representation of accessories associated with the selected room and, optionally, a representation of a scene profile including the accessories associated with the selected room. FIG. 6P shows an example user interface screen 610-5 corresponding to a bedroom with a representation of accessories and a scene profile associated with the bedroom. In some embodiments, the representation of the accessories indicates the current state of the accessories. In some embodiments, the image associated with the room is displayed as wallpaper on user interface screen 610-5 behind the representation of the accessories. In some embodiments, the representation of the accessories associated with the selected room is an affordance for controlling the accessories or for accessing a user interface screen for controlling the corresponding accessories, as described above with reference to representation 620-1 and FIGS. 6B-6K.

[0264] User interface screen 610-1 also includes an automation tab 604-3. In response to detecting user input on the automation tab 604-3, device 600 displays a representation of an automation profile and / or options for creating an automation profile. An automation profile includes criteria for controlling the state of at least one accessory at a location and data representing a specified state for the at least one accessory. In other words, an automation profile includes a state to which a selected accessory is set when the automation profile's criteria are met. An "automation profile" may also be referred to simply as "automation." Setting an accessory associated with an automation profile to a specified state in response to determining that the automation profile's criteria are met may also be referred to as implementing the automation profile. An automation profile may include data related to a scene profile, which also includes data related to the accessory's state.

[0265] FIG. 6Q illustrates an example user interface screen 610-6 displayed in response to detecting user input on the automation tab 604-3. The user interface screen 610-6 includes a representation 634 of an automation profile named "When I Leave Home" associated with a location. The representation 634 also includes indications of scenes and / or accessories associated with the automation profile, such as "Run Scene 1" and "Control 3 Accessories." In some embodiments, the name of the automation profile indicates the criteria of the automation profile. In some embodiments, the representation of the automation profile includes an affordance that, when selected, displays representations of the accessories and / or scene profiles associated with the automation profile. In some embodiments, the representation of the accessories associated with the automation profile includes an affordance that, when selected, provides a user interface for changing the designated state of the accessory for the automation profile or selecting the designated state of the accessory for the automation profile. In some embodiments, the designated state of the accessory associated with the automation profile is selected by applying the techniques described with respect to FIGS. 6B-6K.

[0266] Device 600 also provides the ability to view information associated with different locations and / or create location profiles for additional locations. In the embodiment shown in FIG. 6R, device 600 detects user input on affordance 636 included on home screen 610-1. In response to detecting selection of affordance 636, device 600 displays menu 638 providing options to view information associated with different locations (e.g., Lisa's house or the beach house) and add additional locations (e.g., Add Location). Device 600 also provides options (e.g., Location Details...) to view and / or modify profile information associated with locations, such as the location profile information described above.

[0267] Device 600 also provides the ability to add accessories associated with a location. Referring again to Figure 6M, device 600 detects user input on affordance 628 included on home screen 610-1 and, in response, displays option 642 to associate an accessory with the location.

[0268] In some embodiments, device 600 displays a people tab 604-4, as shown in FIG. 6S. In response to detecting user input on the people tab 604-4, device 600 displays representations of people associated with the location. In the illustrated embodiment, people representations 644-1, 644-2, and 644-3 are displayed on user interface screen 610-7. In the illustrated embodiment, the people representations include images of the people. In some embodiments, the representations include names, initials, designated images associated with the individuals, or other text, images, videos, etc. associated with the individuals. In some embodiments, user interface screen 610-7 includes representations of all people associated with the location. In some embodiments, people with states indicating that they are not present at the location or that their location is unknown (e.g., away, inactive, etc.) are not displayed (e.g., only representations of people determined to be present at the location are displayed). In some embodiments, one or more representations of individuals determined not to be present at the location are displayed.

[0269] In FIG. 6S, user interface screen 610-7 includes an indication of people's status or location. In some embodiments, the status or location is relative to the location. For example, in some embodiments, an indication is displayed of whether an individual is determined to be present at or away from the location, or whether the individual's status is determined to be unknown or inactive. In some embodiments, the individual's status is determined based on the location of a device associated with the individual. In some embodiments, speaker identification using one or more microphones can be used to determine the individual's presence and identity. The status also indicates whether the individual has been invited to be associated with the location (e.g., invited) for purposes of accessing information about the location.

[0270] 7A-7C show a flow diagram illustrating a method for managing controllable external devices using an electronic device, according to some embodiments. Method 700 is performed on a device (e.g., 100, 300, 500, or 600) that includes a display and, optionally, a touch-sensitive surface. Some operations in method 700 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0271] As described below, method 700 provides an intuitive way to manage controllable external devices. This method reduces the cognitive burden on a user to manage controllable external devices, thereby creating a more efficient human-machine interface. In the case of battery-operated computing devices, allowing a user to manage controllable external devices faster and more efficiently conserves power and increases the time between battery charges.

[0272] At block 702, the device displays a user interface screen (eg, 610-1) that includes an indication of the location and a representation of a controllable external device (eg, 620-1) at the location.

[0273] Optionally, at block 704, the device receives data indicating that a remote electronic device associated with the individual is present at the location, and in response to receiving the data indicating that the remote electronic device is present at the location, displays on a user interface screen a representation (e.g., 624) of the individual associated with the remote electronic device.

[0274] Optionally, at block 706, the device displays an indication (eg, 626) of the location status on a user interface screen.

[0275] Optionally, at block 708, the device displays on a user interface screen a representation of a scene profile (e.g., 640-1) including data regarding specified states of multiple controllable external devices at the location, detects a first user input corresponding to selection of the scene profile, and, in response to detecting the first user input, displays representations (e.g., 910-2) of the multiple controllable external devices associated with the scene profile.

[0276] Optionally, at block 710, the device displays on a user interface screen an image (eg, 632) captured by a controllable external camera of the location.

[0277] In block 712, the device detects a second user input (eg, 630-1) corresponding to a selection of a controllable external device.

[0278] At block 714, in response to detecting the second user input, the device displays a user interface object (eg, 608) that indicates a plurality of possible states of the controllable external device.

[0279] At block 716, while a user interface object indicating multiple possible states of the controllable external device is displayed, the device detects a third user input (e.g., 630-2) corresponding to a selection of a specified state of the controllable external device.

[0280] At block 718, in response to detecting the third user input, the device transmits an instruction to set the controllable external device to the specified state.

[0281] Optionally, at block 720, while displaying the user interface screen, the device detects a fourth user input and, in response to detecting the fourth user input, displays a representation of at least one designated room associated with the location (e.g., FIG. 6O), and detects a fifth user input corresponding to a selection of a first designated room of the at least one designated room and, in response to detecting the fifth user input, displays a representation of at least one controllable external device associated with the first designated room (e.g., FIG. 6P).

[0282] Optionally, at block 722, the device detects a sixth user input while displaying the user interface screen, and in response to detecting the sixth user input, displays a representation of an automation profile including criteria for controlling a state of at least one controllable external device at the location and data representing the specified state for the at least one controllable external device, and / or an option to create an automation profile (e.g., FIG. 6Q).

[0283] Optionally, at block 724, the device detects a seventh user input while displaying the user interface screen, and in response to detecting the seventh user input, displays representations of people associated with the location (e.g., FIG. 6S).

[0284] Optionally, at block 726, the device detects an eighth user input while displaying the user interface screen, and in response to detecting the eighth user input, displays options to perform one or more of: creating an additional scene profile, viewing information associated with a different location and / or adding an additional location, modifying profile information for the location, and associating a second controllable external device with the location (e.g., Figures 6M (630) and 6R (638)).

[0285] It should be noted that the details of the processes described above with respect to method 700 (e.g., FIGS. 7A-7C) are also applicable in an analogous manner to the methods described below. For example, methods 1000, 1300, 1600, 1900, 2100, 2300, 2600, 2900, and 3200 optionally include one or more of the features of the various methods described above with reference to method 700.

[0286] According to some embodiments, FIG. 8 illustrates an exemplary functional block diagram of an electronic device 800 configured in accordance with the principles of various described embodiments. According to some embodiments, the functional blocks of electronic device 800 are configured to perform the techniques described above. The functional blocks of device 800 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of various described examples. Those skilled in the art will understand that the functional blocks described in FIG. 8 may optionally be combined or separated into sub-blocks to implement the principles of various described examples. Thus, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.

[0287] 8 , electronic device 800 includes a display unit 802 configured to display a graphical user interface, optionally a touch-sensitive surface unit 804 configured to receive contacts, and a processing unit 806 coupled to display unit 802 and optionally touch-sensitive surface unit 804. In some embodiments, processing unit 806 includes a display enabling unit 808, a detecting unit 810, a causing unit 812, and a receiving unit 814.

[0288] The processing unit 806 is configured to: enable display of an indication of the location on a first user interface screen (e.g., using the display enabling unit 808); enable display of a representation of the controllable external device of the location on the first user interface screen (e.g., using the display enabling unit 808); detect a first user input corresponding to a selection of the controllable external device (e.g., using the detection unit 810); in response to detecting the first user input, enable display of a user interface object indicating a plurality of possible states of the controllable external device (e.g., using the display enabling unit 808); detect a second user input corresponding to a selection of a specified state of the controllable external device while the user interface object indicating the plurality of possible states of the controllable external device is displayed (e.g., using the detection unit 810); and in response to detecting the second user input, cause transmission of an instruction to set the controllable external device to the specified state (e.g., using the triggering unit 812).

[0289] In some embodiments, the processing unit 806 is further configured to receive (e.g., using the receiving unit 814) data indicating that a remote electronic device associated with the individual is present at the location, and, in response to receiving the data indicating that the remote electronic device is present at the location, enable (e.g., using the display enabling unit 808) display on the first user interface screen a representation of the individual associated with the remote electronic device.

[0290] In some embodiments, the processing unit 806 is further configured to enable (eg, using the display enabling unit 810) the display of an indication of the location status on the first user interface screen.

[0291] In some embodiments, the processing unit 806 is further configured to: enable display, on the first user interface screen (e.g., with the display enabling unit 808), of a representation of a scene profile that includes data regarding specified states of a plurality of controllable external devices at the location; detect a third user input (e.g., with the detection unit 810) that corresponds to selection of the scene profile; and, in response to detecting the third user input, enable display (e.g., with the display enabling unit 808) of a representation of the plurality of controllable external devices associated with the scene profile. In some embodiments, the processing unit 806 is further configured to detect a fourth user input (e.g., with the detection unit 810) while the first user interface screen is displayed; and, in response to detecting the fourth user input, enable display (e.g., with the display enabling unit 808) of an option to create an additional scene profile.

[0292] In some embodiments, the processing unit 806 is further configured to enable (e.g., using the display enabling unit 808) the display of an image captured by the controllable external camera at the location and included in a live video feed from the controllable external camera on the first user interface screen.

[0293] In some examples, the processing unit 806 is further configured to: detect a fifth user input (e.g., with the detection unit 810) while the first user interface screen is displayed; and, in response to detecting the fifth user input, enable display of a representation of at least one designated room associated with the location (e.g., with the display enablement unit 808); detect a sixth user input (e.g., with the detection unit 810) corresponding to a selection of a first designated room of the at least one designated room; and, in response to detecting the sixth user input, enable display of a representation of at least one controllable external device associated with the first designated room (e.g., with the display enablement unit 808).

[0294] In some embodiments, the processing unit 806 is further configured to detect (e.g., using the detection unit 810) a seventh user input while the first user interface screen is displayed, and in response to detecting the seventh user input, enable (e.g., using the display enablement unit 808) the display of a representation of an automation profile including criteria for controlling a state of at least one controllable external device at the location and data representing the specified state for the at least one controllable external device, and / or an option to create an automation profile.

[0295] In some embodiments, the processing unit 806 is further configured to detect an eighth user input (e.g., using the detection unit 810) while the first user interface screen is displayed, and in response to detecting the eighth user input, enable display of an option to view information associated with a different location and / or add an additional location (e.g., using the display enablement unit 808).

[0296] In some embodiments, the processing unit 806 is further configured to detect a ninth user input (e.g., using the detection unit 810) while the first user interface screen is displayed, and in response to detecting the ninth user input, enable display of an option to change the location profile information (e.g., using the display enablement unit 808).

[0297] In some embodiments, the processing unit 806 is further configured to detect (e.g., using the detection unit 810) a tenth user input while the first user interface screen is displayed, and in response to detecting the tenth user input, enable (e.g., using the display enablement unit 808) the display of an option to associate the second controllable external device with the location.

[0298] In some embodiments, the processing unit 806 is further configured to detect an eleventh user input (e.g., using the detection unit 810) while the first user interface screen is displayed, and in response to detecting the eleventh user input, enable display of representations of people associated with the location (e.g., using the display enablement unit 808).

[0299] The operations described above with reference to Figures 7A-7C are optionally performed by components shown in Figures 1A-1B or 8. For example, displaying operations 702, 704, 706, 708, 710, 714, 720, 722, 724, and 726, detecting operations 708, 712, 716, 720, 722, 724, and 726, sending operation 718, and receiving operation 704 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 of event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers the event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of an affordance on a user interface. When a corresponding predefined event or sub-event is detected, event recognizer 180 activates event handler 190 associated with the detection of that event or sub-event. Event handler 190 optionally utilizes or invokes data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A-1B.

[0300] 9A-9F show exemplary user interfaces for creating and / or configuring a scene profile for a controllable external device, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the process in FIG.

[0301] FIG. 9A illustrates a user interface screen 910-1 for creating a new scene profile, displayed on device 600. In some embodiments, user interface screen 910-1 is displayed in response to selection of the “New Scene” option shown in FIG. 6M. User interface screen 910-1 prompts a user to create a new scene profile and / or provide one or more pre-defined (e.g., suggested) scene profiles. A pre-defined scene profile includes data regarding pre-defined states of pre-defined controllable electronic devices at a location. User interface screen 910-1 includes an affordance 904 for creating a new custom scene profile, as well as representations 902-1, 902-2, 902-3, and 902-4 of exemplary pre-defined scene profiles named “Good Morning,” “Leaving Home,” “Arriving Home,” and “Good Night.”

[0302] FIG. 9B shows device 600 displaying user interface screen 910-2 corresponding to a new custom scene profile named "Movie Night." In addition to the name of the scene profile, user interface screen 910-2 also includes an image 905 (e.g., a glyph, symbol, or photo) associated with the scene profile. In some embodiments, a user can manually select an image associated with the scene profile. User interface screen 910-2 also includes an affordance 906 labeled "Add Accessory" for adding an accessory to the scene profile. In response to user input selecting affordance 906, device 600 displays user interface screen 910-3 ( FIG. 9C ) including representations 908-1 through 908-5 of accessories located at the location. Representations 908-1 through 908-5 are arranged based on the corresponding rooms with which they are associated. The representations include an indication of whether the corresponding accessory is associated with the scene profile. In the illustrated example, a circle in the upper right corner of each representation 908-1 through 908-5 is checked or filled in if the corresponding accessory is associated with the scene profile. Otherwise, the circle is blank.Other examples of indications that an accessory is included in a scene profile include highlighting, bolding, etc.

[0303] In the embodiment of FIG. 9C , representations 908-1 through 908-5 are affordances. Device 600 detects user input 920-1 (e.g., a tap on representation 908-1) corresponding to the selection of a first accessory. After detecting user input 920-1, device 600 associates the first accessory with a scene profile. FIG. 9D shows an updated version of user interface screen 910-3 indicating that the accessory corresponding to representation 908-1 is associated with the scene profile. Device 600 associates the first accessory with the scene profile by including data in the scene profile that identifies the first accessory and a first state of the first accessory. If a scene profile already exists, including the data in the scene profile includes updating the existing profile (e.g., adding data to the existing scene profile). In some embodiments, if a scene profile does not yet exist when the accessory is selected, including the data in the scene profile includes creating a new scene profile with the data.

[0304] In response to detecting selection of affordance 914, device 600 causes all of the accessories associated with the bedroom to be included in the scene profile. Affordance 916 provides similar functionality for the bathroom. In some embodiments, user interface screen 910-3 includes an affordance that, when selected, causes all of the accessories on the user interface screen to be included in the scene profile.

[0305] In some embodiments, representations 908-1 through 908-5 on user interface screen 910-3 include an indication of the current state of the corresponding accessory. In some embodiments, device 600 includes the current state of the accessory in the scene profile at the time the accessory is selected. In some embodiments, if the accessory is already associated with a scene profile, the representation on user interface screen 910-3 corresponding to the accessory shows the state of the accessory included in the scene profile, which is not necessarily the same as the current state of the accessory. In some embodiments, representations 908-1 through 908-5 include an indication of the state that would be included in the scene profile if the accessory were selected, which could be, for example, the current state of the accessory or a state specified by the user.

[0306] In some embodiments, device 600 detects a second user input 920-2 corresponding to a selection of a second accessory (e.g., a contact at a location on touch-sensitive display 602 corresponding to representation 908-5). Device 600 determines whether second user input 920-2 meets threshold criteria. In some embodiments, the threshold criteria include, for example, a threshold duration of the contact or a threshold characteristic intensity of the contact.

[0307] In response to detecting the second user input 920-2 and following a determination that the threshold criteria are met, the device 600 displays an indication of the first state of the second accessory. In some embodiments, the indication of the first state is displayed as part of a control affordance such as those shown in FIGS. 6C-6K. In the embodiment shown in FIG. 9C, the accessory corresponding to the selected representation 908-5 is a light. In some embodiments, the control affordance displayed in FIG. 6J is displayed to allow the user to select the state of the light.

[0308] Device 600 detects an input corresponding to the selection of the first state (e.g., a tap on the control affordance of FIG. 6J ). After detecting the selection of the first state, device 600 includes data identifying the second accessory and the first state of the second accessory in a scene profile. In some embodiments, after detecting the selection of the first state, device 600 displays a representation 908-5 of the second accessory in the first state (e.g., off) and with an indication that the accessory has been added to the scene profile, as shown in FIG. 9D . In some embodiments, device 600 includes data identifying the first state in the scene profile directly in response to user input 920-2 upon determining that the threshold criteria are met. In some embodiments, device 600 indicates that the specified state of the accessory has been selected for the scene, for example, by outputting a haptic sensation.

[0309] 9E shows an updated version of user interface screen 910-2 on device 600 with a summary of the scene profile. Device 600 displays user interface screen 910-2 in response to detecting user input, such as selection of the affordance labeled "Done" on user interface screen 910-3. User interface screen 910-2 includes representations 908-6 and 908-7 of accessories associated with the scene profile.

[0310] The updated user interface screen 910-2 also includes options (e.g., affordances) to add or remove data associated with an accessory from a scene profile (e.g., 912-1), test a scene profile (e.g., 912-2), specify a scene profile (e.g., 912-3), and delete a scene profile (e.g., 912-4). In some embodiments, testing a scene profile includes sending an instruction to implement (at least temporarily) a specified state of the accessory included in the scene profile. In some embodiments, the specified scene is displayed as a favorite scene on the home screen 610-1.

[0311] Returning now to FIG. 9A , in response to detecting user input corresponding to a selection of one of the predefined scene profiles 902-1 through 902-4, device 600 displays a user interface screen including a representation of the location's predefined accessories. FIG. 9F shows an exemplary user interface screen corresponding to the predefined scene profile, Good Night 902-4. As shown in FIG. 9F , the Good Night scene profile is pre-populated with two predefined accessories having predefined states. More specifically, the front door is set to a locked state, and the thermostat in the bedroom is set to a low temperature of 68 degrees. Additional exemplary embodiments relating to predefined scene profiles are described below.

[0312] In some embodiments, the predetermined accessory is a default accessory based on a selected default scene profile that is automatically included in the scene profile without the need for user selection (e.g., a garage door can be predetermined for a "getting home" default scene). In some embodiments, the predetermined accessory is determined based on actions previously performed by device 600 for the predetermined accessory (or a user profile associated with device 600). In some embodiments, the accessory is suggested based on, for example, frequency of use or a correlation between an event or time of day and use of the accessory (e.g., a bedroom light can be determined for a "good morning" scene profile if device 600 typically operates the light in the bedroom in the morning, or a dishwasher can be predetermined for a "good night" scene profile if it is usually operated after 11:00 PM).

[0313] In some embodiments, the representation of the given accessory includes an indication of a predetermined state (e.g., a suggested state) for the given accessory, as shown in the embodiment of Figure 9F. In some embodiments, the predetermined state is a default state based on a selected default scene profile that is automatically included in the scene profile without the need for user selection (e.g., the suggested state of the garage door for "Arriving Home" is "Open").

[0314] In some embodiments, the predetermined state of a given accessory is determined based on a previously taken action on the given accessory associated with the user of device 600. In some embodiments, the state of the accessory is suggested based on, for example, frequency of selection or a correlation between an event or time of day and the state of the accessory (e.g., a bedroom light may be set to on for a "good morning" scene profile if device 600 typically turns on the light in the bedroom in the morning, or the state of a dishwasher may be predetermined to "start" for a "good night" scene profile if it normally starts after 11:00 PM).

[0315] 10 is a flow diagram illustrating a method for managing controllable external devices using an electronic device, according to some embodiments. Method 1000 is performed on a device (e.g., 100, 300, 500, or 600) that includes a display and, optionally, a touch-sensitive surface. Some operations in method 1000 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0316] As described below, method 1000 provides an intuitive way to manage controllable external devices. This method reduces the cognitive burden on a user to manage controllable external devices, thereby creating a more efficient human-machine interface. In the case of battery-operated computing devices, allowing a user to manage controllable external devices faster and more efficiently conserves power and increases the time between battery charges.

[0317] Optionally, at block 1002, the device displays a first user interface screen (e.g., 910-1) including a representation of a predefined scene profile (e.g., 902-1 to 902-4) including data regarding a predetermined state of a predetermined controllable electronic device at a location.

[0318] Optionally, at block 1004, the device detects a first user input corresponding to a selection of a default scene profile while displaying the first user interface screen, and in response to detecting the first user input, displays a second user interface screen (e.g., FIG. 9F ) including a plurality of representations of predetermined controllable external devices at the location. Optionally, the plurality of representations of predetermined controllable external devices at the location include an indication of a predetermined state for the predetermined controllable external device. Optionally, the predetermined controllable external device is determined based on an action previously performed by the device on the predetermined controllable external device. Optionally, the predetermined state of the predetermined controllable external device is determined based on an action previously taken on the predetermined controllable external device associated with the user of the electronic device.

[0319] At block 1006, the device displays a first representation of a first controllable external device located at the location (e.g., 908-1 to 908-5 in FIG. 9C ). Optionally, the first representation of the controllable external device includes an indication of the current state of the controllable external device.

[0320] In block 1008, the device detects a second user input (eg, 920-1) corresponding to a selection of the first controllable external device.

[0321] After detecting the second user input at block 1010, the device includes data identifying the first controllable external device and the first state of the first controllable external device in the scene profile (e.g., FIG. 9D).

[0322] Optionally, at block 1012, the device detects a third user input, and in response to detecting the third user input, displays a third user interface screen including a second representation of the controllable external device (e.g., 908-6). Optionally, the third user interface screen includes options to at least one of remove data associated with the controllable external device from the scene profile (e.g., 912-1), test the scene profile (e.g., 912-2), specify the scene profile (e.g., 912-3), and delete the scene profile (e.g., 912-4).

[0323] Optionally, at block 1014, the device displays a representation (e.g., 908-5) of a second controllable external device located at the location, detects a fourth user input (e.g., 920-2) corresponding to a selection of the second controllable external device, determines whether the fourth user input satisfies a threshold criterion, displays an indication (e.g., 608) of a first state of the second controllable external device in response to detecting the fourth user input and in accordance with a determination that the threshold criterion is met, detects a fifth user input (e.g., 630-2) corresponding to a selection of the first state of the second controllable external device, and includes data identifying the second controllable external device and the first state of the second controllable external device in a scene profile after detecting the fifth user input.

[0324] It should be noted that the details of the process described above with respect to method 1000 (FIG. 10) are also applicable in an analogous manner to the methods described above and below. For example, methods 700, 1300, 1600, 1900, 2100, 2300, 2600, 2900, and 3200 optionally include one or more of the features of the various methods described above with reference to method 1000.

[0325] According to some embodiments, FIG. 11 illustrates an exemplary functional block diagram of an electronic device 1100 configured in accordance with the principles of various described embodiments. According to some embodiments, the functional blocks of electronic device 1100 are configured to perform the techniques described above. The functional blocks of device 1100 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of various described examples. Those skilled in the art will understand that the functional blocks described in FIG. 11 may optionally be combined or separated into sub-blocks to implement the principles of various described examples. Thus, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.

[0326] 11 , electronic device 1100 includes a display unit 1102 configured to display a graphical user interface, optionally a touch-sensitive surface unit 1104 configured to receive contacts, and a processing unit 1106 coupled to display unit 1102 and optionally touch-sensitive surface unit 1104. In some embodiments, processing unit 1106 includes a display enabling unit 1108, a detecting unit 1110, a including unit 1112, and a determining unit 1114.

[0327] The processing unit 1106 is configured to enable display of a first representation of a first controllable external device located at the location (e.g., with the display enabling unit 1108), detect a first user input corresponding to a selection of the first controllable external device (e.g., with the detection unit 1110), and, after detecting the first user input, include data identifying the first controllable external device and a first state of the first controllable external device in a scene profile (e.g., with the including unit 1112). In some embodiments, the first representation of the controllable external device includes an indication of the current state of the controllable external device.

[0328] In some embodiments, the processing unit 1106 is configured to: enable display of a representation of the second controllable external device at the location (e.g., using the display enablement unit 1108); detect a second user input corresponding to a selection of the second controllable external device (e.g., using the detection unit 1110); determine whether the second user input satisfies a threshold criterion (e.g., using the determination unit 1114); enable display of an indication of a first state of the second controllable external device in response to detecting the second user input and according to a determination that the threshold criterion is met (e.g., using the display enablement unit 1108); detect a third user input corresponding to a selection of the first state of the second controllable external device (e.g., using the detection unit 1110); and after detecting the third user input, include data identifying the second controllable external device and the first state of the second controllable external device in the scene profile (e.g., using the including unit 1112).

[0329] In some embodiments, the processing unit 1106 is further configured to detect a fourth user input (e.g., with the detection unit 1110), and in response to detecting the fourth user input, enable display of a first user interface screen including a second representation of the controllable external device (e.g., with the display enablement unit 1108). Optionally, the first user interface screen includes options to perform at least one of removing data associated with the controllable external device from the scene profile, testing the scene profile, specifying the scene profile, and deleting the scene profile.

[0330] In some embodiments, the processing unit 1106 is further configured to enable (e.g., using the display enabling unit 1108) the display of a second user interface screen including a representation of a predefined scene profile including data regarding a predetermined state of a predetermined controllable electronic device at a location before the first representation of the controllable external device is displayed.

[0331] In some embodiments, the processing unit 1106 is further configured to detect (e.g., with the detection unit 1110) a fifth user input corresponding to a selection of a default scene profile while the second user interface screen is displayed, and in response to detecting the fifth user input, enable (e.g., with the display enablement unit 1108) the display of a third user interface screen including a plurality of representations of the predetermined controllable external devices of the location. In some embodiments, the plurality of representations of the predetermined controllable external devices of the location include an indication of a predetermined state for the predetermined controllable external devices.

[0332] In some embodiments, the predetermined controllable external device is determined based on an action previously performed by the electronic device with respect to the predetermined controllable external device. In some embodiments, the predetermined state of the predetermined controllable external device is determined based on an action previously taken with respect to the predetermined controllable external device associated with a user of the electronic device.

[0333] 1A-1B or 11. For example, displaying operations 1002, 1004, 1006, and 1014, detecting operations 1004, 1008, 1012, and 1014, including operations 1010 and 1014, and determining operation 1014 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 of event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of an affordance on the user interface. When a corresponding predefined event or sub-event is detected, the event recognizer 180 activates an event handler 190 associated with the detection of that event or sub-event. The event handler 190 optionally utilizes or invokes a data updater 176 or an object updater 177 to update the application internal state 192. In some embodiments, the event handler 190 accesses a corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A-1B.

[0334] 12A-12C show exemplary user interfaces for creating and / or configuring automation profiles for controllable external devices, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes in FIGS. 13 and 21.

[0335] FIG. 12A shows device 600 displaying user interface screen 1210-1 for defining an automation profile associated with a location. In some embodiments, user interface screen 1210-1 is displayed in response to selection of the affordance in FIG. 6Q labeled “New Automation.” User interface screen 1210-1 includes representations 1202-1 through 1202-4 of criteria that can be selected for an automation profile. An automation profile includes data representing at least one accessory, a specified state for each represented accessory, and automation criteria for controlling the at least one accessory. In some embodiments, an automation profile includes a scene profile (or a portion thereof) that is executed when the automation criteria of the automation profile are met. The automation criteria represented by items 1202-1 through 1202-4 may also be referred to as “trigger events,” which are events in response to which the automation profile will be implemented.

[0336] In some embodiments, the automation criteria are based at least in part on the position of the device 600 relative to the location. Examples of location-based criteria include, but are not limited to, whether the electronic device is less than a threshold distance from the first location (e.g., "I'm at home"), whether the electronic device is more than a threshold distance away from the first location (e.g., "I'm away from home"), whether the electronic device moves from more than a threshold distance away from the first location to less than a threshold distance away from the location (e.g., "I arrive home" 1202-2), and whether the electronic device moves from less than a threshold distance away from the first location to more than a threshold distance away from the location (e.g., "I leave home" 1202-1). In some embodiments, the threshold distance is the same in all directions from the location (e.g., a circular boundary). In some embodiments, the threshold distance varies depending on the direction from the location.

[0337] In some embodiments, the automation criteria are based at least in part on the time of day (e.g., "falls in time zone" 1202-3). Examples of time-based automation criteria include, but are not limited to, time zones (e.g., 10:30 AM) and relative times (e.g., sunrise or sunset).

[0338] In some embodiments, the automation criteria are based at least in part on the state of the accessory or on a condition or event detected by the accessory (e.g., by a sensor). Examples of criteria based on the state of the accessory include, but are not limited to, the accessory being controlled (e.g., "Accessory Being Controlled" 1202-4) and the accessory being triggered or changing state (e.g., an alarm, motion-sensing light, rain sensor, etc.). Examples of criteria based on a condition or event detected by the accessory include, but are not limited to, a weather event, a notification event (e.g., receiving a notification), the presence or absence of a user at a location, the absence of a predicted event, machine learning, or manual (user) input as described in U.S. Patent Application No. 14 / 725,912, filed May 29, 2015, entitled "Accessory Management Systems Using Environment Model," which is incorporated by reference above.

[0339] Returning to FIG. 12A , device 600 detects user input corresponding to selection of a first criterion. In the embodiment shown in FIG. 12A , the user input includes contact 1220-1 on a representation 1202-1 of the first criterion labeled "I leave home." An example of the "I leave home" criterion was described above. In response to detecting user input 1220-1, device 600 associates the first criterion with an automation profile by including the first criterion in the automation criteria of the automation profile. As described above, in addition to the automation criteria, the automation profile also includes data representing at least one specified state for at least one accessory located at a location.

[0340] FIG. 12A also shows user input 1220-2 on the affordance labeled "Control Accessory." In response to detecting user input 1220-2, device 600 displays one or more representations of the accessory at the location. In some embodiments, device 600 displays a user interface similar to user interface 910-3 described above with reference to FIG. 9C. In FIG. 9C, representations of the accessory at the location are displayed and can be selected for inclusion in a scene profile. A designated state of the accessory can also be selected for the scene profile. Similar user interfaces and techniques can be used to select the accessory and its corresponding designated state to add data indicating the designated state of the accessory to the automation profile. Similar to FIG. 9C, in some embodiments, the representation of the accessory includes an indication of the accessory's current state. Also, similar to the predefined scenes described above with reference to FIGS. 9A and 9F, in some embodiments, the representation of the accessory includes an indication of the accessory's proposed state. In some embodiments, the designated state is the accessory's current state. In some embodiments, the designated state is a state selected by the user using one of the techniques described above with reference to FIGS. 6B-6K.

[0341] In the embodiment shown in FIG. 12A , the user can also select to execute a scene profile as part of the automation. In response to user input 1220-3 corresponding to the selection of affordance 1204-1, device 600 displays a list of any scene profiles associated with the location, including data regarding the specified state of accessories associated with the location, as shown, for example, in FIG. 12B . In the embodiment shown in FIG. 12B , scene profiles are organized by room. In some embodiments, a scene profile is listed under a room if it includes accessories associated with that room. The user can select one or more of the listed scene profiles to add data indicating the specified state of the accessories in the scene profile to the automation profile.

[0342] In some embodiments, after adding data indicating the specified state of the accessory to the automation profile, the device 600 displays a summary of the automation profile based on the first accessory. An example summary of the automation profile is shown by element 634 in FIG. 6Q.

[0343] After the automation criteria and accessory data are established for the automation profile, device 600 determines whether the automation criteria are met and, pursuant to a determination that the automation criteria are met, transmits an instruction to set the first accessory to a specified state. In some embodiments, device 600 transmits the instruction directly to the accessory. In some embodiments, device 600 transmits the instruction to a controller, server, host, or other external device configured to control the accessory.

[0344] In some embodiments, device 600 automatically transmits instructions upon determining that the automation criteria have been met. For example, device 600 automatically transmits instructions when option 1206-1 labeled "Automatically" in FIG. 12A is selected. In some embodiments, pursuant to a determination that the automation criteria have been met, device 600 displays a notification or request identifying an automation profile and provides an option (e.g., an affordance) to confirm or decline implementation of the automation profile. For example, a request to confirm implementation of the automation profile is displayed when option 1206-2 labeled "Always Ask" in FIG. 12A is selected. FIG. 12C shows an example embodiment of notification 1208 including a confirmation affordance 1212 and a cancel affordance 1214. In accordance with user input corresponding to confirming implementation of the automation profile (e.g., a tap on affordance 1212), device 600 transmits instructions to implement the specified state of the automation profile. In response to a user input (e.g., a tap on affordance 1214) corresponding to non-confirmation or refusal to implement the automation profile, device 600 refrains from sending an instruction to implement the specified state of the automation profile or sends an instruction not to implement the specified state of the automation profile.

[0345] 13 is a flow diagram illustrating a method for managing controllable external devices using an electronic device, according to some embodiments. Method 1300 is performed on a device (e.g., 100, 300, 500, or 600) with a display and, optionally, a touch-sensitive surface. Some operations in method 1300 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0346] As described below, method 1300 provides an intuitive way to manage controllable external devices. This method reduces the cognitive burden on users to manage controllable external devices, thereby creating a more efficient human-machine interface. In the case of battery-operated computing devices, allowing users to manage controllable external devices faster and more efficiently conserves power and increases the time between battery charges.

[0347] In block 1302, the device detects a first user input (eg, 1220-1) corresponding to a selection of a first criterion (eg, 1202-1).

[0348] At block 1304, in response to detecting the first user input, the device associates the first criterion with an automation profile including at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location. Optionally, the automation criterion is based at least in part on a position of the electronic device relative to the location. Optionally, the automation criterion is based at least in part on a time of day. Optionally, the automation criterion is based at least in part on a state of the controllable external device at the location.

[0349] At block 1306, the device detects a second user input (e.g., 920-2) corresponding to a selection of a first controllable external device located at the location. Optionally, the selection of the first controllable external device includes a selection of a scene profile (e.g., FIG. 12B), where the scene profile includes data regarding specified states of multiple controllable external devices at the location, including the first controllable external device.

[0350] At block 1308, the device adds data indicating the specified state of the first controllable external device to the automation profile.

[0351] Optionally, at block 1310, the device displays a summary of the automation profile based on the first controllable external device (eg, FIG. 6Q).

[0352] In block 1312, the device determines whether the automation criteria have been met.

[0353] In block 1314, pursuant to a determination that the automation criteria have been met, the device transmits an instruction to set the first controllable external device to the specified state.

[0354] Optionally, at block 1316, the device detects a third user input corresponding to a selection of a second controllable external device located at the location, determines whether the third user input satisfies an input threshold criterion, displays an indication of the first state of the second controllable external device (e.g., 608 in FIG. 6D ) in accordance with a determination that the third user input satisfies the input threshold criterion, detects a fourth user input corresponding to a selection of the first state of the second controllable external device, and includes data identifying the second controllable external device and the first state of the second controllable external device in the automation profile in response to detecting the fourth user input.

[0355] It should be noted that the details of the process described above with respect to method 1300 (FIG. 13) are also applicable in an analogous manner to the methods described above and below. For example, methods 700, 1000, 1600, 1900, 2100, 2300, 2600, 2900, and 3200 optionally include one or more of the features of the various methods described above with reference to method 1300.

[0356] According to some embodiments, FIG. 14 illustrates an exemplary functional block diagram of an electronic device 1400 configured in accordance with the principles of various described embodiments. According to some embodiments, the functional blocks of the electronic device 1400 are configured to perform the techniques described above. The functional blocks of the device 1400 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various described examples. Those skilled in the art will understand that the functional blocks described in FIG. 14 may optionally be combined or separated into sub-blocks to implement the principles of the various described examples. Thus, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.

[0357] 14 , electronic device 1400 includes a display unit 1402 configured to display a graphical user interface, optionally a touch-sensitive surface unit 1404 configured to receive contacts, and a processing unit 1406 coupled to display unit 1402 and optionally touch-sensitive surface unit 1404. In some embodiments, processing unit 1406 includes a detecting unit 1408, an associating unit 1410, an adding unit 1412, a determining unit 1414, a causing unit 1416, a display enabling unit 1418, and a including unit 1420.

[0358] The processing unit 1406 is configured to: detect a first user input corresponding to a selection of a first criterion (e.g., using the detection unit 1408); in response to detecting the first user input, associate (e.g., using the associating unit 1410) the first criterion with an automation profile including automation criteria including at least the first criterion and data representing at least one specified state for at least one controllable external device located at the location; detect a second user input corresponding to a selection of a first controllable external device located at the location (e.g., using the detection unit 1408); add data indicating the specified state of the first controllable external device to the automation profile (e.g., using the adding unit 1412); determine whether the automation criterion is met (e.g., using the determining unit 1414); and, according to a determination that the automation criterion is met, cause (e.g., using the causing unit 1416) to transmit an instruction to set the first controllable external device to the specified state.

[0359] In some embodiments, selecting the first controllable external device includes selecting a scene profile, the scene profile including data regarding specified states of multiple controllable external devices in a location including the first controllable external device.

[0360] In some embodiments, the automation criteria are based at least in part on the position of the electronic device relative to the location. In some embodiments, the automation criteria are based at least in part on the time of day. In some embodiments, the automation criteria are based at least in part on the state of a controllable external device at the location.

[0361] In some embodiments, the processing unit is further configured to enable (e.g., using the display enabling unit 1418) display of a summary of the automation profile based on the first controllable external device after adding data indicating the specified state of the first controllable external device to the automation profile.

[0362] In some embodiments, the processing unit is further configured to: detect (e.g., using the detection unit 1408) a third user input corresponding to a selection of a second controllable external device located at the location; determine (e.g., using the determination unit 1414) whether the third user input satisfies a threshold criterion; enable (e.g., using the display enablement unit 1418) a display of an indication of the first state of the second controllable external device in accordance with a determination that the third user input satisfies the input threshold criterion; detect (e.g., using the detection unit 1408) a fourth user input corresponding to a selection of the first state of the second controllable external device; and include (e.g., using the inclusion unit 1420) data identifying the second controllable external device and the first state of the second controllable external device in the automation profile in response to detecting the fourth user input.

[0363] The operations described above with reference to Figure 13 are optionally performed by components shown in Figures 1A-1B or 14. For example, detect operations 1302, 1306, and 1316, associate operation 1304, add operation 1308, display operations 1310 and 1316, determine operations 1312 and 1316, send operation 1314, and include operation 1316 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 of event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers the event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of an affordance on a user interface. When a corresponding predefined event or sub-event is detected, event recognizer 180 activates event handler 190 associated with the detection of that event or sub-event. Event handler 190 optionally utilizes or invokes data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A-1B.

[0364] 15A-15B show example user interfaces for associating an accessory with a location, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the process in FIG. 16.

[0365] In some embodiments, an accessory is associated with a location (e.g., added to a location profile) using an image that identifies the accessory (e.g., a barcode, a quick response (QR) code, etc.) The image can be included, for example, on the accessory itself or on materials provided with or associated with the accessory (e.g., packaging, instructions, etc.).

[0366] 15A shows device 600 displaying user interface screen 1510-1 including instructions to capture an image of a pattern (e.g., "Scan the code"). Device 600 displays a live video feed from a camera associated with device 600 in area 1502 of user interface screen 1510-1 to help the user align the image with the camera's field of view. In some embodiments, user interface screen 1510-1 is displayed in response to selection of the affordance shown in FIG. 6M labeled "Add an Accessory."

[0367] Using the camera, device 600 captures an image of pattern 1504. Device 600 then determines that the pattern corresponds to an accessory. In some embodiments, instead of capturing the image itself, device 600 obtains the image from an external device. In some embodiments, device 600 compares the pattern in the image to accessory information stored in a data repository (e.g., local or remote memory, a database, etc.). In some embodiments, device 600 also receives identification data from the accessory (e.g., via Bluetooth communication) and compares it to the pattern in the image to determine whether the pattern corresponds to the accessory. In this way, device 600 verifies that it has correctly identified the accessory associated with the image.

[0368] In response to determining that the pattern corresponds to the accessory, device 600 associates the accessory with the location. In some embodiments, device 600 creates a profile associated with the accessory ("accessory profile") that includes data describing the accessory's operational state. In some embodiments, in response to determining that the pattern corresponds to the accessory, device 600 establishes a pairing relationship with the accessory that enables the electronic device to exchange information with the accessory (e.g., via far-field communication, Bluetooth protocol, the Internet, a local network, etc.) so that device 600 can monitor and / or control the accessory's state.

[0369] In some embodiments, device 600 displays a user interface for entering information about the accessory, including assigning the accessory to a room or designated area of ​​the location. FIG. 15B shows user interface screen 1510-2 displaying information about the accessory, a representation 1506 of the accessory, and options 1508-1 and 1508-2 for entering information about the accessory. User interface screen 1510-2 and / or representation 1506 can be automatically populated based on information obtained, for example, from capturing an image and identifying the accessory. In some embodiments, the information is obtained manually based on input from a user. In the embodiment shown in FIG. 15B, the representation of the accessory includes an icon, name, and room associated with the accessory. In some embodiments, the specified name, image, room, or other information is included in the accessory's data profile.

[0370] To associate an accessory with a room, user interface screen 1510-2 includes affordance 1508-2 labeled "Select a Room," which, when selected, allows the user to specify a room. In some embodiments, the device displays a list of rooms, a drop-down menu, a text entry field, or the like, for the user to select a room. In some embodiments, the list of rooms is displayed and arranged based on the position of device 600 relative to the location. For example, in some embodiments, device 600 estimates which room it is in based on its position and presents the estimated room as the first option. Device 600 detects user input representing a room selection (e.g., a tap on a room in a drop-down menu) and, in response to detecting the user input, associates the selected room with the accessory. In some embodiments, a similar technique is used to enter a name for the accessory. In some embodiments, device 600 updates user interface screen 1510-2 and / or representation 1506 to include the room information in the profile associated with the accessory.

[0371] User interface screen 1510-2 also includes icons 1512 having images that can be associated with the accessory upon selection of the corresponding icon. User interface screen 1510-2 also includes affordance 1514 for designating the accessory as a "favorite." In some embodiments, device 600 detects user input on affordance 1541 and, in response, displays a representation of the accessory on home screen 610-1, for example, under the heading of Favorite Accessories.

[0372] 16 is a flow diagram illustrating a method for managing controllable external devices using an electronic device, according to some embodiments. Method 1600 is performed on a device (e.g., 100, 300, 500, or 600) that includes a display, optionally a touch-sensitive surface, and optionally a camera. Some operations in method 1600 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0373] As described below, method 1600 provides an intuitive way to manage controllable external devices. This method reduces the cognitive burden on users to manage controllable external devices, thereby creating a more efficient human-machine interface. In the case of battery-operated computing devices, allowing users to manage controllable external devices faster and more efficiently conserves power and increases the time between battery charges.

[0374] Optionally, at block 1602, the device displays a first user interface screen (e.g., 1510-1) including instructions to capture an image of the pattern. Optionally, the first user interface screen is displayed in response to selection of a first affordance on a second user interface screen (e.g., FIG. 6M).

[0375] At block 1604, the device uses a camera to capture an image of the pattern (eg, 1504).

[0376] At block 1606, the device determines that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states.

[0377] In block 1608, in response to determining that the pattern corresponds to a controllable external device, the device associates the controllable external device with a location having at least one specified room.

[0378] Optionally, at block 1610, after determining that the pattern corresponds to a controllable external device, the device displays a representation (eg, 1506) of the controllable external device.

[0379] At block 1612, the device detects a first user input (eg, 1508-2) representing a selection of a room from at least one specified room.

[0380] At block 1614, in response to detecting the first user input, the device associates the selected room with a controllable external device.

[0381] Optionally, at block 1616, after determining that the pattern corresponds to a controllable external device, the device detects a second user input (e.g., selection of affordance 1514) and, in response to detecting the second user input, displays a representation of the controllable external device on a first user interface screen (e.g., 610-1).

[0382] It should be noted that the details of the process described above with respect to method 1600 (FIG. 16) are also applicable in an analogous manner to the methods described above and below. For example, methods 700, 1000, 1300, 1900, 2100, 2300, 2600, 2900, and 3200 optionally include one or more of the features of the various methods described above with reference to method 1600.

[0383] According to some embodiments, FIG. 17 illustrates an exemplary functional block diagram of an electronic device 1700 configured in accordance with the principles of various described embodiments. According to some embodiments, the functional blocks of electronic device 1700 are configured to perform the techniques described above. The functional blocks of device 1700 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of various described examples. Those skilled in the art will understand that the functional blocks described in FIG. 17 may optionally be combined or separated into sub-blocks to implement the principles of various described examples. Thus, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.

[0384] 17, electronic device 1700 includes a display unit 1702 configured to display a graphical user interface, optionally a touch-sensitive surface unit 1704 configured to receive contacts, a camera unit 1706 configured to capture images, and a processing unit 1708 coupled to display unit 1702, optionally touch-sensitive surface unit 1704, and optionally camera unit 1706. In some embodiments, processing unit 1708 includes a causing unit 1710, a determining unit 1712, an associating unit 1714, a detecting unit 1716, and a display enabling unit 1718.

[0385] The processing unit 1708 is configured to: cause capturing an image of the pattern using the camera unit (e.g., using the causing unit 1710); determine (e.g., using the determining unit 1712) that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; in response to determining that the pattern corresponds to the controllable external device, associate (e.g., using the associating unit 1714) the controllable external device with a location having at least one designated room; detect (e.g., using the detecting unit 1716) a first user input representing a selection of a room from the at least one designated room; and in response to detecting the first user input, associate (e.g., using the associating unit 1714) the selected room with the controllable external device.

[0386] In some embodiments, processing unit 1708 is further configured to enable (e.g., with display enablement unit 1718) display of a first user interface screen including instructions for capturing an image of the pattern before the image of the pattern is captured. In some embodiments, the first user interface screen is displayed in response to selection of a first affordance on the second user interface screen. In some embodiments, the processing unit is further configured to detect (e.g., with detection unit 1716) a second user input after determining that the pattern corresponds to a controllable external device, and in response to detecting the second user input, enable (e.g., with display enablement unit 1718) display of a representation of the controllable external device on the second user interface screen.

[0387] In some embodiments, the processing unit 1708 is further configured to enable display of a representation of the controllable external device (e.g., with the display enabling unit 1718) after determining that the pattern corresponds to the controllable external device.

[0388] 1A-1B or 17. For example, displaying operations 1602 and 1610, capturing operation 1604, determining operation 1606, associating operations 1608 and 1614, and detecting operations 1612 and 1616 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 of event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of an affordance on the user interface. When a corresponding predefined event or sub-event is detected, the event recognizer 180 activates an event handler 190 associated with the detection of that event or sub-event. The event handler 190 optionally utilizes or invokes a data updater 176 or an object updater 177 to update the application internal state 192. In some embodiments, the event handler 190 accesses a corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A-1B.

[0389] 18A-18C show example user interfaces for setting criteria for an automation profile associated with a location, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the process in FIG. 19.

[0390] 18A shows user interface screen 1810-1 displaying a map view 1802. The map view 1802 is substantially centered on a location associated with the automation profile. The map view 1802 also includes an indication 1804 of a location-based criterion, specifically, a circular threshold around the location's position. The location-based criterion is based at least in part on the position of the device 600 relative to the location. In some embodiments, the location-based criterion includes whether the device 600 is within a threshold distance of the location represented by the radius of the circle. In some embodiments, the threshold distance is the same in all directions from the location (e.g., a circular boundary). In some embodiments, the threshold distance varies depending on the direction from the location.

[0391] In some embodiments, the location-based criteria include whether device 600 is less than a threshold distance from the location. In some embodiments, the location-based criteria include whether device 600 is more than a threshold distance away from the location. In some embodiments, the location-based criteria include whether device 600 moves from more than a threshold distance away from the location to less than a threshold distance away from the location. This criterion, optionally, corresponds to the "I arrive home" criterion 1202-2 depicted in FIG. 12A. In some embodiments, the location-based criteria include whether device 600 moves from less than a threshold distance away from a first location to more than a threshold distance away from the location. This criterion, optionally, corresponds to the "I leave home" criterion 1202-1 depicted in FIG. 12A.

[0392] The device 600 detects user input corresponding to the specification of a location-based criterion (e.g., selection of criterion 1202-1 displayed in FIG. 12A ). In response to detecting user input corresponding to the specification of the criterion, the device 600 adds the location-based criterion to the automation criteria of an automation profile associated with the location.

[0393] User interface screen 1810-1 also includes additional selectable criteria or trigger conditions for the automation profile. User interface objects 1804-1 through 1804-4 represent time-based criteria, "all day," "daytime only," "nighttime only," and specified time windows (e.g., "from" and "to"), that determine when the automation profile can be enabled. User interface screen 1810-1 also includes options 1806-1 through 1806-7 for selecting which days, if any, the automation will repeat.

[0394] Device 600 also provides the option to further specify time-based criteria for selected objects 1804-1-1804-4. In some embodiments, in response to selection of information icon 1808 on user interface screen 1810-1, device 600 displays user interface screen 1810-2, shown in FIG. 18B, which provides additional time-based criteria for the automation profile, including relative start and end times (e.g., sunrise and sunset), a specific start time (e.g., time of day), a specific end time, a relative end time, a duration, and a time-based constraint (e.g., Mondays only). Device 600 also, optionally, provides the option to specify further time-based criteria for the selected relative start and end times. In some embodiments, in response to selection of information icon 1812 on user interface screen 1810-2, device 600 displays user interface screen 1810-3, shown in FIG. 18C, which provides the option to add or subtract an offset from a relative time (e.g., sunrise).

[0395] The device 600 detects user input corresponding to the specification of a time-based criterion (e.g., a tap on one or more of the user interface objects shown in Figures 18A-18C) and, in response, adds the selected time-based criterion to the automation criteria of the automation profile for controlling at least one affordance associated with the automation profile.

[0396] In some embodiments, the user interface and time-based criteria described with respect to Figures 18A-18C are provided during automation profile criteria and / or configuration (e.g., "I leave home" 1202-1 and "I arrive home" 1202-2) as described above with reference to Figures 12A-12B. Conversely, in some embodiments, the automation criteria are based in part on the state of the accessory at the location, as described with reference to event criterion 1202-4 "accessory is controlled" in Figure 12A. (For example, the automation criteria are based on whether the accessory is being controlled and / or triggered, or whether the accessory detects an event.)

[0397] Once the automated criteria are established, the location of device 600 is determined. In some embodiments, device 600 determines its location via, for example, GPS, WiFi, or other signals. In some embodiments, device 600 determines its location based on information obtained from an external device.

[0398] The device 600 determines whether an automation criterion is met based at least in part on the determined location. In accordance with a determination that the automation criterion is met, the device 600 transmits instructions to implement the automation profile, including setting at least one accessory to a specified state. In some embodiments, in accordance with a determination that the automation criterion is not met, the device 600 refrains from transmitting instructions to implement the automation profile.

[0399] 19 is a flow diagram illustrating a method for managing controllable external devices using an electronic device, according to some embodiments. Method 1900 is performed on a device (e.g., 100, 300, 500, or 600) with a display and, optionally, a touch-sensitive surface. Some operations in method 1900 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0400] As described below, method 1900 provides an intuitive way to manage controllable external devices. This method reduces the cognitive burden on a user to manage controllable external devices, thereby creating a more efficient human-machine interface. In the case of battery-operated computing devices, allowing a user to manage controllable external devices faster and more efficiently conserves power and increases the time between battery charges.

[0401] At block 1902, the device detects user input (e.g., 1220-1) corresponding to specification of location-based criteria (e.g., 1202-1) based at least in part on the location of the electronic device relative to a first location having at least one controllable external device. Optionally, the device displays a map view (e.g., 1802) having an indication (e.g., 1804) of the location-based criteria. Optionally, the location-based criteria include one or more of: whether the electronic device is less than a threshold distance from the first location; whether the electronic device is more than a threshold distance from the first location; whether the electronic device has moved from more than a threshold distance from the first location to less than a threshold distance from the location; and whether the electronic device has moved from less than a threshold distance from the first location to more than a threshold distance from the location.

[0402] In response to detecting user input corresponding to the specification of the criteria at block 1904, the device adds the location-based criteria to an automation profile associated with the location, the automation criteria including the location-based criteria for controlling the at least one controllable external device, and the automation criteria including the location-based criteria, and the data representing the specified state of the at least one controllable external device. Optionally, the automation criteria for controlling the at least one controllable external device are based in part on the state of a first controllable external device (e.g., 1202-4) of the at least one controllable external device.

[0403] In block 1906, the device determines the location of the electronic device.

[0404] At block 1908, the device determines whether automation criteria for controlling at least one controllable external device are met based at least in part on the determined location of the electronic device.

[0405] In block 1910, in accordance with a determination that the automation criteria for controlling the at least one controllable external device are met, the device transmits an instruction to set the at least one controllable external device to a specified state.

[0406] Optionally, at block 1912, in accordance with a determination that the automation criteria for controlling the at least one controllable external device are not met, the device refrains from sending an instruction to set the at least one controllable external device to a specified state.

[0407] Optionally, at block 1914, the device detects user input corresponding to the specification of a time-based criterion (e.g., 1202-3 and 1804-1 through 1804-4), and in response to detecting the user input, adds the time-based criterion to the automation criteria for controlling the at least one controllable external device.

[0408] It should be noted that the details of the process (FIG. 19) described above with respect to method 1900 are also applicable in an analogous manner to the methods described above and below. For example, methods 700, 1000, 1300, 1600, 2100, 2300, 2600, 2900, and 3200 optionally include one or more of the features of the various methods described above with reference to method 1900.

[0409] According to some embodiments, FIG. 20 illustrates an exemplary functional block diagram of an electronic device 2000 configured in accordance with the principles of various described embodiments. According to some embodiments, the functional blocks of the electronic device 2000 are configured to perform the techniques described above. The functional blocks of the device 2000 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various described examples. Those skilled in the art will understand that the functional blocks described in FIG. 20 may optionally be combined or separated into sub-blocks to implement the principles of the various described examples. Thus, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.

[0410] 20 , electronic device 2000 includes a display unit 2002 configured to display a graphical user interface, optionally a touch-sensitive surface unit 2004 configured to receive contacts, and a processing unit 2006 coupled to display unit 2002 and optionally touch-sensitive surface unit 2004. In some embodiments, processing unit 2006 includes a detecting unit 2008, an adding unit 2010, a determining unit 2012, a causing unit 2014, and a display enabling unit 2016.

[0411] The processing unit 2006 is configured to detect (e.g., using the detection unit 2008) a user input corresponding to specification of a location-based criterion based at least in part on a position of the electronic device relative to a first location having the at least one controllable external device; and, in response to detecting the user input corresponding to the specification of the criterion, add (e.g., using the adding unit 2010) the location-associated automation profile including automation criteria for controlling the at least one controllable external device and data representing a specified state of the at least one controllable external device; determine (e.g., using the determining unit 2012) a location of the electronic device; determine (e.g., using the determining unit 2012) whether the automation criterion for controlling the at least one controllable external device is satisfied based at least in part on the determined location of the electronic device; and, according to a determination that the automation criterion for controlling the at least one controllable external device is satisfied, cause (e.g., using the causing unit 2014) to transmit an instruction to set the at least one controllable external device to the specified state.

[0412] In some embodiments, the processing unit 2006 is further configured to refrain from sending an instruction to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are not satisfied.

[0413] In some embodiments, the processing unit 2006 is further configured to enable (eg, with the display enabling unit 2016) the display of a map view having an indication of the location-based criteria.

[0414] In some embodiments, the location-based criteria include whether the electronic device is less than a threshold distance from the first location. In some embodiments, the location-based criteria include whether the electronic device is more than a threshold distance from the first location. In some embodiments, the location-based criteria include whether the electronic device has moved from more than a threshold distance from the first location to less than a threshold distance from the location. In some embodiments, the location-based criteria include whether the electronic device has moved from less than a threshold distance from the first location to more than a threshold distance from the location.

[0415] In some embodiments, the processing unit 2006 is further configured to detect (e.g., using the detection unit 2008) a user input corresponding to the specification of the time-based criterion, and, in response to detecting the user input, to add (e.g., using the adding unit 2010) the time-based criterion to the automation criteria for controlling the at least one controllable external device.

[0416] In some embodiments, the automation criteria for controlling the at least one controllable external device is based in part on a state of a first controllable external device of the at least one controllable external device.

[0417] 1A-1B or 20. For example, detecting operations 1902 and 1914, adding operations 1904 and 1914, determining operations 1906 and 1908, sending operation 1910, and deferring operation 1912 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 of event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of an affordance on the user interface. When a corresponding predefined event or sub-event is detected, the event recognizer 180 activates an event handler 190 associated with the detection of that event or sub-event. The event handler 190 optionally utilizes or invokes a data updater 176 or an object updater 177 to update the application internal state 192. In some embodiments, the event handler 190 accesses a corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A-1B.

[0418] 21 is a flow diagram illustrating a method for managing controllable external devices using an electronic device, according to some embodiments. Method 2100 is performed on a device (e.g., 100, 300, 500, or 600) with a display and, optionally, a touch-sensitive surface. Some operations in method 2100 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0419] As described below, method 2100 provides an intuitive way to manage controllable external devices. This method reduces the cognitive burden on users to manage controllable external devices, thereby creating a more efficient human-machine interface. In the case of battery-operated computing devices, allowing users to manage controllable external devices faster and more efficiently conserves power and increases the time between battery charges.

[0420] At block 2102, the device determines whether criteria for controlling a state of at least one controllable external device and criteria of an automation profile (e.g., 1202-1 through 1202-4 and 1804-1 through 1804-4) including data representing a specified state for the at least one controllable external device are satisfied. Optionally, the criteria of the automation profile are based at least in part on one or more of the location of the electronic device relative to a location associated with the at least one controllable external device, the time, and the state of a first controllable external device of the at least one controllable external device (e.g., FIGS. 12A and 18A ).

[0421] In block 2104, following a determination that the criteria of the automation profile are met, the device displays a notification (e.g., 1208) including an indication identifying the automation profile and an indication confirming implementation of the automation profile (e.g., 1212 in FIG. 12C).

[0422] In block 2106, the device detects user input (e.g., selection of affordance 1212 or 1214).

[0423] In block 2108, in response to detecting user input, the device transmits instructions to implement the specified state of the automation profile in accordance with user input corresponding to confirmation of implementation of the automation profile (e.g., selection of affordance 1212), and transmits instructions to not implement the specified state of the automation profile in accordance with user input corresponding to non-confirmation of implementation of the automation profile (e.g., selection of affordance 1214).

[0424] It should be noted that the details of the process described above with respect to method 2100 (FIG. 21) are also applicable in an analogous manner to the methods described above and below. For example, methods 700, 1000, 1300, 1600, 1900, 2300, 2600, 2900, and 3200 optionally include one or more of the features of the various methods described above with reference to method 2100.

[0425] According to some embodiments, FIG. 22 illustrates an exemplary functional block diagram of an electronic device 2200 configured in accordance with the principles of the various described embodiments. According to some embodiments, the functional blocks of the electronic device 2200 are configured to perform the techniques described above. The functional blocks of the device 2200 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various described examples. Those skilled in the art will understand that the functional blocks described in FIG. 22 may optionally be combined or separated into sub-blocks to implement the principles of the various described examples. Thus, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.

[0426] 22 , electronic device 2200 includes a display unit 2202 configured to display a graphical user interface, optionally a touch-sensitive surface unit 2204 configured to receive contacts, and a processing unit 2206 coupled to display unit 2202 and optionally touch-sensitive surface unit 2204. In some embodiments, processing unit 2206 includes a determining unit 2208, a display enabling unit 2210, a detecting unit 2212, and a causing unit 2214.

[0427] The processing unit 2206 is configured to: determine (e.g., using the determining unit 2208) whether criteria of an automation profile including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device are met; enable (e.g., using the display enabling unit 2210) display of a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile according to a determination that the criteria of the automation profile are met; detect (e.g., using the detecting unit 2212); and, in response to detecting the user input, cause (e.g., using the causing unit 2214) transmission of an instruction to implement the specified state of the automation profile according to the user input corresponding to confirming implementation of the automation profile; and cause (e.g., using the causing unit 2214) transmission of an instruction not to implement the specified state of the automation profile according to the user input corresponding to not confirming implementation of the automation profile.

[0428] In some embodiments, the automation profile criteria are based at least in part on the location of the electronic device relative to a location associated with the at least one controllable external device. In some embodiments, the automation profile criteria are based at least in part on the time of day. In some embodiments, the automation profile criteria are based at least in part on the state of a first controllable external device of the at least one controllable external device.

[0429] 21 are optionally performed by components shown in FIGS. 1A-1B or 22. For example, determining operation 2102, displaying operation 2104, detecting operation 2106, and sending operation 2108 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 of event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers the event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation of an affordance on the user interface. When a corresponding predefined event or sub-event is detected, event recognizer 180 activates event handler 190 associated with detecting the event or sub-event. Event handler 190 optionally utilizes or calls data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in Figures 1A-1B.

[0430] 23 is a flow diagram illustrating a method for managing controllable external devices using an electronic device, according to some embodiments. Method 2300 is performed on a device (e.g., 100, 300, 500, or 600) with a display and, optionally, a touch-sensitive surface. Some operations in method 2300 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0431] As described below, method 2300 provides an intuitive way to manage controllable external devices. This method reduces the cognitive burden on a user to manage controllable external devices, thereby creating a more efficient human-machine interface. In the case of battery-operated computing devices, allowing a user to manage controllable external devices faster and more efficiently conserves power and increases the time between battery charges.

[0432] At block 2302, the device displays a representation (e.g., 620-1) of a controllable external device configured to operate in multiple states and in a first state of the multiple states. Optionally, the representation of the controllable external device includes an indication of the current state of the controllable external device. In some embodiments, the states of the multiple states are continuous (e.g., FIGS. 6J-6K). In some embodiments, the states of the multiple states are discrete (e.g., FIGS. 6D-6I). In some embodiments, the controllable external device is a light bulb with adjustable colors, and the multiple states include multiple colors (e.g., FIG. 6K).

[0433] In block 2304, the device detects a first user input (eg, 630-1) corresponding to a selection of a controllable external device.

[0434] At block 2306, the device determines whether the first user input meets the input criteria.

[0435] In block 2308, in accordance with a determination that the first user input does not satisfy the input criteria, the device sends an instruction to set the state of the controllable external device to a second state of the plurality of states (e.g., 620-1 in Figures 6B-6C).

[0436] At block 2310, in accordance with a determination that the first user input satisfies the input criteria, the device displays an affordance (e.g., 608) indicating a plurality of states of the controllable external device, and while displaying the affordance indicating the plurality of states of the controllable external device, detects a second user input (e.g., 630-2) on the affordance corresponding to selection of a third state of the plurality of states, and in response to detecting the second user input, transmits an instruction to set the state of the controllable external device to the third state.

[0437] Optionally, at block 2312, while displaying an affordance indicating multiple states of the controllable external device, the device detects a third user input corresponding to selecting a location on the display (e.g., 612) that does not correspond to the affordance, and stops displaying the affordance in response to detecting the third user input.

[0438] It should be noted that the details of the process described above with respect to method 2300 (FIG. 23) are also applicable in an analogous manner to the methods described above and below. For example, methods 700, 1000, 1300, 1600, 1900, 2100, 2600, 2900, and 3200 optionally include one or more of the features of the various methods described above with reference to method 2300.

[0439] According to some embodiments, FIG. 24 illustrates an exemplary functional block diagram of an electronic device 2400 configured in accordance with the principles of the various described embodiments. According to some embodiments, the functional blocks of the electronic device 2400 are configured to perform the techniques described above. The functional blocks of the device 2400 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various described examples. Those skilled in the art will understand that the functional blocks described in FIG. 24 may optionally be combined or separated into sub-blocks to implement the principles of the various described examples. Thus, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein.

[0440] 24 , electronic device 2400 includes a display unit 2402 configured to display a graphical user interface, optionally a touch-sensitive surface unit 2404 configured to receive contacts, and a processing unit 2406 coupled to display unit 2402 and optionally touch-sensitive surface unit 2404. In some embodiments, processing unit 2406 includes a display enabling unit 2408, a detecting unit 2410, a determining unit 2412, and a causing unit 2414.

[0441] The processing unit 2406 is configured to operate in a plurality of states and is configured to enable display of a representation of the controllab...

Claims

1. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, Displaying an indication of the location on the first user interface screen; displaying on the first user interface screen a representation of a controllable external device at the location; Detecting a first user input corresponding to a selection of the controllable external device; In response to detecting the first user input, displaying a user interface object indicating a plurality of possible states of the controllable external device; detecting a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object indicating the plurality of possible states of the controllable external device; In response to detecting the second user input, transmitting an instruction to set the controllable external device to the specified state; A method comprising:

2. receiving data indicating that a remote electronic device associated with the individual is present at the location; displaying, on the first user interface screen, a representation of the individual associated with the remote electronic device in response to receiving the data indicating the remote electronic device is present at the location; The method of claim 1 further comprising:

3. The method of claim 1 or 2, further comprising displaying an indication of the status of the location on the first user interface screen.

4. displaying on the first user interface screen a representation of a scene profile including data regarding specified states of a plurality of controllable external devices at the location; detecting a third user input corresponding to a selection of the scene profile; In response to detecting the third user input, displaying representations of the plurality of controllable external devices associated with the scene profile; and The method of claim 1 or 2, further comprising:

5. detecting a fourth user input while displaying the first user interface screen; In response to detecting the fourth user input, displaying an option to create an additional scene profile; and The method of claim 4 further comprising:

6. 3. The method of claim 1 or 2, further comprising displaying on the first user interface screen an image captured by a controllable external camera at the location and included in a live video feed from the controllable external camera.

7. detecting a fifth user input while displaying the first user interface screen; In response to detecting the fifth user input, displaying a representation of at least one specified room associated with the location; and detecting a sixth user input corresponding to a selection of a first designated room of the at least one designated room; In response to detecting the sixth user input, displaying a representation of at least one controllable external device associated with the first specified room; and The method of claim 1 or 2, further comprising:

8. detecting a seventh user input while displaying the first user interface screen; In response to detecting the seventh user input, displaying a representation of an automation profile including data representing criteria for controlling a state of at least one controllable external device at the location and a specified state for the at least one controllable external device, and / or an option to create the automation profile; The method of claim 1 or 2, further comprising:

9. detecting an eighth user input while displaying the first user interface screen; In response to detecting the eighth user input, displaying an option to view information associated with a different location and / or add an additional location; and The method of claim 1 or 2, further comprising:

10. detecting a ninth user input while displaying the first user interface screen; In response to detecting the ninth user input, displaying options to change the location profile information; and The method of claim 1 or 2, further comprising:

11. detecting a tenth user input while displaying the first user interface screen; In response to detecting the tenth user input, displaying an option to associate a second controllable external device with the location; and The method of claim 1 or 2, further comprising:

12. detecting an eleventh user input while displaying the first user interface screen; In response to detecting the eleventh user input, displaying representations of people associated with the location; and The method of claim 1 or 2, further comprising:

13. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising: the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs displaying an indication of a location on a first user interface screen; displaying on the first user interface screen a representation of a controllable external device at the location; Detecting a first user input corresponding to a selection of the controllable external device; In response to detecting the first user input, displaying a user interface object indicating a plurality of possible states of the controllable external device; detecting a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object indicating the plurality of possible states of the controllable external device; an electronic device including instructions for transmitting instructions to set the controllable external device to the specified state in response to detecting the second user input;

14. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: Displaying an indication of the location on the first user interface screen; displaying on the first user interface screen a representation of a controllable external device at the location; detecting a first user input corresponding to a selection of the controllable external device; In response to detecting the first user input, displaying a user interface object indicating a plurality of possible states of the controllable external device; detecting a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object indicating the plurality of possible states of the controllable external device; a non-transitory computer-readable storage medium that, in response to detecting the second user input, causes transmitting an instruction to set the controllable external device to the specified state;

15. The display and a touch-sensitive surface; and means for displaying an indication of the location on a first user interface screen; means for displaying on the first user interface screen a representation of a controllable external device at the location; means for detecting a first user input corresponding to a selection of the controllable external device; means for displaying a user interface object indicating a plurality of possible states of the controllable external device in response to detecting the first user input; means for detecting a second user input corresponding to a selection of a specified state of the controllable external device while displaying the user interface object indicating the plurality of possible states of the controllable external device; means for transmitting a command to set the controllable external device to the specified state in response to detecting the second user input; An electronic device comprising:

16. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

13. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 1 to 12.

17. 13. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 1 to 12.

18. The display and a touch-sensitive surface; and means for carrying out the method according to any one of claims 1 to 12; An electronic device comprising:

19. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; 1. An electronic device comprising: enabling the display of an indication of the location on the first user interface screen; enabling the display of representations of controllable external devices of the location on the first user interface screen; Detecting a first user input corresponding to a selection of the controllable external device; In response to detecting the first user input, enabling display of a user interface object indicating a plurality of possible states of the controllable external device; detecting a second user input corresponding to a selection of a specified state of the controllable external device while the user interface object indicating the plurality of possible states of the controllable external device is displayed; an electronic device configured to, in response to detecting the second user input, cause transmission of a command to set the controllable external device to the specified state.

20. The processing unit receiving data indicating that a remote electronic device associated with the individual is present at the location; enabling a display on the first user interface screen of a representation of the individual associated with the remote electronic device in response to receiving the data indicating the remote electronic device is present at the location; 20. The electronic device of claim 19, further configured to:

21. The processing unit 21. The electronic device of claim 19 or 20, further configured to enable the display of an indication of the status of the location on the first user interface screen.

22. The processing unit enabling display on the first user interface screen a representation of a scene profile including data regarding specified states of a plurality of controllable external devices at the location; detecting a third user input corresponding to a selection of the scene profile; In response to detecting the third user input, enabling display of representations of the plurality of controllable external devices associated with the scene profile.

21. The electronic device of claim 19 or 20, further configured to:

23. The processing unit detecting a fourth user input while the first user interface screen is displayed; enabling display of an option to create an additional scene profile in response to detecting the fourth user input; 23. The electronic device of claim 22, further configured to:

24. The processing unit enabling a display on the first user interface screen of an image captured by a controllable external camera at the location and included in a live video feed from the controllable external camera; 21. The electronic device of claim 19 or 20, further configured to:

25. The processing unit detecting a fifth user input while the first user interface screen is displayed; In response to detecting the fifth user input, enable display of a representation of at least one designated room associated with the location; detecting a sixth user input corresponding to a selection of a first designated room of the at least one designated room; In response to detecting the sixth user input, enabling a display of a representation of at least one controllable external device associated with the first designated room.

21. The electronic device of claim 19 or 20, further configured to:

26. The processing unit detecting a seventh user input while the first user interface screen is displayed; In response to detecting the seventh user input, enabling display of an automation profile including data representing criteria for controlling a state of at least one controllable external device at the location and a specified state for the at least one controllable external device, and / or an option to create the automation profile.

21. The electronic device of claim 19 or 20, further configured to:

27. The processing unit detecting an eighth user input while the first user interface screen is displayed; In response to detecting the eighth user input, enabling display of an option to view information associated with a different location and / or add an additional location.

21. The electronic device of claim 19 or 20, further configured to:

28. The processing unit detecting a ninth user input while the first user interface screen is displayed; In response to detecting the ninth user input, enabling display of an option to change the location profile information.

21. The electronic device of claim 19 or 20, further configured to:

29. The processing unit detecting a tenth user input while the first user interface screen is displayed; In response to detecting the tenth user input, enabling display of an option to associate a second controllable external device with the location.

21. The electronic device of claim 19 or 20, further configured to:

30. The processing unit detecting an eleventh user input while the first user interface screen is displayed; In response to detecting the eleventh user input, enabling a display of representations of people associated with the location.

21. The electronic device of claim 19 or 20, further configured to:

31. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, Displaying a first representation of a first controllable external device located at the location; Detecting a first user input corresponding to a selection of the first representation of the first controllable external device; adding data identifying the first controllable external device and a first state of the first controllable external device to a scene profile after detecting the first user input; A method comprising:

32. 32. The method of claim 31 , wherein the first representation of the controllable external device includes an indication of the current state of the controllable external device.

33. displaying a representation of a second controllable external device located at the location; and Detecting a second user input corresponding to a selection of the second controllable external device; determining whether the second user input meets a threshold criterion; In response to detecting the second user input and according to a determination that the threshold criteria is met, displaying an indication of a first state of the second controllable external device; detecting a third user input corresponding to a selection of the first state of the second controllable external device; after detecting the third user input, including data identifying the second controllable external device and the first state of the second controllable external device in the scene profile; 33. The method of claim 31 or 32, further comprising:

34. Detecting a fourth user input; In response to detecting the fourth user input, displaying a first user interface screen including a second representation of the first controllable external device; 33. The method of claim 31 or 32, further comprising:

35. 35. The method of claim 34, wherein the first user interface screen includes options to perform at least one of removing the data associated with the controllable external device from the scene profile, testing the scene profile, specifying the scene profile, and deleting the scene profile.

36. 33. The method of claim 31 or 32, further comprising, before displaying the first representation of the controllable external device, displaying a second user interface screen including a representation of a predefined scene profile including data regarding a predetermined state of a predetermined controllable electronic device at the location.

37. detecting a fifth user input corresponding to a selection of the default scene profile while displaying the second user interface screen; In response to detecting the fifth user input, displaying a third user interface screen including a plurality of representations of the predetermined controllable external devices at the location; and 37. The method of claim 36, further comprising:

38. 38. The method of claim 37, wherein the representations of the given controllable external device at the location include an indication of the given state for the given controllable external device.

39. 38. The method of claim 37, wherein the predetermined controllable external device is determined based on actions previously performed by the electronic device with respect to the predetermined controllable external device.

40. 38. The method of claim 37, wherein the predetermined state of the given controllable external device is determined based on an action associated with a user of the electronic device previously taken on the given controllable external device.

41. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising: the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: Displaying a first representation of a first controllable external device located at a location; Detecting a first user input corresponding to a selection of the first representation of the first controllable external device; adding data identifying the first controllable external device and a first state of the first controllable external device to a scene profile after detecting the first user input. An electronic device containing instructions.

42. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: displaying a first representation of a first controllable external device located at the location; detecting a first user input corresponding to a selection of the first representation of the first controllable external device; adding data identifying the first controllable external device and a first state of the first controllable external device to a scene profile after detecting the first user input. A non-transitory computer-readable storage medium.

43. The display and a touch-sensitive surface; and means for displaying a first representation of a first controllable external device located at a location; means for detecting a first user input corresponding to a selection of the first representation of the first controllable external device; means for adding data identifying the first controllable external device and a first state of the first controllable external device to a scene profile after detecting the first user input; An electronic device comprising:

44. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

41. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 31 to 40.

45. 41. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 31 to 40.

46. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 31 to 40; An electronic device comprising:

47. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; 1. An electronic device comprising: enabling display of a first representation of a first controllable external device located at the location; Detecting a first user input corresponding to a selection of the first representation of the first controllable external device; adding data identifying the first controllable external device and a first state of the first controllable external device to a scene profile after detecting the first user input. An electronic device configured to:

48. 48. The electronic device of claim 47, wherein the first representation of the controllable external device includes an indication of the current state of the controllable external device.

49. The processing unit enabling display of a representation of a second controllable external device located at said location; detecting a second user input corresponding to a selection of the second controllable external device; determining whether the second user input meets a threshold criterion; In response to detecting the second user input and in accordance with a determination that the threshold criteria are met, enabling a display of an indication of a first state of the second controllable external device; detecting a third user input corresponding to a selection of the first state of the second controllable external device; after detecting the third user input, including data identifying the second controllable external device and the first state of the second controllable external device in the scene profile.

49. An electronic device according to claim 47 or 48, further configured to:

50. The processing unit Detecting a fourth user input; In response to detecting the fourth user input, enabling display of a first user interface screen including a second representation of the first controllable external device.

49. An electronic device according to claim 47 or 48, further configured to:

51. 51. The electronic device of claim 50, wherein the first user interface screen includes options to perform at least one of removing the data associated with the controllable external device from the scene profile, testing the scene profile, specifying the scene profile, and deleting the scene profile.

52. The processing unit 49. The electronic device of claim 47 or 48, further configured to enable the display of a second user interface screen including a representation of a predefined scene profile including data relating to a predetermined state of a predetermined controllable electronic device at the location before the first representation of the controllable external device is displayed.

53. The processing unit detecting a fifth user input corresponding to a selection of the default scene profile while the second user interface screen is displayed; In response to detecting the fifth user input, enabling display of a third user interface screen including a plurality of representations of the predetermined controllable external devices at the location.

53. The electronic device of claim 52, further configured to:

54. 54. The electronic device of claim 53, wherein the representations of the given controllable external device at the location include an indication of the given state for the given controllable external device.

55. 54. The electronic device of claim 53, wherein the predetermined controllable external device is determined based on actions previously performed by the electronic device with respect to the predetermined controllable external device.

56. 54. The electronic device of claim 53, wherein the predetermined state of the given controllable external device is determined based on an action associated with a user of the electronic device previously taken with the given controllable external device.

57. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, detecting a first user input on a user interface screen corresponding to a selection of a first criterion; In response to detecting the first user input, associating the first criteria with an automation profile including automation criteria that includes at least the first criteria and data that represents at least one specified state for at least one controllable external device located at a location; detecting a second user input on the user interface screen; In response to detecting the second user input, displaying a representation of at least a first controllable external device located at the location; and detecting a third user input corresponding to a selection of the first controllable external device; adding data to the automation profile indicating a specified state of the first controllable external device; determining whether the automation criteria are met; and transmitting an instruction to set the first controllable external device to the specified state in accordance with a determination that the automation criteria has been met; A method comprising:

58. 58. The method of claim 57, wherein the selection of the first controllable external device includes selection of a scene profile, the scene profile including data regarding specified states of multiple controllable external devices at the location, including the first controllable external device.

59. 59. The method of claim 57 or 58, wherein the automation criteria is based at least in part on the position of the electronic device relative to the location.

60. 59. The method of claim 57 or 58, wherein the automation criteria is based at least in part on time of day.

61. 59. The method of claim 57 or 58, wherein the automation criteria is based at least in part on the state of a controllable external device at the location.

62. 59. The method of claim 57 or 58, further comprising displaying a summary of the automation profile after adding the data indicating the specified state of the first controllable external device to the automation profile.

63. detecting a third user input corresponding to a selection of a second controllable external device located at the location; and determining whether the third user input meets an input threshold criterion; displaying an indication of a first state of the second controllable external device in accordance with determining that the third user input satisfies the input threshold criterion; and detecting a fourth user input corresponding to a selection of the first state of the second controllable external device; In response to detecting the fourth user input, including data identifying the second controllable external device and the first state of the second controllable external device in the automation profile; 59. The method of claim 57 or 58, further comprising:

64. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising: the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: detecting a first user input on a user interface screen corresponding to a selection of a first criterion; In response to detecting the first user input, associate the first criteria with an automation profile including automation criteria that includes at least the first criteria and data that represents at least one specified state for at least one controllable external device located at a location; detecting a second user input on the user interface screen; In response to detecting the second user input, displaying a representation of at least a first controllable external device located at the location; detecting a third user input corresponding to a selection of the first controllable external device; adding data to the automation profile indicating a specified state of the first controllable external device; determining whether the automation criteria are met; and transmitting an instruction to set the first controllable external device to the specified state in response to a determination that the automation criteria has been met. An electronic device containing instructions.

65. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to detect a first user input on a user interface screen corresponding to a selection of a first criterion; In response to detecting the first user input, associating the first criteria with an automation profile including automation criteria that includes at least the first criteria and data that represents at least one specified state for at least one controllable external device located at a location; detecting a second user input on the user interface screen; In response to detecting the second user input, displaying a representation of at least a first controllable external device located at the location; detecting a third user input corresponding to a selection of the first controllable external device; adding data indicative of a specified state of the first controllable external device to the automation profile; determining whether the automated criteria are met; and transmitting, in response to a determination that the automation criteria has been met, an instruction to set the first controllable external device to the specified state. A non-transitory computer-readable storage medium.

66. The display and a touch-sensitive surface; and means for detecting a first user input on a user interface screen corresponding to a selection of a first criterion; In response to detecting the first user input, the first criterion is an automated criterion including at least the first criterion; and data representing at least one specified state for at least one controllable external device located at the location; a means for associating the method with an automation profile including the method; means for detecting a second user input on the user interface screen; means for displaying a representation of at least a first controllable external device located at the location in response to detecting the second user input; means for detecting a third user input corresponding to a selection of the first controllable external device; means for adding data indicative of a specified state of the first controllable external device to the automation profile; means for determining whether the automation criteria are met; means for transmitting an instruction to set the first controllable external device to the specified state in response to a determination that the automation criteria has been met; An electronic device comprising:

67. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

63. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 57 to 62.

68. 63. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 57 to 62.

69. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 57 to 62; An electronic device comprising:

70. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; 1. An electronic device comprising: detecting a first user input on a user interface screen corresponding to a selection of a first criterion; In response to detecting the first user input, the first criterion is an automated criterion including at least the first criterion; and Associating at least one specified state for at least one controllable external device located at the location with an automation profile including data representative of the state; detecting a second user input on the user interface screen; In response to detecting the second user input, displaying a representation of at least a first controllable external device located at the location; detecting a third user input corresponding to a selection of the first controllable external device located at the location; adding data to the automation profile indicating a specified state of the first controllable external device; determining whether the automation criteria are met; and causing transmission of an instruction to set the first controllable external device to the specified state in response to a determination that the automation criteria has been met. An electronic device configured to:

71. 71. The electronic device of claim 70, wherein the selection of the first controllable external device includes selection of a scene profile, the scene profile including data regarding specified states of multiple controllable external devices at the location, including the first controllable external device.

72. 72. The electronic device of claim 70 or 71, wherein the automation criteria is based at least in part on the position of the electronic device relative to the location.

73. 72. The electronic device of claim 70 or 71, wherein the automation criteria is based at least in part on the time of day.

74. 72. The electronic device of claim 70 or 71, wherein the automation criteria is based at least in part on the state of a controllable external device at the location.

75. The processing unit 72. The electronic device of claim 70 or 71, further configured to enable a display of a summary of the automation profile after adding the data indicative of the specified state of the first controllable external device to the automation profile.

76. The processing unit detecting a third user input corresponding to a selection of a second controllable external device located at the location; determining whether the third user input meets an input threshold criterion; enable display of an indication of a first state of the second controllable external device in accordance with determining that the third user input satisfies the input threshold criterion; detecting a fourth user input corresponding to a selection of the first state of the second controllable external device; and in response to detecting the fourth user input, including data identifying the second controllable external device and the first state of the second controllable external device in the automation profile.

72. The electronic device of claim 70 or 71, further configured to:

77. An electronic device comprising a display, a touch-sensitive surface, a camera, one or more processors, and a memory, capturing an image of the pattern using the camera; determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; In response to determining that the pattern corresponds to the controllable external device, associating the controllable external device with a location having at least one designated room; detecting a first user input representing a selection of a room from the at least one designated room; In response to detecting the first user input, associating the selected room with the controllable external device; A method comprising:

78. 78. The method of claim 77, further comprising, prior to capturing the image of the pattern, displaying a first user interface screen including instructions for capturing the image of the pattern.

79. 79. The method of claim 78, wherein the first user interface screen is displayed in response to a selection of a first affordance on a second user interface screen.

80. detecting a second user input after determining that the pattern corresponds to a controllable external device; and displaying a representation of the controllable external device on the second user interface screen in response to detecting the second user input; 80. The method of claim 79, further comprising:

81. 81. The method of any one of claims 77 to 80, further comprising, after determining that the pattern corresponds to a controllable external device, displaying a representation of the controllable external device.

82. The display and a touch-sensitive surface; and A camera and one or more processors; Memory and One or more programs; An electronic device comprising: the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: using the camera to capture an image of the pattern; determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; responsive to determining that the pattern corresponds to the controllable external device, associating the controllable external device with a location having at least one designated room; detecting a first user input representing a selection of a room from the at least one designated room; In response to detecting the first user input, associating the selected room with the controllable external device. An electronic device containing instructions.

83. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display, a touch-sensitive surface, and a camera, cause the device to: using the camera to capture an image of the pattern; determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; responsive to determining that the pattern corresponds to the controllable external device, causing the controllable external device to associate with a location having at least one designated room; detecting a first user input representing a selection of a room from the at least one designated room; In response to detecting the first user input, associating the selected room with the controllable external device. A non-transitory computer-readable storage medium.

84. The display and a touch-sensitive surface; and A camera and means for capturing an image of the pattern using said camera; means for determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; means for associating the controllable external device with a location having at least one designated room in response to determining that the pattern corresponds to the controllable external device; means for detecting a first user input representing a selection of a room from said at least one designated room; means for associating the selected room with the controllable external device in response to detecting the first user input; An electronic device comprising:

85. The display and a touch-sensitive surface; and A camera and one or more processors; Memory and One or more programs; An electronic device comprising:

82. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 77 to 81.

86. 82. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 77 to 81.

87. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 77 to 81; An electronic device comprising:

88. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a camera unit configured to capture an image; a processing unit coupled to the display unit and the touch-sensitive surface unit; 1. An electronic device comprising: causing capture of an image of the pattern using the camera; determining that the pattern corresponds to a controllable external device configured to operate in two or more states and remotely controllable between the two or more states; responsive to determining that the pattern corresponds to the controllable external device, associating the controllable external device with a location having at least one designated room; detecting a first user input representing a selection of a room from the at least one designated room; In response to detecting the first user input, associating the selected room with the controllable external device. An electronic device configured to:

89. The processing unit 90. The electronic device of claim 88, further configured to: before the image of the pattern is captured, enable display of a first user interface screen including instructions to capture the image of the pattern.

90. 90. The electronic device of claim 89, wherein the first user interface screen is displayed in response to selection of a first affordance on a second user interface screen.

91. The processing unit detecting a second user input after determining that the pattern corresponds to a controllable external device; In response to detecting the second user input, enabling display of a representation of the controllable external device on the second user interface screen.

91. The electronic device of claim 90, further configured to:

92. The processing unit 92. The electronic device of any one of claims 88 to 91, further configured to, after determining that the pattern corresponds to a controllable external device, enable display of a representation of the controllable external device.

93. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, Detecting user input corresponding to a specification of a location-based criterion based at least in part on the location of the electronic device relative to a first location having at least one controllable external device; In response to detecting the user input corresponding to the specification of the criteria, adding the location-based criteria to an automation profile associated with the location, the automation profile including automation criteria for controlling the at least one controllable external device including the location-based criteria and data representing a specified state of the at least one controllable external device; determining the location of the electronic device; determining whether the automation criteria for controlling the at least one controllable external device are satisfied based at least in part on the determined location of the electronic device; transmitting an instruction to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied; A method comprising:

94. 94. The method of claim 93, further comprising refraining from sending an instruction to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are not met.

95. 95. The method of claim 93 or 94, further comprising displaying a map view having an indication of the location-based criteria.

96. 95. The method of claim 93 or 94, wherein the location-based criteria includes whether the electronic device is less than a threshold distance from the first location.

97. 95. The method of claim 93 or 94, wherein the location-based criteria includes whether the electronic device is more than a threshold distance from the first location.

98. 95. The method of claim 93 or 94, wherein the location-based criteria includes whether the electronic device has moved from more than a threshold distance from the first location to less than the threshold distance from the location.

99. 95. The method of claim 93 or 94, wherein the location-based criteria includes whether the electronic device has moved from less than a threshold distance from the first location to more than the threshold distance from the location.

100. Detecting user input corresponding to a specification of a time-based criterion; adding the time-based criteria to the automation criteria for controlling the at least one controllable external device in response to detecting the user input; 95. The method of claim 93 or 94, further comprising:

101. 95. The method of claim 93 or 94, wherein the automation criteria for controlling the at least one controllable external device is based in part on a state of a first controllable external device of the at least one controllable external device.

102. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising: the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: Detecting user input corresponding to a specification of a location-based criterion based at least in part on the location of the electronic device relative to a first location having at least one controllable external device; In response to detecting the user input corresponding to the specification of the criteria, add the location-based criteria to an automation profile associated with the location, the automation profile including automation criteria for controlling the at least one controllable external device that includes the location-based criteria and data representing a specified state of the at least one controllable external device; determining the location of the electronic device; determining whether the automation criteria for controlling the at least one controllable external device are satisfied based at least in part on the determined location of the electronic device; transmitting an instruction to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied. An electronic device containing instructions.

103. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: detecting user input corresponding to a specification of a location-based criterion based at least in part on the location of the electronic device relative to a first location having at least one controllable external device; In response to detecting the user input corresponding to the specification of the criterion, adding the location-based criterion to an automation profile associated with the location, the automation profile including automation criteria for controlling the at least one controllable external device including the location-based criterion and data representing a specified state of the at least one controllable external device; determining the location of the electronic device; determining whether the automation criteria for controlling the at least one controllable external device are satisfied based at least in part on the determined location of the electronic device; transmitting an instruction to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied. A non-transitory computer-readable storage medium.

104. 1. An electronic device comprising: The display and a touch-sensitive surface; and means for detecting user input corresponding to a specification of a location-based criterion based at least in part on the location of the electronic device relative to a first location having at least one controllable external device; means for adding the location-based criterion to an automation profile associated with the location, the automation profile including automation criteria for controlling the at least one controllable external device that includes the location-based criterion and data representing a specified state of the at least one controllable external device, in response to detecting the user input corresponding to the criterion specification; means for determining the location of the electronic device; means for determining whether the automation criteria for controlling the at least one controllable external device are satisfied based at least in part on the determined location of the electronic device; means for transmitting an instruction to set the at least one controllable external device to the specified state in response to a determination that the automation criteria for controlling the at least one controllable external device are satisfied; An electronic device comprising:

105. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

102. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 93 to 101.

106. 102. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 93 to 101.

107. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 93 to 101; An electronic device comprising:

108. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; 1. An electronic device comprising: Detecting user input corresponding to a specification of a location-based criterion based at least in part on the location of the electronic device relative to a first location having at least one controllable external device; In response to detecting the user input corresponding to the specification of the criteria, add the location-based criteria to an automation profile associated with the location, the automation profile including automation criteria for controlling the at least one controllable external device that includes the location-based criteria and data representing a specified state of the at least one controllable external device; determining the location of the electronic device; determining whether the automation criteria for controlling the at least one controllable external device are satisfied based at least in part on the determined location of the electronic device; causing transmission of an instruction to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are satisfied; An electronic device configured to:

109. The processing unit 109. The electronic device of claim 108, further configured to refrain from sending instructions to set the at least one controllable external device to the specified state in accordance with a determination that the automation criteria for controlling the at least one controllable external device are not met.

110. The processing unit 110. An electronic device according to claim 108 or 109, further configured to enable display of a map view having an indication of the location-based criteria.

111. 110. The electronic device of claim 108 or 109, wherein the location-based criteria includes whether the electronic device is less than a threshold distance from the first location.

112. 110. The electronic device of claim 108 or 109, wherein the position-based criteria includes whether the electronic device is more than a threshold distance from the first location.

113. 110. The electronic device of claim 108 or 109, wherein the position-based criteria includes whether the electronic device has moved from more than a threshold distance from the first location to less than the threshold distance from the location.

114. 110. The electronic device of claim 108 or 109, wherein the position-based criteria includes whether the electronic device has moved from less than a threshold distance from the first location to more than the threshold distance from the location.

115. The processing unit Detecting user input corresponding to the specification of a time-based criterion; and adding the time-based criteria to the automation criteria for controlling the at least one controllable external device in response to detecting the user input.

110. The electronic device of claim 108 or 109, further configured to:

116. 110. The electronic device of claim 108 or 109, wherein the automation criteria for controlling the at least one controllable external device is based in part on a state of a first controllable external device of the at least one controllable external device.

117. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, determining whether criteria for controlling a state of at least one controllable external device and criteria of an automation profile including data representing a specified state for the at least one controllable external device are satisfied; pursuant to a determination that the criteria of the automation profile are satisfied, displaying a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; Detecting a user input; In response to detecting the user input, transmitting instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirmation of implementation of the automation profile; sending an instruction not to implement the specified state of the automation profile in accordance with the user input corresponding to a non-confirmation of implementation of the automation profile; A method comprising:

118. 118. The method of claim 117, wherein the criteria of the automation profile are based at least in part on the position of the electronic device relative to a location associated with the at least one controllable external device.

119. 119. The method of claim 117 or 118, wherein the criteria of the automation profile are based at least in part on time of day.

120. 119. The method of claim 117 or 118, wherein the criteria of the automation profile are based at least in part on a state of a first controllable external device of the at least one controllable external device.

121. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: determining whether criteria for controlling a state of at least one controllable external device and criteria of an automation profile including data representing a specified state for the at least one controllable external device are satisfied; pursuant to a determination that the criteria of the automation profile are satisfied, displaying a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; Detect user input, In response to detecting the user input, causing transmission of instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirmation of implementation of the automation profile; causing transmission of an instruction not to implement the specified state of the automation profile in accordance with the user input corresponding to a non-confirmation of implementation of the automation profile; An electronic device containing instructions.

122. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: determining whether criteria of an automation profile including criteria for controlling a state of at least one controllable external device and data representing a specified state for the at least one controllable external device are satisfied; responsive to a determination that the criteria of the automation profile are satisfied, displaying a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; Detecting user input, In response to detecting the user input, transmitting instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirmation of implementation of the automation profile; transmitting instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to non-confirmation of implementation of the automation profile; A non-transitory computer-readable storage medium.

123. The display and a touch-sensitive surface; and means for determining whether criteria for controlling a state of at least one controllable external device and an automation profile including data representing a specified state for said at least one controllable external device are satisfied; means for displaying a notification, pursuant to a determination that the criteria of the automation profile are satisfied, the notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; means for detecting user input; In response to detecting the user input, transmitting instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirmation of implementation of the automation profile; means for transmitting instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to non-confirmation of implementation of the automation profile; An electronic device comprising:

124. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

121. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 117 to 120.

125. 121. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 117 to 120.

126. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 117 to 120; An electronic device comprising:

127. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; An electronic device comprising: The processing unit determining whether criteria for controlling a state of at least one controllable external device and criteria of an automation profile including data representing a specified state for the at least one controllable external device are satisfied; pursuant to a determination that the criteria of the automation profile are satisfied, enable display of a notification including an indication identifying the automation profile and an indication confirming implementation of the automation profile; Detect user input, In response to detecting the user input, transmitting instructions to implement the specified state of the automation profile in accordance with the user input corresponding to confirmation of implementation of the automation profile; causing transmission of instructions not to implement the specified state of the automation profile in accordance with the user input corresponding to non-confirmation of implementation of the automation profile. An electronic device configured to:

128. 128. The electronic device of claim 127, wherein the criteria of the automation profile are based at least in part on the location of the electronic device relative to a location associated with the at least one controllable external device.

129. 129. The electronic device of claim 127 or 128, wherein the criteria of the automation profile are based at least in part on time of day.

130. 129. The electronic device of claim 127 or 128, wherein the criteria of the automation profile are based at least in part on a state of a first controllable external device of the at least one controllable external device.

131. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, displaying a representation of the controllable external device configured to operate in a plurality of states and in a first of the plurality of states; Detecting a first user input corresponding to a selection of the controllable external device; determining whether the first user input satisfies an input criterion; transmitting an instruction to set the state of the controllable external device to a second state of the plurality of states in accordance with a determination that the first user input does not satisfy the input criteria; upon determining that the first user input satisfies the input criteria; displaying affordances indicating the plurality of states of the controllable external device; While displaying the affordance indicating the plurality of states of the controllable external device, detecting a second user input on the affordance corresponding to selection of a third state of the plurality of states; In response to detecting the second user input, transmitting an instruction to set the state of the controllable external device to the third state; A method comprising:

132. 132. The method of claim 131, wherein the states of the plurality of states are consecutive.

133. 132. The method of claim 131, wherein the states of the plurality of states are discrete.

134. 134. The method of any one of claims 131 to 133, wherein the controllable external device is a color-adjustable light bulb and the multiple states include multiple colors.

135. 134. The method of any one of claims 131 to 133, wherein the representation of the controllable external device includes an indication of the current state of the controllable external device.

136. detecting a third user input corresponding to a selection of a location on the display that does not correspond to the affordance while displaying the affordance indicating the plurality of states of the controllable external device; and ceasing to display the affordance in response to detecting the third user input; and 134. The method of any one of claims 131 to 133, further comprising:

137. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: displaying a representation of the controllable external device configured to operate in a plurality of states and in a first of the plurality of states; Detecting a first user input corresponding to a selection of the controllable external device; determining whether the first user input satisfies an input criterion; transmitting instructions to set the state of the controllable external device to a second state of the plurality of states in accordance with a determination that the first user input does not satisfy the input criteria; displaying affordances indicating the plurality of states of the controllable external device in accordance with determining that the first user input satisfies the input criteria; while displaying the affordance indicating the plurality of states of the controllable external device, detecting a second user input on the affordance corresponding to selection of a third state of the plurality of states; In response to detecting the second user input, sending a command to set the state of the controllable external device to the third state. An electronic device containing instructions.

138. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: displaying a representation of the controllable external device configured to operate in a plurality of states and in a first of the plurality of states; detecting a first user input corresponding to a selection of the controllable external device; determining whether the first user input satisfies an input criterion; transmitting instructions to set the state of the controllable external device to a second state of the plurality of states in accordance with a determination that the first user input does not satisfy the input criteria; displaying affordances indicating the plurality of states of the controllable external device in accordance with determining that the first user input satisfies the input criteria; detecting a second user input on the affordance corresponding to selection of a third state of the plurality of states while displaying the affordance indicating the plurality of states of the controllable external device; transmitting an instruction to set the state of the controllable external device to the third state in response to detecting the second user input. A non-transitory computer-readable storage medium.

139. The display and a touch-sensitive surface; and means configured to operate in a plurality of states and displaying a representation of the controllable external device in a first of the plurality of states; means for detecting a first user input corresponding to a selection of the controllable external device; means for determining whether the first user input satisfies an input criterion; means for transmitting an instruction to set the state of the controllable external device to a second state of the plurality of states in accordance with a determination that the first user input does not satisfy the input criteria; displaying affordances indicating the plurality of states of the controllable external device in accordance with determining that the first user input satisfies the input criteria; while displaying the affordance indicating the plurality of states of the controllable external device, detecting a second user input on the affordance corresponding to selection of a third state of the plurality of states; means for transmitting a command to set the state of the controllable external device to the third state in response to detecting the second user input; An electronic device comprising:

140. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

137. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 131 to 136.

141. 137. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 131 to 136.

142. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 131 to 136; An electronic device comprising:

143. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; An electronic device comprising: The processing unit enabling display of a representation of the controllable external device configured to operate in a plurality of states and in a first of the plurality of states; Detecting a first user input corresponding to a selection of the controllable external device; determining whether the first user input satisfies an input criterion; triggering transmission of an instruction to set the state of the controllable external device to a second state of the plurality of states in accordance with a determination that the first user input does not satisfy the input criteria; enable display of affordances indicating the plurality of states of the controllable external device in accordance with determining that the first user input satisfies the input criteria; while displaying the affordance indicating the plurality of states of the controllable external device, detecting a second user input on the affordance corresponding to selection of a third state of the plurality of states; In response to detecting the second user input, causing transmission of a command to set the state of the controllable external device to the third state. An electronic device configured to:

144. 144. The electronic device of claim 143, wherein the states of the plurality of states are consecutive.

145. 144. The electronic device of claim 143, wherein the states of the plurality of states are discrete.

146. 146. The electronic device of any one of claims 143 to 145, wherein the controllable external device is a color-adjustable light bulb and the multiple states include multiple colors.

147. 146. The electronic device of any one of claims 143 to 145, wherein the representation of the controllable external device includes an indication of the current state of the controllable external device.

148. The processing unit detecting a third user input corresponding to a selection of a location on the display that does not correspond to the affordance while the affordance indicating the plurality of states of the controllable external device is being displayed; Stopping display of the affordance in response to detecting the third user input.

146. The electronic device of any one of claims 143 to 145, further configured to:

149. An electronic device comprising a display, one or more processors, and a memory, determining a first location of the electronic device within a location including at least one designated room; determining that the first location corresponds to a first room of the at least one designated room; In response to determining that the first location corresponds to the first room, displaying a representation of a first controllable external device associated with the first room; Detecting a second user input corresponding to a selection of an affordance to open an application while displaying the representation of the first controllable external device; In response to detecting the second user input, opening the application to control a plurality of controllable external devices associated with rooms other than the first room at the location; A method comprising:

150. determining a second position of the electronic device within the location after displaying a representation of the first controllable external device associated with the first room; and determining that the second location corresponds to a second room of the at least one designated room that is different from the first room; In response to determining that the second location corresponds to the second room, ceasing to display the representation of the first controllable external device associated with the first room; and displaying a representation of a second controllable external device associated with the second room; and 150. The method of claim 149, further comprising:

151. 151. The method of claim 149 or 150, wherein the representation of the first controllable external device indicates a current state of the first controllable external device.

152. Detecting a first user input; In response to detecting the first user input, transmitting an instruction to set the first controllable external device to a first state; 151. The method of claim 149 or 150, further comprising:

153. 151. A method according to claim 149 or 150, wherein the location of the electronic device is determined using GPS, Bluetooth and / or WiFi signals.

154. 151. The method of claim 149 or 150, wherein the second user input comprises a selection of an affordance.

155. 151. The method of claim 149 or 150, further comprising, based on the determination of the room, displaying a representation of a scene profile including data regarding specified states of a plurality of controllable external devices at the location, including at least one controllable external device associated with the determined room.

156. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: determining a first location of the electronic device within a location that includes at least one designated room; determining that the first location corresponds to a first room of the at least one designated room; In response to determining that the first location corresponds to the first room, displaying a representation of a first controllable external device associated with the first room; Detecting a second user input corresponding to a selection of an affordance to open an application while displaying the representation of the first controllable external device; In response to detecting the second user input, opening the application to control a plurality of controllable external devices associated with rooms other than the first room at the location. An electronic device containing instructions.

157. 1. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the device to: determining a first location of the electronic device within a location including at least one designated room; determining that the first location corresponds to a first room of the at least one designated room; In response to determining that the first location corresponds to the first room, displaying a representation of a first controllable external device associated with the first room; detecting a second user input corresponding to a selection of an affordance to open an application while displaying the representation of the first controllable external device; In response to detecting the second user input, opening the application for controlling a plurality of controllable external devices associated with rooms other than the first room at the location. A non-transitory computer-readable storage medium.

158. 1. An electronic device comprising: The display and means for determining a first location of the electronic device within a location including at least one designated room; means for determining that the first location corresponds to a first room of the at least one designated room; means for displaying a representation of a first controllable external device associated with the first room in response to determining that the first location corresponds to the first room; means for detecting a second user input corresponding to a selection of an affordance to open an application while displaying the representation of the first controllable external device; means for opening the application to control a plurality of controllable external devices associated with rooms other than the first room at the location in response to detecting the second user input; An electronic device comprising:

159. The display and one or more processors; Memory and One or more programs; An electronic device comprising:

156. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 149 to 155.

160. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the device to perform the method of any one of claims 149 to 155.

161. The display and means for carrying out the method of any one of claims 149 to 155; An electronic device comprising:

162. a display unit configured to display a graphical user interface; a processing unit coupled to the display unit and the touch-sensitive surface unit; An electronic device comprising: The processing unit determining a first location of the electronic device within a location that includes at least one designated room; determining that the first location corresponds to a first room of the at least one designated room; In response to determining that the first location corresponds to the first room, displaying a representation of a first controllable external device associated with the first room; Detecting a second user input corresponding to a selection of an affordance to open an application while displaying the representation of the first controllable external device; In response to detecting the second user input, opening the application to control a plurality of controllable external devices associated with rooms other than the first room at the location. An electronic device configured to:

163. The processing unit determining a second position of the electronic device within the location after a representation of the first controllable external device associated with the first room is displayed; determining that the second location corresponds to a second room of the at least one designated room that is different from the first room; In response to determining that the second location corresponds to the second room, ceasing the display of the representation of the first controllable external device associated with the first room; enabling display of a representation of a second controllable external device associated with the second room; 163. The electronic device of claim 162, further configured as follows:

164. 164. An electronic device according to claim 162 or 163, wherein the representation of the first controllable external device indicates a current state of the first controllable external device.

165. The processing unit Detecting a first user input; In response to detecting the first user input, causing transmission of a command to set the first controllable external device to a first state.

164. The electronic device of claim 162 or 163, further configured to:

166. 164. The electronic device of claim 162 or 163, wherein the location of the electronic device is determined using GPS, Bluetooth, and / or WiFi signals.

167. 164. The electronic device of claim 162 or 163, wherein the second user input comprises a selection of an affordance.

168. The processing unit 164. The electronic device of claim 162 or 163, further configured to enable, based on the determination of the room, the display of a representation of a scene profile including data regarding specified states of a plurality of controllable external devices at the location, including at least one controllable external device associated with the determined room.

169. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, Displaying a first affordance representing a first personal contact; Detecting a first user input corresponding to a selection of the first affordance representing the first personal contact; displaying a second affordance representing access parameters that determine access to a location profile associated with the location that includes information about controllable external devices of the location; and Detecting a second user input corresponding to a selection of the second affordance; granting an external device associated with the first personal contact access to the location profile based on the access parameters; sending data to the external device associated with the first personal contact, the data including an invitation to access the location profile; A method comprising:

170. 170. The method of claim 169, further comprising, after sending the invitation to the external device associated with the first personal contact, displaying an indication that the first personal contact has been invited to the location.

171. The invitation is sent before granting access to the location profile, and the method further comprises: receiving data indicating that the first personal contact has accepted the invitation; 171. The method of claim 169 or 170, wherein in response to receiving the data indicating that the first personal contact has accepted the invitation, access to the location profile is granted to the external device associated with the first personal contact.

172. 172. The method of claim 171, further comprising, in response to receiving the data indicating that the first personal contact has accepted the invitation, displaying an indication of the relative physical position of the external device associated with the first personal contact relative to the location.

173. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: displaying a first affordance representing a first personal contact; Detecting a first user input corresponding to a selection of the first affordance representing the first personal contact; displaying a second affordance representing access parameters that determine access to a location profile associated with the location that includes information about controllable external devices of the location; Detecting a second user input corresponding to a selection of the second affordance; granting an external device associated with the first personal contact access to the location profile based on the access parameters; sending data to the external device associated with the first personal contact, the data including an invitation to access the location profile; An electronic device containing instructions.

174. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: displaying a first affordance representing a first personal contact; detecting a first user input corresponding to a selection of the first affordance representing the first personal contact; displaying a second affordance representing access parameters that determine access to a location profile associated with the location that includes information about controllable external devices of the location; detecting a second user input corresponding to a selection of the second affordance; allowing an external device associated with the first personal contact to access the location profile based on the access parameters; causing the external device associated with the first personal contact to send data including an invitation to access the location profile; A non-transitory computer-readable storage medium.

175. The display and a touch-sensitive surface; and means for displaying a first affordance representing a first personal contact; means for detecting a first user input corresponding to a selection of the first affordance representing the first personal contact; means for displaying a second affordance representing access parameters that determine access to a location profile associated with the location that includes information about controllable external devices of the location; means for detecting a second user input corresponding to a selection of the second affordance; means for granting an external device associated with the first personal contact access to the location profile based on the access parameters; means for transmitting data to the external device associated with the first personal contact, the data including an invitation to access the location profile; An electronic device comprising:

176. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

173. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 169 to 172.

177. 173. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 169 to 172.

178. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 169 to 172; An electronic device comprising:

179. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; An electronic device comprising: The processing unit enabling display of a first affordance representing a first personal contact; Detecting a first user input corresponding to a selection of the first affordance representing the first personal contact; enabling display of a second affordance representing access parameters that determine access to a location profile associated with the location that includes information about controllable external devices of the location; Detecting a second user input corresponding to a selection of the second affordance; allowing an external device associated with the first personal contact to access the location profile based on the access parameters; causing transmission of data to the external device associated with the first personal contact, the data including an invitation to access the location profile; An electronic device configured to:

180. The processing unit 180. The electronic device of claim 179, further configured to enable display of an indication that the first personal contact has been invited to the location after the invitation is sent to the external device associated with the first personal contact.

181. the invitation is sent before granting access to the location profile, and the processing unit is further configured to receive data indicating that the first personal contact has accepted the invitation; 181. The electronic device of claim 179 or 180, wherein in response to receiving the data indicating that the first personal contact has accepted the invitation, access to the location profile is granted to the external device associated with the first personal contact.

182. The processing unit 182. The electronic device of claim 181, further configured to: enable display of an indication of the relative physical position of the external device associated with the first personal contact relative to the location in response to receiving the data indicating that the first personal contact has accepted the invitation.

183. An electronic device comprising a display, a touch-sensitive surface, one or more processors, and a memory, receiving data including information about a location and including information about a first controllable external device at the location; displaying an affordance corresponding to the first controllable external device in accordance with receiving the data; and Detecting a first user input corresponding to a selection of the affordance; In response to detecting the first user input, displaying a user interface screen including an indication of the location and a representation of the first controllable external device; A method comprising:

184. the affordance corresponding to the first controllable external device corresponds to a scene profile; the scene profile includes data regarding a specified state of the first controllable external device; 184. The method of claim 183, wherein the representation of the first controllable external device on the user interface screen includes a representation of the scene profile.

185. 185. The method of claim 183 or 184, further comprising receiving data representing an invitation to obtain the information regarding the location, the information regarding the location being received after accepting the invitation.

186. 185. The method of claim 183 or 184, wherein the user interface screen further includes an indication of the location and a representation of an individual associated with a remote electronic device currently at the location.

187. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: receiving data including information about a location and including information about a first controllable external device at the location; displaying an affordance corresponding to the first controllable external device in response to receiving the data; Detecting a first user input corresponding to a selection of the affordance; displaying a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input. An electronic device containing instructions.

188. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display and a touch-sensitive surface, cause the device to: receiving data including information about a location and including information about a first controllable external device at said location; displaying a corresponding affordance on the first controllable external device in response to receiving the data; detecting a first user input corresponding to a selection of the affordance; In response to detecting the first user input, displaying a user interface screen including an indication of the location and a representation of the first controllable external device. A non-transitory computer-readable storage medium.

189. The display and a touch-sensitive surface; and means for receiving data including information about a location and including information about a first controllable external device at said location; means for displaying an affordance corresponding to the first controllable external device in accordance with receiving the data; means for detecting a first user input corresponding to a selection of the affordance; means for displaying a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input; An electronic device comprising:

190. The display and a touch-sensitive surface; and one or more processors; Memory and One or more programs; An electronic device comprising:

187. An electronic device, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 183 to 186.

191. 187. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device comprising a display and a touch-sensitive surface, cause the device to perform the method of any one of claims 183 to 186.

192. The display and a touch-sensitive surface; and means for carrying out the method of any one of claims 183 to 186; An electronic device comprising:

193. a display unit configured to display a graphical user interface; a touch-sensitive surface unit configured to receive a touch; a processing unit coupled to the display unit and the touch-sensitive surface unit; An electronic device comprising: The processing unit receiving data including information about a location and including information about a first controllable external device at the location; displaying an affordance corresponding to the first controllable external device in response to receiving the data; Detecting a first user input corresponding to a selection of the affordance; displaying a user interface screen including an indication of the location and a representation of the first controllable external device in response to detecting the first user input. An electronic device configured to:

194. 200. The electronic device of claim 193, wherein the affordance corresponding to the first controllable external device corresponds to a scene profile, the scene profile including data regarding a specified state of the first controllable external device, and the representation of the first controllable external device on the user interface screen includes a representation of the scene profile.

195. The processing unit 195. An electronic device according to claim 193 or 194, further configured to receive data representing an invitation to obtain the information regarding the location, the information regarding the location being received after accepting the invitation.

196. 195. The electronic device of claim 193 or 194, wherein the user interface screen further includes an indication of the location and a representation of an individual associated with a remote electronic device currently at the location.