SIMULATING OPERATION OF THE PREMISES SECURITY SYSTEM

Methods, systems, and devices are disclosed. In at least one embodiment, a server is configured to communicate with a premises device of a premises security system. The server includes processing circuitry configured to receive, from the premises device, a set of user analytics associated with a user, and a troubleshooting request. The processing circuitry is configured to instantiate a virtual machine instance, the virtual machine instance being configured to simulate operation of the premises device based on the set of user analytics. The processing circuitry is configured to generate, using the virtual machine instance, a digital video file simulating a plurality of actions associated with the troubleshooting request; and transmit the digital video file to a security system platform.

TECHNICAL FIELD

The present invention relates to premises security systems and/or security systems, and in particular, to diagnostics, troubleshooting, and technical support for the security system and/or premises security system.

BACKGROUND

Modern smart home security systems are capable of provisioning and managing multiple low-power wireless networks (including but not limited to Zigbee, Thread, Z-Wave, DECT ULE, WiFi, and/or Bluetooth Low Energy) to control and/or communicate with home automation devices, such as lights, locks, and thermostats. Many of these systems also maintain and manage a separate security wireless network for intrusion detection and life safety sensors and detectors. In addition, many of these systems are built with redundancies in place to continue functioning in the event of a power failure or a connectivity failure. Such systems are becoming increasingly advanced home security and internet-of-things, IoT, gateways with edge compute capabilities running on modern operating systems.

However, as the complexity of these security systems increases, customers may be unaware of how to troubleshoot certain errors in the security systems. For example, a customer may not understand and/or realize that one configuration setting is not enabled for a premises device, which is why the premises device is not able to connect to the security system. In such situations, the customer may call a customer service center for the security system to troubleshoot the problem, but this interaction is often limited to the customer service representative talking the customer through various predefined steps.

DETAILED DESCRIPTION

Before describing in detail exemplary embodiments, it is noted that the embodiments may reside in combinations of apparatus components and processing steps related to simulating operation of a premises security system. Accordingly, components have been represented where appropriate by conventional symbols in the drawings, focusing only those specific details that facilitate understanding the embodiments so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.

In embodiments described herein, the joining term, “in communication with” and the like, may be used to indicate electrical or data communication, which may be accomplished by physical contact, induction, electromagnetic radiation, radio signaling, infrared signaling or optical signaling, for example. One having ordinary skill in the art will appreciate that multiple components may interoperate and modifications and variations are possible of achieving the electrical and data communication. In some embodiments described herein, the term “coupled,” “connected,” and the like, may be used herein to indicate a connection, although not necessarily directly, and may include wired and/or wireless connections. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the concepts described herein.

The apparatuses, methods, and systems described herein perform simulating operation of a premises security system from the initiation of a user contacting a customer support agent with a troubleshooting issue, such as an error message, through resolution of the issue. For example, rather than requiring the customer support agent to be granted direct access to the user's account, simulation instead generates a video for the customer support agent, the video capturing the actions the user has performed which led to the error message. This reduces or even eliminates the risk that the customer support agent will be able to make unauthorized changes or perform unauthorized actions to the user's account while in simulation mode. This also improves privacy and security by permanently redacting secure, private, personal, and/or confidential information from the video viewed by the customer support agent, and prevents the customer support agent from un-redacting the protected information.

Referring to the drawing figures, in which like elements are referred to by like reference numerals, there is shown inFIG.1a diagram of an example system10comprising a premises security system12and a server14. Premises security system12comprises one or more premises devices16such as a security alarm panel16aand a user module18a(e.g., implemented in a premises device16), and may comprise additional premises devices16and user modules18. Although premises security system12is shown as comprising a security alarm panel16a, a premises device16b, a user module18a, and a user module18b, premises security system12is not limited to comprising only security alarm panel16a, a premises device16b, a user module18a, and user module18band may include additional premises devices16and/or user modules18. Security alarm panel16acan be in simultaneous communication and/or configured to separately communicate with more than one premises devices16and/or user modules18, such as premises device16b, user module18a, user module18b, in premises security system12and/or other premises security system and/or other system10. Although security alarm panel16aand premises device16bare depicted as included in the premises security system12, security alarm panel16aand premises device16bare not limited to being included in the premises security system12and/or system10and may reside standing alone, as part of another system, or in any other manner. Although user module18aand user module18bare depicted as part of the security alarm panel16aand premises device16b, respectively, user module18aand user module18bare not limited to being part of the premises security system12, and may be any interface accessible by a user19which is co-located with and/or in communication with the premises security system12and/or premises devices16. For example, the user module18amay be a component of a security alarm panel16a, such as a touchscreen, and/or may be a physically and/or logically separate component, such as a mobile phone application of a mobile device and/or a web browser portal in communication with the premises security system12and/or security alarm panel16a.

