Saving video clips on a storage of limited size based on priority

Methods and systems are described for storing video content collected by a home automation system. According to at least one embodiment, an apparatus for accessing video content collected by a home automation system includes a processor, a memory in electronic communication with the processor, and instructions stored in the memory which are executable by a processor to receive video content associated with an event, determine a priority level of the video content based on at least one predetermined criteria, and store the video content for a period of time based on the priority level.

BACKGROUND

Advancements in media delivery systems and media-related technologies continue to increase at a rapid pace. Increasing demand for media has influenced the advances made to media-related technologies. Computer systems have increasingly become an integral part of the media-related technologies. Computer systems may be used to carry out several media-related functions. The wide-spread access to media has been accelerated by the increased use of computer networks, including the Internet and cloud networking.

Many homes and businesses use one or more computer networks to generate, deliver, and receive data and information between the various computers connected to computer networks. Users of computer technologies continue to demand increased access to information and an increase in the efficiency of these technologies. Improving the efficiency of computer technologies is desirable to those who use and rely on computers.

With the wide-spread use of computers and mobile devices has come an increased presence of home automation and security products. Advancements in mobile devices allow users to monitor and/or control an aspect of a home or business. As home automation and security products expand to encompass other systems and functionality in the home, challenges exist in capturing and storing information about events being monitored by the home automation and security products.

SUMMARY

Methods and systems are described for storing video content collected by a home automation system. According to at least one embodiment, an apparatus for storing video content collected by a home automation system includes a processor, a memory in electronic communication with the processor, and instructions stored in the memory which are executable by a processor to receive video content associated with an event, determine a priority level of the video content based on at least one predetermined criteria, and store the video content for a period of time based on the priority level.

In one example, the instructions may be executable by the processor to store the video content in one of cloud storage and local storage. The instructions may be executable by the processor to identify the event based on at least one criteria, and collect video for a predetermined amount of time prior to and after the event is identified. The instructions may be executable by the processor to delete the video content at an end of the period of time. The period of time may range from less than 24 hours to permanent storage. The instructions may be executable by the processor to determine a storage location for the video content based at least in part on the priority level assigned to the video content. The instructions may be executable by the processor to permit a user to manually adjust the priority level before deleting the video content. The instructions may be executable by the processor to correlate the video content with other video content to confirm accuracy of determined priority level.

Another embodiment is directed to a computer-program product for storing video content collected by a home automation system. The computer-program product includes a non-transitory computer-readable medium storing instructions executable by a processor to receive video content, determine a priority level of the video content, associate the priority level with the video content, store the video content, and delete the video content after a predetermined time period based on the priority level.

In one example, receiving the video content may include receiving video content from a video camera. Determining a priority level of the video content may include determining whether the video content meets predetermined criteria. Storing the video content may include storing to one of a plurality of storage locations based on the priority level. Each storage location may have a different time period associated therewith for deleting the video content. The predetermined time period may include at least two different time periods.

A further embodiment relates to a computer-implemented method for storing video content collected by a home automation system. The method includes receiving video content associated with an event, the video content having an assigned priority level, storing the video content, and deleting the stored video content based on the priority level.

In one example, storing the video content may include storing in different locations based on the priority level. The method may include automatically assigning the priority level to the video content based on predetermined criteria. The method may include identifying an event, and creating a video clip of recorded video associated with the event, wherein the video content includes the video clip. Receiving video content may include receiving video content at a control panel of the home automation system. The event may include at least one of sensing motion, opening a barrier into a building structure, operating lighting, breaking glass, operating a garage door, and operating a home appliance.

DETAILED DESCRIPTION

The systems and methods described herein relate to home automation and home security, and related security systems and automation for use in commercial and business settings. More specifically, the systems and methods described herein relate to storing video content collected by a home automation system. As used herein, the phrase “home automation system” may refer to a system that includes automation features alone, security features alone, a combination of automation and security features, or a combination of automation, security and other features. While the phrase “home automation system” is used throughout to describe a system or components of a system or environment in which aspects of the present disclosure are described, such an automation system and its related features (whether automation and/or security features) may be generally applicable to other properties such as businesses and commercial properties as well as systems that are used in indoor and outdoor settings.

