Patent Description:
Aspects of the present disclosure relate generally to cloud-based event monitoring, and more particularly, to systems and methods for simulating control panel state and control panel responses.

In some event monitoring systems, burdensome loads are being placed on the control panels configured to monitor an event status of a location based on one or more connected event sources. For example, some systems may require a control panel to respond to request for status information from multiple subscribers. However, due to the limited capabilities (e.g., processing and memory limitations) of control panels, many control panels are ill-equip to perform event monitoring of connected event sources, while fulfilling status request of subscribers to the control panel. Further, the inability to effectively collect event information from event sources and provide status information corresponding to events detected by the event sources to subscribers can prove fatal and/or costly in vital event monitoring contexts, e.g., fire safety systems. <CIT> describes a system and method for automatically providing alarm signalling to inform an owner and other authorized entities in a manner predetermined by the user when alarm situations and/or alarm worthy situations occur while an alarm system is being intentionally destroyed.

An example aspect includes a method for event monitoring at a cloud service, comprising receiving, from a control panel coupled with a plurality of control sensors within a supervised premises, a plurality of event messages corresponding to events detected by the plurality of control sensors within the supervised premises. The method further includes generating a status simulation for the control panel based on the plurality of event messages, the status simulation representing a current status of the control panel. Additionally, the method further includes creating a subscription of a client service to the control panel based on a request from the client service. Additionally, the method further includes transmitting, to the client service based on the subscription, status information for the control panel derived from the status simulation.

Another example aspect includes an apparatus for event monitoring at a cloud service, comprising a memory and a processor communicatively coupled with the memory. The processor is configured to receive, from a control panel coupled with a plurality of control sensors within a supervised premises, a plurality of event messages corresponding to events detected by the plurality of control sensors within the supervised premises. The processor is further configured to generate a status simulation for the control panel based on the plurality of event messages, the status simulation representing a current status of the control panel. Additionally, the processor further configured to create a subscription of a client service to the control panel based on a request from the client service. Additionally, the processor further configured to transmit, to the client service based on the subscription, status information for the control panel derived from the status simulation.

Another example aspect includes an apparatus for event monitoring at a cloud service, comprising means for receiving, from a control panel coupled with a plurality of control sensors within a supervised premises, a plurality of event messages corresponding to events detected by the plurality of control sensors within the supervised premises. The apparatus further includes means for generating a status simulation for the control panel based on the plurality of event messages, the status simulation representing a current status of the control panel. Additionally, the apparatus further includes means for creating a subscription of a client service to the control panel based on a request from the client service. Additionally, the apparatus further includes means for transmitting, to the client service based on the subscription, status information for the control panel derived from the status simulation.

Another example aspect includes a computer-readable medium storing instructions for event monitoring at a cloud service, wherein the instructions are executable by a processor to receive, from a control panel coupled with a plurality of control sensors within a supervised premises, a plurality of event messages corresponding to events detected by the plurality of control sensors within the supervised premises. The instructions are further executable to generate a status simulation for the control panel based on the plurality of event messages, the status simulation representing a current status of the control panel. Additionally, the instructions are further executable to create a subscription of a client service to the control panel based on a request from the client service. Additionally, the instructions are further executable to transmit, to the client service based on the subscription, status information for the control panel derived from the status simulation.

This disclosure describes techniques for simulating control panel state and control panel responses. In particular, aspects of the present disclosure provide a cloud-based status simulator that may simulate the status of a control panel based on event messages received from the control panel, and satisfy requests for status information from subscribers to the control panel. Accordingly, for example, a cloud-based status simulator may generate a simulation of the control panel status and employ the status simulation to satisfy request for the status of the control instead of requiring the control panel to have an active role in disseminating status information, thereby gaining the scalability, reliability, and performance benefits of cloud computing while reducing the processing load placed on low resource devices having limited computing capabilities.

