1 Reply Latest reply on Aug 29, 2017 8:10 AM by rupadhyay-2 RSS
    rupadhyay-2 Explorer

    Creating a data model in the ThingWorx platform that is suitable for storing, analyzing and visualizing water consumption data

    First, let me explain the scenario and then I have several follow up questions.

    I am trying to develop a solution where I am calculating water usage of every Tap in a Flat (normally a flat would have around 10 to 30 taps).

    Taps have unique id (TapdID ).

    Then I am trying to aggregate the Consumption of each Tap in a Flat which will be total Water usage of each Tap in a Flat . This value keeps on updating itself until next Where is saved on to Data table with Consumption of Water against Each Date.


    ScreenShot of Properties of a Tap in A flat are as follows :



    Data coming from Taps are stored in value Stream , Screenshot of Value of Stream is follows:



    As we can see clearly , Currently , we have different TapIDs which have Water Consumption in one Flat (#802) which is in building (10 ) and the building is in Project (44).

    So , For a Flat , TapID and Rate of Flow of Water through the tap may change and we have calculate the Water Consumption based on this .


    1. Further, we have to aggregate , Flats consumption (with same building Id ) into one , which will be Total Water Consumption for that building .


    1. And similarly we have to aggregate the Water consumptions at of Building within same project (with similar projectIDs ) and show them as Water usage of entire project ?


    1. Do we need to write Roll up service at template level to do aggregation , say a service at Flat level (GetFlatWaterConsumption) to get total value of Water consumption , similarly at building and project level respectively ?


    Considering this would be used for many projects which could have several buildings and each building could have several flats and flat then could have several taps which are the end data points.  What would be the best data modelling practice around this use case.

    Comments and suggestion and explanation on this would be highly appreciated.


    Thank you in Advance !



    Ravi Upadhyay