As another example, premises device16bmay be a mobile phone application of a mobile device and/or a web browser portal in communication with the premises security system12and/or any component thereof, and/or user module18bmay be a user module of a mobile phone or other device. As used herein, user module18aand user module18bmay be collectively referred to user module18.

Further, premises devices16may include one or more of sensors, control panels, control devices, image capture devices, life safety devices, lifestyle devices and other devices. For example, the types of sensors may include various life safety related sensors such as motion sensors, fire sensors, carbon monoxide sensors, flooding sensors and contact sensors, among other sensor types that are known in the art. The control devices may include, for example, one or more lifestyle (e.g., home automation) related devices configured to adjust at least one premises setting such as lighting, temperature, energy usage, door lock and power settings, among other settings associated with the premises or devices on the premises. Image capture devices may include digital cameras and/or video cameras, among other image capture devices that are well known in the art, and may also include audio recording functionality using audio recording devices that are well known in the art.

User modules18may be implemented by any device (e.g., premises device16, mobile device, etc.), either standalone or part of premises security system12and/or security alarm panel16aand/or premises device16band/or any other premises device, configurable for receiving user inputs and displaying outputs to the user, and further configurable for communicating with any other component/premises device of system10. User modules18may perform one or more functions of a user interface. User modules18may correspond to any software/program configured to perform the steps/processes of the present disclosure, e.g., providing an interface for a user to provide an input to the premises security system12and/or receive an output from the premises security system12. Further, user modules18may run and/or be included directly as part of any other premises device16of premises security system12. User modules18may be virtualized and/or running outside premises security system12and/or any of the components of premises security system12. User modules18may be configured to perform a command, such as arming the security system, as directed by the user. User module18may be configured to receive an error message and/or other indication of an error, fault, or unexpected result of attempting to perform a command from security system platform20. User modules18may be configured to receive a simulation request from security system platform20indicating a request by a server14and/or a support agent module28for simulation of user modules18, premises security system12, and/or security alarm panel16aand/or premises device16band/or any other premises device. User modules18may be configured to receive an indication from the user of approval of the simulation request, and may be further configured to send an approval indication to the security system platform20.

Server14may be configurable for direct/indirect communication with premises security system12such as one or more of security alarm panel16a, premises device16b, user module18a, user module18band/or any other component/premises device16/user module18of system10. Although server14is described as remote from the premises security system12, server14may be co-located with and/or form part of the premises security system12.

Server14functionality may be performed by a single server or distributed among multiple servers or computing devices. For example, server14functionality, as described herein, may be performed by an on-site or off-site server. Alternatively, server14functionality may be performed by several computing devices that may be located in the same general location or different locations, e.g., cloud computing. In other words, each computing device may perform one or more particular sub-processes of server14, and may communicate with each other via network22.

Server14may further comprise a user account database24, security system platform20, user analytics database26, support agent module28, simulation manager30, and/or autonomous support unit32, as described below.

Security system platform20may be implemented in any device, either standalone or part of server14, configurable for implementing security monitoring and home automation capabilities. Security system platform20may be configured to receive user account data from user account database24. Security system platform20may be configured to receive a request to perform a command from the user module18a. Security system platform20may be configured to return an error message to the user module18aif the command cannot be performed such as based on the current premises security system12configuration. Security system platform20may be configured to receive a simulation request from support agent module28in order to, for example, assist in diagnostics, troubleshooting, etc. Security system platform20may be configured to forward the simulation request to user module18aand/or user module18b. Security system platform20may be configured to receive simulation approved message from user module18aand/or user module18b. Security system platform20may be configured to request from the simulation manager30a video of the user's actions which led to the error message and/or caused the user's technical support issue to arise. Security system platform20may be configured to receive the created video from simulation manager30. Security system platform20may be configured to indicate to support agent module28that the video is available.