<FIG> is a diagram of an example of a control panel management system (CPMS) <NUM> for synchronizing an event monitoring application with an event monitoring service, according to some implementations. As illustrated in <FIG>, a control panel management system (CPMS) <NUM> may include a control system <NUM> deployed within a supervised premises <NUM>. Further, the control system <NUM> may include one or more control panels <NUM>(<NUM>)-(n), one or more control sensors <NUM>(<NUM>)-(n) deployed within the supervised premises <NUM>, one or more communication networks <NUM>(<NUM>)-(n), and a gateway <NUM>. An example of a control sensor <NUM> may include a fire alarm and a corresponding example of a control panel <NUM> may include a fire panel configured to receive event information (e.g., smoke detected within a particular area of the supervised premises <NUM>) from one or more fire alarms. Another example of a control sensor <NUM> may include a motion sensor and a corresponding example of a control panel is a security alarm panel configured to receive event information (e.g., motion detected within a particular area of the supervised premises) from one or more motion sensors. In some implementations, a communication network <NUM> may include a plain old telephone system (POTS), a radio network, a cellular network, an electrical power line communication system, one or more of a wired and/or wireless private network, personal area network, local area network, wide area network, and/or the Internet. Further, in some aspects, the control panels <NUM>(<NUM>)-(n), the control sensors <NUM>(<NUM>)-(n), and the gateway <NUM> may be configured to communicate via the communication networks <NUM>(<NUM>)-(n).

In addition, the CPMS <NUM> may include a cloud computing platform <NUM>, one or more user devices <NUM>(<NUM>)-(n), and one or more communication networks <NUM>(<NUM>)-(n). The communication network(s) <NUM> may comprise any one or combination of multiple different types of networks, such as cellular networks, wireless networks, local area networks (LANs), wide area networks (WANs), personal area networks (PANs), the Internet, or any other type of network configured to communicate information between computing devices (e.g., the cloud computing platform <NUM>, the user devices <NUM>(<NUM>)-(N), and the gateway <NUM>). Some examples of the user device <NUM> include smartphones and computing devices, Internet of Things (IoT) devices, video game systems, robots, process automation equipment, sensors, control devices, vehicles, transportation equipment, virtual and augmented reality (VR and AR) devices, industrial machines, etc..

Further, the cloud computing platform <NUM> may be configured to provide panel status information <NUM>(<NUM>)-(n) for the control panels <NUM>(<NUM>)-(n) to the CPMS clients <NUM>(<NUM>)-(n) of the user devices <NUM>(<NUM>)-(n) via the communication network <NUM>. For example, in some aspects, the cloud computing platform <NUM> may provide status information <NUM>(<NUM>) for the control panel <NUM>(<NUM>) to the first CPMS client <NUM>(<NUM>) of the first user device <NUM>(<NUM>) during a first period in time. As another example, in some aspects, the cloud computing platform <NUM> may provide status information <NUM>(<NUM>) for the second control panel <NUM>(<NUM>) to the first CPMS client <NUM>(<NUM>) of the first user device <NUM>(<NUM>). As yet still another example, in some aspects, the cloud computing platform <NUM> may provide status information <NUM>(<NUM>) for the first control panel <NUM>(<NUM>) to the first CPMS client <NUM>(<NUM>) of the first user device <NUM>(<NUM>) during a second period in time. In some aspects, CPMS client <NUM> may be a mobile application, desktop application, or a web application. Further, in some aspects, the CPMS client <NUM> may send a status request <NUM>, and the cloud computing platform <NUM> may be configured to transmit the status information <NUM> in response to a status request <NUM>. For example, the first CPMS client <NUM>(<NUM>) may transmit a first status request <NUM> to the cloud computing platform and the cloud computing platform may respond with the first information status information <NUM>(<NUM>). In some other aspects, the cloud computing platform <NUM> may provide the status information <NUM>(<NUM>) to the CPMS client <NUM> may transmit the status information <NUM> of a control panel <NUM> in response to the CPMS client <NUM> subscribing to the control panel <NUM> via the cloud computing platform <NUM>.

As illustrated in <FIG>, the cloud computing platform <NUM> may include a control panel management service <NUM> configured to manage the control panels <NUM>(<NUM>)-(n) and provide the status information <NUM> to the CPMS clients <NUM> subscribed to the control panels <NUM>(<NUM>)-(n). Furthermore, as illustrated in <FIG>, the control panel management service <NUM> may include a subscription manager <NUM>, a simulation generator <NUM>, and a plurality of status simulation <NUM>(<NUM>)-(n). As described herein, the subscription manager <NUM> may manage the subscriptions of the CPMS clients <NUM> to the control panels <NUM>. For example, in some aspects, the subscription manager <NUM> may create a subscription by a CPMS client <NUM> to the control panel <NUM>(<NUM>) during an initialization process between a CPMS client <NUM>(<NUM>) and the control panel management service <NUM>. Once the CPMS client <NUM> is subscribed to the control panel <NUM>(<NUM>), the control panel management service <NUM> may be configured to provide status updates via the status information <NUM>(<NUM>)-(n) to the CPMS clients <NUM>. As an example, if the status of the control panel <NUM>(<NUM>) changes due to an event, the control panel management service <NUM> may be configured to send status information <NUM>(<NUM>) identifying the status change based upon the CPMS client <NUM>(<NUM>) subscribing to the control panel <NUM>(<NUM>).

