Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

visualize FIWARE WaterConsumptionObserved Smart Model Data using tools of your choice #285

Open
computate opened this issue Dec 16, 2022 · 0 comments
Labels
ux-ui-containers Suggested skills: UX, UI, containers WaterConsumptionObserved visualization to visualize FIWARE WaterConsumptionObserved Smart Model Data using tools of your choice

Comments

@computate
Copy link
Member

computate commented Dec 16, 2022

Mission

visualize FIWARE WaterConsumptionObserved Smart Model Data using tools of your choice

Your mission, should you choose to accept it, is to visualize FIWARE WaterConsumptionObserved Smart Model Data using tools of your choice.

Walk through Youtube videos related to your task

These Youtube videos have been carefully prepared to help you with this data import task:

More details about your task

  • Work with your data specialist to come up with useful WaterConsumptionObserved data that you can use to visualize the work your team has done in the project.
  • You can import live WaterConsumptionObserved data if you can find it, or fake WaterConsumptionObserved data that your team can come up with (see the Example payloads below).
  • You can import as much or as little WaterConsumptionObserved data as you wish, but enough to help your visualization specialist create nice visualizations of the data.
  • Your data specialist will work with your OpenShift deployment specialist to deploy the data to an Orion LD context broker. You will use the provided data to build visualizations with the tools of your choice. They could be command line tools, or containerized applications that can be deployed to an OpenShift local environment, or local programs in a programming language that you choose that process the data in the Orion LD context broker, or any other way to choose to make your visualizations.
  • Work with your documentation specialist to document the visualizations you have built into the documentation of the project.
  • If you are not sure how to visualize WaterConsumptionObserved data, you may want to use your imagination. Imagine if there was a WaterConsumptionObserved sensor in your actual city, or a WaterConsumptionObserved sensor in a small scale toy city that you could simulate. What kind of sensors could you use? How would you design such a simulation in an actual city or a toy city? How would you visualize WaterConsumptionObserved data in an actual city or a toy city?

The day of the operation is Thursday February 2nd, 2023

You will have 4 hours to complete your mission.

Work with Smart Data Models and the FIWARE Context broker in Europe

At the end of the day

Should you, or any of your force be taken or compromised that day, you must report back as many changes as you have made, and any knowledge of your actions, by pull request or comments on the issue on the board.

The details of your mission:

Entity: WaterConsumptionObserved

Open License

document generated automatically

Global description: The Smart Water Meter model captures water consumption, customer side leak alarms and associated flow rate originating from the smart water meters

List of properties

  • acquisitionStageFailure: No inductive response of metering device
  • address: The mailing address
  • alarmFlowPersistence: Alarm signifying continuous water use
  • alarmInProgress: Indicates that one or more alarms are in progress
  • alarmStopsLeaks: Alarm signifying the potential for an intermittent leak
  • alarmTamper: Alarm signifying the potential of mechanical tampering with the device
  • alarmWaterQuality: Alarm signifying the potential of backflows occurring
  • alternateName: An alternative name for this item
  • areaServed: The geographic area where a service or offered item is provided
  • dataProvider: A sequence of characters identifying the provider of the harmonised data entity.
  • dateCreated: Entity creation timestamp. This will usually be allocated by the storage platform.
  • dateModified: Timestamp of the last modification of the entity. This will usually be allocated by the storage platform.
  • description: A description of this item
  • id: Unique identifier of the entity
  • location: Geojson reference to the item. It can be Point, LineString, Polygon, MultiPoint, MultiLineString or MultiPolygon
  • maxFlow: Maximum flow rate observed during the last week
  • minFlow: Minimum flow rate observed during the last week
  • moduleTampered: Removal of module from metering device
  • name: The name of this item.
  • owner: A List containing a JSON encoded sequence of characters referencing the unique Ids of the owner(s)
  • persistenceFlowDuration: The duration that persistence flow (continuous flow) is recorded by the meter. Text field showing durations in minutes (m), hours (h) or days (d).
  • seeAlso: list of uri pointing to additional resources about the item
  • source: A sequence of characters giving the original source of the entity data as a URL. Recommended to be the fully qualified domain name of the source provider, or the URL to the source object.
  • type: It has to be WaterConsumptionObserved. NGSI type
  • waterConsumption: The water meter reading. Note – this is total volume passed through the meter and is therefore a cumulative total at the time

