NILM Status
The NILM Status Report is a new type of report implemented and integrated as NET2GRID NILM Service to communicate the results of the Training, up to that particular point in time, to the end-users. This process is responsible for retrieving the customer profile (as filled in within the mobile application), the installation model stored in NET2GRID Installation Model Library, and producing the status report.
There are three categories of information that are communicated back to the customer:
- General NILM Status Information
- Report Services Status
- Non-Time and Time-Based Appliances Status
General NILM Status Information
There is some information provided that is related directly to a reporting service or an individual appliance. More specifically, the information pieces are:
- NILM Status Phase: This number shows at which point in the Training Process the specific installation is situated currently, from 0 (no training process has run) to 3 (all training processes have been completed).
- Number of Days with Good Quality Data: the number of days that the installation have provided good quality measurements, meaning no stuck metering equipment or low sampling events took place during those days.
- Number of Days with Poor Quality Data: the number of days that the installation has provided poor quality measurements due to stuck metering equipment, weak connection signal, or low sampling granularity.
Report Services Status
This part of the NILM Status Report contains information on all the other Report Services that are provided by NET2GRID Solution. With this information, it is easy for the end-user to observe which services are enabled, if profile information is missing for certain reporting services, if more time is needed to provide a service, etc.
More specifically, these Report Services are:
A/A | Report Service | Report Service Key |
---|---|---|
1 | Daily Disaggregation Report Service | dailyDisaggregation |
2 | Monthly Disaggregation Report Service | monthlyDisaggregation |
3 | Insights Report Service | insights |
4 | Recommendations Report Service | recommendations |
5 | Appliance Efficiencies Report Service | applianceEfficiencies |
6 | Hardware Parameters Report Service | hardwareParameters |
7 | Solar Production Metrics Report Service | solarProductionMetrics |
The information that is provided for each one of the services mentioned above are:
- Report Service Name: the name of the examined reporting process.
- Availability: a flag that shows if the report service is available to the customer.
- Profile Complete: a flag that signifies if the customer-provided profile is correctly filled to provide this service (to its full extent or at all).
- Month Complete: a flag that signifies if 30 days of measurement are available from that specific installation.
- Start Timestamp: The DateTime stamp that the service became available to the end customer if it is available.
Appliances Status
This section of the NILM Status report contains information on all the appliances supported by the NET2GRID Solution Services. Having this information readily available, the end-user can check for which appliances there are models created, if there is profile information missing for certain appliances, how many attempts have been done for training specific appliances, and many more.
As mentioned in the Appliance Events Report section, there are two types of appliances: non-time-based and time-based. The information that is provided for each one of the appliances mentioned above are:
- Appliance Type: the type of appliance that is examined.
- Availability: a flag that shows if the appliance models are available for the specific customer.
- Profile Complete: a flag that signifies if the customer-provided profile is correctly filled for this appliance type if needed.
- Profile Updated: a flag that signifies if the profile was updated from the customer on the current day if needed.
- Number of Models: an integer number that shows the number of models stored in the Library for that specific appliance type.
- Attempts Left: an integer number that shows the number of attempts left for the training of this appliance type if no models are available yet.
- Appliance Model Version: The Analytics Platform version that was utilized for the training of the appliance models, if it is available.
- Creation Timestamp: The DateTime stamp that the appliance was trained and became available to the end customer if it is available.
Fetching the current NILM Status for an installation
The Get NILM Status SDP API endpoint allows developers to retrieve all the appliance events for a specific day of interest. These appliance event details can then be used within the customer's solution.
A pseudo-code request to the Get NILM Status endpoint looks like this:
GET /v2/nilm/status
Authorization: Bearer <access_token>
A successful request will return a response similar to the following:
{
"status": "ok",
"data": {
"nilmStatus": 3,
"goodDataDays": 1619,
"poorDataDays": 4,
"services": {
"dailyDisaggregation": {
"available": true,
"profileComplete": true
},
"solarProductionMetrics": {
"available": true,
"profileComplete": false
},
"monthlyDisaggregation": {
"available": true,
"profileComplete": true,
"monthComplete": true
},
"insights": {
"available": true,
"profileComplete": true
},
"recommendations": {
"available": true,
"profileComplete": true
},
"hardwareParameters": {
"available": true,
"profileComplete": true
},
"applianceEfficiencies": {
"available": true,
"profileComplete": false
}
},
"nonTimeBasedAppliances": {
"alwaysOn": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1
},
"refrigeration": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1
},
"lighting": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1
},
"entertainment": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1
},
"waterBoiler": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1
},
"heatPumps": {
"available": false,
"profileComplete": true,
"profileAdded": false
}
},
"timeBasedAppliances": {
"washingMachine": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1
},
"dishWasher": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 3
},
"oven": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 2
},
"dryer": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1
},
"flowHeater": {
"available": false,
"profileComplete": true,
"profileAdded": false,
"attemptsLeft": 0
},
"immersionHeater": {
"available": false,
"profileComplete": false,
"profileAdded": false,
"attemptsLeft": 0
},
"electricVehicle": {
"available": true,
"profileComplete": true,
"profileAdded": false,
"models": 1,
"timestamp": "2021-01-18T14:12:05+01:00"
},
"airConditioning": {
"available": false,
"profileComplete": false,
"profileAdded": false,
"attemptsLeft": 0
}
},
"retrainSchedule": {
"refrigeration": "20210706",
"electricVehicle": "20210706",
"airConditioning": "20210706"
},
"date": "20210706"
}
}
As you'd probably expect, the response contains the standard JSON structure containing the status
field indicating whether or not the response was successful. If successful, the data
field will contain a list of appliance events for a specific day. Each message consists of the following properties:
Field | Type | Description |
---|---|---|
nilmStatus | Integer | NILM Status 0: No Training Process has run up to this point in time. (This would be the default when no NILM status is available at all in the backend), NILM Status 1: Training Phase One has run at least once, and statistical appliance models are available. NILM Status 2: Phase Two's training process has run at least once, and some energy-intensive appliance models have been created. NILM Status 3: No automated training process is left for this installation. |
goodDataDays | Integer | The number of days with good data that can be used for analysis. |
poorDataDays | Integer | The number of days with poor data that cannot be used for analysis. |
services | Document | A document containing the service status for all the NILM services. The list of services is provided above. |
nonTimeBasedAppliances | Document | A document containing the status of the non-time-based appliance models. |
timeBasedAppliances | Document | A document containing the status of the time-based appliance models. |
retrainSchedule | Document | A document containing the list of appliances for which retraining is scheduled. If an appliance is not listed, then there is no retraining schedule in place for this appliance. It will contain the “applianceType” and the “date” for the retraining. The supported appliance types can be found in the Appliance Events section. The date is in YYYYMMDD format. |
Within the Analytics Services documents, the following fields are contained:
Field | Type | Description |
---|---|---|
available | Boolean | The flag shows the availability of the Analytics service. |
profileComplete | Boolean | The flag shows the profile completeness for the Analytics service. |
monthComplete | Boolean | The flag shows if 30 days of good data have passed for the specific process. |
Within the Appliance Status documents, the following fields are contained:
Field | Type | Description |
---|---|---|
available | Boolean | The flag shows the availability of an appliance model. |
profileComplete | Boolean | The flag showing the profile completeness for an appliance model. |
profileAdded | Boolean | The flag signifies if the profile has been updated from the end-user after the latest NILM Status Report is sent and before sending the new one (the next day). |
attemptsLeft | Integer | The number of training attempts left for a specific appliance model. Not present if models are already found for the appliance. |
models | Integer | The number of appliance models created for a specific appliance. |
timestamp | DateTime | The date and time the appliance models were created in a YYYY-MM-DDThh:mm:ssTZD format. |
The following image from the Ynni Mobile App shows a use of the NILM Status API.
Updated about 2 years ago