Support agent module28may be implemented by any device, either standalone or part of server14, configurable for interfacing with a customer support agent. Support agent modules28may perform one or more functionality of a support agent user interface. Support agent module28may include any software/program configured to perform the steps/processes of the present disclosure, e.g., providing an interface for a user to provide an input to the server14and/or receive an output from the server14. Support agent module28may be virtualized and/or running outside server14and/or any of the components of server14. Support agent module28may be configured to receive a request from the customer support agent to look up a user account. Support agent module28may be configured to receive user account data from user account database24. Support agent module28may be configured to send a simulation request to security system platform20. Support agent module28may be configured to receive a video available message from security system platform20. Support agent module28may be configured to receive a request to play the video from the customer support agent, and is further configured to play the video on the interface, such as on a touchscreen, mobile device, web browser, or similar interface accessible by the customer support agent. Support agent module28may be configured to receive a resolve support case indication from the customer support agent, and may further be configured to generate a resolution code, which may be persistent, to store in the autonomous support unit32.

Simulation manager30may be implemented in any device, either standalone or part of server14, configurable for simulation. Simulation manager30may create an annotated video that is displayed to the customer support agent21, e.g., through a support agent module28. Simulation manager30may be configured to receive a request from the security system platform20to create a video of the user's actions which led to the error message and/or caused the user's technical support issue to arise. Simulation manager30may be configured to request and receive user actions from the user analytics database26. The user actions may include actions which led to the error message and/or caused the user's technical support issue to arise. Simulation manager30may be configured to receive user account data from user account database24. Simulation manager30may be configured to simulate the user's actions and create a video representing the user's actions. Simulation manager30may be configured to instantiate a virtual machine instance34based on the premises security system12and/or the user actions from the user analytics database26. Virtual machine instance34may be implemented in any device, either standalone or part of server14, configured to instantiate and/or run a virtual machine instance. Simulation manager30may be configured to run the virtual machine instance34as a copy of premises security system12, security alarm panel16a, premises device16b, user module18a, user module18b, and/or any other component of premises security system12. Simulation manager30may be configured to simulate the user actions defined by the user analytics database26in the virtual machine instance34, for example, to recreate the states of the premises devices16and actions which led to the user's troubleshooting/diagnostics issue, and may further be configured to record a video of a virtualized user module of the virtual machine instance34. Simulation manager30may be configured to provide access to the virtual machine instance34to the support agent module28, such that the support agent module28may be used to view, modify, and/or run the virtual machine instance34. Simulation manager30may be configured to send the video to the security system platform20and/or the support agent module28.

Autonomous support unit32may be implemented in any device, either standalone or part of server14, configured to be trained, for example, using analytics, the video, and/or resolution codes to build a model for providing user support. Autonomous support unit32may be configured to receive, from simulation manager30, user action information such as a video/images/details representing user actions which led to an error message and/or troubleshooting issue. Autonomous support unit32may be configured to receive a set of user analytics representing user actions which led to an error message and/or troubleshooting issue and/or configuration data associated with the premises security system12and/or any other component of system10. Autonomous support unit32may be configured to receive user account data from user account database24. Autonomous support unit32may be configured to receive a resolution code from support agent module28. Autonomous support unit32may be configured to train a machine learning model using the resolution code, the user action information (e.g., video), and/or the user analytics. Autonomous support unit32may be configured to generate a predicted resolution code based on a set of test data, for instance, a test video and/or test set of user analytics. Autonomous support unit32may be configured to improve the prediction accuracy over time as it performs iterative training of the machine learning model using additional data collected over time. Autonomous support unit32may be configured to provide technical support, for example, to user module18a, without the intervention of a customer support agent. Autonomous support unit32may be configured to provide information to user module18avia textual and/or graphic overlays, a chat bot, and/or other automated communication techniques.

Further, system10may include network22, which may be configured to provide direct/indirect communication, e.g., wired and/or wireless communication, between any two or more components of system10, e.g., premises security system12, security alarm panel16a, user module18a, premises device16b, user module18b, server14, security system platform20, user account database24, user analytics database26, support agent module28, simulation manager30, autonomous support unit32, and/or virtual machine instance34. In a non-limiting example, security alarm panel16aof premises security system12may communicate with the server14via network22, e.g., to provide troubleshooting data associated with premises security system12. Although network22is shown as an intermediate network between components/devices of system10, any component/device may communicate directly with any other component/device of system10. In a non-limiting example, server14may communicate directly with security alarm panel16aand/or user module18a. For example, network22may be an internet protocol (IP) network that may be established as a wide area network (WAN) and/or local area network (LAN), among other IP-based networks.