Required properties

  • id
  • type

Data Model description of properties

Sorted alphabetically (click for details)

full yaml details
WaterConsumptionObserved:    
  description: 'The Smart Water Meter model captures water consumption, customer side leak alarms and associated flow rate originating from the smart water meters'    
  properties:    
    acquisitionStageFailure:    
      description: 'No inductive response of metering device'    
      type: integer    
      x-ngsi:    
        type: Property    
    address:    
      description: 'The mailing address'    
      properties:    
        addressCountry:    
          description: 'Property. The country. For example, Spain. Model:''https://schema.org/addressCountry'''    
          type: string    
        addressLocality:    
          description: 'Property. The locality in which the street address is, and which is in the region. Model:''https://schema.org/addressLocality'''    
          type: string    
        addressRegion:    
          description: 'Property. The region in which the locality is, and which is in the country. Model:''https://schema.org/addressRegion'''    
          type: string    
        postOfficeBoxNumber:    
          description: 'Property. The post office box number for PO box addresses. For example, 03578. Model:''https://schema.org/postOfficeBoxNumber'''    
          type: string    
        postalCode:    
          description: 'Property. The postal code. For example, 24004. Model:''https://schema.org/https://schema.org/postalCode'''    
          type: string    
        streetAddress:    
          description: 'Property. The street address. Model:''https://schema.org/streetAddress'''    
          type: string    
      type: object    
      x-ngsi:    
        model: https://schema.org/address    
        type: Property    
    alarmFlowPersistence:    
      description: 'Alarm signifying continuous water use'    
      enum:    
        - 'Nothing to report'    
        - 'No persistence'    
        - 'In progress impacting persistence'    
        - 'In progress persistence'    
        - 'Past Persistence during the period'    
      type: string    
      x-ngsi:    
        type: Property    
    alarmInProgress:    
      description: 'Indicates that one or more alarms are in progress'    
      enum:    
        - 0    
        - 1    
      type: integer    
      x-ngsi:    
        type: Property    
    alarmStopsLeaks:    
      description: 'Alarm signifying the potential for an intermittent leak'    
      enum:    
        - 0    
        - 1    
      type: integer    
      x-ngsi:    
        type: Property    
    alarmTamper:    
      description: 'Alarm signifying the potential of mechanical tampering with the device'    
      enum:    
        - 0    
        - 1    
      type: integer    
      x-ngsi:    
        type: Property    
    alarmWaterQuality:    
      description: 'Alarm signifying the potential of backflows occurring'    
      enum:    
        - 0    
        - 1    
      type: integer    
      x-ngsi:    
        type: Property    
    alternateName:    
      description: 'An alternative name for this item'    
      type: string    
      x-ngsi:    
        type: Property    
    areaServed:    
      description: 'The geographic area where a service or offered item is provided'    
      type: string    
      x-ngsi:    
        model: https://schema.org/Text    
        type: Property    
    dataProvider:    
      description: 'A sequence of characters identifying the provider of the harmonised data entity.'    
      type: string    
      x-ngsi:    
        type: Property    
    dateCreated:    
      description: 'Entity creation timestamp. This will usually be allocated by the storage platform.'    
      format: date-time    
      type: string    
      x-ngsi:    
        type: Property    
    dateModified:    
      description: 'Timestamp of the last modification of the entity. This will usually be allocated by the storage platform.'    
      format: date-time    
      type: string    
      x-ngsi:    
        type: Property    
    description:    
      description: 'A description of this item'    
      type: string    
      x-ngsi:    
        type: Property    
    id:    
      anyOf: &waterconsumptionobserved_-_properties_-_owner_-_items_-_anyof    
        - description: 'Property. Identifier format of any NGSI entity'    
          maxLength: 256    
          minLength: 1    
          pattern: ^[\w\-\.\{\}\$\+\*\[\]`|~^@!,:\\]+$    
          type: string    
        - description: 'Property. Identifier format of any NGSI entity'    
          format: uri    
          type: string    
      description: 'Unique identifier of the entity'    
      x-ngsi:    
        type: Property    
    location:    
      description: 'Geojson reference to the item. It can be Point, LineString, Polygon, MultiPoint, MultiLineString or MultiPolygon'    
      oneOf:    
        - description: 'Geoproperty. Geojson reference to the item. Point'    
          properties:    
            bbox:    
              items:    
                type: number    
              minItems: 4    
              type: array    
            coordinates:    
              items:    
                type: number    
              minItems: 2    
              type: array    
            type:    
              enum:    
                - Point    
              type: string    
          required:    
            - type    
            - coordinates    
          title: 'GeoJSON Point'    
          type: object    
        - description: 'Geoproperty. Geojson reference to the item. LineString'    
          properties:    
            bbox:    
              items:    
                type: number    
              minItems: 4    
              type: array    
            coordinates:    
              items:    
                items:    
                  type: number    
                minItems: 2    
                type: array    
              minItems: 2    
              type: array    
            type:    
              enum:    
                - LineString    
              type: string    
          required:    
            - type    
            - coordinates    
          title: 'GeoJSON LineString'    
          type: object    
        - description: 'Geoproperty. Geojson reference to the item. Polygon'    
          properties:    
            bbox:    
              items:    
                type: number    
              minItems: 4    
              type: array    
            coordinates:    
              items:    
                items:    
                  items:    
                    type: number    
                  minItems: 2    
                  type: array    
                minItems: 4    
                type: array    
              type: array    
            type:    
              enum:    
                - Polygon    
              type: string    
          required:    
            - type    
            - coordinates    
          title: 'GeoJSON Polygon'    
          type: object    
        - description: 'Geoproperty. Geojson reference to the item. MultiPoint'    
          properties:    
            bbox:    
              items:    
                type: number    
              minItems: 4    
              type: array    
            coordinates:    
              items:    
                items:    
                  type: number    
                minItems: 2    
                type: array    
              type: array    
            type:    
              enum:    
                - MultiPoint    
              type: string    
          required:    
            - type    
            - coordinates    
          title: 'GeoJSON MultiPoint'    
          type: object    
        - description: 'Geoproperty. Geojson reference to the item. MultiLineString'    
          properties:    
            bbox:    
              items:    
                type: number    
              minItems: 4    
              type: array    
            coordinates:    
              items:    
                items:    
                  items:    
                    type: number    
                  minItems: 2    
                  type: array    
                minItems: 2    
                type: array    
              type: array    
            type:    
              enum:    
                - MultiLineString    
              type: string    
          required:    
            - type    
            - coordinates    
          title: 'GeoJSON MultiLineString'    
          type: object    
        - description: 'Geoproperty. Geojson reference to the item. MultiLineString'    
          properties:    
            bbox:    
              items:    
                type: number    
              minItems: 4    
              type: array    
            coordinates:    
              items:    
                items:    
                  items:    
                    items:    
                      type: number    
                    minItems: 2    
                    type: array    
                  minItems: 4    
                  type: array    
                type: array    
              type: array    
            type:    
              enum:    
                - MultiPolygon    
              type: string    
          required:    
            - type    
            - coordinates    
          title: 'GeoJSON MultiPolygon'    
          type: object    
      x-ngsi:    
        type: Geoproperty    
    maxFlow:    
      description: 'Maximum flow rate observed during the last week'    
      type: integer    
      x-ngsi:    
        type: Property    
        units: litres/hour    
    minFlow:    
      description: 'Minimum flow rate observed during the last week'    
      type: integer    
      x-ngsi:    
        type: Property    
        units: litres/hour    
    moduleTampered:    
      description: 'Removal of module from metering device'    
      type: integer    
      x-ngsi:    
        type: Property    
    name:    
      description: 'The name of this item.'    
      type: string    
      x-ngsi:    
        type: Property    
    owner:    
      description: 'A List containing a JSON encoded sequence of characters referencing the unique Ids of the owner(s)'    
      items:    
        anyOf: *waterconsumptionobserved_-_properties_-_owner_-_items_-_anyof    
        description: 'Property. Unique identifier of the entity'    
      type: array    
      x-ngsi:    
        type: Property    
    persistenceFlowDuration:    
      description: 'The duration that persistence flow (continuous flow) is recorded by the meter. Text  field showing durations in minutes (m), hours (h) or days (d).'    
      enum:    
        - '15m < 60m'    
        - '60m < 3h'    
        - '3h < 6h'    
        - '6h < 12h'    
        - '12h < 24h'    
        - '24h < 2d'    
        - '2d < 4d'    
        - '4d < 8d'    
        - '8d < 15d'    
        - '15d < 30d'    
        - '30d < 90d'    
        - '90d < 180d'    
        - '> 180d'    
      type: string    
      x-ngsi:    
        type: Property    
    seeAlso:    
      description: 'list of uri pointing to additional resources about the item'    
      oneOf:    
        - items:    
            format: uri    
            type: string    
          minItems: 1    
          type: array    
        - format: uri    
          type: string    
      x-ngsi:    
        type: Property    
    source:    
      description: 'A sequence of characters giving the original source of the entity data as a URL. Recommended to be the fully qualified domain name of the source provider, or the URL to the source object.'    
      type: string    
      x-ngsi:    
        type: Property    
    type:    
      description: 'It has to be WaterConsumptionObserved. NGSI type'    
      enum:    
        - WaterConsumptionObserved    
      type: string    
      x-ngsi:    
        type: Property    
    waterConsumption:    
      description: 'The water meter reading. Note – this is total volume passed through the meter and is therefore a cumulative total at the time'    
      type: integer    
      x-ngsi:    
        type: Property    
        units: 'Cubic meters'    
  required:    
    - id    
    - type    
  type: object    

Example payloads

WaterConsumptionObserved NGSI-v2 key-values Example

Here is an example of a WaterConsumptionObserved in JSON-LD format as key-values. This is compatible with NGSI-v2 when using options=keyValues and returns the context data of an individual entity.

{  
  "id": "urn:ngsi-ld:Consumer:Consumer01",  
  "type": "WaterConsumptionObserved",  
  "acquisitionStageFailure": 0,  
  "alarmFlowPersistence": "Nothing to report",  
  "alarmInProgress": 1,  
  "alarmMetrology": 1,  
  "alarmStopsLeaks": 0,  
  "alarmSystem": 1,  
  "alarmTamper": 0,  
  "alarmWaterQuality": 0,  
  "maxFlow": 620,  
  "minFlow": 1,  
  "moduleTampered": 1,  
  "persistenceFlowDuration": "3h < 6h",  
  "location": {  
    "type": "Point",  
    "coordinates": [  
      -4.128871,  
      50.95822  
    ]  
  },  
  "waterConsumption": 191051  
}  

WaterConsumptionObserved NGSI-v2 normalized Example

Here is an example of a WaterConsumptionObserved in JSON-LD format as normalized. This is compatible with NGSI-v2 when not using options and returns the context data of an individual entity.

{  
  "id": "urn:ngsi-ld:Consumer:Consumer01",  
  "type": "WaterConsumptionObserved",  
  "acquisitionStageFailure": {  
    "type": "Integer",  
    "value": 0  
  },  
  "alarmFlowPersistence": {  
    "type": "Text",  
    "value": "Nothing to report"  
  },  
  "alarmInProgress": {  
    "type": "Integer",  
    "value": 1  
  },  
  "alarmMetrology": {  
    "type": "Integer",  
    "value": 1  
  },  
  "alarmStopsLeaks": {  
    "type": "Integer",  
    "value": 0  
  },  
  "alarmSystem": {  
    "type": "Integer",  
    "value": 1  
  },  
  "alarmTamper": {  
    "type": "Integer",  
    "value": 0  
  },  
  "alarmWaterQuality": {  
    "type": "Integer",  
    "value": 0  
  },  
  "maxFlow": {  
    "type": "Number",  
    "value": 620  
  },  
  "minFlow": {  
    "type": "Number",  
    "value": 1  
  },  
  "moduleTampered": {  
    "type": "Integer",  
    "value": 1  
  },  
  "persistenceFlowDuration": {  
    "type": "Text",  
    "value": "3h < 6h"  
  },  
  "location": {  
    "type": "geo:json",  
    "value": {  
      "type": "Point",  
      "coordinates": [  
        -4.128871,  
        50.95822  
      ]  
    }  
  },  
  "waterConsumption": {  
    "type": "Number",  
    "value": 191051  
  }  
}  

WaterConsumptionObserved NGSI-LD key-values Example

Here is an example of a WaterConsumptionObserved in JSON-LD format as key-values. This is compatible with NGSI-LD when using options=keyValues and returns the context data of an individual entity.

{  
  "id": "urn:ngsi-ld:Consumer:Consumer01",  
  "type": "WaterConsumptionObserved",  
  "acquisitionStageFailure": 0,  
  "alarmFlowPersistence": "Nothing to report",  
  "alarmInProgress": 1,  
  "alarmMetrology": 1,  
  "alarmStopsLeaks": 0,  
  "alarmSystem": 1,  
  "alarmTamper": 0,  
  "alarmWaterQuality": 0,  
  "maxFlow": 620,  
  "minFlow": 1,  
  "moduleTampered": 1,  
  "persistenceFlowDuration": "3h < 6h",  
  "location": {  
    "type": "Point",  
    "coordinates": [  
      -4.128871,  
      50.95822  
    ]  
  },  
  "waterConsumption": 191051,  
  "@context": [  
    "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/master/WaterSmartMeter/jsonld-contexts/waterSmartMeter-compound.jsonld",  
    "https://smartdatamodels.org/context.jsonld"  
  ]  
}  

WaterConsumptionObserved NGSI-LD normalized Example

Here is an example of a WaterConsumptionObserved in JSON-LD format as normalized. This is compatible with NGSI-LD when not using options and returns the context data of an individual entity.

{  
    "id": "urn:ngsi-ld:Consumer:Consumer01",  
    "type": "WaterConsumptionObserved",  
    "acquisitionStageFailure": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 0,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "alarmFlowPersistence": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": "Nothing to report",  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "alarmInProgress": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 1,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "alarmMetrology": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 1,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "alarmStopsLeaks": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 0,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "alarmSystem": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 1,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "alarmTamper": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 0,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "alarmWaterQuality": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 0,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "maxFlow": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 620,  
        "observedAt": "2021-05-23T23:14:16.000Z",  
        "unitCode": "E32"  
    },  
    "minFlow": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 1,  
        "observedAt": "2021-05-23T23:14:16.000Z",  
        "unitCode": "E32"  
    },  
    "moduleTampered": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 1,  
        "observedAt": "2021-05-23T23:14:16.000Z"  
    },  
    "persistenceFlowDuration": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": "3h < 6h",  
        "observedAt": "2021-05-23T23:14:16.000Z",  
        "unitCode": "HUR"  
    },  
    "location": {  
        "type": "GeoProperty",  
        "value": {  
            "type": "Point",  
            "coordinates": [  
                -4.128871,  
                50.95822  
            ]  
        }  
    },  
    "waterConsumption": {  
        "type": "Property",  
        "observedBy": {  
            "type": "Relationship",  
            "object": "urn:ngsi-ld:Device:01"  
        },  
        "value": 191051,  
        "observedAt": "2021-05-23T23:14:16.000Z",  
        "unitCode": "LTR"  
    },  
    "@context": [  
        "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/master/WaterSmartMeter/jsonld-contexts/waterSmartMeter-compound.jsonld"  
    ]  
}  

See FAQ 10 to get an answer on how to deal with magnitude units

WaterConsumptionObserved adopters

description: This is a compilation list of the current adopters of the data model WaterConsumptionObserved of the Subject dataModel.WaterConsumption. All fields are non mandatory. More info at https://smart-data-models.github.io/data-models/templates/dataModel/CURRENT_ADOPTERS.yaml
currentAdopters:
-
 adopter: South West Water - Smart Metering
 description: Smart Water Meter model used to capture and analyse daily water consumption and leak alarms
 mail:
 organization: South West Water
 project: https://www.fiware4water.eu/
 comments:
 startDate: 21-6-21

This message will not self-destruct.

This message will not self destruct, because this project is open source.

@computate computate added ux-ui-containers Suggested skills: UX, UI, containers WaterConsumptionObserved visualization to visualize FIWARE WaterConsumptionObserved Smart Model Data using tools of your choice labels Dec 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ux-ui-containers Suggested skills: UX, UI, containers WaterConsumptionObserved visualization to visualize FIWARE WaterConsumptionObserved Smart Model Data using tools of your choice
Projects
Status: WaterConsumptionObserved - WaterConsumption - Smart Water
Development

No branches or pull requests

1 participant