In many home automation systems, it is typical for video content collected by one or more cameras to be stored. The video content may be stored locally or remotely. Local storage may include storage in memory or a database of the home automation system at a location on the property being monitored by the home automation system. The local storage may be included as part of, for example, a camera device, control panel, desktop computer, or other electronic device on the premises of the property. Local storage may also include control panels or other electronic devices in close proximity to the property being monitored by the home automation system (e.g., control panels at homes in the same neighborhood or within a local network of home automation systems). A remote storage may include, for example, cloud storage, a control station, or a backend support system (e.g., server).

Storing video content may have limitations related to data transmission speeds and undesirable bandwidth occupation during transmission. Furthermore, the stored video content be difficult to access and/or may pose challenges related to finding specific information (e.g., a video clip associated with a particular event) that is included in the video data.

One aspect of the present disclosure is directed to systems and methods for reducing the total amount of video data (i.e., video content) for a home automation system. Another aspect of the present disclosure is directed to systems and methods for deleting and/or erasing stored video content based at least in part on the content of the video itself. Another aspect of the present disclosure relates to systems and methods for determining what video content should be stored based at least in part on certain rules or criteria related to the video content (e.g., an event that is captured at least in part by the video content). In general, the present disclosure is directed to systems and methods for saving important video footage (e.g., video clips) on a storage of limited size and/or minimizing the amount of video content to be stored while preserving important video content.

In at least some home automation systems, one or more video cameras may be continuously recording a viewable area of the video camera. The recorded video content may be stored, in part or in its entirety, locally or remotely. As noted above, storage of video content requires significant storage space. Furthermore, storing all recorded video footage poses challenges of finding relevant information in the video content among the vast amounts of non-relevant content. One option for addressing these challenges is to store only portions of a recorded video, such as only portions associated with an event. The event may include, for example, an unauthorized opening of a barrier to a house (e.g., a door or window). The home automation system may identify that portion of the recorded video that extends, for example, five seconds before and five seconds after the event, and store only that limited video content (e.g., video clip).

Furthermore, the home automation system may assign a priority indicator to the video content. The priority indicator may be stored along with the video content. In one example, the video content may be assigned a priority indicator as a numerical number between 1 and 4, wherein a priority indicator of 1 is of least importance and a priority indicator of 4 is the most important. Each priority indicator may have assigned thereto a rule, criteria, or condition, which assists in automated handling of the video content (e.g., conditions for storing and/or later erasing the video content).

In one example, a priority indicator of 1 provides for storage of the video content in a general sector of a data storage device and will automatically be deleted after 24 hours, or will be automatically deleted based on the storage capacity of the data storage device (i.e., automatic deletion when a capacity and/or quota of the data storage device is reached regardless of how long the video content has been stored at that location). A priority indicator of 3 may also be stored in the general sector of the data storage device and be automatically erased after one month, or after a different storage capacity of the data storage device is reached. A priority indicator of 4 may be stored in a separate sector of the data storage device and be permanently saved (i.e., saved until manually deleted by a user).

The assignment of priority indicators to video content may be performed automatically or manually. In the example of automatic assignment of a priority indicator, the priority indicator may be assigned based on the detected event. The event may include, for example, opening of a building barrier, operation of an appliance, operation of lighting, operation of HVAC, motion detection, or any other function or sensed activity. The time of day or day of week an event occurs may influence the assigned priority indicator. For example, an event of opening a front door during the hours of 3:00 to 4:00 p.m. on a weekday may be assigned a low priority indicator because it is known that such an event is typically associated with a child returning home from school and is authorized. However, an event of opening of the same door between the hours of 12:00 a.m. and 4:00 a.m. may be assigned a high priority indicator because such an event is typically unauthorized and may be associated with a crime.

Manual assignment of priority indicators may be performed at a later time after one or more video contents associated with particular events have been collected and made available for review by an operator. The operator may review the video content and assign priority indicators based on the video content of each clip. The operator may also manually store the video content at particular locations on one or more data storage devices, wherein each storage location may have associated therewith an automatic time period established for erasing the video content. Manually storing the video content in this way may be used in place of or in addition to assigning a priority indicator to the video content.

FIG. 1is a block diagram illustrating one embodiment of an environment100in which the present systems and methods may be implement. In some embodiments, the systems and methods described herein may be performed, at least in part, using a controller105. Controller105may be in communication with a video storage115via a network110. Controller105may include a video storage module120, or video storage module120may be operated at least in part using controller105.

