Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

  • Hi,

    I wanna show in a point list time, name and value.

    I try it with the example, but it doesn't show me the name in the list, only timestamp and value. What did I misunderstand?

    <div layout="row">
        <ma-filtering-point-list flex ng-model="point1" auto-init="true"></ma-filtering-point-list>
        <md-input-container flex="25">
            <label>Number of latest values</label>
            <input ng-init="latestX=10" type="number" step="1" min="1" max="50" ng-model="latestX" ng-model-options="{debounce:500}">
        </md-input-container>
        <md-switch ng-init="realtime=true" ng-model="realtime">
            Realtime
        </md-switch>
    </div>
    
    <div layout="row">
    
    </div>
    
    <ma-point-values point="point1" values="point1Values" latest="latestX" realtime="realtime" rendered="true">
    </ma-point-values>
    
    <md-table-container>
        <table md-table>
            <thead md-head>
            <tr>
                <th md-column>Time</th>
                <th md-column>Name</th>
                <th md-column>Value</th>
            </tr>
            </thead>
            <tbody md-body>
            <tr ng-repeat="value in point1Values | orderBy:'-timestamp'">
                <td md-cell>{{value.timestamp | maMoment:'format':'ll LTS'}}</td>
                <td md-cell>{{value.name}}</td>
                <td md-cell>{{value.value}}</td>
            </tr>
            </tbody>
        </table>
    </md-table-container>
    

  • Hi Ralf,

    You can get the point's properties loaded via a

    <ma-get-point-value point="point1"></ma-get-point-value>
    <ma-point-values point="point1" values="point1Values" latest="latestX" realtime="realtime" rendered="true">
    </ma-point-values>
    

    and then modifying the table like,

    <md-table-container>
        <table md-table>
            <thead md-head>
            <tr>
                <th md-column>Time</th>
                <th md-column>Name</th>
                <th md-column>Value</th>
            </tr>
            </thead>
            <tbody md-body>
            <tr ng-repeat="value in point1Values | orderBy:'-timestamp'">
                <td md-cell>{{value.timestamp | maMoment:'format':'ll LTS'}}</td>
                <td md-cell>{{point1.name}}</td>
                <td md-cell>{{value.value}}</td>
            </tr>
            </tbody>
        </table>
    </md-table-container>
    

  • Thank you phildunlap, problem solved.

    Now I try it with a watchlist filtered by one room and via button valves, windowcontacts etc.

    0_1565889518336_0a11f187-f3cb-4492-a154-b0a9529928c8-image.png

    This works too but when I uncheck the filter, it shows me the points in a kind of puzzle...

    0_1565889698924_511b582d-9651-404a-a8e6-c13eb06ec039-image.png

    This is my code, can you help me please:

    <ma-watch-list-get watch-list-xid="zt_ezr_off_02_cel" ng-model="designer.watchListCEL" parameters = "designer.parameters" on-points-change="designer.points = $points">
    </ma-watch-list-get>
    <ma-get-point-value points="designer.points"></ma-get-point-value>
    <ma-point-values points="designer.points" values="point1Values" from="dateBar.from" to="dateBar.to"></ma-point-values>
    
    <div layout="row" layout-wrap="">
     
        <!-- Chart Einzelraumregelung -->
        <div flex="" class="md-card-dark">
            
            <md-toolbar class="md-whiteframe-1dp md-hue-3">
                <div class="md-toolbar-tools">
                    <h2 flex>
                        <span>Ereignisliste Einzelraumregelung</span>
                    </h2>
                    <div>
                        <md-button class="md-raised md-primary md-hue-1" ng-init="designer.parameters = {Raumnr: 'ZT02O0010_ER003', Parameter:''};" ng-click="designer.parameters = {Raumnr: 'ZT02O0010_ER003', Parameter:''};">Alle
                        </md-button>
                        <md-button class="md-raised md-primary md-hue-1" ng-click="designer.parameters = {Raumnr: 'ZT02O0010_ER003', Parameter:' Fensterkontakt'};">Fenster
                        </md-button>
                        <md-button class="md-raised md-primary md-hue-1" ng-click="designer.parameters = {Raumnr: 'ZT02O0010_ER003', Parameter:' Anforderung stat. HZG'};">
                            Heizung
                        </md-button>
                        <md-button class="md-raised md-primary md-hue-1" ng-click="designer.parameters = {Raumnr: 'ZT02O0010_ER003', Parameter:' Anforderung Kuehldecke'};">K├╝hldecke
                        </md-button>
                    </div>
                </div>
            </md-toolbar>
    
    <div>
            <md-table-container ng-init="tableOrder='timestamp'" style="height: 300px">
                <table md-table>
                    <thead md-head md-order="tableOrder">
                        <tr>
                            <th md-column>Index</th>
                            <th md-column md-order-by="timestamp">Zeitstempel</th>
                            <th md-column md-order-by>Signal</th>
                            <th md-column md-order-by>Zustand</th>
                        </tr>
                    </thead>
                   
                    <tbody md-body>
                        <tr ng-repeat="value in point1Values | orderBy: tableOrder">
                            <td>{{ $index + 1 }}</td>
                            <td md-cell>{{value.timestamp | maMoment:'format':'ll LTS'}}</td>
                            <td md-cell ng-repeat="point in designer.points" "value_{{point.xid}}">{{point.name}}</td>
                            <td md-cell ng-repeat="point in designer.points">{{value['value_' + point.xid]}}</td>
                        </tr>
                    </tbody>
                </table>
            </md-table-container>
            </div>
         <!--   <pre ng-bind="point1Values | json"></pre>   -->
        </div>
    </div>
    

  • In your first image only one point is likely on that watchlist, so the ng-repeat loops in the table only have one item to loop over. In the second image designer.points is longer than length 1, so it is looping over and creating many cells in the table row.

    I got Jared to help me figure out how to rewrite the values table, something more like this may be what you're looking for:

                   <tbody md-body ng-repeat="pv in point1Values" ng-init="pvIndex=$index">
                       <tr md-row ng-repeat="point in designer.points">
                           <td md-cell>{{ pvIndex + 1 }}</td>
                           <td md-cell>{{pv.timestamp}}</td>
                           <td md-cell>{{point.name}}</td>
                           <td md-cell>{{pv['value_' + point.xid]}}</td>
                       </tr>
                    </tbody>
    

    Note that index is the index in the values array, not the row number. The values array when requested as you have can have more than one points' value per index. Also note that this will produce rows for all data points for each value, and simply not have anything in the value column for that point if there was not a value at that time.


  • Thanks!

    Now the one point is like before, the all point filter is now in one column but showing all points if one point-value had changed:

    0_1565900113698_9b77f71a-a2c8-49bc-a817-132bcd05352d-image.png

    Something like a filter for empty values would help?

    Disable the index shows the same.


  • @Ralf I would suggest that you read the markup that Phillip posted and try and understand what it is doing, then try to adapt it to suit your needs. We are here to help you, not to do it for you.