Displaying sensor curves on the dashboard

Oh yes, thanks for the reminder!

I just tested:

  • Adding a new chart (editing an old one still works)
  • Not displaying the axes
  • Last hour by default

And it doesn’t work, with no particular logs on the browser side. By removing the chart, I have the same error logs, so it’s probably not that.

Done!

Test Suite:

  • The modification of the term « Bar » → « Histogram » is missing (if still relevant)
  • The red line is dashed, which prevents it from being selected when positioned between two dashes (see the cursor below - which is unfortunately light gray on the screenshot)
  • Preview only in editing if the box is modified (if possible) - 20s to display the Edit view… it’s long :joy:
  • I validate @lmilcent’s comment, but in detail:
    • It also happens in preview:
Preview without axis

  • If the axis is displayed, the curve appears,
  • If the axis is removed, the curve remains displayed:
Preview without axis after first displaying the axes

  • Same for display on the dashboard. Steps to reproduce:
  1. Edit / Graph Box / Device selection,

  2. Save
    Dashboard view: image

  3. Edit / Graph Box / Device selection,

  4. Axis Yes,

  5. Axis No,

  6. Save: The curve is now displayed:

Thanks for your feedback @VonOx! I agree with all the points, I’ll look into improving that :+1:

In the case of multi-curves, I wasn’t sure what to do, what I did is:

  • calculate the variation between the first and last value of each curve (on the selected interval)
  • Then I average all the variations

After that, I agree it’s not necessarily useful in all cases.

What calculation would you see?

Ok, and out of curiosity you can check the API response in the « network » tab, then you look at the data returned by this API call:

And you send the response here?

There must be something in your data that makes us go into an edge case, I would like to understand which one :slight_smile:

Thanks! :slight_smile:

@Terdious Thanks for your feedback and for insisting on the small points I had forgotten, I’ll fix that!!

ah, I’ll try to do the same to see if I reproduce

No worries, I’ll get it working @lmilcent

Multi-sensor variation

Other feedback: I display the humidity + temperature of each room here. The variation corresponds to nothing, neither the temperature (around 20°C) nor the humidity (around 60%).

Some solutions for me:

  1. Display two variation indicators, but this makes the display heavier
  2. Specify which is the main value that will be used (or take the first one, here humidity)
  3. Display nothing (but that would be a shame)


7-day (or more) variation

When the variation is displayed over more than 24 hours, it is a calculated value that is displayed. At the time, I found it strange that my computer + 2 screens only consumed 0.03W.

This is not a bug, but I would have liked to be able to display the current consumption in large, and the variation in red over the period.
For example: 80W current, -100% over the 7-day period.

EDIT: In fact, I am so obsessed with the graphs that I forget the rest of the possibilities :sweat_smile::

For the « Tasks » section, it’s still bugged on « NaN ». I think the bug occurs during a task.
Once this is done, the displayed values will probably be correct (bet).

Well, at the same time that doesn’t make sense, right? Initially, I thought about completely blocking the selection of different devices that don’t have the same type.

You can disable the display of the variation if it doesn’t make sense:

Mm, indeed

I explain what’s happening:

In fact, when you select a curve other than the last hour, I base it on the aggregated data which is not « live »

And so, the last bit of data that hasn’t been aggregated is always missing.

If you select the last 7 days, in reality it’s the last 8 days up to yesterday (the live data of the current day is not displayed)

But I agree, it’s not crazy, so I thought at first « Ok but it’s simple, I’ll stick the live data to the aggregated data », the idea was to make a mix of aggregation / live to have everything.

But it doesn’t work at all, in fact it gives a weird rendering, since the live data is not yet aggregated, so you end up with a curve that is aggregated and « quite general » over 80% of the curve, and the last 20% is hyper precise data, and it looks ugly

But I agree with you, in the idea you should have everything up to now.

I’ll think about it, but it’s a big piece…

Ok, I’ll check.

It’s fixed, the line is the same size for all graphs, no more dashes.

I added the legend when displaying multiple features!

However, this is only on the view with the axes. The view without axes, I don’t know why but Apexchart completely messes up when displaying the legend (the legend ends up mixed with the graph). I’ve tried techniques without success.

Fixed.

Fixed.

Fixed.

https://streamable.com/t6ernp

Bug fixed :slight_smile:

For my part, this won’t bother me. The view without axes I will only use for specific cases and anyway if you want to have the value you will have to put the cursor (or your finger) on the curve, so you will have the legend. It’s perfect for me on this side.

Great idea the button, I love it :heart_eyes:

I still haven’t managed to observe the thing ^^ I always end up after the fact ^^

Indeed for me in this case mixing categories doesn’t make sense and the user should themselves leave the variation deactivated. As we said it should remain a simplified view. However, I think it is very important to be able to leave the choice to mix different categories. In the example of @lmilcent it is very interesting to be able to display in the same curve the temperature and humidity of a room but the variation does not make sense in this box and would further complicate the editing of the view. However, in a dedicated view later on… :wink:

Nice one @Terdious, I’ve worked on optimizing the performance of the GET route for aggregated values for most of the morning, so the display should be faster for you!

I started with what you gave me (the stats you extracted), I formatted it in a spreadsheet and sorted it by execution time:

As you can see, what’s slow is the queries on the DB.

While investigating, I realized that at the beginning of the route, I was making a getDeviceFeatureBySelector query that could just be replaced with a call to the RAM cache.

I removed the query, and already that halves the number of queries!

Then, I realized that the call to the « Last 24h » view did not go through the aggregated data, but through the live data :thinking:

In fact, this case was missing in the queries, and instead of calculating from the aggregated data, we were going through the live data (which is much slower)

By using the aggregated data, I manage to ensure that at most, the query returns 288 states, which is super small (I don’t know how often data is inserted? In 24h, how many states are written?)

I’m finalizing all this, and I’ll let you know when a new image is ready for testing!

Hop, new build available on the tag:

gladysassistant/gladys:chart

As usual, with all the fixes above :slight_smile:

@Terdious looking forward to your feedback on performance!

After a pull this morning :+1:

What bothers me is related to the « debate » between Device name or feature name.
We can see that if I want a correct legend (which helps me, right!), I need to rename the features.

My first graph displays the room temperatures

  • Blue => my son
  • Red => my daughter
  • Yellow => my room

For me, it doesn’t make sense to rename the feature with the first names, for example.

So, shouldn’t the legend use the device name?

It’s magnificent! :heart_eyes:

This debate drives me crazy :joy:

Actually, the problem is that each case is unique. In your case, it makes sense, but in the case of @Terdious, it doesn’t make sense at all. So there will inevitably be someone frustrated (fight it out :p)

@VonOx these are devices from which integration?

How do other smart home boxes do it?

Or display both?

Like this:

Temperature (Room XXX) - Temperature (Room YYY)

Z2M

If I rename my feature in this box, I’ll have my son’s name everywhere

We simply override the legend

Edit: He’s annoying @Terdious :grin:

There’s not enough room for me, and too much information kills the information :grinning:

On my side, I notice a significant increase in the loading speed of graphics. What could take up to 5 seconds now takes less than 1 to 2! :clap: Bravo for the optimization!

If all developers were like you in this regard, the web wouldn’t require so much computing power :sweat_smile:

Aha thanks :slight_smile: Performance is my job, I’m a backend engineer on the side and it’s my life to build solid infrastructure, fast backends, optimization, I love it :stuck_out_tongue:

Hello !!

Logs docker
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-centre-equitherapie): 0.42ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-2-centre-equitherapie): 0.049ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-centre-equitherapie): 587.672ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-centre-equitherapie): 0.393ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-centre-equitherapie): 0.383ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-2-centre-equitherapie): 676.25ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-2-centre-equitherapie): 0.06ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-2-centre-equitherapie): 0.022ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.061ms
getDeviceFeaturesAggregates: Aggregate by hourly, from Thu Oct 14 2021 06:04:54 GMT+0200 (Central European Summer Time), 138 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-2-centre-equitherapie): 102.103ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.626ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 3.578ms
2021-10-15T06:05:10+0200 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval daily
2021-10-15T06:05:10+0200 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Calculating aggregates device feature state for interval monthly
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.054ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 582.076ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.079ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.055ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-centre-equitherapie): 0.042ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-3-centre-equitherapie): 0.035ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-maison-dublem): 0.035ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.036ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-2-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-centre-equitherapie): 720.035ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-centre-equitherapie): 0.387ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-centre-equitherapie): 0.03ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-2-centre-equitherapie): 720.198ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-2-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-2-centre-equitherapie): 0.209ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-3-centre-equitherapie): 2.553s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-3-centre-equitherapie): 0.457ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-3-centre-equitherapie): 0.022ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-maison-dublem): 2.563s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-maison-dublem): 0.176ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-maison-dublem): 0.23ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 2.565s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.062ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.022ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-3-centre-equitherapie): 0.044ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-3-centre-equitherapie): 117.822ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-3-centre-equitherapie): 0.308ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-3-centre-equitherapie): 0.025ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.039ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.041ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.036ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-3-centre-equitherapie): 0.037ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-3-centre-equitherapie): 0.038ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.049ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-3-centre-equitherapie): 1.014s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-3-centre-equitherapie): 0.408ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-3-centre-equitherapie): 0.021ms
getDeviceFeaturesAggregates: Aggregate by monthly, from Thu Oct 15 2020 06:05:35 GMT+0200 (Central European Summer Time), 226 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-1-centre-equitherapie): 1.733s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.479ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 1.688ms
getDeviceFeaturesAggregates: Aggregate by monthly, from Thu Oct 15 2020 06:05:35 GMT+0200 (Central European Summer Time), 229 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-2-centre-equitherapie): 1.742s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.458ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 1.629ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 1.724s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.05ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.019ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-maison-dublem): 0.045ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-1-centre-equitherapie): 2.414s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.052ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 0.025ms
getDeviceFeaturesAggregates: Aggregate by monthly, from Thu Oct 15 2020 06:05:35 GMT+0200 (Central European Summer Time), 236 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-3-centre-equitherapie): 2.412s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-3-centre-equitherapie): 0.55ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-3-centre-equitherapie): 1.492ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-2-centre-equitherapie): 2.966s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.06ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 0.026ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-maison-dublem): 1.636s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-maison-dublem): 0.056ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-maison-dublem): 0.022ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.038ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.035ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-1-centre-equitherapie): 1.159s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.046ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 0.025ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 1.162s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.058ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.035ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 1.157s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.033ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.02ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.04ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.042ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.033ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-1-centre-equitherapie): 1.154s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.052ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 0.034ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 1.155s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.058ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.033ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 1.156s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.086ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.024ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.042ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 89.092ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.044ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.054ms
2021-10-15T06:05:48+0200 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval monthly
Info page web