Controller105may include, for example, a processor, logic, or other functionality to assist in operating video storage module120. Although controller105and video storage115are shown as separate devices in communication with each other via network110, other embodiments may provide controller105and video storage115integrated into a single device that is consolidated at a single location.

Video storage module120may receive video content. In at least some arrangements, the video content includes video associated with one or more events. The events may be determined, at least in part, based on sensor feedback from one or more sensors of a home automation system. The home automation system may be part of or embodied in environment100.

Video storage module120may operate to provide storage of the video content on video storage115. Video storage115may include one or a plurality of storage locations for the video content. The video content may be stored at a location in video storage115based at least in part on one or more events or other data associated with the video content. Video storage115may include local storage, remote storage, or a combination of local and remote storage.

Video storage module120may assign a priority indicator or otherwise rate or rank the video content based at least in part on the type of event captured in the video content and/or any number of rules or criteria which help classify a level of importance for any given event. Video storage module120may store the video content on video storage115based at least in part on the priority indicator assigned to the video content.

The video content may be stored for a period of time that is based at least in part on the assigned priority indicator or the location wherein the video content is stored on video storage115. For example, lower priority video content may be automatically erased or deleted within a short period of time (e.g., one hour, one day etc.). Higher priority video content may be stored for longer periods of time (e.g., two days, one week, one month, etc.), or may be prevented from being deleted (e.g., permanent storage). As will be described in further detail below, video storage115may be partitioned into different portions or sectors with preset storage time limits that may have stored therein video content with certain priority indicators.

Additionally, or alternatively, the video content may be stored on video storage115for as long as there is storage space available. Once the storage space on video storage115has reached capacity (deemed full under any criteria) or a quota amount, at least some of the video content stored thereon may be automatically deleted. The order in which video content is deleted may be based on a “first-in-first-out” basis, wherein the oldest stored video content is deleted in successive order. Additionally, or alternatively, a process may be employed in which lower priority video content is first deleted upon reaching the storage limit/quota in order to bring the storage system under the quota/storage limit.

FIG. 2shows another environment200that may include the components of environment100described above and may further include a device205and a camera210. In some embodiments, the systems and methods described herein may be performed, at least in part, using device205. Camera210may be in communication with device205and video storage115via network110. Device205may include, for example, a control panel of a home automation system. In other examples, device205may include other types of electronic devices such as, for example, a desktop computer, laptop computer, tablet computer, or handheld mobile device such as a smartphone.

Camera210may provide recorded video. The recorded video may be formatted as a video clip or video content associated with an event. In other examples, the recorded video may be a continuous, ongoing video recording, and video storage module120may operate to divide the recorded video footage into video clips/content associated with various events. The video content associated with an event may then be stored on video storage115.

Network110may provide communication between device205, video storage115, and camera210. Network110may include local area networks (LAN), wide area networks (WAN), virtual private networks (VPN), wireless networks (using 802.11, for example), and/or cellular networks (using 3G and/or LTE, for example), etc. In some embodiments, network110may include the Internet.

Camera210may include a single camera or a plurality of cameras. At least some of the cameras210may be connected in communication with device205directly or via network110. A plurality of video clips and/or video content associated with a single event may be provided from a plurality of cameras210. In one example, one camera has a viewing area that captures a door to a commercial freezer of a restaurant, another camera210has a viewing area of a cooking area of the restaurant, and a further camera210has a viewing area of a parking lot of a restaurant. Every time the event of the commercial freezer door being opened occurs, video content from each of the three cameras210(e.g., video content that covers one minute before and five minutes after the door opened) is delivered to video storage module120. This video content may be assigned a medium or low priority indicator and stored at a location for later viewing by the store manager. The store manager may later view the video content to confirm whether a worker of the restaurant, after accessing the commercial freezer, takes the food to the cooking area for cooking or takes the food outside to his car (e.g., indicating theft of the food). If the store manager believes the video content shows that theft has occurred, the video content may be manually saved at a higher priority level in video storage115so that the video content is not inadvertently and/or automatically erased because of its earlier assigned low priority indicator.

The process of assigning and/or changing a priority indicator may occur automatically based on a corroboration of multiple events occurring within a given time or according to a given sequence. In the above example, if the commercial freezer door sensor indicates the freezer door has been opened, followed by opening of the restaurant side door and detected motion in the parking lot (in that order) without an intervening detected motion in the cooking area, the video content from the three cameras may be assigned a higher priority indicator as compared to priority indicators used for other sequences of events which may occur. In some embodiments, the video content from one camera may be used to validate a priority indicator assigned to video content from another camera.

Referring now toFIG. 3, in some embodiments, environment300may include at least some of the components of environments100,200described above, and may further include a device205-a, a camera210-a, and a cloud storage305. Camera210-amay include controller105and video storage module120. Device205-amay communicate with camera210-adirectly or via network110. Cloud storage305may be available for storage of at least portions of the video content via communication through network110.

Camera210-amay provide video content to video storage module120in the form of, for example, continuously recorded video footage or video clips associated with certain events. Video storage module120may operate to assign a storage location for the video content (e.g., video storage115and/or cloud storage305). Video storage module120may also assign a priority indicator to the video content as described above. In at least some examples, the video content is routed through device205to video storage115and/or cloud storage305.

Additionally, or alternatively, a plurality of cameras210-a, each potentially having a controller105and video storage module120, may be included in environment300. Each of the cameras210-amay separately and individually store video content on video storage115and/or cloud storage305. In other examples, each of the cameras210-ainclude video storage module120, which routes the video content through device205-aas part of storing the video content.

Video storage115may include or embody cloud storage305. In other examples, video storage115may be a different type of video storage and/or different storage location for storing various types of video content and/or video content of a certain priority level. Cloud storage305may store other types of video content and/or video content of a particular priority level. Both video storage115and cloud storage305may be considered “remote” storage that is located either physically away from the property, building or premises that is being monitored by the home automation system, and/or at a location that is remote from a local network (e.g., neighborhood) associated with the home automation system. In other examples, at least video storage115is considered “local” storage and is located at the building, premises or property being monitored by the home automation system, or in a local network or neighborhood within which the home automation system operates. In one example, video storage115is associated with camera210-a, and may be embodied within the same housing as camera210-a, controller105, and/or other components associated with camera210-a. In still further examples, video storage115may be integrated into device205-aor other components of a home automation system.

FIG. 4shows another environment400that may include at least some of the components of environments100,200,300described above and may further include a first video storage115-aassociated with a first device205-a, a second video storage115-bassociated with a second device205-b, and a third video storage115-cassociated with a third device205-c. Environment400may also include a mobile device405having a video retrieval module410.

Each of the first, second, and third devices205includes a video storage115. Video storage module120, which receives video content from at least camera210, may assign storage of the video content to any one of the video storages115of devices205. Each of video storages115may be part of or assigned to, for example, one or more control panels for a single home automation system. In other examples, each of the devices205and its associated video storage may be part of or associated with separate home automation systems (i.e., home automation systems within a local network).

Video storage115may be a segment or portion of a database or other data storage that is allocated exclusively for storing video content. Each of the video storages115may be allocated for storing video content of a certain priority indicator. In one example, the first video storage115-amay store highest priority video content, with second video storage115-bstoring medium priority video content, and third video storage115-cstoring lower priority video content. Video content of any priority level may be stored in cloud storage305. In another example, all video content is directed to first video storage115-auntil first video storage115-ais filled, followed by storing video content on second video storage115-buntil filled, and followed by storage on third video storage115-cuntil filled. Cloud storage305may be used for any purpose, such as storing video content after any one or all of the first, second and third video storages115are filled. This and many other arrangements are possible for storing video content having any priority indicator.

Mobile device405may be used to access at least some of the stored video content. Video retrieval module410may operate to access the stored video content on any one of the first, second and third video storages115and cloud storage305. Mobile device405may include one or more processors, one or more memory devices, and/or a storage device. Although mobile device405is envisioned as a handheld computing device, such as a smartphone, other types of mobile devices405may be possible including, for example, personal computing devices, tablet computers, laptop computers, etc.

Mobile device405may be used to retrieve and view any desired video content based on, for example, priority indicator, event, location, or any other criteria for searching and/or selecting among various video content. The video content may include metadata that identifies various aspects of the video content (e.g., priority indicator, event, time of day, location, etc.). The metadata may be stored at the same location as the video content itself, or may be stored at a separate location (e.g., at cloud storage305) for easier access by mobile device405. Once the metadata is retrieved by mobile device405, the video retrieval module410may reach out to any one of the video storages115and cloud storage305to obtain the desired video content. In at least some examples, the video content may be broken into fragments or segments that are stored at various locations such as any one of the video storages115and cloud storage305. Video retrieval module410may retrieve the fragments or segments of the video content and assimilate the video content before displaying the video content to the user on mobile device405. Video retrieval modules having similar functionality may be included on, for example, first device205-a, camera210, or another device associated with the home automation system that is located locally or remotely relative to a storage location of the video content and/or the location of video storage module120.