Note further that functions described herein as being performed by a premises security system12or server14may be distributed over a plurality of premises security systems12and/or servers14. In other words, it is contemplated that the functions of the autonomous support described herein are not limited to performance by a single physical device and, in fact, can be distributed among several physical devices.

In some embodiments, security alarm panel16aand user module18aare co-located in a single hardware device. In other embodiments, the security alarm panel16aand user module18amay be located in physically and/or logically separate devices. For example, a user may interface with the security alarm panel16avia a user module18athat is implemented in a mobile application, such as an iPhone or Android application, in a web browser accessible on a user's computing device, such as a mobile phone, laptop, or desktop computer, or similar device which is physically and/or logically separate from the security alarm panel16a.

Example implementations, in accordance with an embodiment, of system10discussed in the preceding paragraphs will now be described with reference toFIG.2.

The premises security system12includes a security alarm panel16aincluding hardware36. The hardware36may include processing circuitry38. The processing circuitry38may include a processor40and a memory42. In particular, in addition to or instead of a processor, such as a central processing unit, and memory, the processing circuitry38may comprise integrated circuitry for processing and/or control, e.g., one or more processors and/or processor cores and/or Field Programmable Gate Arrays (FPGAs) and/or Application Specific Integrated Circuits (ASICs) adapted to execute instructions. The processor40may be configured to access (e.g., write to and/or read from) the memory42, which may comprise any kind of volatile and/or nonvolatile memory, e.g., cache and/or buffer memory and/or RAM (Random Access Memory) and/or ROM (Read-Only Memory) and/or optical memory and/or EPROM (Erasable Programmable Read-Only Memory). Further, memory42may be configured as a storage device.

Hardware36of security alarm panel16amay include communication interface44enabling it to communicate directly/indirectly with any component/device of system10. For example, communication interface44may be configured for setting up and maintaining at least a wireless/wired connection with any component/device of system10such as server14. The communication interface44may be formed as or may include, for example, one or more wired communication devices, such as USB and/or ethernet devices, and/or may include one or more wireless communication devices, including one or more RF transmitters, one or more RF receivers, and/or one or more RF transceivers.

Security alarm panel16afurther has software46stored internally in, for example, memory42, or stored in external memory (e.g., database, storage array, network storage device, etc.) accessible by the security alarm panel16avia an external connection.

The processing circuitry38may be configured to control any of methods and/or processes described herein and/or to cause such methods, and/or processes to be performed, e.g., by security alarm panel16a. Processor40corresponds to one or more processors40for performing security alarm panel16afunctions described herein. The memory42is configured to store data and/or files and/or encryption elements, e.g., security tokens/keys, and/or programmatic software code and/or other information described herein. In some embodiments, the software46may include instructions that, when executed by the processor40and/or processing circuitry38, causes the processor40and/or processing circuitry38to perform the processes described herein with respect to security alarm panel16a. For example, processing circuitry38may include user module18afor performing one or more user module18abased functions described herein. As another example, user module18amay be located in physically and/or logically separate devices. For example, a user may interact with the security alarm panel16avia a user module18athat is implemented in a mobile application, such as an iPhone or Android application, in a web browser accessible on a user's computing device, such as a mobile phone, laptop, or desktop computer, or similar device which is physically and/or logically separate from the security alarm panel16a. As another example, security alarm panel16amay include a user's mobile wireless device, tablet, computer, etc., which includes user module18adescribed herein.

In addition to security alarm panel16a, the premises security system12ofFIG.1may include additional premises devices16, such as premises device16b, depicted inFIG.2, which may include functionally similar hardware and/or software components as another premises device16, e.g., security alarm panel16awhich is a type of premises device16. For example, premises device16bmay be a mobile phone or other user module which is configured to communicate with security alarm panel16aand/or premises security system12and/or any other component of system10. As another example, premises device16bmay be a security alarm panel including hardware similar to security alarm panel16a. Further, in another example, premises device(s)16nmay include the same hardware and/or software components as another premises device16(e.g., security alarm panel16awhich is a type of premises device16a).