In some aspects, the simulation generator <NUM> may be configured to collect a plurality of event messages <NUM> generated and transmitted the control panels <NUM>(<NUM>), and generate status simulation <NUM> for each of the control panels <NUM> based up on the corresponding event messages <NUM> of the control panel <NUM>. As described in detail below with respect to <FIG>, the simulation generator <NUM> may identify one or more attributes of an event message <NUM> transmitted to the control panel management service <NUM> by a control panel <NUM>, and determine whether to update the status simulation <NUM> of the control panel <NUM> based upon the one more identified attributes. In some aspects, the status simulation may be stored in one or more records of a database. Further, the control panel management service <NUM> may be configured to provide the status information <NUM>(<NUM>)-(n) to the CPM's clients <NUM> based upon the status simulation <NUM>. As a result, the complex and burdensome task of informing the CPMS clients <NUM> of the panel status of a control panel <NUM> is shifted to the cloud computing platform <NUM> which has far greater processing capabilities in comparison to the control panels <NUM>(<NUM>)-(n).

<FIG> illustrate a flow diagram of an example of a method <NUM> of updating a status simulation of a control panel, according to some implementations. At step <NUM>, the control panel management service <NUM> may receive an event message from a control panel <NUM>, and the simulation generator <NUM> may determine whether the event message <NUM> is a solicited message or an unsolicited message. As used herein, in some aspects, a "solicited message" may refer to a message requested by the recipient and including full state information for the transmitting control panel, e.g., the status information of the control sensors associated with control panel. In some aspects, a solicited message may be transmitted by a control panel during a reboot/restart and/or during initialization of a CPMS client. As used herein, in some aspects, an "unsolicited message" may refer to a message that was not requested by the recipient and does not include full state information of the transmitting control panel. In some aspects, unsolicited messages may be employed to transmit incremental updates to the panel status of a control panel <NUM>. Further, a solicited message transmitted by a control panel <NUM> may be larger than an unsolicited message transmitted by the control panel <NUM>, as the unsolicited message will not contain as much status information. If the event message <NUM> is a solicited message, the simulation generator <NUM> may proceed to step <NUM>, and if the event message <NUM> is an unsolicited message, the simulation generator <NUM> may proceed to step <NUM>.

At step <NUM>, the simulation generator <NUM> may determine whether the event message <NUM> identified as a solicited message includes one or more status states of the control sensors <NUM> of the control panel <NUM>. As described herein, a status state may refer to the state of a control sensor configured to transmit event information to a particular control panel <NUM>. For example, if a control panel <NUM> is a fire panel, then a corresponding control sensor <NUM> may be smoke detector with the following status states: fire, trouble, or supervisory. If the event message <NUM> includes status states of the control sensors <NUM>, the simulation generator <NUM> may proceed to step <NUM>, and perform an upsert using the panel status of the control panels <NUM> (e.g., the status states of the control sensors <NUM> couple to the control panel <NUM>). In some aspects, the upsert may generate the status simulation <NUM> of the control panel <NUM>. If the event message does not include status states of the control sensors, the simulation generator may discard the event message.

At step <NUM>, at the simulation generator <NUM> may store the event message <NUM> to a storage component of the cloud computing platform <NUM>, and proceed to step <NUM>. At step <NUM> the simulation generator <NUM> may determine whether the event message <NUM> corresponds to an existing status simulation <NUM>. If the event message <NUM> does not correspond to an existing status simulation <NUM>, the simulation generator <NUM> may proceed to step <NUM>. If the event message <NUM> does correspond to an existing status simulation <NUM>, the simulation generator <NUM> may proceed to step <NUM>.

At step <NUM>, the simulation generator <NUM> may discard the event message <NUM> and log receipt of the event message <NUM>. At step <NUM>, the simulation generator <NUM> may determine whether the event message <NUM> meets a freshness policy implemented by the cloud computing platform <NUM>. In some examples, the freshness policy may be based on a timestamp of the event message <NUM> generated at the time of creation of the event message <NUM> by the control panel <NUM> and/or a sequence number generated by the cloud computing platform <NUM> upon receipt of the event message <NUM>. Further, the timestamp and/or the sequence number of the event message <NUM> may be compared to the time stamp and/or sequence number of the status simulation <NUM> of the control panel <NUM> that transmitted the event message. If the event message <NUM> was generated after the timestamp associated with the status simulation <NUM> and/or received after the sequence number associated with the status simulation <NUM>, the simulation generator <NUM> may proceed to step <NUM>. If the event message <NUM> does not meet the freshness policy (i.e., the event message <NUM> was generated before the timestamp associated with the status simulation <NUM> and/or received by the cloud computing platform <NUM> before generation of the sequence number associated with the status simulation <NUM>, the simulation generator <NUM> may proceed to step <NUM> and discard the event message <NUM>.

As illustrated in <FIG>, at step <NUM>, the simulation generator <NUM> may upsert header information used to store the status simulation <NUM> of the control panel <NUM>, and proceed to step <NUM>. At step <NUM>, the simulation generator <NUM> may determine whether the event message <NUM> includes status states of the control sensors <NUM> of the control panel <NUM> that transmitted the event message <NUM>. If the event message <NUM> does not include status states, simulation generator <NUM> may proceed to step <NUM> and discard the event message <NUM>. If the event message <NUM> does include status states, the simulation generator may proceed to step <NUM>.

At step <NUM>, the simulation generator <NUM> may identify each control sensor <NUM> having a status state within the event message <NUM>, and proceed to step <NUM>. At step <NUM>, the simulation generator <NUM> may update the header information within the status simulation <NUM> for a control sensor identified at step <NUM>, and proceed to step <NUM>. At step <NUM>, the simulation generator <NUM> may determine whether the event message <NUM> corresponds to an active event or the clearance of an active event. If the event message <NUM> corresponds to an active event, the simulation generator <NUM> may proceed to step <NUM> and update the contents of the status simulation <NUM> corresponding to the identified control sensor <NUM>. If the event message <NUM> corresponds to the clearance of an earlier active event, the simulation generator <NUM> may proceed to step <NUM>.

At step <NUM>, the simulation generator <NUM> made determine whether the event that the event message <NUM> intends to clear is identified within the status simulation <NUM>. In some aspects, the simulation generator <NUM> may determine that the event is identified within the status simulation <NUM> based upon detecting an event identifier identified within the event message <NUM> within the status simulation <NUM>. Further, if the event is not identified within the status simulation <NUM>, the simulation generator <NUM> may proceed to step <NUM>. At step to <NUM>, the simulation generator <NUM> may discard the event message <NUM>, and proceed to step <NUM>. If the event is identified within the status simulation <NUM>, the simulation generator <NUM> may proceed to step <NUM>. At step <NUM>, the simulation generator <NUM> may clear the event formally identified as active within the status simulation <NUM>, and proceed to step <NUM>. At step <NUM>, the simulation generator may repeat steps <NUM> to <NUM> for each of the identified control sensors or end processing of the event message when all of the identified control sensors have been analyzed.

<FIG> is block diagram of an example of a computer device configured to simulate control panel state and control panel responses, according to some implementations. Referring to <FIG>, a computing device <NUM> may implement all or a portion of the functionality described herein. The computing device <NUM> may be or may include or may be configured to implement the functionality of at least a portion of the CPMS <NUM>, or any component therein. For example, the computing device <NUM> may be or may include or may be configured to implement the functionality of the user device <NUM>, the control panel <NUM>, the cloud computing platform <NUM>, or the control sensors <NUM>(<NUM>)-(N). The computing device <NUM> includes a processor <NUM> which may be configured to execute or implement software, hardware, and/or firmware modules that perform any functionality described herein. For example, the processor <NUM> may be configured to execute or implement software, hardware, and/or firmware modules that perform any functionality described herein with reference to the CPMS client <NUM>, or any other component/system/device described herein.

The processor <NUM> may be a micro-controller, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), or a field-programmable gate array (FPGA), and/or may include a single or multiple set of processors or multi-core processors. Moreover, the processor <NUM> may be implemented as an integrated processing system and/or a distributed processing system. The computing device <NUM> may further include a memory <NUM>, such as for storing local versions of applications being executed by the processor <NUM>, related instructions, parameters, etc. The memory <NUM> may include a type of memory usable by a computer, such as random-access memory (RAM), read only memory (ROM), tapes, magnetic discs, optical discs, volatile memory, nonvolatile memory, and any combination thereof. Additionally, the processor <NUM> and the memory <NUM> may include and execute an operating system executing on the processor <NUM>, one or more applications, display drivers, etc., and/or other components of the computing device <NUM>.

Further, the computing device <NUM> may include a communications component <NUM> that provides for establishing and maintaining communications with one or more other devices, parties, entities, etc. utilizing hardware, software, and services. The communications component <NUM> may carry communications between components on the computing device <NUM>, as well as between the computing device <NUM> and external devices, such as devices located across a communications network and/or devices serially or locally connected to the computing device <NUM>. In an aspect, for example, the communications component <NUM> may include one or more buses, and may further include transmit chain components and receive chain components associated with a wireless or wired transmitter and receiver, respectively, operable for interfacing with external devices.

Additionally, the computing device <NUM> may include a data store <NUM>, which can be any suitable combination of hardware and/or software, that provides for mass storage of information, databases, and programs. For example, the data store <NUM> may be or may include a data repository for applications and/or related parameters not currently being executed by processor <NUM>. In addition, the data store <NUM> may be a data repository for an operating system, application, display driver, etc., executing on the processor <NUM>, and/or one or more other components of the computing device <NUM>.

The computing device <NUM> may also include a user interface component <NUM> operable to receive inputs from a user of the computing device <NUM> and further operable to generate outputs for presentation to the user (e.g., via a display interface to a display device). The user interface component <NUM> may include one or more input devices, including but not limited to a keyboard, a number pad, a mouse, a touch-sensitive display, a navigation key, a function key, a microphone, a voice recognition component, or any other mechanism capable of receiving an input from a user, or any combination thereof. Further, the user interface component <NUM> may include one or more output devices, including but not limited to a display interface, a speaker, a haptic feedback mechanism, a printer, any other mechanism capable of presenting an output to a user, or any combination thereof.

Referring to <FIG> and <FIG>, in operation, computing device <NUM> may perform a method <NUM> of wireless communication, by such as via execution of CPMS client <NUM> by processor <NUM> and/or memory <NUM>.

At block <NUM>, the method <NUM> includes receiving, from a control panel coupled with a plurality of control sensors within a supervised premises, a plurality of event messages corresponding to events detected by the plurality of control sensors within the supervised premises. For example, in an aspect, computing device <NUM>, processor <NUM>, memory <NUM>, cloud computing platform <NUM>, control panel management service <NUM>, and/or simulation generator <NUM> may be configured to or may comprise means for receiving, from a control panel coupled with a plurality of control sensors within a supervised premises, a plurality of event messages corresponding to events detected by the plurality of control sensors within the supervised premises. For example, the receiving at block <NUM> may include the cloud computing platform <NUM> receiving a plurality of event messages <NUM> from the control panel <NUM>(<NUM>).

At block <NUM>, the method <NUM> includes generating a status simulation for the control panel based on the plurality of event messages, the status simulation representing a current status of the control panel. For example, in an aspect, computing device <NUM>, processor <NUM>, memory <NUM>, control panel management service <NUM>, and/or simulation generator <NUM> may be configured to or may comprise means for generating a status simulation for the control panel based on the plurality of event messages, the status simulation representing a current status of the control panel. For example, the generating at block <NUM> may include the <NUM>// generating a status simulation <NUM> of the control panel <NUM>(<NUM>) based on the plurality of event messages. Further, for example, the generating at block <NUM> may be performed in order to create a local representation (e.g., a status simulation) of the status of a control panel <NUM>. In addition, the control panel management service <NUM> may employ the local representation to provide status information <NUM> to the subscribers of a control panel <NUM> in order to reduce the load place on control panels <NUM>, which are normally devices having limited processing capability and often unable to scale as the number of subscribers and/or control sensors <NUM> increases.