Referring now toFIG. 5, in some embodiments, an environment500may include the components of any one of the environments100,200,300,400described above. Environment500may additionally include application505, display510, sensors515, user interface520. Environment500may include, from environment200described above, device205, camera210, controller105, network110, video storage115, cloud storage305, and video storage module120. Application505, display510, sensors515, and user interface520may be additional components of a home automation system and may be used with any of the environments100,200,300,400described above.

Application505may allow a user to control (either directly or via device205or controller105) an aspect of the monitored property including security, energy management, locking and unlocking doors, checking the status of a door, locating a user or item, controlling lighting, thermostat, or cameras, and receiving notifications regarding a current status or anomaly associated with a home, office, place of business, and the like. In some configurations, application505may enable device205to interface with controller105and provide the user interface520to display automation, security, and/or energy management content on device205and/or mobile device405(seeFIG. 4). Thus, application505via user interface520may allow users to control aspects of their home, office, and/or other type of property. Further, application505may be installed on mobile device405, device205, or camera210in order to allow a user to interface with a function of device205, controller105, camera210, etc.

Display510may include, for example, a digital display as part of, for example, a control panel of environment500(e.g., a home automation system). Display510may be provided via devices such as, for example, a desktop computer or mobile computing device (e.g., mobile device405). The user interface520may be integrated into display510. Such a user interface520may include a plurality of menus, screens, microphones, speakers, cameras, and other capabilities that permit interaction between the user and the home automation system or any components of environment500. Additionally, or alternatively, the user interface520with display510may be integrated into device205, camera210, controller105, or other devices or components of environment500.

Sensor515may include, for example, a camera sensor, an audio sensor, a forced-entry sensor, a shock sensor, a proximity sensor, a boundary sensor, an appliance sensor, a light fixture sensor, a temperature sensor, a light beam sensor, a three-dimensional (3D) sensor, a motion sensor, a smoke sensor, a glass break sensor, a door sensor, a video sensor, a carbon monoxide sensor, an accelerometer, a global positioning system (GPS) sensor, a Wi-Fi positioning sensor, a capacitate sensor, a radio frequency sensor, a near-field sensor, a heartbeat sensor, a breathing sensor, an oxygen sensor, a carbon dioxide sensor, a brain wave sensor, a motion sensor, a voice sensor, a touch sensor, and the like. The cameras may include video and still shot images and may be part of or integrated into camera210. Camera210may include or have integrated therein one or more of the sensors515. Although sensor515is depicted as connected to device205, camera210, video storage115, and cloud storage305via network110, in some embodiments, sensor515may be connected directly to any one of those components. Additionally, or alternatively, sensor515may be integrated into a home appliance or fixture such as a light bulb fixture.

Sensor515may include an accelerometer to enable sensor515to detect motion or movement of a user. Sensor515may include a wireless communication device, which enables sensor515to send and receive to and from one or more devices in environment500. Additionally, or alternatively, sensor515may include a GPS sensor to enable sensor515to track the location of sensor515. Sensor515may include a proximity sensor to enable sensor515to detect proximity of the user relative to a predetermined distance from a boundary (e.g., geo-fence). Sensor515may include one or more security detection sensors such as, the glass break sensor, motion detection sensor, or both described above. Additionally, or alternatively, sensor515may be operable to detect the presence of a user within a dwelling or in close proximity to a dwelling that is monitored by the home automation system, perform certain functions (e.g., opening or closing a door or window), or speaking in voice command. The information provided by sensor515may be used to generate or identify an event for the purposes of creating a video clip or other video content and/or assigning a priority indicator to certain video content.

In any of the environments100,200,300,400,500described herein, certain video content with the highest assigned priority may immediately be stored in the cloud storage or other remote storage location in order to ensure that the video content is preserved and kept from damage. In one example, the event associated with the video content is unauthorized entry into a home (e.g., determined by, for example, a glass break sensor, a door opening sensor, a motion detection sensor, etc.). At least some of the video content collected by camera210in and/or around the home (e.g., in a room where sensors indicate the unauthorized entry occurred) just prior to, during, and/or after the entry is immediately transferred to the cloud storage or other remote storage location to preserve the video content in the event someone (e.g., a burglar) intentionally damages the camera, device205(e.g., control panel), or any other device that houses the controller (controller105) and/or original video content. In at least some embodiments, the possible events that occur at a property and are identified by the home automation system as having the highest priority value may be stored remotely, while low priority video content may be stored locally. In some examples, the metadata (e.g., assigned priority level) of low priority video content may be stored remotely while the video content itself is stored locally. In at least some examples, the metadata is stored for longer periods of time than the video content itself.