The system10further includes server14including hardware48. The hardware48may include processing circuitry50. The processing circuitry50may include a processor52and a memory54. In particular, in addition to or instead of a processor, such as a central processing unit, and memory, the processing circuitry50may comprise integrated circuitry for processing and/or control, e.g., one or more processors and/or processor cores and/or Field Programmable Gate Arrays (FPGAs) and/or Application Specific Integrated Circuits (ASICs) adapted to execute instructions. The processor52may be configured to access (e.g., write to and/or read from) the memory54, which may comprise any kind of volatile and/or nonvolatile memory, e.g., cache and/or buffer memory and/or RAM (Random Access Memory) and/or ROM (Read-Only Memory) and/or optical memory and/or EPROM (Erasable Programmable Read-Only Memory). Further, memory54may be configured as a storage device.

Hardware48of server14may include communication interface56enabling it to communicate directly or indirectly with any component and/or device of system10. For example, communication interface56may be configured for setting up and maintaining at least a wireless or wired connection with any component or device of system10such as premises security system12. The communication interface56may be formed as or may include, one or more wired communication devices, such as USB and/or ethernet devices, and/or may include one or more wireless communication devices, including one or more RF transmitters, one or more RF receivers, and/or one or more RF transceivers.

Server14further has software58stored internally in, for example, memory54, or stored in external memory (e.g., database, storage array, network storage device, etc.) accessible by the server14via an external connection.

The processing circuitry50may be configured to control any of methods and/or processes described herein and/or to cause such methods, and/or processes to be performed, e.g., by server14. Processor52corresponds to one or more processors52for performing server14functions described herein. The memory54is configured to store data and/or files and/or encryption elements, e.g., security tokens/keys, and/or programmatic software code and/or other information described herein. For example, memory54and/or processing circuitry50and/or processor52may include a user analytics database26such that when a support request is initiated, the user module18atransmits actions performed by the user to the user analytics database26, and/or may further include a configurable file60listing user module elements and their corresponding sensitivity levels, for example, identifying which user module elements may contain confidential information requiring redaction. In some embodiments, the software58may include instructions that, when executed by the processor52and/or processing circuitry50, causes the processor52and/or processing circuitry50to perform the processes described herein with respect to server14. For example, processing circuitry50of the server14may include security system platform20, support agent module28, simulation manager30, autonomous support unit32, and at least one virtual machine instance34, as described herein. In particular, the virtual machine instance34may be an instance used to simulate, for example, user module18a, premises device16and/or one or more components/devices associated with the premises security system12such that configuration changes made to the virtual machine instance34of system12do not change the configuration of system12at the premises, thereby allowing for troubleshooting, diagnostics, verification, etc. of premises security system12.

FIG.3is a flowchart of an example process in a system10for implementing private user simulation for a security system. One or more blocks described herein may be performed by one or more elements of premises security system12and/or server14, such as by one or more of processing circuitry38and/or processor40and/or communication interface44and/or processing circuitry50and/or processor52and/or communication interface56. The premises device16is configured to receive (Block S100) a request from a user to open a user module18a. The user module18arequests the security system platform20to perform a command (Block S102), for instance, arming the system. The security system platform20returns an error message (Block S104) to the user module18a, for example, indicating a fault and/or error in attempting to perform the command. Seeking to resolve the error, the user contacts a customer support agent (Block S106), who looks up the user account and/or user profile (Block S108) via the support agent module28and generates a support case associated with the user.

The support agent module28sends a simulation request to the security system platform20(Block S110), which forwards the simulation request to the user module18a(Block S112). The user approves the simulation request (Block S114) on the user module18a, and the user module18aforwards an indication of the simulation approval to security system platform20. The user module18acollects user analytics and sends them to the user analytics database26(Block S116). Additionally, the user module18acan provide to the simulation manager30information regarding the configuration and operation of the respective premises security system12. The security system platform20requests a video for user actions and sends the video request to the simulation manager30(Block S118). The simulation manager30gets associated user actions from the user analytics database26(Block S120), and simulates those actions, in part, by creating a virtual machine instance, to create a video in which private and/or sensitive information is redacted, which is sent to the security system platform20(Block S122). That is, the virtual machine instance is a logical copy of at least one premises device16of the customer's premises security system12in which the support agent and/or simulation manager30and/or security system platform20is able to modify aspects of the virtual machine instance without modifying the user's premises security system12.

