feat: update lake index, sync scraping scripts, and prune unused data files

This commit is contained in:
David Fencl
2026-06-05 22:24:47 +02:00
parent 61a8af109c
commit 5411bd16ff
33 changed files with 1793 additions and 3127 deletions
-167
View File
@@ -1,167 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 463.41,
"flow": null
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T19:15:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 463.42,
"flow": null
},
{
"timestamp": "2026-06-05T19:45:00.000Z",
"level": 463.42,
"flow": null
}
]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 520.64,
"flow": 0.78
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 520.59,
"flow": 0.75
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 520.78,
"flow": 0.72
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 520.94,
"flow": 0.69
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 521.01,
"flow": 0.69
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 521.14,
"flow": 0.63
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 521.18,
"flow": 0.64
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 521.18,
"flow": 0.65
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 521.18,
"flow": 0.64
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 521.18,
"flow": 0.65
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 521.18,
"flow": 0.64
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 521.18,
"flow": 0.65
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 521.18,
"flow": 0.65
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 521.19,
"flow": 0.65
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 521.19,
"flow": 0.65
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 521.19,
"flow": 0.64
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 521.19,
"flow": 0.65
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 521.2,
"flow": 0.64
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 521.2,
"flow": 0.65
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 521.2,
"flow": 0.65
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 521.2,
"flow": 0.63
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 521.21,
"flow": 0.64
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 521.21,
"flow": 0.65
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 521.21,
"flow": 0.65
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 521.21,
"flow": 0.64
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 521.22,
"flow": 0.64
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 521.22,
"flow": 0.64
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 521.22,
"flow": 0.65
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 521.22,
"flow": 0.62
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 521.22,
"flow": 0.65
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 521.22,
"flow": 0.63
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 521.22,
"flow": 0.65
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 521.23,
"flow": 0.64
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 521.23,
"flow": 0.65
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 521.23,
"flow": 0.64
}
]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 292.88,
"flow": 0.02
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 292.87,
"flow": 0.02
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 292.9,
"flow": 0.02
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 292.91,
"flow": 0.02
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 292.91,
"flow": null
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 292.91,
"flow": null
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 292.91,
"flow": null
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 292.91,
"flow": null
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 292.91,
"flow": null
}
]
-167
View File
@@ -1,167 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 632.73,
"flow": null
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 632.74,
"flow": null
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 632.76,
"flow": null
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 632.77,
"flow": null
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 632.77,
"flow": null
}
]
-167
View File
@@ -1,167 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 635.67,
"flow": null
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 635.67,
"flow": null
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 635.69,
"flow": null
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 635.71,
"flow": null
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 635.7,
"flow": null
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 635.7,
"flow": null
}
]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 345,
"flow": 0.56
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 344.95,
"flow": 0.56
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 344.99,
"flow": 0.57
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 345.15,
"flow": 0.57
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 345.18,
"flow": 0.55
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 345.18,
"flow": 0.56
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 345.17,
"flow": 0.55
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 345.16,
"flow": 0.56
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 345.17,
"flow": 0.56
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 345.18,
"flow": 0.56
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 345.18,
"flow": 1.19
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 345.18,
"flow": 1.19
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 345.17,
"flow": 1.18
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 345.17,
"flow": 1.18
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 345.17,
"flow": 1.18
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 345.17,
"flow": 1.19
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 345.16,
"flow": 1.19
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 345.16,
"flow": 1.54
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 345.15,
"flow": 1.56
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 345.15,
"flow": 1.54
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 345.15,
"flow": 1.54
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 345.14,
"flow": 1.54
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 345.14,
"flow": 1.53
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 345.14,
"flow": 1.53
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 345.14,
"flow": 1.53
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 345.14,
"flow": 1.53
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 345.14,
"flow": 1.53
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 345.14,
"flow": 1.53
}
]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 640.65,
"flow": 0.01
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 640.65,
"flow": 0.01
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 640.68,
"flow": 0.01
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 640.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 640.67,
"flow": 0.01
}
]
+95 -53
View File
@@ -2,176 +2,218 @@
{ {
"timestamp": "2026-05-30T05:00:00.000Z", "timestamp": "2026-05-30T05:00:00.000Z",
"level": 467.48, "level": 467.48,
"flow": 0.9 "flow": 0.9,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-05-31T05:00:00.000Z", "timestamp": "2026-05-31T05:00:00.000Z",
"level": 467.44, "level": 467.44,
"flow": 0.9 "flow": 0.9,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-01T05:00:00.000Z", "timestamp": "2026-06-01T05:00:00.000Z",
"level": 467.47, "level": 467.47,
"flow": 0.9 "flow": 0.9,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-02T05:00:00.000Z", "timestamp": "2026-06-02T05:00:00.000Z",
"level": 467.54, "level": 467.54,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-03T05:00:00.000Z", "timestamp": "2026-06-03T05:00:00.000Z",
"level": 467.58, "level": 467.58,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T05:00:00.000Z", "timestamp": "2026-06-04T05:00:00.000Z",
"level": 467.6, "level": 467.6,
"flow": 0.7 "flow": 0.7,
}, "inflow": 0,
{ "volume": 0
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 467.65,
"flow": 0.7
}, },
{ {
"timestamp": "2026-06-04T21:00:00.000Z", "timestamp": "2026-06-04T21:00:00.000Z",
"level": 467.66, "level": 467.66,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T22:00:00.000Z", "timestamp": "2026-06-04T22:00:00.000Z",
"level": 467.66, "level": 467.66,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T23:00:00.000Z", "timestamp": "2026-06-04T23:00:00.000Z",
"level": 467.67, "level": 467.67,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T00:00:00.000Z", "timestamp": "2026-06-05T00:00:00.000Z",
"level": 467.67, "level": 467.67,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T01:00:00.000Z", "timestamp": "2026-06-05T01:00:00.000Z",
"level": 467.68, "level": 467.68,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T02:00:00.000Z", "timestamp": "2026-06-05T02:00:00.000Z",
"level": 467.68, "level": 467.68,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T03:00:00.000Z", "timestamp": "2026-06-05T03:00:00.000Z",
"level": 467.68, "level": 467.68,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T04:00:00.000Z", "timestamp": "2026-06-05T04:00:00.000Z",
"level": 467.68, "level": 467.68,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T05:00:00.000Z", "timestamp": "2026-06-05T05:00:00.000Z",
"level": 467.68, "level": 467.68,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T06:00:00.000Z", "timestamp": "2026-06-05T06:00:00.000Z",
"level": 467.69, "level": 467.69,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T07:00:00.000Z", "timestamp": "2026-06-05T07:00:00.000Z",
"level": 467.69, "level": 467.69,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T08:00:00.000Z", "timestamp": "2026-06-05T08:00:00.000Z",
"level": 467.69, "level": 467.69,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T09:00:00.000Z", "timestamp": "2026-06-05T09:00:00.000Z",
"level": 467.69, "level": 467.69,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T10:00:00.000Z", "timestamp": "2026-06-05T10:00:00.000Z",
"level": 467.7, "level": 467.7,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T11:00:00.000Z", "timestamp": "2026-06-05T11:00:00.000Z",
"level": 467.7, "level": 467.7,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T12:00:00.000Z", "timestamp": "2026-06-05T12:00:00.000Z",
"level": 467.7, "level": 467.7,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T13:00:00.000Z", "timestamp": "2026-06-05T13:00:00.000Z",
"level": 467.7, "level": 467.7,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T14:00:00.000Z", "timestamp": "2026-06-05T14:00:00.000Z",
"level": 467.71, "level": 467.71,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T15:00:00.000Z", "timestamp": "2026-06-05T15:00:00.000Z",
"level": 467.71, "level": 467.71,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T16:00:00.000Z", "timestamp": "2026-06-05T16:00:00.000Z",
"level": 467.71, "level": 467.71,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T17:00:00.000Z", "timestamp": "2026-06-05T17:00:00.000Z",
"level": 467.71, "level": 467.71,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T18:00:00.000Z", "timestamp": "2026-06-05T18:00:00.000Z",
"level": 467.71, "level": 467.71,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:00:00.000Z", "timestamp": "2026-06-05T19:00:00.000Z",
"level": 467.72, "level": 467.72,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:10:00.000Z", "timestamp": "2026-06-05T20:00:00.000Z",
"level": 467.72, "level": 467.72,
"flow": 0.7 "flow": 0.7,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:20:00.000Z", "timestamp": "2026-06-05T20:10:00.000Z",
"level": 467.72, "level": 467.72,
"flow": 0.7 "flow": 0,
}, "inflow": 2.88,
{ "volume": 26.49
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 467.72,
"flow": 0.7
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 467.72,
"flow": 0.7
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 467.72,
"flow": null
} }
] ]
+95 -53
View File
@@ -2,176 +2,218 @@
{ {
"timestamp": "2026-05-30T05:00:00.000Z", "timestamp": "2026-05-30T05:00:00.000Z",
"level": 353.02, "level": 353.02,
"flow": 2.46 "flow": 2.46,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-05-31T05:00:00.000Z", "timestamp": "2026-05-31T05:00:00.000Z",
"level": 352.99, "level": 352.99,
"flow": 2.48 "flow": 2.48,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-01T05:00:00.000Z", "timestamp": "2026-06-01T05:00:00.000Z",
"level": 352.97, "level": 352.97,
"flow": 2.48 "flow": 2.48,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-02T05:00:00.000Z", "timestamp": "2026-06-02T05:00:00.000Z",
"level": 352.95, "level": 352.95,
"flow": 2.49 "flow": 2.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-03T05:00:00.000Z", "timestamp": "2026-06-03T05:00:00.000Z",
"level": 352.92, "level": 352.92,
"flow": 2.5 "flow": 2.5,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T05:00:00.000Z", "timestamp": "2026-06-04T05:00:00.000Z",
"level": 352.89, "level": 352.89,
"flow": 2.52 "flow": 2.52,
}, "inflow": 0,
{ "volume": 0
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 352.88,
"flow": 2.52
}, },
{ {
"timestamp": "2026-06-04T21:00:00.000Z", "timestamp": "2026-06-04T21:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T22:00:00.000Z", "timestamp": "2026-06-04T22:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T23:00:00.000Z", "timestamp": "2026-06-04T23:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T00:00:00.000Z", "timestamp": "2026-06-05T00:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T01:00:00.000Z", "timestamp": "2026-06-05T01:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T02:00:00.000Z", "timestamp": "2026-06-05T02:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T03:00:00.000Z", "timestamp": "2026-06-05T03:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T04:00:00.000Z", "timestamp": "2026-06-05T04:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T05:00:00.000Z", "timestamp": "2026-06-05T05:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T06:00:00.000Z", "timestamp": "2026-06-05T06:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T07:00:00.000Z", "timestamp": "2026-06-05T07:00:00.000Z",
"level": 352.87, "level": 352.87,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T08:00:00.000Z", "timestamp": "2026-06-05T08:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T09:00:00.000Z", "timestamp": "2026-06-05T09:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T10:00:00.000Z", "timestamp": "2026-06-05T10:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T11:00:00.000Z", "timestamp": "2026-06-05T11:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.53 "flow": 2.53,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T12:00:00.000Z", "timestamp": "2026-06-05T12:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.53 "flow": 2.53,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T13:00:00.000Z", "timestamp": "2026-06-05T13:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.53 "flow": 2.53,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T14:00:00.000Z", "timestamp": "2026-06-05T14:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.53 "flow": 2.53,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T15:00:00.000Z", "timestamp": "2026-06-05T15:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.53 "flow": 2.53,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T16:00:00.000Z", "timestamp": "2026-06-05T16:00:00.000Z",
"level": 352.85, "level": 352.85,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T17:00:00.000Z", "timestamp": "2026-06-05T17:00:00.000Z",
"level": 352.86, "level": 352.86,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T18:00:00.000Z", "timestamp": "2026-06-05T18:00:00.000Z",
"level": 352.85, "level": 352.85,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:00:00.000Z", "timestamp": "2026-06-05T19:00:00.000Z",
"level": 352.85, "level": 352.85,
"flow": 2.52 "flow": 2.52,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:10:00.000Z", "timestamp": "2026-06-05T20:00:00.000Z",
"level": 352.85, "level": 352.85,
"flow": 2.52 "flow": 2.53,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:20:00.000Z", "timestamp": "2026-06-05T20:10:00.000Z",
"level": 352.85, "level": 352.85,
"flow": 2.52 "flow": 2.53,
}, "inflow": 1.46,
{ "volume": 32.35
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 352.86,
"flow": 2.52
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 352.85,
"flow": 2.52
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 352.85,
"flow": 2.53
} }
] ]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 530.77,
"flow": 0.5
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 530.77,
"flow": 0.48
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 530.76,
"flow": 0.51
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 530.76,
"flow": 0.48
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 530.74,
"flow": 0.48
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 530.72,
"flow": 0.48
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 530.71,
"flow": 0.49
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 530.71,
"flow": 0.49
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 530.71,
"flow": 0.49
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 530.7,
"flow": 0.49
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 530.7,
"flow": 0.35
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 530.7,
"flow": 0.35
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 530.7,
"flow": 0.35
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 530.7,
"flow": 0.35
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 530.7,
"flow": 0.35
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 530.7,
"flow": 0.35
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 530.7,
"flow": 0.35
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 530.7,
"flow": 0.35
}
]
-1
View File
@@ -1 +0,0 @@
[]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 563.6,
"flow": 0.01
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 563.59,
"flow": 0.01
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 563.65,
"flow": 0.02
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 563.68,
"flow": 0.01
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 563.68,
"flow": 0.01
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 563.66,
"flow": 0.01
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 563.67,
"flow": 0.01
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 563.67,
"flow": null
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 563.67,
"flow": null
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 563.67,
"flow": null
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 563.67,
"flow": null
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 563.67,
"flow": null
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 563.67,
"flow": null
}
]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 670.62,
"flow": 0.01
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 670.6,
"flow": 0.01
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 670.61,
"flow": 0.01
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 670.6,
"flow": 0.01
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 670.58,
"flow": 0.01
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 670.57,
"flow": 0.01
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 670.56,
"flow": 0.01
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 670.56,
"flow": null
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 670.56,
"flow": null
}
]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 313.38,
"flow": 1.44
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 313.35,
"flow": 1.46
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 313.35,
"flow": 1.35
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 313.44,
"flow": 0.97
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 313.5,
"flow": 0.98
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 313.56,
"flow": 0.99
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 313.59,
"flow": 1.05
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 313.59,
"flow": 0.94
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 313.59,
"flow": 0.94
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 313.59,
"flow": 0.94
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 313.59,
"flow": 0.94
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 313.59,
"flow": 0.95
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 313.6,
"flow": 0.95
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 313.6,
"flow": 0.95
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 313.6,
"flow": 1.12
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 313.59,
"flow": 2.85
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 313.59,
"flow": 3.15
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 313.58,
"flow": 3.11
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 313.58,
"flow": 2.97
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 313.57,
"flow": 2.92
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 313.57,
"flow": 2.9
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 313.56,
"flow": 2.88
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 313.55,
"flow": 2.97
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 313.55,
"flow": 3.07
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 313.54,
"flow": 3.14
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 313.53,
"flow": 3.12
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 313.53,
"flow": 3.12
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 313.52,
"flow": 3.11
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 313.52,
"flow": 3.1
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 313.51,
"flow": 3.1
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 313.51,
"flow": 3.1
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 313.51,
"flow": 3.1
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 313.51,
"flow": 3.1
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 313.51,
"flow": 3.1
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 313.51,
"flow": 3.1
}
]
-177
View File
@@ -1,177 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 385,
"flow": 0.01
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 385,
"flow": 0.01
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 385.01,
"flow": 0.05
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 385.01,
"flow": 0.02
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 385.01,
"flow": 0.03
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T19:10:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T19:20:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 385.01,
"flow": 0.04
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 385.01,
"flow": 0.04
}
]
+219
View File
@@ -0,0 +1,219 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 369.53,
"flow": 17.2,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 369.53,
"flow": 17.18,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 369.84,
"flow": 17.17,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 370.01,
"flow": 17.16,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 369.95,
"flow": 17.13,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 369.85,
"flow": 17.15,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 369.77,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 369.79,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 369.79,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 369.81,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 369.82,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 369.83,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 369.83,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 369.84,
"flow": 2.5,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 369.84,
"flow": 17.13,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 369.83,
"flow": 17.1,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 369.82,
"flow": 20.76,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 369.8,
"flow": 17.23,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 369.82,
"flow": 5.67,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 369.82,
"flow": 0.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 369.83,
"flow": 3.13,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 369.82,
"flow": 12.94,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 369.82,
"flow": 14.19,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 369.81,
"flow": 14.18,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 369.8,
"flow": 14.18,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 369.79,
"flow": 14.18,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 369.79,
"flow": 14.18,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 369.79,
"flow": 14.18,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 369.78,
"flow": 18.46,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:00:00.000Z",
"level": 369.77,
"flow": 14.28,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:10:00.000Z",
"level": 369.78,
"flow": 5,
"inflow": 10.82,
"volume": 20.2
}
]
+219
View File
@@ -0,0 +1,219 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 352.46,
"flow": 18.54,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 352.45,
"flow": 18.07,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 352.48,
"flow": 0.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 352.49,
"flow": 0.06,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 352.58,
"flow": 18.97,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 352.51,
"flow": 19.06,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 352.53,
"flow": 19.11,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 352.5,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 352.47,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 352.44,
"flow": 18.84,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 352.43,
"flow": 0.21,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 352.44,
"flow": 0.21,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 352.46,
"flow": 0.21,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 352.47,
"flow": 0.21,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 352.51,
"flow": 0.21,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 352.56,
"flow": 0.21,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 352.58,
"flow": 19.09,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 352.56,
"flow": 35.03,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 352.53,
"flow": 20.55,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 352.51,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 352.48,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 352.47,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 352.46,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 352.46,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 352.45,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 352.45,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 352.45,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 352.45,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 352.45,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:00:00.000Z",
"level": 352.45,
"flow": 19.01,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:10:00.000Z",
"level": 352.45,
"flow": 19.01,
"inflow": 14.13,
"volume": 2.75
}
]
+96 -54
View File
@@ -2,176 +2,218 @@
{ {
"timestamp": "2026-05-30T05:00:00.000Z", "timestamp": "2026-05-30T05:00:00.000Z",
"level": 723.04, "level": 723.04,
"flow": 1.03 "flow": 1.03,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-05-31T05:00:00.000Z", "timestamp": "2026-05-31T05:00:00.000Z",
"level": 723.06, "level": 723.06,
"flow": 1.03 "flow": 1.03,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-01T05:00:00.000Z", "timestamp": "2026-06-01T05:00:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 30.94 "flow": 30.94,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-02T05:00:00.000Z", "timestamp": "2026-06-02T05:00:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 1.51 "flow": 1.51,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-03T05:00:00.000Z", "timestamp": "2026-06-03T05:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T05:00:00.000Z", "timestamp": "2026-06-04T05:00:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 1.49 "flow": 1.49,
}, "inflow": 0,
{ "volume": 0
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 723.08,
"flow": 1.49
}, },
{ {
"timestamp": "2026-06-04T21:00:00.000Z", "timestamp": "2026-06-04T21:00:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T22:00:00.000Z", "timestamp": "2026-06-04T22:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T23:00:00.000Z", "timestamp": "2026-06-04T23:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T00:00:00.000Z", "timestamp": "2026-06-05T00:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T01:00:00.000Z", "timestamp": "2026-06-05T01:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T02:00:00.000Z", "timestamp": "2026-06-05T02:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T03:00:00.000Z", "timestamp": "2026-06-05T03:00:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T04:00:00.000Z", "timestamp": "2026-06-05T04:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T05:00:00.000Z", "timestamp": "2026-06-05T05:00:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T06:00:00.000Z", "timestamp": "2026-06-05T06:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T07:00:00.000Z", "timestamp": "2026-06-05T07:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T08:00:00.000Z", "timestamp": "2026-06-05T08:00:00.000Z",
"level": 723.1, "level": 723.1,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T09:00:00.000Z", "timestamp": "2026-06-05T09:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T10:00:00.000Z", "timestamp": "2026-06-05T10:00:00.000Z",
"level": 723.1, "level": 723.1,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T11:00:00.000Z", "timestamp": "2026-06-05T11:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T12:00:00.000Z", "timestamp": "2026-06-05T12:00:00.000Z",
"level": 723.1, "level": 723.1,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T13:00:00.000Z", "timestamp": "2026-06-05T13:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T14:00:00.000Z", "timestamp": "2026-06-05T14:00:00.000Z",
"level": 723.1, "level": 723.1,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T15:00:00.000Z", "timestamp": "2026-06-05T15:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T16:00:00.000Z", "timestamp": "2026-06-05T16:00:00.000Z",
"level": 723.1, "level": 723.1,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T17:00:00.000Z", "timestamp": "2026-06-05T17:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 1.49 "flow": 1.49,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T18:00:00.000Z", "timestamp": "2026-06-05T18:00:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 13.76 "flow": 13.76,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:00:00.000Z", "timestamp": "2026-06-05T19:00:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 34.78 "flow": 34.78,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:10:00.000Z", "timestamp": "2026-06-05T20:00:00.000Z",
"level": 723.09, "level": 723.08,
"flow": 34.85 "flow": 37.78,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:20:00.000Z", "timestamp": "2026-06-05T20:10:00.000Z",
"level": 723.09, "level": 723.09,
"flow": 34.87 "flow": 33.61,
}, "inflow": 2.51,
{ "volume": 199.27
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 723.09,
"flow": 34.87
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 723.09,
"flow": 34.87
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 723.09,
"flow": 34.87
} }
] ]
+219
View File
@@ -0,0 +1,219 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 561.4,
"flow": 6.37,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 560.37,
"flow": 7.06,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 559,
"flow": 7.6,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 559.91,
"flow": 6.83,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 560.55,
"flow": 6.41,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 560.71,
"flow": 6.37,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 560.27,
"flow": 6.37,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 560.23,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 560.18,
"flow": 6.33,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 560.14,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 560.09,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 560.04,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 560,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 559.95,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 559.9,
"flow": 6.37,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 559.86,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 559.81,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 559.76,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 559.71,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 559.65,
"flow": 6.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 559.6,
"flow": 6.33,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 559.54,
"flow": 6.33,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 559.48,
"flow": 6.33,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 559.42,
"flow": 6.33,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 559.35,
"flow": 7.27,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 559.27,
"flow": 7.29,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 559.19,
"flow": 7.31,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 559.11,
"flow": 7.34,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 559.3,
"flow": 7.48,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:00:00.000Z",
"level": 559.73,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:10:00.000Z",
"level": 559.79,
"flow": 0,
"inflow": 3.71,
"volume": 0.62
}
]
+97 -55
View File
@@ -2,176 +2,218 @@
{ {
"timestamp": "2026-05-30T05:00:00.000Z", "timestamp": "2026-05-30T05:00:00.000Z",
"level": 345.7, "level": 345.7,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-05-31T05:00:00.000Z", "timestamp": "2026-05-31T05:00:00.000Z",
"level": 345.75, "level": 345.75,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-01T05:00:00.000Z", "timestamp": "2026-06-01T05:00:00.000Z",
"level": 345.82, "level": 345.82,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-02T05:00:00.000Z", "timestamp": "2026-06-02T05:00:00.000Z",
"level": 345.76, "level": 345.76,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-03T05:00:00.000Z", "timestamp": "2026-06-03T05:00:00.000Z",
"level": 345.76, "level": 345.76,
"flow": 17.77 "flow": 17.77,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T05:00:00.000Z", "timestamp": "2026-06-04T05:00:00.000Z",
"level": 345.67, "level": 345.67,
"flow": 0 "flow": 0,
}, "inflow": 0,
{ "volume": 0
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 345.65,
"flow": 98.84
}, },
{ {
"timestamp": "2026-06-04T21:00:00.000Z", "timestamp": "2026-06-04T21:00:00.000Z",
"level": 345.59, "level": 345.59,
"flow": 374.8 "flow": 374.8,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T22:00:00.000Z", "timestamp": "2026-06-04T22:00:00.000Z",
"level": 345.58, "level": 345.58,
"flow": 97.45 "flow": 97.45,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T23:00:00.000Z", "timestamp": "2026-06-04T23:00:00.000Z",
"level": 345.58, "level": 345.58,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T00:00:00.000Z", "timestamp": "2026-06-05T00:00:00.000Z",
"level": 345.57, "level": 345.57,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T01:00:00.000Z", "timestamp": "2026-06-05T01:00:00.000Z",
"level": 345.59, "level": 345.59,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T02:00:00.000Z", "timestamp": "2026-06-05T02:00:00.000Z",
"level": 345.59, "level": 345.59,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T03:00:00.000Z", "timestamp": "2026-06-05T03:00:00.000Z",
"level": 345.58, "level": 345.58,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T04:00:00.000Z", "timestamp": "2026-06-05T04:00:00.000Z",
"level": 345.6, "level": 345.6,
"flow": 100.93 "flow": 100.93,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T05:00:00.000Z", "timestamp": "2026-06-05T05:00:00.000Z",
"level": 345.54, "level": 345.54,
"flow": 284.29 "flow": 284.29,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T06:00:00.000Z", "timestamp": "2026-06-05T06:00:00.000Z",
"level": 345.52, "level": 345.52,
"flow": 187.15 "flow": 187.15,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T07:00:00.000Z", "timestamp": "2026-06-05T07:00:00.000Z",
"level": 345.53, "level": 345.53,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T08:00:00.000Z", "timestamp": "2026-06-05T08:00:00.000Z",
"level": 345.52, "level": 345.52,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T09:00:00.000Z", "timestamp": "2026-06-05T09:00:00.000Z",
"level": 345.53, "level": 345.53,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T10:00:00.000Z", "timestamp": "2026-06-05T10:00:00.000Z",
"level": 345.54, "level": 345.54,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T11:00:00.000Z", "timestamp": "2026-06-05T11:00:00.000Z",
"level": 345.53, "level": 345.53,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T12:00:00.000Z", "timestamp": "2026-06-05T12:00:00.000Z",
"level": 345.55, "level": 345.55,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T13:00:00.000Z", "timestamp": "2026-06-05T13:00:00.000Z",
"level": 345.54, "level": 345.54,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T14:00:00.000Z", "timestamp": "2026-06-05T14:00:00.000Z",
"level": 345.55, "level": 345.55,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T15:00:00.000Z", "timestamp": "2026-06-05T15:00:00.000Z",
"level": 345.56, "level": 345.56,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T16:00:00.000Z", "timestamp": "2026-06-05T16:00:00.000Z",
"level": 345.55, "level": 345.55,
"flow": 72.6 "flow": 72.6,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T17:00:00.000Z", "timestamp": "2026-06-05T17:00:00.000Z",
"level": 345.53, "level": 345.53,
"flow": 186.83 "flow": 186.83,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T18:00:00.000Z", "timestamp": "2026-06-05T18:00:00.000Z",
"level": 345.47, "level": 345.47,
"flow": 454.38 "flow": 454.38,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:00:00.000Z", "timestamp": "2026-06-05T19:00:00.000Z",
"level": 345.39, "level": 345.39,
"flow": 444.3 "flow": 444.3,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:10:00.000Z", "timestamp": "2026-06-05T20:00:00.000Z",
"level": 345.38, "level": 345.33,
"flow": 444.26 "flow": 370.39,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:20:00.000Z", "timestamp": "2026-06-05T20:10:00.000Z",
"level": 345.37, "level": 345.31,
"flow": 443.64 "flow": 381.47,
}, "inflow": 23.84,
{ "volume": 523.52
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 345.36,
"flow": 443.75
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 345.35,
"flow": 446.81
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 345.34,
"flow": 444.17
} }
] ]
+96 -54
View File
@@ -2,176 +2,218 @@
{ {
"timestamp": "2026-05-30T05:00:00.000Z", "timestamp": "2026-05-30T05:00:00.000Z",
"level": 269.85, "level": 269.85,
"flow": 58.2 "flow": 58.2,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-05-31T05:00:00.000Z", "timestamp": "2026-05-31T05:00:00.000Z",
"level": 269.64, "level": 269.64,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-01T05:00:00.000Z", "timestamp": "2026-06-01T05:00:00.000Z",
"level": 269.47, "level": 269.47,
"flow": 139.04 "flow": 139.04,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-02T05:00:00.000Z", "timestamp": "2026-06-02T05:00:00.000Z",
"level": 269.44, "level": 269.44,
"flow": 13.82 "flow": 13.82,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-03T05:00:00.000Z", "timestamp": "2026-06-03T05:00:00.000Z",
"level": 269.35, "level": 269.35,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T05:00:00.000Z", "timestamp": "2026-06-04T05:00:00.000Z",
"level": 269.42, "level": 269.42,
"flow": 26.22 "flow": 26.22,
}, "inflow": 0,
{ "volume": 0
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 269.37,
"flow": 89.57
}, },
{ {
"timestamp": "2026-06-04T21:00:00.000Z", "timestamp": "2026-06-04T21:00:00.000Z",
"level": 269.42, "level": 269.42,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T22:00:00.000Z", "timestamp": "2026-06-04T22:00:00.000Z",
"level": 269.42, "level": 269.42,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-04T23:00:00.000Z", "timestamp": "2026-06-04T23:00:00.000Z",
"level": 269.47, "level": 269.47,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T00:00:00.000Z", "timestamp": "2026-06-05T00:00:00.000Z",
"level": 269.5, "level": 269.5,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T01:00:00.000Z", "timestamp": "2026-06-05T01:00:00.000Z",
"level": 269.52, "level": 269.52,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T02:00:00.000Z", "timestamp": "2026-06-05T02:00:00.000Z",
"level": 269.55, "level": 269.55,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T03:00:00.000Z", "timestamp": "2026-06-05T03:00:00.000Z",
"level": 269.57, "level": 269.57,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T04:00:00.000Z", "timestamp": "2026-06-05T04:00:00.000Z",
"level": 269.59, "level": 269.59,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T05:00:00.000Z", "timestamp": "2026-06-05T05:00:00.000Z",
"level": 269.62, "level": 269.62,
"flow": 58.26 "flow": 58.26,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T06:00:00.000Z", "timestamp": "2026-06-05T06:00:00.000Z",
"level": 269.64, "level": 269.64,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T07:00:00.000Z", "timestamp": "2026-06-05T07:00:00.000Z",
"level": 269.67, "level": 269.67,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T08:00:00.000Z", "timestamp": "2026-06-05T08:00:00.000Z",
"level": 269.66, "level": 269.66,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T09:00:00.000Z", "timestamp": "2026-06-05T09:00:00.000Z",
"level": 269.67, "level": 269.67,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T10:00:00.000Z", "timestamp": "2026-06-05T10:00:00.000Z",
"level": 269.65, "level": 269.65,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T11:00:00.000Z", "timestamp": "2026-06-05T11:00:00.000Z",
"level": 269.66, "level": 269.66,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T12:00:00.000Z", "timestamp": "2026-06-05T12:00:00.000Z",
"level": 269.65, "level": 269.65,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T13:00:00.000Z", "timestamp": "2026-06-05T13:00:00.000Z",
"level": 269.66, "level": 269.66,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T14:00:00.000Z", "timestamp": "2026-06-05T14:00:00.000Z",
"level": 269.66, "level": 269.66,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T15:00:00.000Z", "timestamp": "2026-06-05T15:00:00.000Z",
"level": 269.66, "level": 269.66,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T16:00:00.000Z", "timestamp": "2026-06-05T16:00:00.000Z",
"level": 269.66, "level": 269.66,
"flow": 0 "flow": 0,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T17:00:00.000Z", "timestamp": "2026-06-05T17:00:00.000Z",
"level": 269.65, "level": 269.65,
"flow": 119.44 "flow": 119.44,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T18:00:00.000Z", "timestamp": "2026-06-05T18:00:00.000Z",
"level": 269.65, "level": 269.65,
"flow": 137.14 "flow": 137.14,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:00:00.000Z", "timestamp": "2026-06-05T19:00:00.000Z",
"level": 269.75, "level": 269.75,
"flow": 310.27 "flow": 310.27,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:10:00.000Z", "timestamp": "2026-06-05T20:00:00.000Z",
"level": 269.76, "level": 269.76,
"flow": 311.12 "flow": 308.35,
"inflow": 0,
"volume": 0
}, },
{ {
"timestamp": "2026-06-05T19:20:00.000Z", "timestamp": "2026-06-05T20:10:00.000Z",
"level": 269.74, "level": 269.78,
"flow": 312.38 "flow": 304.36,
}, "inflow": 46.5,
{ "volume": 259.76
"timestamp": "2026-06-05T19:30:00.000Z",
"level": 269.74,
"flow": 312.7
},
{
"timestamp": "2026-06-05T19:40:00.000Z",
"level": 269.75,
"flow": 313.15
},
{
"timestamp": "2026-06-05T19:50:00.000Z",
"level": 269.76,
"flow": 312.56
} }
] ]
+219
View File
@@ -0,0 +1,219 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 218.19,
"flow": 50.53,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 217.4,
"flow": 50.43,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 216.83,
"flow": 150.49,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 218.77,
"flow": 25.35,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 217.69,
"flow": 130.25,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 217.97,
"flow": 22.27,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 217.63,
"flow": 25.36,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 217.57,
"flow": 25.39,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 217.38,
"flow": 60.82,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 217.18,
"flow": 50.48,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 217.07,
"flow": 24.27,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 216.98,
"flow": 24.27,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 216.88,
"flow": 24.26,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 216.79,
"flow": 24.25,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 216.76,
"flow": 79.52,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 216.48,
"flow": 70.84,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 216.43,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 216.43,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 216.41,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 216.41,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 216.4,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 216.4,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 216.39,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 216.38,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 216.38,
"flow": 0,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 216.37,
"flow": 7.12,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 216.27,
"flow": 25.32,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T18:00:00.000Z",
"level": 216.58,
"flow": 70.8,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T19:00:00.000Z",
"level": 217.21,
"flow": 150.41,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:00:00.000Z",
"level": 217.84,
"flow": 150.43,
"inflow": 0,
"volume": 0
},
{
"timestamp": "2026-06-05T20:10:00.000Z",
"level": 217.99,
"flow": 120.77,
"inflow": 19.85,
"volume": 8.96
}
]
-1
View File
@@ -1 +0,0 @@
[]
+198 -456
View File
@@ -5,10 +5,11 @@
"river": "Vltava", "river": "Vltava",
"priority": true, "priority": true,
"level": "723.09", "level": "723.09",
"capacity": 0, "capacity": 76.3,
"inflow": "34.9", "inflow": "2.5",
"outflow": "34.9", "outflow": "33.6",
"volume": 306, "volume": 199.27,
"maxVolume": 306,
"lat": 48.6322, "lat": 48.6322,
"lng": 14.2215, "lng": 14.2215,
"sparkline": [ "sparkline": [
@@ -17,13 +18,97 @@
1.49, 1.49,
1.49, 1.49,
1.49, 1.49,
1.49,
1.49,
1.49,
13.76, 13.76,
34.78, 34.78,
34.85, 37.78,
34.87, 33.61
34.87, ]
34.87, },
34.87 {
"id": "VLL2|1",
"name": "Lipno II",
"river": "Vltava",
"priority": false,
"level": "559.79",
"capacity": 100,
"inflow": "3.7",
"outflow": "7.5",
"volume": 0.62,
"maxVolume": 1.5,
"lat": 48.625,
"lng": 14.318,
"sparkline": [
6.35,
6.33,
6.33,
6.33,
6.33,
7.27,
7.29,
7.31,
7.34,
7.48,
0,
0
]
},
{
"id": "VLHN|1",
"name": "Hněvkovice",
"river": "Vltava",
"priority": true,
"level": "369.78",
"capacity": 86.9,
"inflow": "10.8",
"outflow": "5.0",
"volume": 20.2,
"maxVolume": 21.1,
"lat": 49.183,
"lng": 14.444,
"sparkline": [
0.01,
3.13,
12.94,
14.19,
14.18,
14.18,
14.18,
14.18,
14.18,
18.46,
14.28,
5
]
},
{
"id": "VLKO|1",
"name": "Kořensko",
"river": "Vltava",
"priority": false,
"level": "352.45",
"capacity": 30,
"inflow": "14.1",
"outflow": "19.0",
"volume": 2.75,
"maxVolume": 2.8,
"lat": 49.255,
"lng": 14.398,
"sparkline": [
19.01,
19.01,
19.01,
19.01,
19.01,
19.01,
19.01,
19.01,
19.01,
19.01,
19.01,
19.01
] ]
}, },
{ {
@@ -31,14 +116,18 @@
"name": "Orlík", "name": "Orlík",
"river": "Vltava", "river": "Vltava",
"priority": true, "priority": true,
"level": "345.34", "level": "345.31",
"capacity": 0, "capacity": 63.8,
"inflow": "444.2", "inflow": "23.8",
"outflow": "444.2", "outflow": "381.5",
"volume": 716.5, "volume": 523.52,
"maxVolume": 716.5,
"lat": 49.606, "lat": 49.606,
"lng": 14.17, "lng": 14.17,
"sparkline": [ "sparkline": [
0,
0,
0,
0, 0,
0, 0,
0, 0,
@@ -46,26 +135,55 @@
186.83, 186.83,
454.38, 454.38,
444.3, 444.3,
444.26, 370.39,
443.64, 381.47
443.75, ]
446.81, },
444.17 {
"id": "UHKA|2",
"name": "Kamýk",
"river": "Vltava",
"priority": false,
"level": "0.00",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 12.8,
"maxVolume": 12.8,
"lat": 49.636,
"lng": 14.254,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
] ]
}, },
{ {
"id": "VLSL|2", "id": "VLSL|2",
"name": "Slapy", "name": "Slapy",
"river": "Vltava", "river": "Vltava",
"priority": false, "priority": true,
"level": "269.76", "level": "269.78",
"capacity": 0, "capacity": 76.4,
"inflow": "312.6", "inflow": "46.5",
"outflow": "312.6", "outflow": "304.4",
"volume": 269.3, "volume": 259.76,
"maxVolume": 269.3,
"lat": 49.822, "lat": 49.822,
"lng": 14.436, "lng": 14.436,
"sparkline": [ "sparkline": [
0,
0,
0,
0, 0,
0, 0,
0, 0,
@@ -73,52 +191,51 @@
119.44, 119.44,
137.14, 137.14,
310.27, 310.27,
311.12, 308.35,
312.38, 304.36
312.7,
313.15,
312.56
] ]
}, },
{ {
"id": "BLHU|1", "id": "VLST|2",
"name": "Husinec", "name": "Štěchovice",
"river": "Blanice (PI)", "river": "Vltava",
"priority": false, "priority": false,
"level": "521.23", "level": "217.99",
"capacity": 0, "capacity": 39.6,
"inflow": "0.6", "inflow": "19.9",
"outflow": "0.6", "outflow": "120.8",
"volume": 6.9, "volume": 8.96,
"lat": 49.052, "maxVolume": 11.2,
"lng": 13.983, "lat": 49.845,
"lng": 14.412,
"sparkline": [ "sparkline": [
0.65, 0,
0.64, 0,
0.64, 0,
0.64, 0,
0.65, 0,
0.62, 0,
0.65, 7.12,
0.63, 25.32,
0.65, 70.8,
0.64, 150.41,
0.65, 150.43,
0.64 120.77
] ]
}, },
{ {
"id": "BIBI|1", "id": "VRSN|2",
"name": "Bílsko", "name": "Vrané",
"river": "Bílský potok", "river": "Vltava",
"priority": false, "priority": false,
"level": "463.42", "level": "0.00",
"capacity": 0, "capacity": 0,
"inflow": "0.0", "inflow": "0.0",
"outflow": "0.0", "outflow": "0.0",
"volume": 0, "volume": 11.1,
"lat": 49.191, "maxVolume": 11.1,
"lng": 14.053, "lat": 49.934,
"lng": 14.385,
"sparkline": [ "sparkline": [
0, 0,
0, 0,
@@ -135,17 +252,18 @@
] ]
}, },
{ {
"id": "KLDP|3", "id": "SVKR|2",
"name": "Dolejší Padrťský rybník", "name": "Švihov",
"river": "", "river": "Želivka",
"priority": false, "priority": true,
"level": "632.77", "level": "0.00",
"capacity": 0, "capacity": 0,
"inflow": "0.0", "inflow": "0.0",
"outflow": "0.0", "outflow": "0.0",
"volume": 0, "volume": 266.6,
"lat": 49.664, "maxVolume": 266.6,
"lng": 13.766, "lat": 49.718,
"lng": 15.106,
"sparkline": [ "sparkline": [
0, 0,
0, 0,
@@ -161,124 +279,17 @@
0 0
] ]
}, },
{
"id": "KLHP|3",
"name": "Hořejší Padrťský rybník",
"river": "",
"priority": false,
"level": "635.70",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 0,
"lat": 49.654,
"lng": 13.784,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
{
"id": "KLKL|3",
"name": "Klabava",
"river": "Klabava",
"priority": false,
"level": "345.14",
"capacity": 0,
"inflow": "1.5",
"outflow": "1.5",
"volume": 0,
"lat": 49.756,
"lng": 13.565,
"sparkline": [
1.19,
1.54,
1.56,
1.54,
1.54,
1.54,
1.53,
1.53,
1.53,
1.53,
1.53,
1.53
]
},
{
"id": "KCKC|3",
"name": "Klíčava",
"river": "Klíčava",
"priority": false,
"level": "292.91",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 8.3,
"lat": 50.065,
"lng": 13.929,
"sparkline": [
0.02,
0.02,
0.02,
0.02,
0.02,
0.02,
0.02,
0,
0,
0,
0,
0
]
},
{
"id": "LILA|3",
"name": "Láz",
"river": "Litavka",
"priority": false,
"level": "640.67",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 0,
"lat": 49.667,
"lng": 13.882,
"sparkline": [
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01
]
},
{ {
"id": "MARI|1", "id": "MARI|1",
"name": "Římov", "name": "Římov",
"river": "Malše", "river": "Malše",
"priority": false, "priority": true,
"level": "467.72", "level": "467.72",
"capacity": 0, "capacity": 74.8,
"inflow": "0.7", "inflow": "2.9",
"outflow": "0.7", "outflow": "0.7",
"volume": 33.8, "volume": 26.49,
"maxVolume": 33.8,
"lat": 48.847, "lat": 48.847,
"lng": 14.487, "lng": 14.487,
"sparkline": [ "sparkline": [
@@ -300,15 +311,19 @@
"id": "MZHR|3", "id": "MZHR|3",
"name": "Hracholusky", "name": "Hracholusky",
"river": "Mže", "river": "Mže",
"priority": false, "priority": true,
"level": "352.85", "level": "352.85",
"capacity": 0, "capacity": 0,
"inflow": "2.5", "inflow": "1.5",
"outflow": "2.5", "outflow": "2.5",
"volume": 56.7, "volume": 32.35,
"maxVolume": 56.7,
"lat": 49.789, "lat": 49.789,
"lng": 13.155, "lng": 13.155,
"sparkline": [ "sparkline": [
2.52,
2.53,
2.53,
2.53, 2.53,
2.53, 2.53,
2.53, 2.53,
@@ -316,281 +331,8 @@
2.52, 2.52,
2.52, 2.52,
2.52, 2.52,
2.52, 2.53,
2.52,
2.52,
2.52,
2.53 2.53
] ]
},
{
"id": "MZLU|3",
"name": "Lučina",
"river": "Mže",
"priority": false,
"level": "530.70",
"capacity": 0,
"inflow": "0.3",
"outflow": "0.3",
"volume": 0,
"lat": 49.8,
"lng": 12.61,
"sparkline": [
0.49,
0.49,
0.49,
0.49,
0.35,
0.35,
0.35,
0.35,
0.35,
0.35,
0.35,
0.35
]
},
{
"id": "MZSS|3",
"name": "Plzeň",
"river": "Štruncovy sady",
"priority": false,
"level": "0.00",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 0,
"lat": 49.751,
"lng": 13.385,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
{
"id": "OPOB|3",
"name": "Obecnice",
"river": "Obecnický potok",
"priority": false,
"level": "563.67",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 0,
"lat": 49.721,
"lng": 13.945,
"sparkline": [
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0,
0,
0,
0,
0,
0
]
},
{
"id": "PPPI|3",
"name": "Pilská",
"river": "Pilský potok",
"priority": false,
"level": "670.56",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 0,
"lat": 49.676,
"lng": 13.896,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
{
"id": "RACU|3",
"name": "České Údolí",
"river": "Radbuza",
"priority": false,
"level": "313.51",
"capacity": 0,
"inflow": "3.1",
"outflow": "3.1",
"volume": 0,
"lat": 49.711,
"lng": 13.361,
"sparkline": [
3.07,
3.14,
3.12,
3.12,
3.11,
3.1,
3.1,
3.1,
3.1,
3.1,
3.1,
3.1
]
},
{
"id": "SPNE|2",
"name": "Němčice",
"river": "Sedlický potok",
"priority": false,
"level": "385.01",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 0,
"lat": 49.605,
"lng": 15.228,
"sparkline": [
0.03,
0.03,
0.03,
0.04,
0.04,
0.04,
0.04,
0.04,
0.04,
0.04,
0.04,
0.04
]
},
{
"id": "SVKR|2",
"name": "Švihov",
"river": "Želivka",
"priority": false,
"level": "0.00",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 266.6,
"lat": 49.718,
"lng": 15.106,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
{
"id": "UHKA|2",
"name": "Kamýk",
"river": "Vltava",
"priority": false,
"level": "0.00",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 12.8,
"lat": 49.636,
"lng": 14.254,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
{
"id": "VRSN|2",
"name": "Vrané",
"river": "Vltava",
"priority": false,
"level": "0.00",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 11.1,
"lat": 49.934,
"lng": 14.385,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
{
"id": "ZLUT|3",
"name": "Žlutice",
"river": "Střela",
"priority": false,
"level": "0.00",
"capacity": 0,
"inflow": "0.0",
"outflow": "0.0",
"volume": 0,
"lat": 50.093,
"lng": 13.159,
"sparkline": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
} }
] ]
-172
View File
@@ -1,172 +0,0 @@
[
{
"timestamp": "2026-05-30T05:00:00.000Z",
"level": 723.04,
"flow": 1.03
},
{
"timestamp": "2026-05-31T05:00:00.000Z",
"level": 723.06,
"flow": 1.03
},
{
"timestamp": "2026-06-01T05:00:00.000Z",
"level": 723.08,
"flow": 30.94
},
{
"timestamp": "2026-06-02T05:00:00.000Z",
"level": 723.08,
"flow": 1.51
},
{
"timestamp": "2026-06-03T05:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-04T05:00:00.000Z",
"level": 723.08,
"flow": 1.49
},
{
"timestamp": "2026-06-04T18:00:00.000Z",
"level": 723.08,
"flow": 1.49
},
{
"timestamp": "2026-06-04T19:00:00.000Z",
"level": 723.08,
"flow": 1.49
},
{
"timestamp": "2026-06-04T20:00:00.000Z",
"level": 723.08,
"flow": 1.49
},
{
"timestamp": "2026-06-04T21:00:00.000Z",
"level": 723.08,
"flow": 1.49
},
{
"timestamp": "2026-06-04T22:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-04T23:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T00:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T01:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T02:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T03:00:00.000Z",
"level": 723.08,
"flow": 1.49
},
{
"timestamp": "2026-06-05T04:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T05:00:00.000Z",
"level": 723.08,
"flow": 1.49
},
{
"timestamp": "2026-06-05T06:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T07:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T08:00:00.000Z",
"level": 723.1,
"flow": 1.49
},
{
"timestamp": "2026-06-05T09:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T10:00:00.000Z",
"level": 723.1,
"flow": 1.49
},
{
"timestamp": "2026-06-05T11:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T12:00:00.000Z",
"level": 723.1,
"flow": 1.49
},
{
"timestamp": "2026-06-05T13:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T14:00:00.000Z",
"level": 723.1,
"flow": 1.49
},
{
"timestamp": "2026-06-05T15:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T16:00:00.000Z",
"level": 723.1,
"flow": 1.49
},
{
"timestamp": "2026-06-05T17:00:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T17:10:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T17:20:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T17:30:00.000Z",
"level": 723.09,
"flow": 1.49
},
{
"timestamp": "2026-06-05T17:40:00.000Z",
"level": 723.09,
"flow": 1.49
}
]
+27 -4
View File
@@ -16,9 +16,13 @@ const lakes = lakesConfig.map(lake => {
let currentFlow = 0; let currentFlow = 0;
let sparkline: number[] = Array(12).fill(0); let sparkline: number[] = Array(12).fill(0);
let capacity = 0;
let volume = 0;
let inflow = 0;
if (fs.existsSync(DATA_FILE)) { if (fs.existsSync(DATA_FILE)) {
try { try {
const data: DataRecord[] = JSON.parse(fs.readFileSync(DATA_FILE, 'utf-8')); const data: any[] = JSON.parse(fs.readFileSync(DATA_FILE, 'utf-8'));
if (data.length > 0) { if (data.length > 0) {
// Find latest valid record or just the last record // Find latest valid record or just the last record
const lastValidLevelData = [...data].reverse().find(d => d.level !== null && !isNaN(d.level)); const lastValidLevelData = [...data].reverse().find(d => d.level !== null && !isNaN(d.level));
@@ -35,22 +39,41 @@ const lakes = lakesConfig.map(lake => {
while (sparkline.length < 12) { while (sparkline.length < 12) {
sparkline.unshift(0); sparkline.unshift(0);
} }
const latest = data[data.length - 1];
if (latest.volume && latest.volume > 0) {
volume = latest.volume;
}
if (latest.inflow !== undefined) {
inflow = latest.inflow;
}
} }
} catch (e) { } catch (e) {
console.error(`Error reading data for ${internalId}`, e); console.error(`Error reading data for ${internalId}`, e);
} }
} }
if (lake.minLevel && lake.maxLevel && currentLevel > 0) {
const percentage = ((currentLevel - lake.minLevel) / (lake.maxLevel - lake.minLevel)) * 100;
capacity = Math.max(0, Math.min(100, Math.round(percentage * 10) / 10)); // Round to 1 decimal place
if (volume === 0) {
volume = Number(((capacity / 100) * (lake.maxVolume || 0)).toFixed(1));
}
} else {
if (volume === 0) volume = lake.maxVolume || 0;
}
return { return {
id: lake.id, id: lake.id,
name: lake.text.replace('VD ', '').split('-')[0].trim(), name: lake.text.replace('VD ', '').split('-')[0].trim(),
river: lake.text.includes('-') ? lake.text.split('-')[1].trim() : '', river: lake.text.includes('-') ? lake.text.split('-')[1].trim() : '',
priority: lake.priority || false, priority: lake.priority || false,
level: currentLevel.toFixed(2), level: currentLevel.toFixed(2),
capacity: 0, // Removed fake capacity capacity: capacity,
inflow: currentFlow.toFixed(1), inflow: inflow.toFixed(1),
outflow: currentFlow.toFixed(1), outflow: currentFlow.toFixed(1),
volume: lake.maxVolume || 0, // Using real maxVolume if known volume: volume,
maxVolume: lake.maxVolume || 0,
lat: lake.coords[0], lat: lake.coords[0],
lng: lake.coords[1], lng: lake.coords[1],
sparkline sparkline
+12 -22
View File
@@ -6,26 +6,16 @@ export interface LakeConfig {
} }
export const lakesConfig: LakeConfig[] = [ export const lakesConfig: LakeConfig[] = [
{ id: "VLL1|1", text: "VD Lipno 1 - Vltava", priority: true, coords: [48.6322, 14.2215], maxVolume: 306.0 }, { id: "VLL1|1", text: "VD Lipno 1 - Vltava", priority: true, coords: [48.6322, 14.2215], maxVolume: 306.0, minLevel: 715.00, maxLevel: 725.60 },
{ id: "VLOR|2", text: "VD Orlík - Vltava", priority: true, coords: [49.6060, 14.1700], maxVolume: 716.5 }, { id: "VLL2|1", text: "VD Lipno II - Vltava", coords: [48.6250, 14.3180], maxVolume: 1.5, minLevel: 510.0, maxLevel: 511.5 },
{ id: "VLSL|2", text: "VD Slapy - Vltava", priority: false, coords: [49.8220, 14.4360], maxVolume: 269.3 }, { id: "VLHN|1", text: "VD Hněvkovice - Vltava", priority: true, coords: [49.1830, 14.4440], maxVolume: 21.1, minLevel: 365.0, maxLevel: 370.5 },
{ id: "BLHU|1", text: "VD Husinec - Blanice (PI)", coords: [49.0520, 13.9830], maxVolume: 6.9 }, { id: "VLKO|1", text: "VD Kořensko - Vltava", coords: [49.2550, 14.3980], maxVolume: 2.8, minLevel: 352.0, maxLevel: 353.5 },
{ id: "BIBI|1", text: "VD Bílsko - Bílský potok", coords: [49.1910, 14.0530] }, { id: "VLOR|2", text: "VD Orlík - Vltava", priority: true, coords: [49.6060, 14.1700], maxVolume: 716.5, minLevel: 330.00, maxLevel: 354.00 },
{ id: "KLDP|3", text: "VD Dolejší Padrťský rybník", coords: [49.6640, 13.7660] }, { id: "UHKA|2", text: "VD Kamýk - Vltava", coords: [49.6360, 14.2540], maxVolume: 12.8, minLevel: 283.0, maxLevel: 285.6 },
{ id: "KLHP|3", text: "VD Hořejší Padrťský rybník", coords: [49.6540, 13.7840] }, { id: "VLSL|2", text: "VD Slapy - Vltava", priority: true, coords: [49.8220, 14.4360], maxVolume: 269.3, minLevel: 265.50, maxLevel: 271.10 },
{ id: "KLKL|3", text: "VD Klabava - Klabava", coords: [49.7560, 13.5650] }, { id: "VLST|2", text: "VD Štěchovice - Vltava", coords: [49.8450, 14.4120], maxVolume: 11.2, minLevel: 217.0, maxLevel: 219.5 },
{ id: "KCKC|3", "text": "VD Klíčava - Klíčava", coords: [50.0650, 13.9290], maxVolume: 8.3 }, { id: "VRSN|2", text: "VD Vrané - Vltava", coords: [49.9340, 14.3850], maxVolume: 11.1, minLevel: 198.5, maxLevel: 200.5 },
{ id: "LILA|3", text: "VD Láz - Litavka", coords: [49.6670, 13.8820] }, { id: "SVKR|2", text: "VD Švihov - Želivka", priority: true, coords: [49.7180, 15.1060], maxVolume: 266.6, minLevel: 343.0, maxLevel: 377.0 },
{ id: "MARI|1", text: "VD Římov - Malše", coords: [48.8470, 14.4870], maxVolume: 33.8 }, { id: "MARI|1", text: "VD Římov - Malše", priority: true, coords: [48.8470, 14.4870], maxVolume: 33.8, minLevel: 458.0, maxLevel: 471.0 },
{ id: "MZHR|3", text: "VD Hracholusky - Mže", coords: [49.7890, 13.1550], maxVolume: 56.7 }, { id: "MZHR|3", text: "VD Hracholusky - Mže", priority: true, coords: [49.7890, 13.1550], maxVolume: 56.7, minLevel: 360.0, maxLevel: 373.0 }
{ id: "MZLU|3", text: "VD Lučina - Mže", coords: [49.8000, 12.6100] },
{ id: "MZSS|3", text: "VD Plzeň-Štruncovy sady", coords: [49.7510, 13.3850] },
{ id: "OPOB|3", "text": "VD Obecnice - Obecnický potok", coords: [49.7210, 13.9450] },
{ id: "PPPI|3", "text": "VD Pilská - Pilský potok", coords: [49.6760, 13.8960] },
{ id: "RACU|3", "text": "VD České Údolí - Radbuza", coords: [49.7110, 13.3610] },
{ id: "SPNE|2", "text": "VD Němčice - Sedlický potok", coords: [49.6050, 15.2280] },
{ id: "SVKR|2", "text": "VD Švihov - Želivka", coords: [49.7180, 15.1060], maxVolume: 266.6 },
{ id: "UHKA|2", "text": "VD Kamýk - Vltava", coords: [49.6360, 14.2540], maxVolume: 12.8 },
{ id: "VRSN|2", "text": "VD Vrané - Vltava", coords: [49.9340, 14.3850], maxVolume: 11.1 },
{ id: "ZLUT|3", "text": "VD Žlutice - Střela", coords: [50.0930, 13.1590] }
]; ];
+68 -26
View File
@@ -12,13 +12,21 @@ interface DataRecord {
} }
// Parse date from DD.MM.YYYY HH:MM to ISO // Parse date from DD.MM.YYYY HH:MM to ISO
function parseDateString(dateStr: string): string { function parseDateString(dateStr: string): string | null {
const [datePart, timePart] = dateStr.trim().split(' '); try {
const [day, month, year] = datePart.split('.'); if (!dateStr || !dateStr.includes(' ')) return null;
const [hours, minutes] = timePart.split(':'); const [datePart, timePart] = dateStr.trim().split(' ');
const [day, month, year] = datePart.split('.');
const [hours, minutes] = timePart.split(':');
const d = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hours), parseInt(minutes)); if (!year || !hours) return null;
return d.toISOString();
const d = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hours), parseInt(minutes));
if (isNaN(d.getTime())) return null;
return d.toISOString();
} catch (e) {
return null;
}
} }
async function scrapeLake(lakeId: string, oid: string, internalId: string) { async function scrapeLake(lakeId: string, oid: string, internalId: string) {
@@ -34,29 +42,63 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) {
} }
}); });
const html = response.data; const $ = cheerio.load(response.data);
const $ = cheerio.load(html);
const rows = $('table tr');
const newData: DataRecord[] = [];
rows.each((i, row) => { let currentInflow = 0;
const tds = $(row).find('td'); let currentVolume = 0;
if (tds.length >= 3) {
const datetimeText = $(tds[0]).text().trim();
if (/^\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}$/.test(datetimeText)) {
const timestamp = parseDateString(datetimeText);
const levelText = $(tds[1]).text().trim().replace(',', '.');
const flowText = $(tds[2]).text().trim().replace(',', '.');
newData.push({ $('table').each((i, tbl) => {
timestamp, const text = $(tbl).text();
level: parseFloat(levelText), if (text.includes('Aktuální hodnoty') && text.includes('Přítok')) {
flow: parseFloat(flowText) $(tbl).find('tr').each((j, r) => {
}); const label = $(r).find('td').eq(0).text().trim();
} const valStr = $(r).find('td').eq(1).text().trim().replace(/\s/g, '').replace(',', '.');
if (label.includes('Přítok')) currentInflow = parseFloat(valStr) || 0;
if (label.includes('Objem')) currentVolume = parseFloat(valStr) || 0;
});
} }
}); });
const records: DataRecord[] = [];
let dataTable = null;
$('table').each((i, tbl) => {
if ($(tbl).text().includes('Datum') && $(tbl).text().includes('Odtok')) {
dataTable = $(tbl);
}
});
if (dataTable) {
dataTable.find('tr').each((i, row) => {
if (i === 0) return; // skip header
const cols = $(row).find('td');
if (cols.length >= 3) {
const rawDate = $(cols[0]).text().trim();
const levelStr = $(cols[1]).text().trim().replace(',', '.');
let flowStr = $(cols[2]).text().trim().replace(',', '.');
if (flowStr === '' && cols.length >= 4) {
flowStr = $(cols[3]).text().trim().replace(',', '.');
}
const parsedDateStr = parseDateString(rawDate);
if (parsedDateStr) {
records.push({
timestamp: parsedDateStr,
level: parseFloat(levelStr) || 0,
flow: parseFloat(flowStr) || 0,
inflow: 0,
volume: 0
});
}
}
});
}
if (records.length > 0) {
// Apply current values to the latest record
records[0].inflow = currentInflow;
records[0].volume = currentVolume;
}
let existingData: DataRecord[] = []; let existingData: DataRecord[] = [];
if (fs.existsSync(DATA_FILE)) { if (fs.existsSync(DATA_FILE)) {
const fileContent = fs.readFileSync(DATA_FILE, 'utf-8'); const fileContent = fs.readFileSync(DATA_FILE, 'utf-8');
@@ -65,7 +107,7 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) {
const dataMap = new Map<string, DataRecord>(); const dataMap = new Map<string, DataRecord>();
existingData.forEach(item => dataMap.set(item.timestamp, item)); existingData.forEach(item => dataMap.set(item.timestamp, item));
newData.forEach(item => dataMap.set(item.timestamp, item)); records.forEach(item => dataMap.set(item.timestamp, item));
const mergedData = Array.from(dataMap.values()).sort((a, b) => { const mergedData = Array.from(dataMap.values()).sort((a, b) => {
return new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime(); return new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime();
@@ -74,7 +116,7 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) {
fs.mkdirSync(path.dirname(DATA_FILE), { recursive: true }); fs.mkdirSync(path.dirname(DATA_FILE), { recursive: true });
fs.writeFileSync(DATA_FILE, JSON.stringify(mergedData, null, 2), 'utf-8'); fs.writeFileSync(DATA_FILE, JSON.stringify(mergedData, null, 2), 'utf-8');
console.log(`[${internalId}] Scraped ${newData.length} records. DB total: ${mergedData.length}`); console.log(`[${internalId}] Scraped ${records.length} records. DB total: ${mergedData.length}`);
} catch (error: any) { } catch (error: any) {
console.error(`[${internalId}] Error scraping data:`, error.message); console.error(`[${internalId}] Error scraping data:`, error.message);
+83 -52
View File
@@ -1,5 +1,6 @@
import { FiArrowUp, FiArrowDown } from 'react-icons/fi'; import { FiArrowUp, FiArrowDown } from 'react-icons/fi';
import { type Language, t } from '../translations'; import { type Language, t } from '../translations';
import { useState, useEffect } from 'react';
interface KpiData { interface KpiData {
level: number; level: number;
@@ -16,73 +17,103 @@ interface Props {
} }
const KpiCards = ({ data, language, lakeName = 'Lipno 1' }: Props) => { const KpiCards = ({ data, language, lakeName = 'Lipno 1' }: Props) => {
const [showTooltip, setShowTooltip] = useState(false);
const dict = t[language].kpi; const dict = t[language].kpi;
const flowDiff = data.inflow - data.outflow; const flowDiff = data.inflow - data.outflow;
useEffect(() => {
if (showTooltip) {
const timer = setTimeout(() => {
setShowTooltip(false);
}, 3500);
return () => clearTimeout(timer);
}
}, [showTooltip]);
return ( return (
<div className="kpi-container-mobile"> <div className="kpi-grid-container">
{/* CARD 1: HLADINA */} {/* CARD 1: HLADINA */}
<div className="kpi-card-full"> <div className="kpi-card">
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> <div style={{ fontSize: '1rem', color: 'var(--text-muted)', marginBottom: '0.5rem' }}>
<div> {dict.level} {lakeName}
<div style={{ fontSize: '1rem', color: 'var(--text-muted)', marginBottom: '0.5rem' }}> </div>
{dict.level} {lakeName} <div style={{ fontSize: '2.5rem', fontWeight: 'bold', color: 'var(--color-cyan)', lineHeight: 1, marginBottom: '0.5rem' }}>
{data.level.toFixed(2)} <span style={{ fontSize: '1rem', color: 'var(--text-muted)', fontWeight: 'normal' }}>m n. m.</span>
</div>
<div style={{ fontSize: '0.85rem', color: 'var(--color-green)' }}>
(+0.02 m / 24h)
</div>
{/* Decorative Circle for Level */}
<div style={{ position: 'absolute', right: '1.5rem', top: '1.5rem', width: '40px', height: '40px', borderRadius: '50%', border: '4px solid rgba(0, 195, 255, 0.2)', borderTopColor: 'var(--color-cyan)', transform: 'rotate(45deg)' }}></div>
</div>
{/* CARD 2: PRŮTOK */}
<div className="kpi-card">
<div style={{ fontSize: '1rem', color: 'var(--text-muted)', marginBottom: '0.5rem' }}>
{dict.flow}
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', height: '100%' }}>
<div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem', fontSize: '0.85rem' }}>
<div style={{ fontSize: '0.85rem', color: 'var(--text-muted)' }}>
{dict.inflow}: <span style={{ fontWeight: 'bold', color: 'var(--text-main)' }}>{data.inflow.toFixed(1)} m³/s</span>
</div> </div>
<div style={{ fontSize: '2.5rem', fontWeight: 'bold', color: 'var(--color-cyan)', lineHeight: 1 }}> <div style={{ fontSize: '0.85rem', color: 'var(--text-muted)', marginTop: '0.25rem', display: 'flex', alignItems: 'center', gap: '0.25rem' }}>
{data.level.toFixed(2)} <span style={{ fontSize: '1.2rem', fontWeight: 'normal', color: 'var(--text-main)' }}>m n. m.</span> {dict.outflow}: <span style={{ fontWeight: 'bold', color: 'var(--text-main)' }}>{data.outflow.toFixed(1)} m³/s</span>
</div> {flowDiff > 0 ? <FiArrowUp color="var(--color-green)" /> : flowDiff < 0 ? <FiArrowDown color="var(--color-red)" /> : null}
<div style={{ fontSize: '0.9rem', color: 'var(--color-green)', marginTop: '0.5rem' }}>
(+0.02 m / 24h)
</div> </div>
</div> </div>
{/* Decorative Circle */} {/* Flow Circle */}
<div style={{ width: '60px', height: '60px', position: 'relative' }}> <div style={{ width: '40px', height: '40px', borderRadius: '50%', border: '4px solid rgba(0, 195, 255, 0.2)', borderTopColor: 'var(--color-cyan)', borderRightColor: 'var(--color-cyan)', display: 'flex', alignItems: 'center', justifyContent: 'center', transform: 'rotate(-45deg)' }}>
<svg width="60" height="60" viewBox="0 0 60 60"> <span style={{ fontSize: '0.65rem', transform: 'rotate(45deg)', color: 'var(--text-main)', fontWeight: 'bold' }}>
<circle cx="30" cy="30" r="26" fill="transparent" stroke="rgba(255,255,255,0.05)" strokeWidth="6" /> <div style={{ lineHeight: 1 }}>{data.outflow.toFixed(1)}</div>
<circle cx="30" cy="30" r="26" fill="transparent" stroke="var(--color-cyan)" strokeWidth="6" strokeDasharray="163" strokeDashoffset="40" strokeLinecap="round" transform="rotate(-90 30 30)" /> <div style={{ fontSize: '0.45rem', opacity: 0.7 }}>m³/s</div>
</svg> </span>
</div> </div>
</div> </div>
</div> </div>
<div className="kpi-row-half"> {/* CARD 3: NAPLNĚNOST */}
{/* CARD 2: PRŮTOK */} <div className="kpi-card">
<div className="kpi-card-half"> <div style={{ fontSize: '1rem', color: 'var(--text-muted)', marginBottom: '0.5rem', display: 'flex', alignItems: 'center', gap: '0.4rem', position: 'relative' }}>
<div style={{ fontSize: '1rem', color: 'var(--text-muted)', marginBottom: '0.5rem' }}> {dict.fullness}
{dict.flow} <span
</div> onClick={() => setShowTooltip(!showTooltip)}
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', height: '100%' }}> style={{ cursor: 'pointer', fontSize: '0.85rem', opacity: 0.6, padding: '0 4px' }}
<div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem', fontSize: '0.85rem' }}> >
<span style={{ color: 'var(--text-main)' }}>{dict.inflow}: <span style={{ fontWeight: 'bold' }}>{data.inflow.toFixed(1)} m³/s</span></span>
<span style={{ color: 'var(--text-main)' }}>{dict.outflow}: <span style={{ fontWeight: 'bold' }}>{data.outflow.toFixed(1)} m³/s</span> <FiArrowDown color="var(--color-red)" /></span> </span>
{showTooltip && (
<div
onClick={() => setShowTooltip(false)}
style={{
position: 'absolute',
bottom: '100%',
left: '50%',
transform: 'translateX(-50%)',
marginBottom: '8px',
backgroundColor: 'var(--bg-card)',
border: '1px solid var(--border-color)',
padding: '0.75rem',
borderRadius: '8px',
width: '250px',
zIndex: 100,
boxShadow: '0 4px 12px rgba(0,0,0,0.5)',
color: 'var(--text-main)',
fontSize: '0.85rem',
lineHeight: 1.4,
cursor: 'pointer'
}}>
{language === 'cs' ? "Odhad vypočítaný z aktuální výšky hladiny (mezi min. a max. kótou)." : "Estimate calculated from current water level (between min and max levels)."}
</div> </div>
)}
{/* Flow Circle */}
<div style={{ width: '50px', height: '50px', position: 'relative' }}>
<svg width="50" height="50" viewBox="0 0 50 50">
<circle cx="25" cy="25" r="22" fill="transparent" stroke="rgba(255,255,255,0.05)" strokeWidth="4" />
<circle cx="25" cy="25" r="22" fill="transparent" stroke="var(--color-cyan)" strokeWidth="4" strokeDasharray="138" strokeDashoffset="40" strokeLinecap="round" transform="rotate(-90 25 25)" />
</svg>
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>
<span style={{ fontSize: '0.8rem', fontWeight: 'bold', lineHeight: 1 }}>{Math.max(data.inflow, data.outflow).toFixed(1)}</span>
<span style={{ fontSize: '0.5rem', color: 'var(--text-muted)' }}>m³/s</span>
</div>
</div>
</div>
</div> </div>
<div style={{ fontSize: '2rem', fontWeight: 'bold', lineHeight: 1, marginBottom: '0.5rem' }}>
{/* CARD 3: NAPLNĚNOST */} {data.fullness > 0 ? `${data.fullness.toFixed(1)}%` : 'N/A'}
<div className="kpi-card-half"> </div>
<div style={{ fontSize: '1rem', color: 'var(--text-muted)', marginBottom: '0.5rem' }}> <div style={{ fontSize: '0.85rem', color: 'var(--text-muted)' }}>
{dict.fullness} {dict.volume}: {data.volume.toFixed(1)} mil. m³
</div>
<div style={{ fontSize: '2rem', fontWeight: 'bold', lineHeight: 1, marginBottom: '0.5rem' }}>
{data.fullness.toFixed(1)}%
</div>
<div style={{ fontSize: '0.85rem', color: 'var(--text-muted)' }}>
{dict.volume}: {data.volume.toFixed(1)} mil. m³
</div>
</div> </div>
</div> </div>
</div> </div>
+12 -19
View File
@@ -25,8 +25,7 @@ const CustomTooltip = ({ active, payload, label, language }: any) => {
<div style={{ backgroundColor: 'var(--bg-card)', padding: '1rem', border: '1px solid var(--border-color)', borderRadius: '0.5rem', boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1)' }}> <div style={{ backgroundColor: 'var(--bg-card)', padding: '1rem', border: '1px solid var(--border-color)', borderRadius: '0.5rem', boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1)' }}>
<p style={{ margin: '0 0 0.5rem 0', fontWeight: 'bold', color: 'var(--text-main)' }}>{label}</p> <p style={{ margin: '0 0 0.5rem 0', fontWeight: 'bold', color: 'var(--text-main)' }}>{label}</p>
<p style={{ margin: 0, color: 'var(--text-main)' }}>{dict.level}: <span style={{ fontWeight: 'bold' }}>{payload[0].value.toFixed(2)} m n. m.</span></p> <p style={{ margin: 0, color: 'var(--text-main)' }}>{dict.level}: <span style={{ fontWeight: 'bold' }}>{payload[0].value.toFixed(2)} m n. m.</span></p>
<p style={{ margin: 0, color: 'var(--text-main)' }}>{dict.inflow}: <span style={{ fontWeight: 'bold' }}>{payload[1].value.toFixed(1)} m³/s</span></p> <p style={{ margin: 0, color: 'var(--text-main)' }}>{dict.outflow}: <span style={{ fontWeight: 'bold' }}>{payload[1].value.toFixed(1)} m³/s</span></p>
<p style={{ margin: 0, color: 'var(--text-main)' }}>{dict.outflow}: <span style={{ fontWeight: 'bold' }}>{payload[2].value.toFixed(1)} m³/s</span></p>
</div> </div>
); );
} }
@@ -57,7 +56,6 @@ const LakeDetail = ({ language, lakeId }: Props) => {
.then(json => { .then(json => {
const formattedData = json.map((item: any) => { const formattedData = json.map((item: any) => {
const outflow = item.flow === null || isNaN(item.flow) ? 0 : item.flow; const outflow = item.flow === null || isNaN(item.flow) ? 0 : item.flow;
const inflow = outflow; // No random inflow anymore, PVL only gives us one flow value
return { return {
timestamp: item.timestamp, timestamp: item.timestamp,
@@ -67,8 +65,8 @@ const LakeDetail = ({ language, lakeId }: Props) => {
}), }),
level: item.level === null || isNaN(item.level) ? 0 : item.level, level: item.level === null || isNaN(item.level) ? 0 : item.level,
outflow: outflow, outflow: outflow,
inflow: inflow, inflow: item.inflow || 0,
volume: 0, // PVL doesn't provide this here volume: item.volume || 0,
fullness: 0 fullness: 0
}; };
}); });
@@ -110,22 +108,19 @@ const LakeDetail = ({ language, lakeId }: Props) => {
<div className="status-dot"></div> <div className="status-dot"></div>
</div> </div>
<div className="top-time-controls">
<button className="active">24h</button>
<button>7d</button>
<button>30d</button>
<button>{dict.year}</button>
<button>{dict.all}</button>
</div>
<KpiCards data={kpiData} language={language} lakeName={lakeInfo ? lakeInfo.name : 'Lipno 1'} /> <KpiCards data={kpiData} language={language} lakeName={lakeInfo ? lakeInfo.name : 'Lipno 1'} />
{/* CHART SECTION */} {/* CHART SECTION */}
<div className="chart-card"> <div className="chart-card">
<div className="chart-header" style={{ borderBottom: 'none', paddingBottom: '0' }}> <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '1.5rem', flexWrap: 'wrap', gap: '1rem' }}>
<span className="chart-title"> <h3 style={{ margin: 0, fontSize: '1.1rem', color: 'var(--text-main)' }}>{dict.title} {lakeInfo ? `${lakeInfo.name} ${lakeInfo.river ? `- ${lakeInfo.river}` : ''}` : 'Lipno 1 - Vltava'}</h3>
{dict.title} {lakeInfo ? `${lakeInfo.name} ${lakeInfo.river ? `- ${lakeInfo.river}` : ''}` : 'Lipno 1 - Vltava'} <div className="top-time-controls" style={{ margin: 0 }}>
</span> <button className="active">24h</button>
<button>7d</button>
<button>30d</button>
<button>{dict.year}</button>
<button>{dict.all}</button>
</div>
</div> </div>
<div style={{ flex: 1, minHeight: '300px', width: '100%', marginTop: '1rem' }}> <div style={{ flex: 1, minHeight: '300px', width: '100%', marginTop: '1rem' }}>
@@ -146,7 +141,6 @@ const LakeDetail = ({ language, lakeId }: Props) => {
{/* Data Series */} {/* Data Series */}
<Area yAxisId="left" type={curveType} dataKey="level" stroke="var(--color-cyan)" strokeWidth={2} fillOpacity={1} fill="url(#colorLevel)" /> <Area yAxisId="left" type={curveType} dataKey="level" stroke="var(--color-cyan)" strokeWidth={2} fillOpacity={1} fill="url(#colorLevel)" />
<Line yAxisId="right" type={curveType} dataKey="inflow" stroke="var(--color-green)" strokeWidth={2} dot={false} />
<Line yAxisId="right" type={curveType} dataKey="outflow" stroke="var(--color-orange)" strokeWidth={2} dot={false} /> <Line yAxisId="right" type={curveType} dataKey="outflow" stroke="var(--color-orange)" strokeWidth={2} dot={false} />
</ComposedChart> </ComposedChart>
</ResponsiveContainer> </ResponsiveContainer>
@@ -155,7 +149,6 @@ const LakeDetail = ({ language, lakeId }: Props) => {
{/* Chart Legend */} {/* Chart Legend */}
<div className="chart-legend-container" style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'center', gap: '1rem', marginTop: '1rem', fontSize: '0.85rem', color: 'var(--text-main)' }}> <div className="chart-legend-container" style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'center', gap: '1rem', marginTop: '1rem', fontSize: '0.85rem', color: 'var(--text-main)' }}>
<span style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}><div style={{ width: '12px', height: '4px', backgroundColor: 'var(--color-cyan)' }}></div> {dict.level}</span> <span style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}><div style={{ width: '12px', height: '4px', backgroundColor: 'var(--color-cyan)' }}></div> {dict.level}</span>
<span style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}><div style={{ width: '12px', height: '4px', backgroundColor: 'var(--color-green)' }}></div> {dict.inflow}</span>
<span style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}><div style={{ width: '12px', height: '4px', backgroundColor: 'var(--color-orange)' }}></div> {dict.outflow}</span> <span style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}><div style={{ width: '12px', height: '4px', backgroundColor: 'var(--color-orange)' }}></div> {dict.outflow}</span>
</div> </div>
+2 -2
View File
@@ -51,7 +51,7 @@ const CircularProgress = ({ value, size = 60, strokeWidth = 6 }: { value: number
/> />
</svg> </svg>
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: size * 0.25, fontWeight: 'bold' }}> <div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: size * 0.25, fontWeight: 'bold' }}>
{value}% {value > 0 ? `${value}%` : 'N/A'}
</div> </div>
</div> </div>
); );
@@ -80,7 +80,7 @@ const PriorityCard = ({ lake, onSelectLake }: { lake: Lake, onSelectLake: (id: s
<div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}> <div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}>
<CircularProgress value={lake.capacity} size={70} strokeWidth={6} /> <CircularProgress value={lake.capacity} size={70} strokeWidth={6} />
<div> <div>
<div style={{ fontSize: '1.25rem', fontWeight: 'bold' }}>{lake.capacity}% / <span style={{ fontSize: '1rem', color: 'var(--text-muted)', fontWeight: 'normal' }}>{lake.volume} mil. m³</span></div> <div style={{ fontSize: '1.25rem', fontWeight: 'bold' }}>{lake.capacity > 0 ? `${lake.capacity}%` : 'N/A'} / <span style={{ fontSize: '1rem', color: 'var(--text-muted)', fontWeight: 'normal' }}>{lake.volume} mil. m³</span></div>
<div style={{ fontSize: '0.8rem', color: 'var(--text-muted)' }}>Volume</div> <div style={{ fontSize: '0.8rem', color: 'var(--text-muted)' }}>Volume</div>
</div> </div>
</div> </div>
+26 -3
View File
@@ -11,10 +11,29 @@
--color-red: #ef4444; /* Odtok / Negative trend */ --color-red: #ef4444; /* Odtok / Negative trend */
--color-orange: #f97316; /* Odtok line chart color */ --color-orange: #f97316; /* Odtok line chart color */
.kpi-grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem;
width: 100%;
}
.kpi-card {
background-color: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 1.5rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
position: relative;
display: flex;
flex-direction: column;
}
/* Hide old styles but keep them in case they are used elsewhere */
.kpi-container-mobile { .kpi-container-mobile {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 1rem; gap: 1.5rem;
width: 100%; width: 100%;
} }
@@ -151,6 +170,9 @@
max-height: 50%; max-height: 50%;
border-radius: 20px 20px 0 0; border-radius: 20px 20px 0 0;
} }
.kpi-grid-container {
grid-template-columns: 1fr;
}
} }
/* Time controls pill layout */ /* Time controls pill layout */
@@ -160,7 +182,7 @@
border-radius: 0.5rem; border-radius: 0.5rem;
border: 1px solid var(--border-color); border: 1px solid var(--border-color);
overflow: hidden; overflow: hidden;
width: 100%; width: auto;
} }
.top-time-controls button { .top-time-controls button {
@@ -169,10 +191,11 @@
border: none; border: none;
border-right: 1px solid var(--border-color); border-right: 1px solid var(--border-color);
color: var(--text-muted); color: var(--text-muted);
padding: 0.75rem 0; padding: 0.4rem 1rem;
cursor: pointer; cursor: pointer;
font-weight: 500; font-weight: 500;
transition: all 0.2s; transition: all 0.2s;
font-size: 0.85rem;
} }
.top-time-controls button:last-child { .top-time-controls button:last-child {
border-right: none; border-right: none;
+8 -4
View File
@@ -5,7 +5,7 @@ import https from 'https';
async function test() { async function test() {
const agent = new https.Agent({ rejectUnauthorized: false }); const agent = new https.Agent({ rejectUnauthorized: false });
try { try {
const res = await axios.get('https://www.pvl.cz/portal/nadrze/cz/pc/Nadrze.aspx', { const res = await axios.get('https://www.pvl.cz/portal/nadrze/cz/pc/Mereni.aspx?oid=1&id=VLL1', {
httpsAgent: agent, httpsAgent: agent,
headers: { headers: {
'User-Agent': 'Mozilla/5.0' 'User-Agent': 'Mozilla/5.0'
@@ -13,10 +13,14 @@ async function test() {
}); });
const $ = cheerio.load(res.data); const $ = cheerio.load(res.data);
const rows = $('table tr'); const tables = $('table');
rows.each((i, row) => { tables.each((i, tbl) => {
console.log($(row).text().replace(/\s+/g, ' ')); console.log(`TABLE ${i}:`);
console.log($(tbl).find('tr').first().text().trim().replace(/\s+/g, ' '));
console.log($(tbl).find('tr').eq(1).text().trim().replace(/\s+/g, ' '));
console.log('---');
}); });
} catch (e) { } catch (e) {
console.error(e.message); console.error(e.message);
} }