Storage assignment module610may operate to store the video content in any one (or more) of a plurality of different locations. In at least some examples, at least two separate storage locations may be available for storing video content. The storage locations may be segments or portions of a single database or storage device. In other examples, the storage locations are separate databases or storage devices. The storage devices may be located remotely or locally relative to the camera, video storage module, and/or home automation system and its components.

Retention module615may separately assign or associate a time period for retention of the video content in storage. Retention module615may indicate an amount of time that the video content should be stored for purposes of, for example, automatically deleting the video content from its stored location. For example, retention module615may tag or otherwise assign a retention period for any given video content in the amount of, for example, one hour, one day, one week, one month, or permanent storage. In at least some examples, the functions of retention module615may be combined or used concurrently with operation of priority module605and/or storage assignment module610.

The priority module605, storage assignment module610, and retention module615may operate independently or cooperatively as part of operation of video storage module120-a. In some examples, video storage module120-amay include any one or a combination of priority module605, storage assignment module610, retention module615, and other modules, features, and functionality.

FIG. 7shows an example video storage115-b, which may be one example of the video storage115shown inFIGS. 1-5. Video storage115-bmay include capability to store a plurality of video content (video content A-E). Each of the video content may have assigned thereto a priority indicator (priority1-3). The video content A-E may be searched based at least in part on the priority indicator. Video content A-E may be stored for a certain amount of time based on the priority indicator. The video content A-E may be stored at various locations within video storage115-bbased at least in part on the priority indicator.

Referring toFIG. 8, another video storage115-cis shown. Video storage115-cmay be one example of the video storage115shown inFIGS. 1-5. Video storage115-cincludes a low priority storage segment805, a medium priority storage segment810, and a high priority storage segment815. All video content (video content A-C) having assigned thereto a low priority value may be stored in low priority storage segment805. Video content D, which has assigned thereto a medium priority level, is assigned to medium priority storage segment810. Video content E, which has a high priority assigned thereto, is stored in high priority storage segment815.

Video storage115-cmay include more or fewer storage segments than those shown inFIG. 8. Each storage segment may have the capacity to store one or more video content, wherein each video content may be associated with an event or meet other criteria as assignment by, for example, video storage module120discussed with reference toFIGS. 1-6.

FIG. 9is a flow diagram illustrating one embodiment of a method900for storing video content collected by a home automation system. In some configurations, the method900may be implemented with any of the video storage modules120shown inFIGS. 1, 2, 3, 4, 5 and/or 6. In other examples, method900may be performed generally by controller105shown inFIGS. 1-5, or even more generally by the environments100,200,300,400,500shown inFIGS. 1-5.

At block905, method900includes receiving recorded video of an event. At block910, method900includes determining a priority level of a recorded video based on at least one predetermined criteria. Block915includes storing the recorded video for a period of time based on the priority level.

Method900may also include storing a recorded video in one of cloud storage and local storage. Method900may include identifying the event based on at least one criteria and collecting video for a predetermined amount of time, for example, prior to and after the event is identified. Method900may include deleting the recorded video at the end of the period of time. The period of time may range from less than 24 hours to permanent storage. Method900may include determining a storage location for the recorded video based at least in part on the priority level assigned to the recorded video. Method900may include permitting a user to manually adjust the priority level. Method900may include correlating the video content with other video content to confirm accuracy of determined priority level.

FIG. 10is a flow diagram illustrating one embodiment of a method1000for storing video content collected by a home automation system. In some configurations, the method1000may be implemented by any one of the video storage modules120described with reference toFIGS. 1-5. In other examples, method1000may be performed generally by controller105shown inFIGS. 1-5or even more generally by the environments100,200,300,400,500shown inFIGS. 1-5.

At block1005, method1000includes receiving recorded video content. Block1010includes determining a priority level of the video content. Block1015includes associating the priority level with the video content. At block1020, method1000includes storing the video content. Block1025includes deleting the video content after a predetermined time period based on the priority level.