The security system platform20notifies the support agent module28that the video is available, and the customer support agent plays the video (e.g., redacted video to hide sensitive user information) on the support agent module28(Block S124). The customer support agent provides support to the user using the redacted video (Block S126), resolves the support case via the support agent module28(Block S128), and the support agent module28sends a resolution code to the autonomous support unit32, which trains a machine learning model using the resolution code and the associated user analytics. For example, the support case may be resolved by the support agent using the support agent module28to modify one or more configurations of premises security system12in the virtual machine instance, thereby allowing the support agent to determine one or more problems with the premises security system12configuration at the premises.

FIG.4is a flowchart of an example process in a system10for simulation operation of the premises security system. One or more blocks described herein may be performed by one or more elements of premises security system12and/or server14, such as by one or more of processing circuitry38and/or processor40and/or communication interface44and/or processing circuitry50and/or processor52and/or communication interface56. The server14is configured to receive, from the premises device16, a set of user analytics, the user analytics being collected from the premises device16and being associated with a user and a troubleshooting request (Block S130). The server14instantiates a virtual machine instance34to simulate operation of the premises device16based on the set of user analytics (Block S132). The server14generates, using virtual machine instance34, a digital video file representing the simulated operation of the premises device16responsive to a plurality of actions associated with the troubleshooting request (Block S134). The server14makes the digital video file available to a security system platform20for diagnostic purposes (Block S136).

In an embodiment, a server14is configured to communicate at least with a premises device16. The server14is configured to, and/or comprises, a communication interface56and/or comprising processing circuitry50configured to receive, from the premises device16, a set of user analytics collected from the premises device16and associated with a user and a troubleshooting request, instantiate a virtual machine instance34to simulate the premises device16based on the set of user analytics, generate using the virtual machine instance34, a digital video file simulating a plurality of actions associated with the troubleshooting request, and transmit the digital video file to a security system platform20for diagnostics.

In an embodiment, the processing circuitry50of server14is further configured to receive an account lookup request from a support agent module28, the account lookup request being associated with the user and the troubleshooting request from the user, and retrieve an account profile from a user account database24based on the lookup request.

In an embodiment, the processing circuitry50of server14is further configured to send a simulation request to the premises device16, and receive, from the premises device16, in response to the simulation request, a simulation authorization indicating an approval from the user to instantiate the virtual machine instance34.

In an embodiment, the processing circuitry50of server14is further configured to redact at least one secure information field in the digital video file to generate a redacted digital video file, and cause the redacted digital video file to play on a support agent module28.

In an embodiment, the processing circuitry50of server14is further configured to anonymize the set of user analytics.

In an embodiment, the processing circuitry50of server14is further configured to receive a case resolution code from the support agent module28and train a machine learning model with the autonomous support unit32using the set of user analytics and the case resolution code.

In an embodiment, the processing circuitry50of server14is further configured to receive a second set of user analytics from the premises device16and generate a predicted resolution code based on the second set of user analytics and the trained machine learning model.

In an embodiment, the machine learning model includes one of linear regression, logistic regression, decision trees, random forest, and gradient boosting.

FIG.5is a flowchart of another example process in a system10for simulating operation of a premises security system. One or more blocks described herein may be performed by one or more elements of premises security system12and/or server14, such as by one or more of processing circuitry38and/or processor40and/or communication interface44and/or processing circuitry50and/or processor52and/or communication interface56. The premises device16transmits a troubleshooting request to server14(Block S138). The premises device16receives, from server14, a simulation request (Block S140). The premises device16, in response to the simulation request, transmits a set of user analytics to server14, the user analytics being collected from the premises device16and being associated with a user and the troubleshooting request, the server14being configured to generate a virtual machine instance34based on the user analytics, a set of user account data associated with a user received from user account database24, and the troubleshooting request (Block S142). The premises device16receives, from server14, a resolution code based on a diagnostic analysis of the virtual machine instance34(Block S144). The premises device16overlays at least one of instructions, messages, and/or prompts on user module18abased on the received resolution code (Block S146).

