diff --git a/index.html b/index.html index f4d2855..ed1d367 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + Hladinátor - Aktuální stav přehrad a nádrží @@ -10,9 +10,24 @@ + + + + + +
+ diff --git a/public/data/BEBE.json b/public/data/BEBE.json index b432063..c58b501 100644 --- a/public/data/BEBE.json +++ b/public/data/BEBE.json @@ -2326,5 +2326,23 @@ "volume": 0, "temperature": 26, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 97, + "flow": 8.815, + "inflow": 0, + "volume": 0, + "temperature": 25.7, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 97, + "flow": 8.963, + "inflow": 0, + "volume": 0, + "temperature": 25.7, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/BEPL.json b/public/data/BEPL.json index 8f919de..aaa2a75 100644 --- a/public/data/BEPL.json +++ b/public/data/BEPL.json @@ -2214,7 +2214,16 @@ "flow": 4.745, "inflow": 0, "volume": 0, - "temperature": 25.5, + "temperature": 25.2, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 90, + "flow": 4.82, + "inflow": 0, + "volume": 0, + "temperature": 25.2, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/BEZB.json b/public/data/BEZB.json index c18803f..f66bf4e 100644 --- a/public/data/BEZB.json +++ b/public/data/BEZB.json @@ -2279,5 +2279,23 @@ "volume": 0, "temperature": 24.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 151, + "flow": 6.53, + "inflow": 0, + "volume": 0, + "temperature": 24.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 151, + "flow": 6.486, + "inflow": 0, + "volume": 0, + "temperature": 24.4, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/BIBI.json b/public/data/BIBI.json index 1ac160e..ee20cb9 100644 --- a/public/data/BIBI.json +++ b/public/data/BIBI.json @@ -8222,7 +8222,16 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 23.7, + "temperature": 23.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:45:00.000Z", + "level": 463.42, + "flow": 0, + "inflow": 0, + "volume": 0, + "temperature": 23.4, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/BLHU.json b/public/data/BLHU.json index b745377..7e56ac2 100644 --- a/public/data/BLHU.json +++ b/public/data/BLHU.json @@ -8917,5 +8917,32 @@ "volume": 2.44, "temperature": 22.1, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 521.28, + "flow": 0.65, + "inflow": 0.6, + "volume": 2.44, + "temperature": 21.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 521.28, + "flow": 0.65, + "inflow": 0.6, + "volume": 2.44, + "temperature": 21.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 521.28, + "flow": 0.65, + "inflow": 0.6, + "volume": 2.44, + "temperature": 21.5, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/CPDR.json b/public/data/CPDR.json index 8f5343d..2c069a7 100644 --- a/public/data/CPDR.json +++ b/public/data/CPDR.json @@ -8890,5 +8890,23 @@ "volume": 0.09, "temperature": 23.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 416.72, + "flow": 0, + "inflow": 0, + "volume": 0.09, + "temperature": 23.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 416.72, + "flow": 0, + "inflow": 0, + "volume": 0.09, + "temperature": 23.5, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/CPZA.json b/public/data/CPZA.json index b5f4ab1..9e560c7 100644 --- a/public/data/CPZA.json +++ b/public/data/CPZA.json @@ -8863,5 +8863,23 @@ "volume": 0.67, "temperature": 23.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 448.81, + "flow": 0, + "inflow": 0, + "volume": 0.67, + "temperature": 23.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 448.8, + "flow": 0, + "inflow": 0, + "volume": 0.67, + "temperature": 23.4, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/CRSO.json b/public/data/CRSO.json index 2b9cd86..d7df105 100644 --- a/public/data/CRSO.json +++ b/public/data/CRSO.json @@ -8080,5 +8080,32 @@ "volume": 0.03, "temperature": 23, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:10:00.000Z", + "level": 580.98, + "flow": 0, + "temperature": 23, + "precipitation": 0, + "inflow": 0, + "volume": 0.03 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 580.97, + "flow": 0, + "temperature": 23, + "precipitation": 0, + "inflow": 0, + "volume": 0.03 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 580.95, + "flow": 0, + "inflow": 0, + "volume": 0.03, + "temperature": 22.8, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/HESE.json b/public/data/HESE.json index 5869335..c7f02be 100644 --- a/public/data/HESE.json +++ b/public/data/HESE.json @@ -8912,7 +8912,7 @@ { "timestamp": "2026-06-08T17:10:00.000Z", "level": 447.09, - "flow": 0, + "flow": 0.21, "inflow": 0.64, "volume": 1.68, "temperature": 23.2, @@ -8921,10 +8921,37 @@ { "timestamp": "2026-06-08T17:20:00.000Z", "level": 447.09, - "flow": 0, + "flow": 0.21, "inflow": 0.64, "volume": 1.68, "temperature": 22.6, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 447.09, + "flow": 0.23, + "temperature": 22.6, + "precipitation": 0, + "inflow": 0.64, + "volume": 1.68 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 447.09, + "flow": 0, + "inflow": 0.64, + "volume": 1.68, + "temperature": 22.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 447.1, + "flow": 0, + "inflow": 0.64, + "volume": 1.68, + "temperature": 22.3, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/HEVR.json b/public/data/HEVR.json index 8a2b6b8..b36b215 100644 --- a/public/data/HEVR.json +++ b/public/data/HEVR.json @@ -6531,7 +6531,8 @@ "inflow": 10.531307943184332, "volume": 0.14, "temperature": 17.568065740810052, - "precipitation": 0 + "precipitation": 0, + "qn": "> Q1" }, { "timestamp": "2026-06-05T18:00:00.000Z", @@ -6639,7 +6640,8 @@ "inflow": 10.531307943184332, "volume": 0.14, "temperature": 17.568065740810052, - "precipitation": 0 + "precipitation": 0, + "qn": "> Q1" }, { "timestamp": "2026-06-06T06:00:00.000Z", @@ -7107,7 +7109,8 @@ "inflow": 0.42, "volume": 0.14, "temperature": 14.7, - "precipitation": 0.6 + "precipitation": 0.6, + "qn": "> Q1" }, { "timestamp": "2026-06-07T06:00:00.000Z", @@ -8286,7 +8289,8 @@ "inflow": 0.4, "volume": 0.14, "temperature": 9.6, - "precipitation": 0 + "precipitation": 0, + "qn": "> Q1" }, { "timestamp": "2026-06-08T05:10:00.000Z", @@ -8340,7 +8344,8 @@ "inflow": 0.4, "volume": 0.14, "temperature": 13, - "precipitation": 0 + "precipitation": 0, + "qn": "> Q1" }, { "timestamp": "2026-06-08T06:10:00.000Z", @@ -8394,7 +8399,8 @@ "inflow": 0.4, "volume": 0.14, "temperature": 16, - "precipitation": 0 + "precipitation": 0, + "qn": "> Q1" }, { "timestamp": "2026-06-08T07:10:00.000Z", @@ -8948,7 +8954,7 @@ { "timestamp": "2026-06-08T17:20:00.000Z", "level": 407.64, - "flow": 0, + "flow": 0.2, "inflow": 0.4, "volume": 0.14, "temperature": 22.3, @@ -8957,10 +8963,28 @@ { "timestamp": "2026-06-08T17:30:00.000Z", "level": 407.64, - "flow": 0, + "flow": 0.2, "inflow": 0.4, "volume": 0.14, "temperature": 22.3, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 407.64, + "flow": 0, + "inflow": 0.4, + "volume": 0.14, + "temperature": 22, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 407.64, + "flow": 0, + "inflow": 0.4, + "volume": 0.14, + "temperature": 22, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/KCKC.json b/public/data/KCKC.json index 6ff1806..e389c4c 100644 --- a/public/data/KCKC.json +++ b/public/data/KCKC.json @@ -8917,5 +8917,32 @@ "volume": 7.48, "temperature": 23.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 292.89, + "flow": 0.02, + "inflow": -0.03, + "volume": 7.48, + "temperature": 23.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 292.89, + "flow": 0, + "temperature": 23.5, + "precipitation": 0, + "inflow": -0.03, + "volume": 7.48 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 292.89, + "flow": 0, + "inflow": -0.03, + "volume": 7.48, + "temperature": 23.5, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/KLDP.json b/public/data/KLDP.json index e201093..6ce617c 100644 --- a/public/data/KLDP.json +++ b/public/data/KLDP.json @@ -8206,5 +8206,32 @@ "volume": 0, "temperature": 21.7, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:10:00.000Z", + "level": 632.76, + "flow": 0, + "temperature": 21.7, + "precipitation": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 632.76, + "flow": 0, + "temperature": 21.7, + "precipitation": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 632.76, + "flow": 0, + "inflow": 0, + "volume": 0, + "temperature": 21.4, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/KLHP.json b/public/data/KLHP.json index 0a869a8..160da9f 100644 --- a/public/data/KLHP.json +++ b/public/data/KLHP.json @@ -8206,5 +8206,32 @@ "volume": 0, "temperature": 22, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:10:00.000Z", + "level": 635.7, + "flow": 0, + "temperature": 22, + "precipitation": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 635.7, + "flow": 0, + "temperature": 22, + "precipitation": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 635.7, + "flow": 0, + "inflow": 0, + "volume": 0, + "temperature": 21.7, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/KLKL.json b/public/data/KLKL.json index 24250f3..2ec5954 100644 --- a/public/data/KLKL.json +++ b/public/data/KLKL.json @@ -8908,5 +8908,32 @@ "volume": 0.67, "temperature": 24.3, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 345.02, + "flow": 0.57, + "temperature": 24.3, + "precipitation": 0, + "inflow": 0.59, + "volume": 0.67 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 345.02, + "flow": 0.57, + "inflow": 0.59, + "volume": 0.67, + "temperature": 24, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 345.02, + "flow": 0.57, + "inflow": 0.59, + "volume": 0.67, + "temperature": 24, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/LILA.json b/public/data/LILA.json index b5dfef9..134b6b1 100644 --- a/public/data/LILA.json +++ b/public/data/LILA.json @@ -8944,5 +8944,32 @@ "volume": 0.73, "temperature": 21.3, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 640.65, + "flow": 0.01, + "temperature": 21.3, + "precipitation": 0, + "inflow": 0.01, + "volume": 0.73 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 640.65, + "flow": 0.01, + "inflow": 0.01, + "volume": 0.73, + "temperature": 21, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 640.65, + "flow": 0.01, + "inflow": 0.01, + "volume": 0.73, + "temperature": 21, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/LUBE.json b/public/data/LUBE.json index 1c26713..38edb56 100644 --- a/public/data/LUBE.json +++ b/public/data/LUBE.json @@ -2254,5 +2254,23 @@ "volume": 0, "temperature": 24, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 84, + "flow": 3.056, + "inflow": 0, + "volume": 0, + "temperature": 23.7, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 85, + "flow": 3.152, + "inflow": 0, + "volume": 0, + "temperature": 23.7, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/LUKL.json b/public/data/LUKL.json index 4aa4880..0562430 100644 --- a/public/data/LUKL.json +++ b/public/data/LUKL.json @@ -1968,5 +1968,23 @@ "volume": 0, "temperature": 24.1, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:10:00.000Z", + "level": 51, + "flow": 3.92, + "temperature": 24.1, + "precipitation": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 51, + "flow": 3.92, + "inflow": 0, + "volume": 0, + "temperature": 23.8, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/MARI.json b/public/data/MARI.json index 8fe1848..555b748 100644 --- a/public/data/MARI.json +++ b/public/data/MARI.json @@ -9245,10 +9245,37 @@ { "timestamp": "2026-06-08T17:20:00.000Z", "level": 467.79, - "flow": 0, + "flow": 0.7, "inflow": 1.6, "volume": 26.61, "temperature": 24.1, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 467.79, + "flow": 0.7, + "temperature": 24.1, + "precipitation": 0, + "inflow": 1.6, + "volume": 26.61 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 467.79, + "flow": 0.7, + "inflow": 1.6, + "volume": 26.61, + "temperature": 23.9, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 467.79, + "flow": 0, + "inflow": 1.6, + "volume": 26.61, + "temperature": 23.9, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/MZHR.json b/public/data/MZHR.json index bf08b81..c34cdc1 100644 --- a/public/data/MZHR.json +++ b/public/data/MZHR.json @@ -9277,5 +9277,32 @@ "volume": 32.11, "temperature": 24.7, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 352.79, + "flow": 2.52, + "temperature": 24.7, + "precipitation": 0, + "inflow": 1.42, + "volume": 32.11 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 352.79, + "flow": 2.52, + "inflow": 1.42, + "volume": 32.11, + "temperature": 24.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 352.79, + "flow": 0, + "inflow": 1.42, + "volume": 32.11, + "temperature": 24.5, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/MZLU.json b/public/data/MZLU.json index a5d4434..747bb7e 100644 --- a/public/data/MZLU.json +++ b/public/data/MZLU.json @@ -8917,5 +8917,32 @@ "volume": 2.92, "temperature": 22.9, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 530.66, + "flow": 0.49, + "temperature": 22.9, + "precipitation": 0, + "inflow": 0.33, + "volume": 2.92 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 530.66, + "flow": 0.49, + "inflow": 0.33, + "volume": 2.92, + "temperature": 22.6, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 0, + "flow": 0.49, + "inflow": 0.33, + "volume": 2.92, + "temperature": 22.6, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/OPOB.json b/public/data/OPOB.json index 657b33a..906a09d 100644 --- a/public/data/OPOB.json +++ b/public/data/OPOB.json @@ -8755,5 +8755,32 @@ "volume": 0.46, "temperature": 22.3, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 563.66, + "flow": 0.02, + "temperature": 22.3, + "precipitation": 0, + "inflow": 0, + "volume": 0.46 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 563.66, + "flow": 0.02, + "inflow": 0, + "volume": 0.46, + "temperature": 22.1, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 0, + "flow": 0.02, + "inflow": 0, + "volume": 0.46, + "temperature": 22.1, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/OTPI.json b/public/data/OTPI.json index 51584db..78aa4e4 100644 --- a/public/data/OTPI.json +++ b/public/data/OTPI.json @@ -2261,5 +2261,23 @@ "volume": 0, "temperature": 24.9, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 43, + "flow": 4.73, + "inflow": 0, + "volume": 0, + "temperature": 24.6, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 43, + "flow": 4.75, + "inflow": 0, + "volume": 0, + "temperature": 24.6, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/OTSU.json b/public/data/OTSU.json index 3d9ff0e..22f9857 100644 --- a/public/data/OTSU.json +++ b/public/data/OTSU.json @@ -2326,5 +2326,23 @@ "volume": 0, "temperature": 23, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 25, + "flow": 2.95, + "inflow": 0, + "volume": 0, + "temperature": 22.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 26, + "flow": 3.21, + "inflow": 0, + "volume": 0, + "temperature": 22.5, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/PPPI.json b/public/data/PPPI.json index 07fe164..96b3712 100644 --- a/public/data/PPPI.json +++ b/public/data/PPPI.json @@ -8105,7 +8105,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 21.8, + "temperature": 21.5, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/RACU.json b/public/data/RACU.json index b151e8e..e2ce1dc 100644 --- a/public/data/RACU.json +++ b/public/data/RACU.json @@ -8917,5 +8917,32 @@ "volume": 2.93, "temperature": 25.1, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 313.43, + "flow": 1.03, + "temperature": 25.1, + "precipitation": 0, + "inflow": 1.25, + "volume": 2.93 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 313.43, + "flow": 1.03, + "inflow": 1.25, + "volume": 2.93, + "temperature": 24.8, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 0, + "flow": 1.03, + "inflow": 1.25, + "volume": 2.93, + "temperature": 24.8, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SAKA.json b/public/data/SAKA.json index 85b2677..8b98f92 100644 --- a/public/data/SAKA.json +++ b/public/data/SAKA.json @@ -2279,5 +2279,23 @@ "volume": 0, "temperature": 23.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 74, + "flow": 2.74, + "inflow": 0, + "volume": 0, + "temperature": 23.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 74, + "flow": 2.74, + "inflow": 0, + "volume": 0, + "temperature": 23.4, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SANE.json b/public/data/SANE.json index 9255f66..78a166a 100644 --- a/public/data/SANE.json +++ b/public/data/SANE.json @@ -2236,5 +2236,23 @@ "volume": 0, "temperature": 23.6, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 44, + "flow": 4.17, + "inflow": 0, + "volume": 0, + "temperature": 23.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 44, + "flow": 4.17, + "inflow": 0, + "volume": 0, + "temperature": 23.3, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SAPI.json b/public/data/SAPI.json index 9cd198e..3af086d 100644 --- a/public/data/SAPI.json +++ b/public/data/SAPI.json @@ -8926,5 +8926,23 @@ "volume": 1.06, "temperature": 21.4, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 575.7, + "flow": 0.02, + "inflow": 0, + "volume": 1.06, + "temperature": 21.2, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 575.7, + "flow": 0.02, + "inflow": 0, + "volume": 1.06, + "temperature": 21.2, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SASV.json b/public/data/SASV.json index e8c9866..ebb9216 100644 --- a/public/data/SASV.json +++ b/public/data/SASV.json @@ -2279,5 +2279,23 @@ "volume": 0, "temperature": 23.4, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 26, + "flow": 1.535, + "inflow": 0, + "volume": 0, + "temperature": 23.1, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 25, + "flow": 1.524, + "inflow": 0, + "volume": 0, + "temperature": 23.1, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SAZR.json b/public/data/SAZR.json index 73fae6c..e33387e 100644 --- a/public/data/SAZR.json +++ b/public/data/SAZR.json @@ -2279,5 +2279,23 @@ "volume": 0, "temperature": 24, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 68, + "flow": 1.456, + "inflow": 0, + "volume": 0, + "temperature": 23.7, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 68, + "flow": 1.456, + "inflow": 0, + "volume": 0, + "temperature": 23.7, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SCHU.json b/public/data/SCHU.json index e65ecee..052dadd 100644 --- a/public/data/SCHU.json +++ b/public/data/SCHU.json @@ -8929,11 +8929,29 @@ }, { "timestamp": "2026-06-08T17:30:00.000Z", - "level": 0, + "level": 534.7, "flow": 0.06, "inflow": 0.07, "volume": 0.1, "temperature": 23.6, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 534.7, + "flow": 0.06, + "inflow": 0.07, + "volume": 0.1, + "temperature": 23.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 0, + "flow": 0.06, + "inflow": 0.07, + "volume": 0.1, + "temperature": 23.3, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SMSM.json b/public/data/SMSM.json index 410664c..408acdb 100644 --- a/public/data/SMSM.json +++ b/public/data/SMSM.json @@ -8908,5 +8908,14 @@ "volume": 0.41, "temperature": 24.1, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 260.09, + "flow": 0.06, + "inflow": 0.07, + "volume": 0.41, + "temperature": 23.7, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SPKA.json b/public/data/SPKA.json index 9bf09f3..6257ce3 100644 --- a/public/data/SPKA.json +++ b/public/data/SPKA.json @@ -8917,5 +8917,23 @@ "volume": 0.39, "temperature": 23.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 668.4, + "flow": 0, + "inflow": 0, + "volume": 0.39, + "temperature": 23.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 668.4, + "flow": 0, + "inflow": 0, + "volume": 0.39, + "temperature": 23.5, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SPNE.json b/public/data/SPNE.json index 70d7b51..fc01605 100644 --- a/public/data/SPNE.json +++ b/public/data/SPNE.json @@ -8638,5 +8638,23 @@ "volume": 0.84, "temperature": 22.5, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 385.01, + "flow": 0.02, + "inflow": 0, + "volume": 0.84, + "temperature": 22.1, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 385.01, + "flow": 0.02, + "inflow": 0, + "volume": 0.84, + "temperature": 22.1, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SPZH.json b/public/data/SPZH.json index 9fc4920..1e378ed 100644 --- a/public/data/SPZH.json +++ b/public/data/SPZH.json @@ -8908,5 +8908,23 @@ "volume": 0.16, "temperature": 20.6, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 678.6, + "flow": 0, + "inflow": 0, + "volume": 0.16, + "temperature": 20.2, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 678.6, + "flow": 0, + "inflow": 0, + "volume": 0.16, + "temperature": 20.2, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/STST.json b/public/data/STST.json index d633880..9b8e3da 100644 --- a/public/data/STST.json +++ b/public/data/STST.json @@ -8962,5 +8962,32 @@ "volume": 0.32, "temperature": 23, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 588.39, + "flow": 0.08, + "temperature": 23, + "precipitation": 0, + "inflow": 0, + "volume": 0.32 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 588.39, + "flow": 0.08, + "inflow": 0, + "volume": 0.32, + "temperature": 22.7, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 0, + "flow": 0.08, + "inflow": 0, + "volume": 0.32, + "temperature": 22.7, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/STZL.json b/public/data/STZL.json index 7047832..cb0a819 100644 --- a/public/data/STZL.json +++ b/public/data/STZL.json @@ -8917,5 +8917,32 @@ "volume": 9.28, "temperature": 22.6, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 505.63, + "flow": 0.22, + "temperature": 22.6, + "precipitation": 0, + "inflow": 0.05, + "volume": 9.28 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 505.63, + "flow": 0.22, + "inflow": 0.05, + "volume": 9.28, + "temperature": 22.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 505.63, + "flow": 0.22, + "inflow": 0.05, + "volume": 9.28, + "temperature": 22.3, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/SVSV.json b/public/data/SVSV.json index e23c781..4d0fc83 100644 --- a/public/data/SVSV.json +++ b/public/data/SVSV.json @@ -8911,11 +8911,29 @@ }, { "timestamp": "2026-06-08T17:30:00.000Z", - "level": 0, + "level": 580.52, "flow": 0.05, "inflow": 0, "volume": 0.41, "temperature": 21.4, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 0, + "flow": 0.05, + "inflow": 0, + "volume": 0.41, + "temperature": 21.1, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 0, + "flow": 0.05, + "inflow": 0, + "volume": 0.41, + "temperature": 21.1, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/TRTR.json b/public/data/TRTR.json index d749630..6d8b992 100644 --- a/public/data/TRTR.json +++ b/public/data/TRTR.json @@ -8935,5 +8935,32 @@ "volume": 5.16, "temperature": 23.2, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 412.8, + "flow": 0.34, + "temperature": 23.2, + "precipitation": 0, + "inflow": 0.34, + "volume": 5.16 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 412.8, + "flow": 0.34, + "inflow": 0.34, + "volume": 5.16, + "temperature": 22.9, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 412.8, + "flow": 0.34, + "inflow": 0.34, + "volume": 5.16, + "temperature": 22.9, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/UHNY.json b/public/data/UHNY.json index 302ff52..69644d6 100644 --- a/public/data/UHNY.json +++ b/public/data/UHNY.json @@ -8935,5 +8935,32 @@ "volume": 15.31, "temperature": 19.6, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 520.32, + "flow": 0.72, + "temperature": 19.6, + "precipitation": 0, + "inflow": 0.53, + "volume": 15.31 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 520.32, + "flow": 0.72, + "inflow": 0.53, + "volume": 15.31, + "temperature": 19.2, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 520.32, + "flow": 0, + "inflow": 0.53, + "volume": 15.31, + "temperature": 19.2, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLCB.json b/public/data/VLCB.json index a9c50c1..14c1043 100644 --- a/public/data/VLCB.json +++ b/public/data/VLCB.json @@ -1968,5 +1968,23 @@ "volume": 0, "temperature": 25.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:10:00.000Z", + "level": 98, + "flow": 9.24, + "temperature": 25.8, + "precipitation": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 100, + "flow": 8.57, + "inflow": 0, + "volume": 0, + "temperature": 25.6, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLCH.json b/public/data/VLCH.json index db62b15..aa36550 100644 --- a/public/data/VLCH.json +++ b/public/data/VLCH.json @@ -2252,5 +2252,23 @@ "volume": 0, "temperature": 26.1, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 45, + "flow": 51.71, + "inflow": 0, + "volume": 0, + "temperature": 25.9, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 46, + "flow": 52.52, + "inflow": 0, + "volume": 0, + "temperature": 25.9, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLHN.json b/public/data/VLHN.json index 5c55457..097f025 100644 --- a/public/data/VLHN.json +++ b/public/data/VLHN.json @@ -9223,5 +9223,23 @@ "volume": 19.77, "temperature": 24.4, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 369.61, + "flow": 15.23, + "temperature": 24.4, + "precipitation": 0, + "inflow": 0, + "volume": 19.77 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 369.61, + "flow": 15.26, + "inflow": 0, + "volume": 19.77, + "temperature": 24.1, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLKA.json b/public/data/VLKA.json index bdfae8d..2287d66 100644 --- a/public/data/VLKA.json +++ b/public/data/VLKA.json @@ -8917,5 +8917,32 @@ "volume": 10.12, "temperature": 24.7, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 283.19, + "flow": 39.59, + "inflow": 1.43, + "volume": 10.12, + "temperature": 24.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 283.27, + "flow": 39.75, + "inflow": 1.43, + "volume": 10.12, + "temperature": 24.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 283.26, + "flow": 39.79, + "inflow": 1.43, + "volume": 10.12, + "temperature": 24.4, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLKO.json b/public/data/VLKO.json index b9147b8..ab58277 100644 --- a/public/data/VLKO.json +++ b/public/data/VLKO.json @@ -9250,5 +9250,32 @@ "volume": 2.77, "temperature": 23.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 352.52, + "flow": 25.5, + "temperature": 23.8, + "precipitation": 0, + "inflow": 15.72, + "volume": 2.77 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 352.52, + "flow": 22.96, + "inflow": 15.72, + "volume": 2.77, + "temperature": 23.6, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 352.53, + "flow": 19.89, + "inflow": 15.72, + "volume": 2.77, + "temperature": 23.6, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLL1.json b/public/data/VLL1.json index 0c11f94..d9c4885 100644 --- a/public/data/VLL1.json +++ b/public/data/VLL1.json @@ -9232,5 +9232,23 @@ "volume": 198.92, "temperature": 22.4, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 723.06, + "flow": 51.86, + "inflow": -2.61, + "volume": 198.92, + "temperature": 22.1, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 723.07, + "flow": 51.87, + "inflow": -2.61, + "volume": 198.92, + "temperature": 22.1, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLL2.json b/public/data/VLL2.json index 71bab81..62a3271 100644 --- a/public/data/VLL2.json +++ b/public/data/VLL2.json @@ -9236,7 +9236,7 @@ { "timestamp": "2026-06-08T17:00:00.000Z", "level": 559.61, - "flow": 0, + "flow": 7.48, "inflow": 2.61, "volume": 0.61, "temperature": 24.2, @@ -9245,7 +9245,7 @@ { "timestamp": "2026-06-08T17:10:00.000Z", "level": 559.6, - "flow": 0, + "flow": 7.48, "inflow": 2.61, "volume": 0.59, "temperature": 23.7, @@ -9259,5 +9259,23 @@ "volume": 0.59, "temperature": 23.3, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 559.63, + "flow": 0, + "temperature": 23.3, + "precipitation": 0, + "inflow": 2.61, + "volume": 0.59 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 559.7, + "flow": 0, + "inflow": 2.61, + "volume": 0.59, + "temperature": 22.9, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLOR.json b/public/data/VLOR.json index 39b205f..6f42edb 100644 --- a/public/data/VLOR.json +++ b/public/data/VLOR.json @@ -9259,5 +9259,23 @@ "volume": 521.33, "temperature": 24.2, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 345.22, + "flow": 148.9, + "inflow": 18.49, + "volume": 521.33, + "temperature": 24, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 345.22, + "flow": 148.83, + "inflow": 18.49, + "volume": 521.33, + "temperature": 24, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLSL.json b/public/data/VLSL.json index 2054b73..78b89c7 100644 --- a/public/data/VLSL.json +++ b/public/data/VLSL.json @@ -9250,5 +9250,32 @@ "volume": 260.55, "temperature": 24.4, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 269.81, + "flow": 236.61, + "inflow": 1.16, + "volume": 260.55, + "temperature": 24, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 269.81, + "flow": 237.63, + "inflow": 1.16, + "volume": 260.55, + "temperature": 24, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 269.79, + "flow": 239.31, + "inflow": 1.16, + "volume": 260.55, + "temperature": 24, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLST.json b/public/data/VLST.json index cb561f5..5ae46b5 100644 --- a/public/data/VLST.json +++ b/public/data/VLST.json @@ -9250,5 +9250,32 @@ "volume": 7.56, "temperature": 23.8, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 216.68, + "flow": 51.45, + "temperature": 23.8, + "precipitation": 0, + "inflow": 12.66, + "volume": 7.56 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 216.71, + "flow": 51.45, + "inflow": 12.66, + "volume": 7.56, + "temperature": 23.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 216.89, + "flow": 51.48, + "inflow": 12.66, + "volume": 7.56, + "temperature": 23.3, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLVB.json b/public/data/VLVB.json index 5486f22..a29cec2 100644 --- a/public/data/VLVB.json +++ b/public/data/VLVB.json @@ -2299,5 +2299,23 @@ "volume": 0, "temperature": 23.7, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:20:00.000Z", + "level": 65, + "flow": 7.458, + "inflow": 0, + "volume": 0, + "temperature": 23.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 65, + "flow": 7.482, + "inflow": 0, + "volume": 0, + "temperature": 23.3, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLVE.json b/public/data/VLVE.json index 02d59eb..daad736 100644 --- a/public/data/VLVE.json +++ b/public/data/VLVE.json @@ -8953,5 +8953,32 @@ "volume": 9.02, "temperature": 24.6, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 199.29, + "flow": 39.59, + "inflow": 25.05, + "volume": 9.02, + "temperature": 24.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 199.28, + "flow": 39.64, + "inflow": 25.05, + "volume": 9.02, + "temperature": 24.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:50:00.000Z", + "level": 199.3, + "flow": 39.64, + "inflow": 25.05, + "volume": 9.02, + "temperature": 24.3, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/ZESV.json b/public/data/ZESV.json index b3f762e..eb0bc3d 100644 --- a/public/data/ZESV.json +++ b/public/data/ZESV.json @@ -8894,10 +8894,28 @@ { "timestamp": "2026-06-08T17:20:00.000Z", "level": 375.12, - "flow": 0, + "flow": 0.44, "inflow": 0.58, "volume": 240.58, "temperature": 23.7, "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:30:00.000Z", + "level": 375.12, + "flow": 0.44, + "inflow": 0.58, + "volume": 240.58, + "temperature": 23.5, + "precipitation": 0 + }, + { + "timestamp": "2026-06-08T17:40:00.000Z", + "level": 375.12, + "flow": 0, + "inflow": 0.58, + "volume": 240.58, + "temperature": 23.5, + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/lakes_index.json b/public/data/lakes_index.json index 71186aa..14751a7 100644 --- a/public/data/lakes_index.json +++ b/public/data/lakes_index.json @@ -4,11 +4,11 @@ "name": "Lipno 1", "river": "Vltava", "priority": true, - "level": "723.06", + "level": "723.07", "capacity": 65, - "storageDiff": -1.84, + "storageDiff": -1.83, "inflow": "-2.6", - "outflow": "48.5", + "outflow": "51.9", "volume": 198.92, "maxVolume": 306, "navigationForbidden": false, @@ -23,10 +23,10 @@ 723.07, 723.07, 723.07, - 723.07, - 723.07, 723.06, - 723.06 + 723.06, + 723.06, + 723.07 ], "type": "lake" }, @@ -35,9 +35,9 @@ "name": "Lipno II", "river": "Vltava", "priority": true, - "level": "559.58", + "level": "559.70", "capacity": 36.9, - "storageDiff": -3.12, + "storageDiff": -3, "inflow": "2.6", "outflow": "0.0", "volume": 0.59, @@ -46,8 +46,6 @@ "lat": 48.625, "lng": 14.318, "sparkline": [ - 559.72, - 559.71, 559.69, 559.68, 559.67, @@ -57,7 +55,9 @@ 559.62, 559.61, 559.6, - 559.58 + 559.58, + 559.63, + 559.7 ], "type": "lake" }, @@ -70,15 +70,13 @@ "capacity": 93.7, "storageDiff": -0.49, "inflow": "0.0", - "outflow": "15.2", + "outflow": "15.3", "volume": 19.77, "maxVolume": 21.1, "navigationForbidden": false, "lat": 49.183, "lng": 14.444, "sparkline": [ - 369.65, - 369.64, 369.64, 369.64, 369.64, @@ -88,6 +86,8 @@ 369.61, 369.61, 369.61, + 369.61, + 369.61, 369.61 ], "type": "lake" @@ -97,11 +97,11 @@ "name": "Kořensko", "river": "Vltava", "priority": true, - "level": "352.52", + "level": "352.53", "capacity": 98.9, - "storageDiff": -0.08, + "storageDiff": -0.07, "inflow": "15.7", - "outflow": "26.1", + "outflow": "19.9", "volume": 2.77, "maxVolume": 2.8, "navigationForbidden": false, @@ -109,8 +109,6 @@ "lng": 14.398, "sparkline": [ 352.52, - 352.51, - 352.51, 352.52, 352.52, 352.52, @@ -119,7 +117,9 @@ 352.52, 352.52, 352.52, - 352.52 + 352.52, + 352.52, + 352.53 ], "type": "lake" }, @@ -132,7 +132,7 @@ "capacity": 72.8, "storageDiff": -4.68, "inflow": "18.5", - "outflow": "149.0", + "outflow": "148.8", "volume": 521.33, "maxVolume": 716.5, "navigationForbidden": false, @@ -147,9 +147,9 @@ 345.22, 345.22, 345.22, - 345.22, - 345.22, 345.23, + 345.22, + 345.22, 345.22 ], "type": "lake" @@ -159,20 +159,17 @@ "name": "Slapy", "river": "Vltava", "priority": true, - "level": "269.81", + "level": "269.79", "capacity": 96.8, - "storageDiff": -0.79, + "storageDiff": -0.81, "inflow": "1.2", - "outflow": "236.3", + "outflow": "239.3", "volume": 260.55, "maxVolume": 269.3, "navigationForbidden": false, "lat": 49.822, "lng": 14.436, "sparkline": [ - 269.85, - 269.85, - 269.85, 269.85, 269.85, 269.85, @@ -181,7 +178,10 @@ 269.85, 269.83, 269.81, - 269.81 + 269.81, + 269.81, + 269.81, + 269.79 ], "type": "lake" }, @@ -190,9 +190,9 @@ "name": "Štěchovice", "river": "Vltava", "priority": true, - "level": "216.51", + "level": "216.89", "capacity": 67.5, - "storageDiff": -2.89, + "storageDiff": -2.51, "inflow": "12.7", "outflow": "51.5", "volume": 7.56, @@ -201,9 +201,6 @@ "lat": 49.845, "lng": 14.412, "sparkline": [ - 216.46, - 216.45, - 216.44, 216.41, 216.4, 216.38, @@ -212,7 +209,10 @@ 216.34, 216.32, 216.28, - 216.51 + 216.51, + 216.68, + 216.71, + 216.89 ], "type": "lake" }, @@ -252,20 +252,17 @@ "name": "Hracholusky", "river": "Mže", "priority": true, - "level": "352.78", + "level": "352.79", "capacity": 56.6, - "storageDiff": -1.32, + "storageDiff": -1.31, "inflow": "1.4", - "outflow": "2.5", + "outflow": "0.0", "volume": 32.11, "maxVolume": 56.7, "navigationForbidden": false, "lat": 49.789, "lng": 13.155, "sparkline": [ - 352.79, - 352.79, - 352.79, 352.79, 352.79, 352.79, @@ -274,7 +271,10 @@ 352.78, 352.79, 352.79, - 352.78 + 352.78, + 352.79, + 352.79, + 352.79 ], "type": "lake" }, @@ -314,20 +314,17 @@ "name": "Kamýk", "river": "", "priority": false, - "level": "283.07", + "level": "283.26", "capacity": 79.1, - "storageDiff": -1.53, + "storageDiff": -1.34, "inflow": "1.4", - "outflow": "39.4", + "outflow": "39.8", "volume": 10.12, "maxVolume": 12.8, "navigationForbidden": false, "lat": 49.638, "lng": 14.258, "sparkline": [ - 283.1, - 283.09, - 283.1, 283.08, 283.1, 283.11, @@ -336,7 +333,10 @@ 283.09, 283.09, 283.08, - 283.07 + 283.07, + 283.19, + 283.27, + 283.26 ], "type": "lake" }, @@ -345,9 +345,9 @@ "name": "Vrané", "river": "", "priority": false, - "level": "199.28", + "level": "199.30", "capacity": 81.3, - "storageDiff": -0.82, + "storageDiff": -0.8, "inflow": "25.1", "outflow": "39.6", "volume": 9.02, @@ -356,9 +356,6 @@ "lat": 49.939, "lng": 14.391, "sparkline": [ - 199.27, - 199.25, - 199.27, 199.27, 199.27, 199.28, @@ -367,7 +364,10 @@ 199.25, 199.27, 199.28, - 199.28 + 199.28, + 199.29, + 199.28, + 199.3 ], "type": "lake" }, @@ -380,7 +380,7 @@ "capacity": 42.8, "storageDiff": -1.05, "inflow": "0.6", - "outflow": "0.6", + "outflow": "0.7", "volume": 2.44, "maxVolume": 5.7, "navigationForbidden": true, @@ -411,7 +411,7 @@ "capacity": 95.7, "storageDiff": -1.23, "inflow": "0.5", - "outflow": "0.7", + "outflow": "0.0", "volume": 15.31, "maxVolume": 16, "navigationForbidden": true, @@ -419,9 +419,9 @@ "lng": 13.123, "sparkline": [ 520.31, - 520.31, - 520.31, - 520.31, + 520.32, + 520.32, + 520.32, 520.32, 520.32, 520.32, @@ -500,9 +500,9 @@ "name": "České Údolí", "river": "", "priority": false, - "level": "313.42", + "level": "0.00", "capacity": 53.3, - "storageDiff": -0.18, + "storageDiff": 0, "inflow": "1.3", "outflow": "1.0", "volume": 2.93, @@ -511,9 +511,6 @@ "lat": 49.715, "lng": 13.364, "sparkline": [ - 313.43, - 313.42, - 0, 313.43, 313.42, 313.42, @@ -522,7 +519,10 @@ 0, 313.42, 313.43, - 313.42 + 313.42, + 313.43, + 313.43, + 0 ], "type": "lake" }, @@ -562,9 +562,9 @@ "name": "Sedlice", "river": "", "priority": false, - "level": "447.09", + "level": "447.10", "capacity": 88.4, - "storageDiff": -0.31, + "storageDiff": -0.3, "inflow": "0.6", "outflow": "0.0", "volume": 1.68, @@ -584,7 +584,7 @@ 447.09, 447.09, 447.09, - 447.09 + 447.1 ], "type": "lake" }, @@ -593,9 +593,9 @@ "name": "Lučina", "river": "", "priority": false, - "level": "530.66", + "level": "0.00", "capacity": 100, - "storageDiff": -1.44, + "storageDiff": 0, "inflow": "0.3", "outflow": "0.5", "volume": 2.92, @@ -604,9 +604,6 @@ "lat": 49.805, "lng": 12.639, "sparkline": [ - 530.66, - 530.66, - 530.66, 530.66, 530.66, 530.66, @@ -615,7 +612,10 @@ 0, 530.66, 530.66, - 530.66 + 530.66, + 530.66, + 530.66, + 0 ], "type": "lake" }, @@ -702,12 +702,12 @@ 640.65, 640.65, 640.65, - 640.65, - 640.65, - 640.65, 0, 640.65, 640.65, + 640.65, + 640.65, + 640.65, 640.65 ], "type": "lake" @@ -717,9 +717,9 @@ "name": "Obecnice", "river": "", "priority": false, - "level": "563.66", + "level": "0.00", "capacity": 76.7, - "storageDiff": -0.89, + "storageDiff": 0, "inflow": "0.0", "outflow": "0.0", "volume": 0.46, @@ -739,7 +739,7 @@ 563.66, 563.66, 563.66, - 563.66 + 0 ], "type": "lake" }, @@ -748,9 +748,9 @@ "name": "Strž", "river": "", "priority": false, - "level": "588.39", + "level": "0.00", "capacity": 32, - "storageDiff": -0.21, + "storageDiff": 0, "inflow": "0.0", "outflow": "0.1", "volume": 0.32, @@ -759,6 +759,9 @@ "lat": 49.791, "lng": 14.004, "sparkline": [ + 588.39, + 588.39, + 588.39, 588.39, 588.39, 0, @@ -767,10 +770,7 @@ 588.39, 588.39, 588.39, - 0, - 588.39, - 588.39, - 588.39 + 0 ], "type": "lake" }, @@ -810,9 +810,9 @@ "name": "Soběnov", "river": "", "priority": false, - "level": "580.99", + "level": "580.95", "capacity": 2.1, - "storageDiff": -1.22, + "storageDiff": -1.26, "inflow": "0.0", "outflow": "0.0", "volume": 0.03, @@ -821,9 +821,6 @@ "lat": 48.775, "lng": 14.536, "sparkline": [ - 580.98, - 580.99, - 580.99, 581.01, 581.02, 581.03, @@ -832,7 +829,10 @@ 581.05, 581.04, 581.03, - 580.99 + 580.99, + 580.98, + 580.97, + 580.95 ], "type": "lake" }, @@ -852,8 +852,6 @@ "lat": 48.784, "lng": 14.735, "sparkline": [ - 534.69, - 0, 534.69, 534.69, 534.69, @@ -863,6 +861,8 @@ 534.69, 534.69, 534.7, + 534.7, + 534.7, 0 ], "type": "lake" @@ -883,8 +883,6 @@ "lat": 49.575, "lng": 15.952, "sparkline": [ - 580.52, - 0, 580.52, 580.52, 580.52, @@ -894,6 +892,8 @@ 580.52, 580.52, 580.52, + 580.52, + 0, 0 ], "type": "lake" @@ -965,9 +965,9 @@ "name": "Záskalská", "river": "", "priority": false, - "level": "448.81", + "level": "448.80", "capacity": 100, - "storageDiff": 0.02, + "storageDiff": 0.01, "inflow": "0.0", "outflow": "0.0", "volume": 0.67, @@ -980,14 +980,14 @@ 448.81, 448.8, 448.81, + 448.81, + 448.81, + 448.8, + 448.8, 448.8, 448.81, 448.81, - 448.81, - 448.8, - 448.8, - 448.8, - 448.81 + 448.8 ], "type": "lake" }, @@ -1162,9 +1162,6 @@ "lat": 49.655, "lng": 13.761, "sparkline": [ - 635.7, - 635.7, - 635.7, 635.69, 635.7, 635.7, @@ -1173,6 +1170,9 @@ 635.7, 635.7, 635.7, + 635.7, + 635.7, + 635.7, 635.7 ], "type": "lake" @@ -1217,15 +1217,13 @@ "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "53.9", + "outflow": "52.5", "volume": 0, "maxVolume": 0, "navigationForbidden": false, "lat": 50.0294, "lng": 14.3986, "sparkline": [ - 46, - 46, 47, 47, 46, @@ -1235,6 +1233,8 @@ 47, 46, 49, + 46, + 45, 46 ], "type": "river" @@ -1244,19 +1244,17 @@ "name": "České Budějovice", "river": "Vltava", "priority": false, - "level": "101.00", + "level": "100.00", "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "9.2", + "outflow": "8.6", "volume": 0, "maxVolume": 0, "navigationForbidden": false, "lat": 48.9712, "lng": 14.4714, "sparkline": [ - 100, - 99, 101, 100, 99, @@ -1266,7 +1264,9 @@ 101, 101, 98, - 101 + 101, + 98, + 100 ], "type": "river" }, @@ -1275,19 +1275,17 @@ "name": "Beroun", "river": "Berounka", "priority": false, - "level": "96.00", + "level": "97.00", "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "8.7", + "outflow": "9.0", "volume": 0, "maxVolume": 0, "navigationForbidden": false, "lat": 49.9642, "lng": 14.0792, "sparkline": [ - 100, - 99, 99, 98, 97, @@ -1297,7 +1295,9 @@ 96, 96, 96, - 96 + 96, + 97, + 97 ], "type": "river" }, @@ -1341,15 +1341,13 @@ "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "4.7", + "outflow": "4.8", "volume": 0, "maxVolume": 0, "navigationForbidden": false, "lat": 49.3083, "lng": 14.1436, "sparkline": [ - 44, - 45, 45, 43, 41, @@ -1359,6 +1357,8 @@ 45, 44, 43, + 43, + 43, 43 ], "type": "river" @@ -1368,19 +1368,17 @@ "name": "Sušice", "river": "Otava", "priority": false, - "level": "25.00", + "level": "26.00", "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "3.0", + "outflow": "3.2", "volume": 0, "maxVolume": 0, "navigationForbidden": false, "lat": 49.2319, "lng": 13.5186, "sparkline": [ - 25, - 25, 25, 25, 26, @@ -1390,7 +1388,9 @@ 25, 25, 25, - 25 + 25, + 25, + 26 ], "type": "river" }, @@ -1399,19 +1399,17 @@ "name": "Bechyně", "river": "Lužnice", "priority": false, - "level": "82.00", + "level": "85.00", "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "2.7", + "outflow": "3.2", "volume": 0, "maxVolume": 0, "navigationForbidden": false, "lat": 49.2931, "lng": 14.4758, "sparkline": [ - 80, - 79, 82, 82, 81, @@ -1421,7 +1419,9 @@ 84, 83, 81, - 82 + 82, + 84, + 85 ], "type": "river" }, @@ -1446,8 +1446,8 @@ 50, 50, 50, - 50, - 50, + 51, + 51, 51, 51, 51, @@ -1492,19 +1492,17 @@ "name": "Světlá nad Sázavou", "river": "Sázava", "priority": false, - "level": "26.00", + "level": "25.00", "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "1.6", + "outflow": "1.5", "volume": 0, "maxVolume": 0, "navigationForbidden": false, "lat": 49.6677, "lng": 15.4048, "sparkline": [ - 25, - 25, 25, 24, 23, @@ -1514,7 +1512,9 @@ 26, 26, 26, - 26 + 26, + 26, + 25 ], "type": "river" }, @@ -1527,7 +1527,7 @@ "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "2.8", + "outflow": "2.7", "volume": 0, "maxVolume": 0, "navigationForbidden": false, @@ -1558,7 +1558,7 @@ "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "6.6", + "outflow": "6.5", "volume": 0, "maxVolume": 0, "navigationForbidden": false, @@ -1571,8 +1571,8 @@ 152, 152, 152, - 152, - 152, + 151, + 151, 151, 151, 151, @@ -1589,7 +1589,7 @@ "capacity": 0, "storageDiff": 0, "inflow": "0.0", - "outflow": "4.7", + "outflow": "4.8", "volume": 0, "maxVolume": 0, "navigationForbidden": false, @@ -1602,11 +1602,11 @@ 87, 87, 87, - 87, 88, 89, 89, 90, + 90, 90 ], "type": "river" diff --git a/public/favicon.jpg b/public/favicon.jpg deleted file mode 100644 index 46318d6..0000000 Binary files a/public/favicon.jpg and /dev/null differ diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000..b42f1ab Binary files /dev/null and b/public/favicon.png differ diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..587f706 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,17 @@ +{ + "short_name": "Hladinátor", + "name": "Hladinátor - Stav přehrad a nádrží", + "icons": [ + { + "src": "/favicon.png", + "type": "image/png", + "sizes": "512x512", + "purpose": "any maskable" + } + ], + "start_url": "/", + "background_color": "#1e293b", + "theme_color": "#1e293b", + "display": "standalone", + "orientation": "portrait" +} diff --git a/public/sw.js b/public/sw.js new file mode 100644 index 0000000..6872683 --- /dev/null +++ b/public/sw.js @@ -0,0 +1,66 @@ +const CACHE_NAME = 'hladinator-v1'; +const ASSETS_TO_CACHE = [ + '/', + '/index.html', + '/favicon.png', + '/manifest.json' +]; + +self.addEventListener('install', (event) => { + event.waitUntil( + caches.open(CACHE_NAME).then((cache) => { + return cache.addAll(ASSETS_TO_CACHE); + }) + ); + self.skipWaiting(); +}); + +self.addEventListener('activate', (event) => { + event.waitUntil( + caches.keys().then((keys) => { + return Promise.all( + keys.map((key) => { + if (key !== CACHE_NAME) { + return caches.delete(key); + } + }) + ); + }) + ); + self.clients.claim(); +}); + +self.addEventListener('fetch', (event) => { + // Only handle same-origin HTTP/HTTPS requests + if (!event.request.url.startsWith(self.location.origin)) return; + + event.respondWith( + caches.match(event.request).then((cachedResponse) => { + if (cachedResponse) { + // Fetch new version in background to update cache (stale-while-revalidate) + fetch(event.request).then((networkResponse) => { + if (networkResponse.status === 200) { + caches.open(CACHE_NAME).then((cache) => cache.put(event.request, networkResponse)); + } + }).catch(() => {/* ignore network failures */}); + + return cachedResponse; + } + + return fetch(event.request).then((networkResponse) => { + // Cache static files and JSON data on the fly + if (networkResponse.status === 200 && ( + event.request.url.includes('.json') || + event.request.url.includes('.css') || + event.request.url.includes('.js') + )) { + const responseToCache = networkResponse.clone(); + caches.open(CACHE_NAME).then((cache) => cache.put(event.request, responseToCache)); + } + return networkResponse; + }).catch(() => { + // Offline fallback + }); + }) + ); +}); diff --git a/scripts/scrapeLakes.ts b/scripts/scrapeLakes.ts index 5ac46e5..f3d46ac 100644 --- a/scripts/scrapeLakes.ts +++ b/scripts/scrapeLakes.ts @@ -13,6 +13,7 @@ interface DataRecord { volume?: number; temperature?: number | null; precipitation?: number | null; + qn?: string; } // Parse date from DD.MM.YYYY HH:MM to ISO @@ -91,24 +92,42 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) { }); if (dataTable) { - dataTable.find('tr').each((i, row) => { + let qnColIndex = -1; + let flowColIndex = 2; + let levelColIndex = 1; + + // Find column indices from header dynamically + $(dataTable).find('tr').first().find('th, td').each((idx, cell) => { + const headerText = $(cell).text().trim().toLowerCase(); + if (headerText.includes('qn')) { + qnColIndex = idx; + } else if (headerText.includes('hladina') || headerText.includes('stav')) { + levelColIndex = idx; + } else if (headerText.includes('odtok') || headerText.includes('průtok') || headerText.includes('prutok') || headerText.includes('flow')) { + flowColIndex = idx; + } + }); + + $(dataTable).find('tr').each((i, row) => { if (i === 0) return; // skip header const cols = $(row).find('td'); - if (cols.length >= 3) { + if (cols.length > Math.max(levelColIndex, flowColIndex)) { 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 levelStr = $(cols[levelColIndex]).text().trim().replace(',', '.'); + const flowStr = $(cols[flowColIndex]).text().trim().replace(',', '.'); + const qn = qnColIndex !== -1 && cols.length > qnColIndex ? $(cols[qnColIndex]).text().trim() : ''; const parsedDateStr = parseDateString(rawDate); if (parsedDateStr) { - records.push({ + const newRecord: DataRecord = { timestamp: parsedDateStr, level: parseFloat(levelStr) || 0, flow: parseFloat(flowStr) || 0 - }); + }; + if (qn) { + newRecord.qn = qn; + } + records.push(newRecord); } } }); @@ -153,7 +172,8 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) { ...existing, ...item, inflow: item.inflow !== undefined ? item.inflow : existing.inflow, - volume: item.volume !== undefined ? item.volume : existing.volume + volume: item.volume !== undefined ? item.volume : existing.volume, + qn: item.qn !== undefined ? item.qn : existing.qn }); } else { dataMap.set(item.timestamp, item); diff --git a/src/components/LakeDetail.tsx b/src/components/LakeDetail.tsx index 138b52f..87a4b46 100644 --- a/src/components/LakeDetail.tsx +++ b/src/components/LakeDetail.tsx @@ -22,6 +22,7 @@ interface LipnoData { fullness: number; temperature?: number | null; precipitation?: number | null; + qn?: string; } interface Props { @@ -89,12 +90,21 @@ const CustomTooltip = ({ active, payload, label, language, isWeather, isRiver }: if (!labelStr || entry.value === null || entry.value === undefined) return null; return ( -
- - {labelStr}: {entry.value.toFixed(entry.dataKey === 'level' ? (isRiver ? 0 : 2) : 1)} {unit} -
- ); +
+ + {labelStr}: {entry.value.toFixed(entry.dataKey === 'level' ? (isRiver ? 0 : 2) : 1)} {unit} +
+ ); })} + {payload[0]?.payload?.qn ? ( +
+ ⚠️ {language === 'cs' ? `Neověřené měření (QN: ${payload[0].payload.qn})` : `Unverified measurement (QN: ${payload[0].payload.qn})`} +
+ ) : ( +
+ ✓ {language === 'cs' ? 'Měření ověřeno dispečinkem' : 'Measurement verified'} +
+ )} ); } @@ -162,7 +172,8 @@ const LakeDetail = ({ language, lakeId, windUnit = 'kmh' }: Props) => { volume: item.volume || 0, fullness: 0, temperature: item.temperature, - precipitation: item.precipitation === null ? undefined : item.precipitation + precipitation: item.precipitation === null ? undefined : item.precipitation, + qn: item.qn || '' }; }); setData(formattedData); @@ -350,9 +361,38 @@ const LakeDetail = ({ language, lakeId, windUnit = 'kmh' }: Props) => { )} -
+
{topbarDict.updated} {new Date().toLocaleDateString(language === 'cs' ? 'cs-CZ' : 'en-GB', { day: '2-digit', month: '2-digit', year: 'numeric' })}, {new Date().toLocaleTimeString(language === 'cs' ? 'cs-CZ' : 'en-GB', { hour: '2-digit', minute: '2-digit' })} UTC
+ {latestData.qn ? ( + + ⚠️ {language === 'cs' ? `Neověřená data (QN: ${latestData.qn})` : `Unverified data (QN: ${latestData.qn})`} + + ) : ( + + ✓ {language === 'cs' ? 'Ověřená data dispečinkem' : 'Data verified by dispatch'} + + )}