Recommendations

The monthly Recommendations Reports are convenient for a specific installation service provided to the NILM Services end-users. It is a set of recommendations focused on using particular appliance types or more generalized suggestions for helping the end-users reduce their consumption by taking small actions that are not difficult to follow.

NET2GRID NILM Solution can provide different recommendations depending on the customers’ needs. Recommendations are related either to activities (e.g., laundry) or to appliances (e.g., dishwasher) and correspond to three different actions:

  • behavior (for example, set the thermostat to 18-21 degrees),
  • maintenance (for example, ‘defrost freezer regularly’) or
  • purchase (for example, ‘purchase a more efficient fridge’).

Recommendations that refer to i) incomplete profiles, ii) erroneous profiles, and iii) profiles that insights are not available are provided. The following are essential to determine:

  1. Recommendations engine is stateless; thus, while making new recommendations, it does not consider recommendations made in the past.

  2. Recommendations are per user. All recommendations come from the same master list but are sorted differently for each user based on the “relevance” of the specific end-user/installation.

  3. Filter characteristics. The recommendations list is limited to 40 items per user, meaning that only the 40 most relevant Recommendations are sent to the end user. Recommendations with a low relevance score are not shared.

Fetching Recommendations for the current month

The Get recommendations SDP API endpoint allows developers to retrieve the currently relevant recommendations for a user. The recommendation details can then be used within the customer's solution.

A pseudo-code request to the Get recommendations endpoint looks like this:

GET /v2/recommendations
Authorization: Bearer <access_token>

A successful request will return a response similar to the following:

{
    "status": "ok",
    "data": [
        {
            "id": "T200",
            "relevance": 0.948,
            "disaggregation_category": "Laundry",
            "appliance": "WashingMachine",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T210",
            "relevance": 0.948,
            "disaggregation_category": "Laundry",
            "appliance": "WashingMachine",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T290",
            "relevance": 0.896,
            "disaggregation_category": "Laundry",
            "appliance": "WashingMachine",
            "electric": "true",
            "gas": "false",
            "action_type": "Purchase",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T50",
            "relevance": 0.8,
            "disaggregation_category": "Laundry",
            "appliance": "Dishwasher",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T360",
            "relevance": 0.795,
            "disaggregation_category": "Refrigeration",
            "appliance": "Refrigeration",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T420",
            "relevance": 0.795,
            "disaggregation_category": "Refrigeration",
            "appliance": "Refrigeration",
            "electric": "true",
            "gas": "false",
            "action_type": "Maintenance",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T10",
            "relevance": 0.619,
            "disaggregation_category": "AlwaysOn",
            "appliance": "AlwaysOn",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T30",
            "relevance": 0.619,
            "disaggregation_category": "AlwaysOn",
            "appliance": "AlwaysOn",
            "electric": "true",
            "gas": "false",
            "action_type": "Purchase",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T60",
            "relevance": 0.601,
            "disaggregation_category": "Laundry",
            "appliance": "Dishwasher",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T80",
            "relevance": 0.601,
            "disaggregation_category": "Laundry",
            "appliance": "Dishwasher",
            "electric": "true",
            "gas": "false",
            "action_type": "Purchase",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T380",
            "relevance": 0.591,
            "disaggregation_category": "Refrigeration",
            "appliance": "Refrigeration",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T390",
            "relevance": 0.591,
            "disaggregation_category": "Refrigeration",
            "appliance": "Refrigeration",
            "electric": "true",
            "gas": "false",
            "action_type": "Maintenance",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T400",
            "relevance": 0.591,
            "disaggregation_category": "Refrigeration",
            "appliance": "Refrigeration",
            "electric": "true",
            "gas": "false",
            "action_type": "Maintenance",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T430",
            "relevance": 0.591,
            "disaggregation_category": "Refrigeration",
            "appliance": "Refrigeration",
            "electric": "true",
            "gas": "false",
            "action_type": "Purchase",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T330",
            "relevance": 0.544,
            "disaggregation_category": "Lighting",
            "appliance": "Lighting",
            "electric": "true",
            "gas": "false",
            "action_type": "Behaviour",
            "timestamp": "2022-12-01T05:03:56+00:00"
        },
        {
            "id": "T340",
            "relevance": 0.544,
            "disaggregation_category": "Lighting",
            "appliance": "Lighting",
            "electric": "true",
            "gas": "false",
            "action_type": "Purchase",
            "timestamp": "2022-12-01T05:03:56+00:00"
        }
    ]
}

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:

FieldTypeDescription
idStringThe id code of the recommendation.
relevanceFloatThe relevance of the recommendation to the user.
disaggregation_categoryStringThe disaggregation category relevant to the presented recommendation.
applianceStringThe appliance type which is relevant to the presented recommendation.
electricStringIf the recommendation could be for electricity.
gasFloatIf the recommendation could be for gas.
action_typeStringThe type of action suggested by the presented recommendation. The list of action types is provided above.
timestampDateTimeTimestamp when the response to the API call was returned from the platform in a YYYY-MM-DDThh:mm:ssTZD format.

This is an example of how this call is used in the Ynni Mobile App.

1170