FIG.6is a signaling diagram generally corresponding to the steps ofFIG.3. First, a user19opens a user module, such as user module18a(Block S148). The user module18asends a request to perform a command, such as to arm the security system, to the security system platform20(Block S150). The security system platform20returns an error message to the user module18a(Block S152). The user contacts support, i.e., the support agent (Block S154). The support agent looks up the user's account on the support agent module28(Block S156). The support agent module28requests simulation via the security system platform20(Block S158), which forwards the simulation request to the user module18a(Block S160). The user approves the request on the user module18a(Block S162), and the user module18asends the simulation approved message to the security system platform20(Block S164). The user module18asends collected user analytics to the user analytics database26(Block S166).

The security system platform sends a request to the simulation manager30to create a video for user actions (Block S168). The simulation manager30sends a request to the user analytics database26to get actions (Block S170), and the simulation manager30then simulates actions (Block S172). The simulation manager sends the video created to the security system platform20(Block S174), which notifies the support agent module28that the video is available (Block S176). The video is sent to the machine learning model for training (Block S178). The support agent plays the video on the support agent module28(Block S180), and the support agent provides support to the user (Block S182). The support agent resolves the support case (Block S184) via the support agent module28, which sends a persist resolution code (Block S186) to the autonomous support unit32(Block S188). The autonomous support unit32, e.g., using a machine learning model, is trained using the code and the user analytics (Block S188).

In an embodiment, the support agent module28is configured to retrieve user account information, including a user account profile, e.g., from user account database24. When a user contacts the customer support agent with a request for troubleshooting, the customer support agent, the support agent module28is configurable to create a support case associated with the user's account information and the user's request.

In some embodiments, the user analytics database26is configured to receive, store, and/or provide analytics representing the user's actions. The analytics are tagged, for example, by processing circuitry50, using a unique identifier. The analytics contains information regarding the status and/or configuration of the premises security system12, the screens and/or pages viewed by the user, the events and/or actions taken by the user, the resulting screens and/or pages, and/or any error messages displayed to the user. The unique identifier is associated with a support case and the user in a temporary table. The temporary table may be stored, for example, in memory54.

In some embodiments, the simulation manager30, for example using processing circuitry50, retrieves some or all user analytics from the user analytics database26tagged with the unique identifier. For example, the simulation manager30, using processing circuitry64, may place the user analytics in temporal order based on the steps taken by the user.

In some embodiments, the simulation manager30creates a new virtual machine instance34, for example by using processing circuitry50, processor52, memory54, and/or software58. The virtual machine instance may be associated with and/or be a copy of the user module18aand/or security alarm panel16aand/or any other premises device and/or user module of premises security system12, based on, for example, user analytics, such as the user-agent information retrieved from the user analytics database26.

In some embodiments, the simulation manager30uses the analytics and/or the virtual machine instance34to re-play the events and/or actions taken by the user and captures a screenshot of each page. The screenshots may, for example, be stored in memory54as digital image and/or digital video files. The re-play may occur at a faster speed than the speed of the user, such as the speed of the hardware48, at a slower speed than the speed of the user, or at the same speed, as directed by a customer support agent via support agent module28.

In some embodiments, after each screenshot is captured, the screenshot may be annotated, and the annotated screenshot may be stored in memory54. For example, the screenshot may be annotated by drawing a bright box around the button pressed by the user, to highlight the textbox in which the user provided input, and/or to highlight other significant and/or relevant portions of the screenshot. Each screen and/or page may, for example, be represented by a separate, annotated image.

In an embodiment, the simulation manager30is programmed, for example by a configurable file60stored in memory54, to tag certain fields in the user module18aas containing secure information, such as personal information, private information, and/or confidential information. The configurable file60may, for example, include a list of user module18aelements and a list of corresponding sensitivity levels.

In an embodiment, the simulation manager30simulates the user module18aby redacting secure information in each simulated user module18ascreen. For example, the simulation manager30may overwrite certain pixels of each simulated screen image corresponding to secure information fields. Such overwriting may include, for example, irreversibly blacking out the information or similar redaction which obscures the information contained in the field. This improves the user's privacy and avoids potential privacy violations, for example, since there is no possibility of un-redacting the obscured information in the simulated screen image.