Le 1er chargement met toujours une 10aine de secondes

Par contre sur mon Dashboard contenant un mix de box appareil, caméra et 3 courbes - C’est très/suffisamment rapide :

Logs docker
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-2-centre-equitherapie): 0.455ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-2-centre-equitherapie): 159.074ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-2-centre-equitherapie): 0.241ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-2-centre-equitherapie): 0.408ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-centre-equitherapie): 0.099ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(intensite-totale-centre-equitherapie): 0.055ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(intensite-totale-batiment-partie-perso): 0.039ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(intensite-totale-maison-dublem): 0.036ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.048ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(tension-moyenne-centre-equitherapie): 0.045ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(tension-moyenne-batiment-partie-perso): 0.064ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(tension-moyenne-maison-dublem): 0.037ms
getDeviceFeaturesAggregates: Aggregate by hourly, from Thu Oct 14 2021 06:22:08 GMT+0200 (Central European Summer Time), 138 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-2-centre-equitherapie): 1.304s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.657ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 3.528ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(tension-moyenne-centre-equitherapie): 1.303s
getDeviceFeaturesAggregates.buildingDownsamplingArray(tension-moyenne-centre-equitherapie): 0.052ms
getDeviceFeaturesAggregates.downsamplingData(tension-moyenne-centre-equitherapie): 0.038ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 0 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(tension-moyenne-batiment-partie-perso): 1.304s
getDeviceFeaturesAggregates.buildingDownsamplingArray(tension-moyenne-batiment-partie-perso): 0.044ms
getDeviceFeaturesAggregates.downsamplingData(tension-moyenne-batiment-partie-perso): 0.039ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(tension-moyenne-maison-dublem): 1.304s
getDeviceFeaturesAggregates.buildingDownsamplingArray(tension-moyenne-maison-dublem): 0.069ms
getDeviceFeaturesAggregates.downsamplingData(tension-moyenne-maison-dublem): 0.045ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(intensite-totale-maison-dublem): 1.332s
getDeviceFeaturesAggregates.buildingDownsamplingArray(intensite-totale-maison-dublem): 0.049ms
getDeviceFeaturesAggregates.downsamplingData(intensite-totale-maison-dublem): 0.025ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 0 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(intensite-totale-batiment-partie-perso): 1.334s
getDeviceFeaturesAggregates.buildingDownsamplingArray(intensite-totale-batiment-partie-perso): 0.023ms
getDeviceFeaturesAggregates.downsamplingData(intensite-totale-batiment-partie-perso): 0.021ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-centre-equitherapie): 1.339s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-centre-equitherapie): 0.07ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-centre-equitherapie): 0.049ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(intensite-totale-centre-equitherapie): 1.348s
getDeviceFeaturesAggregates.buildingDownsamplingArray(intensite-totale-centre-equitherapie): 0.053ms
getDeviceFeaturesAggregates.downsamplingData(intensite-totale-centre-equitherapie): 0.022ms
Info page web

Donc résultat : Seul une vue dédiée Dashboard est longue à afficher. J’ai 18 courbes « Test » dessus. Mais ça ne me choque pas pour le coup, et ne me dérange pas. Cette vue sera affichée soit rarement, soit sur une vue sur une tablette dédiée à l’avenir.

Si je reprend le même exemple que @VonOx, ici si je ne prend pas le nom des features je me retrouverais avec 3x3 fois le même nom de device ce qui ne fait plus sens. C’est déjà compliqué car on ne peut pas modifier l’ordre d’affichage. Chaque « Energie » et « Energie Totale » serait donc indiscernable :

Il y a de nombreuse solutions pour ne pas faire de « frustré ». Mais si pas possible alors tant pis, je n’ai pas l’envie que quelqu’un soit « puni » à cause de mes demandes ou propositions. J’abandonne le sujet ^^ Le seul sujet c’est que pour le moment plusieurs personnes font la remarque qu’il est impossible de distinguer certains appareils dans les sélections. Comment résoudre cela sans que l’utilisateur soit obliger de créer des appareils fictifs plus scènes pour les gérer (Tasmota multi prises, etc.). A lépoque (il y a plus d’un an) j’avais soumis l’idée de séparer les devices (Type Dual ou CH4 de Sonoff) comptant plusieurs commutateur en plusieurs devices.

:sweat_smile: J’éviterais dorénavant ^^ :kissing_heart: