User Tools
Writing /app/www/public/data/meta/development/applications/snmpmanager/hsim.meta failed
development:applications:snmpmanager:hsim
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| development:applications:snmpmanager:hsim [2017/05/24 22:34] – dmcgee | development:applications:snmpmanager:hsim [2021/06/25 10:09] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== HSIM - Temperature Scanning and Trending Overview ====== | ||
| + | |||
| + | David McGee | ||
| + | |||
| + | Weds, 24th May 2017 | ||
| + | |||
| + | This article assumes prior knowledge of AMI (Advanced Metering Infrastructure) Networks, ANSI C12.19 standards as well as an indepth knowledge of Silver Spring Networks (SSN) UIQ platform. This article has purposely not referenced customer details and/or cloud deployment for security purposes. It has, however, been written for a specific installation/ | ||
| + | |||
| + | ** Important Entities ** | ||
| + | |||
| + | There are a number of important classes/ | ||
| + | |||
| + | * AnalyseAmiFullTableScanResultsJob - Runs every 60 seconds to determine the status of all active AmiFullTableScanSchedules. This also triggers awaiting SoapMessageAuditEvent trending events (with a date in the past) | ||
| + | |||
| + | * AmiFullTableScanSchedule - A representation of an AMI table that needs to be scanned/ | ||
| + | |||
| + | * AmiFullTableScanTrendingConfig - This allows the configuration of a number of trending options that can be changed at run-time. Trending configs are associated with AmiFullTableScanSchedules (object referenced above). This allows us to specify trending interval (SyncInterval), | ||
| + | |||
| + | * AmiFullTableScanResult - Everytime a schedule runs, it creates an AmiFullTableScanResult. This allows the application to become aware that something is currently persisting DiscoveredData for a schedule, or some part of the application is currently analysing this data. Due to the highly concurrent nature of requesting information (as well as the high volume of data) from AMI software such as SSN UIQ, it is important to be aware of what is currently being processed/ | ||
| + | |||
| + | * ThresholdCollection (AdvancedThreshold) - This allows a collection of AdvancedThresholds to be defined. This comes into play when we are analysing a set of DiscoveredData rows for breached thresholds. An example is analysing C12.19 temperature readings from SSN UIQ. Our client can specify custom temperature thresholds at run-time. ThresholdCollections can be associated with AmiFullTableScanSchedules. | ||
| + | |||
| + | * SoapMessage - A customisable message that can be associated with an AmiFullTableScanSchedule. Important fields include: name, xmlBody, messageType, | ||
| + | |||
| + | * SoapMessageAuditEvent - An event that is used to track a request and/or response from Errigal HSIM to SSN UIQ via SOAP Web Services. This forms a SOAP Web Services request queue which is central to schedule scanning/ | ||
| + | |||
| + | * DiscoveredData - This is a name/value store where we can persist many different types of data, identified by dataType and parameter (i.e. ' | ||
| + | |||
| + | * ErrigalAmiNetworkSnmpTrap - An SNMP trap that can be associated with a schedule. Provided that there is also a ThresholdCollection associated with the schedule, this trap can throw an AdvancedThreshold is breached. A custom alarming OID can be associated with the schedule for when there are new notification/ | ||
| + | |||
| + | |||
| + | |||
| + | **Walkthrough** | ||
| + | |||
| + | As of writing (24th May, 2017) - Here is how the HSIM system is currently scanning and trending temperature data: | ||
| + | |||
| + | * It is important to note that the SoapMessageAuditEvent queue is the backbone to scanning and trending temperature data functionality working. A number of SoapMessages are configured on our AWS cloud deployment with associated Remote Discovery Framework (RDF) scripts to prepare XML requests using parameters, as well as parse responses from SSN UIQ. Please see the important SOAP discovery configuration section below for further info. | ||
| + | |||
| + | * Every 60 seconds, the AnalyseAmiFullTableScanResultsJob runs to check all active schedule' | ||
| + | |||
| + | * A number of statuses can be found based on method returns (isInSync(), | ||
| + | |||
| + | * If a schedule needs to be processed (it has response data ready to be processed from a SOAP Message web services request), the analyse() method on AmiFullTableScanResult will be called. There is a number of aims here: Find all relevant schedule data (using schedule.discoveredDataParameterName - i.e. ' | ||
| + | |||
| + | * For each schedule with an active trending config, any trending events (SoapMessageAuditEvent) that are due to trigger will execute (scheduledRepeatCount >0, scheduledTriggerDate < now) | ||
| + | |||
| + | * For each trending event in a schedule, if the current scheduledRepeatCount > 0, a follow-up trending event is scheduled for the future (based on a sync interval defined in the associated TrendingConfig). This is 1 hour by default. The scheduledRepeatCount on the initial audit event is set to 0, and a new event is created with scheduledRepeatCount-1. | ||
| + | |||
| + | |||
| + | |||
| + | **Schedule States - Criteria** | ||
| + | |||
| + | * Is In Sync: Can we find a recorded processed AmiFullTableScanResult for this schedule within the expected sync interval? (i.e. ' | ||
| + | |||
| + | * Currently Processing Data: Is the schedule' | ||
| + | |||
| + | * Has Result Ready for Analysis: Can we find a recorded AmiFullTableScanResult for this schedule that has a discoveredDataFinishDate within the schedule' | ||
| + | |||
| + | |||
| + | |||
| + | **Important SOAP Discovery Configuration** | ||
| + | |||
| + | With regards to SOAP message and remote discovery script configuration for temperature scanning and trending activity - In order to determine what messages and scripts are being used, you should start off by clicking into the relevant AmiFullTableScanSchedule entry via the HSIM SNMP Manager controllers view. From here, click into the associated soap message. From the associated soap message view, you will be able to see the XML body (Usually a JOB ID request), associated results request (another SOAP message), relevant associated SOAP discovery configurations and associated SOAP endpoints. | ||
| + | |||
| + | The framework is setup in a way that allows a message to be sent to a SSN UIQ web services endpoint to initiate request for a job status and request results for the associated data when the relevant job has completed. All associated scripts are in the SoapDiscoveryConfigurations associated with the SoapMessage objects themselves. | ||
| + | |||
| + | With regards to C12.19 data/ | ||
| + | |||
| + | * getArbitaryMeterCommandResultsByJobId_Focus | ||
| + | |||
| + | * getArbitaryMeterCommandResultsByJobId_GEi210 | ||
| + | |||
| + | * getArbitaryMeterCommandResultsByJobId_GEkV2c | ||
| + | |||
| + | |||
| + | |||
| + | **Known Limitations/ | ||
| + | * Trending events with breached thresholds continue to trend every < | ||