In an embodiment, after the simulation manager30simulates the user module18a, the simulation manager30ends the simulated session, and converts the annotated images into a digital video format, for example, a motion jpeg video with a configurable, fixed framerate, such that there are pauses between each screen, which allows the customer support agent to observe the simulated flow of user actions.

In an embodiment, when the customer support agent terminates the support call with the user, the customer support agent enters a resolution code into the support agent module28. The resolution code may, for example, indicate the premises security system12status and/or configuration, the issues which prompted the call, the steps taken to resolve the issue, and/or the status of the issue, such as whether the issue was resolved.

In an embodiment, when the customer support agent terminates the support call with the user, the user analytics unique identifier is permanently deleted. For example, the collected user analytics are anonymized by deleting any association between the collected user analytics and the user.

In some embodiments, the resolution code entered by the customer support agent into the support agent module28is associated with the anonymized user analytics, and the resolution code and anonymized user analytics are together provided, by the support agent module28and/or the simulation manager30, to the autonomous support unit32. The autonomous support unit32uses the resolution codes as the labels and the anonymized user analytics as the features for training a machine learning model. For example, the autonomous support unit32may utilize a machine learning model including linear regression, logistic regression, decision trees, random forest, gradient boosting, and/or other machine learning models known in the art. The autonomous support unit32may employ supervised learning, unsupervised learning, semi-supervised learning, and/or reinforcement learning. The autonomous support unit32may be implemented using, for example, a neural network. Once trained, the autonomous support unit32may, in response to further user analytic data, generate a predicted resolution code. This prediction code may be provided, for example, to simulation manager30, support agent module28, and/or security system platform20, to improve customer assistance for future calls from the same user and/or other users facing similar technical support issues.

In some embodiments, when provided with sufficiently robust training data and by using a diverse set of training inputs, the autonomous support unit32is configured to provide autonomous support, which may be executed, for example, on user module18a. For example, if the user is presented with an error message, the user may, via user module18aand autonomous support unit32, initiate an autonomous support request. The user module18agenerates user analytics associated with the autonomous support request. The autonomous support request, using the autonomous support unit32, predicts a resolution code based on the user analytics associated with the autonomous support request. The user module18auses the predicted resolution code to autonomously provide support instructions to the user without intervention of a customer support agent. In some instances, the user module18amay use the predicted resolution code to autonomously resolve the technical support issue without requiring any intervention by the user, such as by automatically taking steps defined by the resolution code. In some embodiments, the support instructions are autonomously provided to the user module18aby overlaying instructions, messages, and/or prompts on the user's screen. In an embodiment, the autonomous support may be provided to the user module18avia a chat bot. Since the autonomous support unit32does not need the involvement of a human, customer support costs can be reduced while providing consistent, high quality support to users. Because the autonomous support unit32improves with more training data, it will continue to learn and improve the accuracy of its predictions over time.

In an embodiment, the simulation manager30creates one or more virtual machine instance34and provides the support agent module28with access to the virtual machine instance34, such that the support agent module28may be used to view, modify, and/or run the virtual machine instance34. For example, the support agent module28may be configured to display a virtual user module of the virtual machine instance34. The support agent module28may be used to implement changes in the virtual machine instance34via the virtual user module, which may be used, e.g., to perform diagnostics, to reproduce error(s), observe error(s), and/or attempt various corrective actions.

In an embodiment, user module18amaintains communication with the server14, e.g., via network22, such that user module18ais synchronized with one or more components of server14. In this embodiment, any changes made to user module18amay be recorded by the one or more components of server14and/or implemented in the virtual machine instance34such as to keep the virtual machine instance34synchronized with the premises security system12.

In an embodiment, a premises device16including a user module18is configured to communicate at least with a server14. The premises device16comprises a communication interface44and/or processing circuitry38configured to transmit a troubleshooting request to the server14; receive, from the server14, a simulation request; in response to the simulation request, transmit a set of user analytics to the server14to generate a virtual machine instance34based on the user analytics, a set of user account data associated with a user and the troubleshooting request, the user analytics being collected from the premises device16and being associated with a user and the troubleshooting request; receive, from the server14, a resolution code based on a diagnostic analysis of the virtual machine instance34; and overlay at least one of instructions, messages and prompts on a user module18based on the received resolution code.

In some embodiments, the received resolution code is based on a machine learning model maintained by the server14.