At block <NUM>, the method <NUM> includes creating a subscription of a client service to the control panel based on a request from the client service. For example, in an aspect, computing device <NUM>, processor <NUM>, memory <NUM>, control panel management service <NUM>, and/or subscription manager <NUM> may be configured to or may comprise means for creating a subscription of a client service to the control panel based on a request from the client service. For example, the creating at block <NUM> may include the subscription manager <NUM> generate subscription of the CPMS client <NUM>(<NUM>) to the control panel <NUM>(<NUM>). Further, in some aspects, the subscription may be use by the control panel management service <NUM> to passively update the subscribers of a control panel <NUM> of the panel status of the control pane <NUM> without the subscribers having to actively poll the control panel management service <NUM> by sending status requests <NUM> to the control panel <NUM>.

At block <NUM>, the method <NUM> includes transmitting, to the client service based on the subscription, status information for the control panel derived from the status simulation. For example, in an aspect, computing device <NUM>, processor <NUM>, memory <NUM>, and/or the control panel management service <NUM> may be configured to or may comprise means for transmitting, to the client service based on the subscription, status information for the control panel derived from the status simulation. For example, the transmitting at block <NUM> may include the control panel management service <NUM> to transmit status information <NUM> derived from the status simulation <NUM> to a subscriber of the control panel <NUM>(<NUM>), e.g., the CPMS client <NUM>(<NUM>). Using the status simulation to provide status information <NUM> to the subscribers of a control panel <NUM> may significantly reduce the load place on control panels <NUM>, which are normally devices having limited processing capability and often unable to scale as the number of subscribers and/or control sensors <NUM> increases.

In an alternative or additional aspect, wherein the control panel is a first control panel and the status simulation is a first status simulation, the method may further comprise receiving an unsolicited message from a second control panel, determining that a second status simulation has not been generated for the second control panel, and discarding the unsolicited message without using the unsolicited message for generating the second status simulation.

In an alternative or additional aspect, generating the status simulation for the control panel based on the plurality of event messages may comprise identifying a first message of the plurality of event messages as an unsolicited message, confirming, based on the identifying, that the first message meets a freshness policy, determining that the first message includes a status state of a control sensor of the plurality of control sensors, determining that the status state represents an active event at the control sensor, and setting, based on the status state representing the active event, the status state of the control sensor to active within the status simulation.

In an alternative or additional aspect, generating the status simulation for the control panel based on the plurality of event messages may comprise identifying a first message of the plurality of event messages as an unsolicited message, confirming, based on the identifying, that the first message meets a freshness policy, determining that the first message includes a status state of a control sensor of the plurality of control sensors, the status state clearing an active event at the control sensor, determining, based on an event identifier, the active event is represented within the status simulation, and removing, based on the status state identifying the active event, a representation of the active event from the status simulation.

In an alternative or additional aspect, wherein the control panel is a first control panel and the status simulation is a first status simulation, the method may further comprise receiving an unsolicited message from a second control panel, determining that a second status simulation has been generated for the second control panel, confirming, based on the second status simulation being generated, that the unsolicited message meets a freshness policy, determining that the unsolicited message includes a status state of a control sensor of the plurality of control sensors, the status state clearing an active event at the control sensor, determining, based on an event identifier, that the active event is not represented within the status simulation; and discarding the unsolicited message without using the unsolicited message for updating the second status simulation.

In an alternative or additional aspect, the method may further comprise receiving a message from the control panel, and discarding, based on the message not including a status state of a control sensor of the plurality of control sensors, the message without using the message for the generating.

In an alternative or additional aspect, transmitting the status information for the control panel may comprise receiving a request from the client service for the status information, generating, in response to the request, the status information from the status simulation without requesting event information from the control panel, and transmitting, in response to request, the status information to the client service.

In an alternative or additional aspect, the status information includes a plurality of status states, wherein individual status states of the plurality of status states identifying a status of an individual control sensor of the plurality of control sensors.

In an alternative or additional aspect, the control panel is a fire panel and a status state of the plurality of status states includes fire, trouble, or supervisory.

Claim 1:
A method for event monitoring at a cloud service, comprising:
- receiving, from a control panel (<NUM>) coupled with a plurality of control sensors (<NUM>(i)-(n)) within a supervised premises, a plurality of event messages corresponding to events detected by the plurality of control sensors (<NUM>(i)-(n)) within the supervised premises;
the method being characterized by
- generating a status simulation for the control panel (<NUM>) based on the plurality of event messages, the status simulation representing a current status of the control panel (<NUM>);
- creating a subscription of a client service to the control panel (<NUM>) based on a request from the client service; and
- transmitting, to the client service based on the subscription, status information for the control panel (<NUM>) derived from the status simulation.