Receiving the recorded video content may include receiving video content from a video camera. Determining a priority level for the video content may include determining whether the video content meets predetermined criteria. Storing the video content may include storing to one of a plurality of storage locations based on the priority level. Each storage location may have a different time period associated therewith for deleting the video content. The predetermined time period may include at least two different time periods.

FIG. 11is a block diagram illustrating one example of a method1100for storing video content collected by a home automation system. In some configurations, the method1100may be implemented by the video storage modules120described with reference toFIGS. 1-5. In other examples, method1100may be performed generally by controller105or device205shown inFIGS. 1-5, or even more generally by the environments100,200,300,400,500shown inFIGS. 1-5.

At block1105, method1100includes receiving video content of an event, wherein the video content has an assigned priority level. Block1110includes storing the video content. Block1115includes deleting the stored video content based on the priority level.

Method1100may provide storing the video content by storing at different locations based on the priority level. Method1100may include automatically assigning a priority level to the video content based on predetermined criteria. Method1100may include identifying an event and creating a video clip of recorded video associated with the event, wherein the video content includes the video clip. Receiving the video content may include receiving video content at a control panel of the home automation system. The event may include at least one of sensing motion, opening a barrier into a building structure, operating lighting, breaking glass, operating a garage door, and operating a home appliance.

FIG. 12depicts a block diagram of a controller1200suitable for implementing the present systems and methods. The controller1200may be an example of the controller105of device205and camera210illustrated inFIGS. 2, 3, 4 and/or 5. In one configuration, controller1200includes a bus1205which interconnects major subsystems of controller1200, such as a central processor1210, a system memory1215(typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller1220, an external audio device, such as a speaker system1225via an audio output interface1230, an external device, such as a display screen1235via display adapter1240, an input device1245(e.g., remote control device interfaced with an input controller1250), multiple USB devices1265(interfaced with a USB controller1270), and a storage interface1280. Also included are at least one sensor1255connected to bus1205through a sensor controller1260and a network interface1285(coupled directly to bus1205).

Bus1205allows data communication between central processor1210(e.g., controller105) and system memory1215, which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted. Any of the modules discloses with reference toFIGS. 1-5may be stored in system memory1215. The RAM is generally the main memory into which the operating system and application programs are loaded. The ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components or devices. Applications (e.g., application505) resident with controller1200are generally stored on and accessed via a non-transitory computer readable medium, such as a hard disk drive (e.g., fixed disk1275) or other storage medium. Additionally, applications can be in the form of electronic signals modulated in accordance with the application and data communication technology when accessed via interface1285.

Storage interface1280, as with the other storage interfaces of controller1200, can connect to a standard computer readable medium for storage and/or retrieval of information, such as a fixed disk drive1275. Fixed disk drive1275may be a part of controller1200or may be separate and accessed through other interface systems. Network interface1285may provide a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence). Network interface1285may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection, or the like. In some embodiments, one or more sensors (e.g., motion sensor, smoke sensor, glass break sensor, door sensor, window sensor, carbon monoxide sensor, and the like) connect to controller1200wirelessly via network interface1285.

Many other devices or subsystems (not shown) may be connected in a similar manner (e.g., entertainment system, computing device, remote cameras, wireless key fob, wall mounted user interface device, cell radio module, battery, alarm siren, door lock, lighting system, thermostat, home appliance monitor, utility equipment monitor, and so on). Conversely, all of the devices shown inFIG. 12need not be present to practice the present systems and methods. The devices and subsystems can be interconnected in different ways from that shown inFIG. 12. The aspect of some operations of a system such as that shown inFIG. 12are readily known in the art and are not discussed in detail in this application. Code to implement the present disclosure can be stored in a non-transitory computer-readable medium such as one or more of system memory1215or fixed disk1275. The operating system provided on controller1200may be iOS®, ANDROID®, MS-dOS®, MS-WINDOWS®, OS/2®, UNIX®, LINUX®, or another known operating system.

Unless otherwise noted, the terms “a” or “an,” as used in the specification and claims, are to be construed as meaning “at least one of.” In addition, for ease of use, the words “including” and “having,” as used in the specification and claims, are interchangeable with and have the same meaning as the word “comprising.” In addition, the term “based on” as used in the specification and the claims is to be construed as meaning “based at least upon.”