Preparing final repo

main
jaume-nualart 1 month ago
parent 54c54d77ca
commit 90f0410c60
  1. 1
      py/Boards/Charlie/.json
  2. 1
      py/Boards/Charlie/First-example-board.json
  3. 1
      py/Boards/Charlie/GM.json
  4. 1
      py/Boards/Charlie/GY.json
  5. 1
      py/Boards/Charlie/HW.json
  6. 1
      py/Boards/Charlie/eee.json
  7. 1
      py/Boards/Charlie/ffff.json
  8. 1
      py/Boards/Charlie/my1.json
  9. 1
      py/Boards/Charlie/test1.json
  10. 1
      py/Boards/Charlie/test2.json
  11. 1
      py/Boards/Charlie/test3.json
  12. 1
      py/Boards/Pilgatan/2222222.json
  13. 1
      py/Boards/Pilgatan/dddd.json
  14. 1
      py/Boards/Pilgatan/ee.json
  15. 1
      py/Boards/Pilgatan/rr.json
  16. 283
      py/output_import.txt
  17. 93
      web-html/TraHus-Code_report.txt
  18. 101
      web-html/codereport.py
  19. 48
      web-html/test.html
  20. 186
      web-html/test2.html
  21. BIN
      web-html/z-archive/imgs-samples.dia
  22. 61
      web-html/z-archive/test-add-barchart-html.html
  23. 36
      web-html/z-archive/test-add-html.html
  24. 151
      web-html/z-notes.txt
  25. 18
      web-html/zFlask-helloWorld/app.py
  26. 35
      web-html/zFlask-helloWorld/forms.py
  27. 80
      web-html/zFlask-helloWorld/static/forms.html
  28. 59
      web-html/zFlask-helloWorld/static/index.html
  29. 155
      web-html/z_FORMATS_NEEDED.js

@ -0,0 +1 @@
{"Name": "", "Description": "", "Hus": "Charlie", "col-left": [], "col-center": [], "col-right": []}

@ -1 +0,0 @@
{"Name": "First example board", "Description": "This is the first example board we have in the database.", "Hus": "Charlie", "col-left": [{"order": 0, "id": "parallel1", "text": "A parallel coordinates plot", "api_url": "..."}], "col-center": [{"order": 0, "id": "grid1", "text": "A grid plot", "api_url": "..."}], "col-right": [{"order": 0, "id": "horizon1", "text": "A horizon plot", "api_url": "..."}]}

@ -1 +0,0 @@
{"Name": "GM", "Description": "", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-580160", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01"}], "col-right": []}

@ -1 +0,0 @@
{"Name": "GY", "Description": "G Yearky", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-405229", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}], "col-right": []}

@ -1 +0,0 @@
{"Name": "HW", "Description": "", "Hus": "Charlie", "col-left": [], "col-center": [], "col-right": [{"order": 0, "id": "horizon-876464", "text": "", "api_url": "horizon/weekly?hus=Charlie&family=MP1_1&type=celsius&year=2023&week=15"}]}

@ -0,0 +1 @@
{"Name": "eee", "Description": "eeee", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-803064", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01&hour=12"}], "col-right": []}

@ -0,0 +1 @@
{"Name": "ffff", "Description": "ddddd", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-963811", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01&hour=12"}], "col-right": []}

@ -0,0 +1 @@
{"Name": "my1", "Description": "this is my example", "Hus": "Charlie", "col-left": [{"order": 0, "id": "parallel-6847321", "text": "", "api_url": "parallel/yearly?hus=Charlie&family=MP1_1&type=celsius&year=2023&hour=12&day=1"}, {"order": 1, "id": "parallel-9166361", "text": "wwww", "api_url": "parallel/yearly?hus=Charlie&family=MP1_1&type=celsius&year=2023&hour=12&day=1"}], "col-center": [{"order": 0, "id": "grid-6311", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01&hour=12"}], "col-right": [{"order": 0, "id": "horizon-737361", "text": "", "api_url": "horizon/monthly?hus=Charlie&family=MP1_1&type=celsius&year=2023&month=1"}, {"order": 1, "id": "horizon-767913", "text": "", "api_url": "horizon/monthly?hus=Charlie&family=MP1_1&type=celsius&year=2023&month=1"}]}

@ -1 +0,0 @@
{"Name": "test1", "Description": "this is a test", "Hus": "Charlie", "col-left": [{"order": 0, "id": "P-txt-723017", "text": "eeeeeeee", "api_url": null}, {"order": 1, "id": "parallel-4286811", "text": "", "api_url": "parallel/daily?hus=Charlie&family=MP1_1&type=celsius&day=2022-12-15"}], "col-center": [{"order": 0, "id": "G-txt-910177", "text": "err we", "api_url": null}, {"order": 1, "id": "grid-438525", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}], "col-right": [{"order": 0, "id": "H-txt-974001", "text": "rerer er re", "api_url": null}, {"order": 1, "id": "horizon-487744", "text": "", "api_url": "horizon/daily?hus=Charlie&family=MP1_1&type=celsius&day=2023-02-07"}]}

@ -1 +0,0 @@
{"Name": "test2", "Description": "this is exactly like test1", "Hus": "Charlie", "col-left": [{"order": 0, "id": "P-txt-723017", "text": "eeeeeeeeeeeeeeee", "api_url": null}, {"order": 1, "id": "parallel-4286811", "text": "", "api_url": "parallel/daily?hus=Charlie&family=MP1_1&type=celsius&day=2022-12-15"}], "col-center": [{"order": 0, "id": "G-txt-910177", "text": "err weerr we", "api_url": null}, {"order": 1, "id": "grid-438525", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}], "col-right": [{"order": 0, "id": "H-txt-974001", "text": "rerer er rererer er re", "api_url": null}, {"order": 1, "id": "horizon-487744", "text": "", "api_url": "horizon/daily?hus=Charlie&family=MP1_1&type=celsius&day=2023-02-07"}]}

@ -1 +0,0 @@
{"Name": "test3", "Description": "test2 has TXT+Diagram -> 1+2, 1+2 and 1+2", "Hus": "Charlie", "col-left": [{"order": 0, "id": "P-txt-723017", "text": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "api_url": null}, {"order": 1, "id": "parallel-4286811", "text": "", "api_url": "parallel/daily?hus=Charlie&family=MP1_1&type=celsius&day=2022-12-15"}, {"order": 2, "id": "parallel-8519775", "text": "", "api_url": "parallel/yearly?hus=Charlie&family=MP1_1&type=celsius&year=2023"}], "col-center": [{"order": 0, "id": "G-txt-910177", "text": "err weerr weerr weerr we", "api_url": null}, {"order": 1, "id": "grid-438525", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}, {"order": 2, "id": "grid-628976", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01"}], "col-right": [{"order": 0, "id": "H-txt-974001", "text": "rerer er rererer er rererer er rererer er re", "api_url": null}, {"order": 1, "id": "horizon-487744", "text": "", "api_url": "horizon/daily?hus=Charlie&family=MP1_1&type=celsius&day=2023-02-07"}, {"order": 2, "id": "horizon-138015", "text": "", "api_url": "horizon/weekly?hus=Charlie&family=MP1_1&type=celsius&year=2023&week=14"}]}

@ -1 +0,0 @@
{"Name": "2222222", "Description": "333333333", "Hus": "Pilgatan", "col-left": [], "col-center": [], "col-right": []}

@ -1 +0,0 @@
{"Name": "dddd", "Description": "fff", "Hus": "Pilgatan", "col-left": [], "col-center": [], "col-right": []}

@ -1 +0,0 @@
{"Name": "ee", "Description": "ee", "Hus": "Pilgatan", "col-left": [{"order": 0, "id": "parallel-5047360", "text": "", "api_url": "parallel/daily?hus=Pilgatan&family=SCv1&type=celsius&day=2023-06-06"}], "col-center": [{"order": 0, "id": "grid-175161", "text": "", "api_url": "grid/monthly?hus=Pilgatan&sensor=SCv1-1-Temp&type=celsius&year=2023&month=01"}], "col-right": [{"order": 0, "id": "horizon-970414", "text": "", "api_url": "horizon/daily?hus=Pilgatan&family=SCv1&type=celsius&day=2023-06-05"}]}

@ -1 +0,0 @@
{"Name": "rr", "Description": "rr", "Hus": "Pilgatan", "col-left": [], "col-center": [], "col-right": []}

@ -0,0 +1,283 @@
Importing House: Charlie
Deleting and recreating 'Charlie.db'...
New card: 1; table name: Hus_Charlie_card_1
Processing ../Data/Charlie/1-2022/1-2022-02.TXT...
Processing ../Data/Charlie/1-2022/1-2022-08.TXT...
Processing ../Data/Charlie/1-2022/1-2022-09.TXT...
Processing ../Data/Charlie/1-2022/1-2022-01.TXT...
Processing ../Data/Charlie/1-2022/1-2022-11.TXT...
Processing ../Data/Charlie/1-2022/1-2022-06.TXT...
Processing ../Data/Charlie/1-2022/1-2022-12.TXT...
Processing ../Data/Charlie/1-2022/1-2022-03.TXT...
Processing ../Data/Charlie/1-2022/1-2022-05.TXT...
Processing ../Data/Charlie/1-2022/1-2022-10.TXT...
Processing ../Data/Charlie/1-2022/1-2022-07.TXT...
Processing ../Data/Charlie/1-2022/1-2022-04.TXT...
New card: 4; table name: Hus_Charlie_card_4
Processing ../Data/Charlie/4-2018/4-2018-10.TXT...
Processing ../Data/Charlie/4-2018/4-2018-12.TXT...
Processing ../Data/Charlie/4-2018/4-2018-08.TXT...
Processing ../Data/Charlie/4-2018/4-2018-07.TXT...
Processing ../Data/Charlie/4-2018/4-2018-09.TXT...
Processing ../Data/Charlie/4-2018/4-2018-11.TXT...
Processing ../Data/Charlie/4-2023/4-2023-08.TXT...
Processing ../Data/Charlie/4-2023/4-2023-07.TXT...
Processing ../Data/Charlie/4-2023/4-2023-02.TXT...
Processing ../Data/Charlie/4-2023/4-2023-04.TXT...
Processing ../Data/Charlie/4-2023/4-2023-03.TXT...
Processing ../Data/Charlie/4-2023/4-2023-01.TXT...
Processing ../Data/Charlie/4-2023/4-2023-05.TXT...
Processing ../Data/Charlie/4-2023/4-2023-06.TXT...
Processing ../Data/Charlie/1-2023/1-2023-04.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2023/1-2023-07.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2023/1-2023-06.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2023/1-2023-01.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2023/1-2023-03.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2023/1-2023-02.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2023/1-2023-08.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2023/1-2023-05.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-08.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-07.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-11.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-01.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-06.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-03.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-04.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-09.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-05.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-12.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-10.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2021/1-2021-02.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/4-2022/4-2022-07.TXT...
Processing ../Data/Charlie/4-2022/4-2022-02.TXT...
Processing ../Data/Charlie/4-2022/4-2022-10.TXT...
Processing ../Data/Charlie/4-2022/4-2022-04.TXT...
Processing ../Data/Charlie/4-2022/4-2022-12.TXT...
Processing ../Data/Charlie/4-2022/4-2022-03.TXT...
Processing ../Data/Charlie/4-2022/4-2022-01.TXT...
Processing ../Data/Charlie/4-2022/4-2022-09.TXT...
Processing ../Data/Charlie/4-2022/4-2022-05.TXT...
Processing ../Data/Charlie/4-2022/4-2022-11.TXT...
Processing ../Data/Charlie/4-2022/4-2022-06.TXT...
Processing ../Data/Charlie/4-2022/4-2022-08.TXT...
Processing ../Data/Charlie/4-2020/4-2020-09.TXT...
Processing ../Data/Charlie/4-2020/4-2020-10.TXT...
Processing ../Data/Charlie/4-2020/4-2020-03.TXT...
Processing ../Data/Charlie/4-2020/4-2020-01.TXT...
Processing ../Data/Charlie/4-2020/4-2020-05.TXT...
Processing ../Data/Charlie/4-2020/4-2020-06.TXT...
Processing ../Data/Charlie/4-2020/4-2020-02.TXT...
Processing ../Data/Charlie/4-2020/4-2020-08.TXT...
Processing ../Data/Charlie/4-2020/4-2020-07.TXT...
Processing ../Data/Charlie/4-2020/4-2020-12.TXT...
Processing ../Data/Charlie/4-2020/4-2020-04.TXT...
Processing ../Data/Charlie/4-2020/4-2020-11.TXT...
Processing ../Data/Charlie/1-2018/1-2018-10.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2018/1-2018-09.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2018/1-2018-12.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2018/1-2018-11.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2018/1-2018-07.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2018/1-2018-08.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-08.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-12.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-10.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-09.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-06.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-07.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-02.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-05.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-03.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-01.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-04.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2019/1-2019-11.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/4-2019/4-2019-09.TXT...
Processing ../Data/Charlie/4-2019/4-2019-07.TXT...
Processing ../Data/Charlie/4-2019/4-2019-12.TXT...
Processing ../Data/Charlie/4-2019/4-2019-03.TXT...
Processing ../Data/Charlie/4-2019/4-2019-11.TXT...
Processing ../Data/Charlie/4-2019/4-2019-01.TXT...
Processing ../Data/Charlie/4-2019/4-2019-02.TXT...
Processing ../Data/Charlie/4-2019/4-2019-05.TXT...
Processing ../Data/Charlie/4-2019/4-2019-08.TXT...
Processing ../Data/Charlie/4-2019/4-2019-06.TXT...
Processing ../Data/Charlie/4-2019/4-2019-04.TXT...
Processing ../Data/Charlie/4-2019/4-2019-10.TXT...
Processing ../Data/Charlie/1-2020/1-2020-09.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-06.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-08.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-07.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-04.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-03.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-02.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-10.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-01.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-11.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-12.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/1-2020/1-2020-05.TXT...
- Invalid file format; SKIPPING! 38 37
Processing ../Data/Charlie/4-2021/4-2021-03.TXT...
Processing ../Data/Charlie/4-2021/4-2021-10.TXT...
Processing ../Data/Charlie/4-2021/4-2021-12.TXT...
Processing ../Data/Charlie/4-2021/4-2021-06.TXT...
Processing ../Data/Charlie/4-2021/4-2021-07.TXT...
Processing ../Data/Charlie/4-2021/4-2021-02.TXT...
Processing ../Data/Charlie/4-2021/4-2021-01.TXT...
Processing ../Data/Charlie/4-2021/4-2021-11.TXT...
Processing ../Data/Charlie/4-2021/4-2021-04.TXT...
Processing ../Data/Charlie/4-2021/4-2021-09.TXT...
Processing ../Data/Charlie/4-2021/4-2021-08.TXT...
Processing ../Data/Charlie/4-2021/4-2021-05.TXT...
Importing House: Pilgatan
Deleting and recreating 'Pilgatan.db'...
New card: v6; table name: Hus_Pilgatan_card_v6
Processing ../Data/Pilgatan/v6-2023-08.TXT...
Processing ../Data/Pilgatan/v6-2022-06.TXT...
New card: v1; table name: Hus_Pilgatan_card_v1
Processing ../Data/Pilgatan/v1-2022-10.TXT...
Processing ../Data/Pilgatan/v1-2021-12.TXT...
Processing ../Data/Pilgatan/v6-2021-02.TXT...
- Invalid file format; SKIPPING! 35 185
Processing ../Data/Pilgatan/v6-2021-06.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2022-03.TXT...
Processing ../Data/Pilgatan/v6-2021-07.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2022-08.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2021-05.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2023-07.TXT...
Processing ../Data/Pilgatan/v1-2022-05.TXT...
Processing ../Data/Pilgatan/v1-2022-06.TXT...
Processing ../Data/Pilgatan/v1-2021-08.TXT...
Processing ../Data/Pilgatan/v6-2022-03.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2023-01.TXT...
Processing ../Data/Pilgatan/v1-2021-05.TXT...
- Invalid file format; SKIPPING! 157 185
Processing ../Data/Pilgatan/v1-2023-08.TXT...
Processing ../Data/Pilgatan/v1-2023-10.TXT...
Processing ../Data/Pilgatan/v1-2022-01.TXT...
Processing ../Data/Pilgatan/v1-2023-02.TXT...
Processing ../Data/Pilgatan/v6-2023-09.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2021-03.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2021-04.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2021-06.TXT...
Processing ../Data/Pilgatan/v6-2022-10.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2023-05.TXT...
Processing ../Data/Pilgatan/v6-2022-09.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2023-04.TXT...
Processing ../Data/Pilgatan/v1-2021-03.TXT...
- Invalid file format; SKIPPING! 157 185
Processing ../Data/Pilgatan/v1-2023-06.TXT...
Processing ../Data/Pilgatan/v6-2021-10.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2021-11.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2023-03.TXT...
Processing ../Data/Pilgatan/v1-2023-09.TXT...
Processing ../Data/Pilgatan/v6-2023-01.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2021-08.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2023-06.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2021-09.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2022-05.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2022-04.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2022-02.TXT...
Processing ../Data/Pilgatan/v6-2022-12.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2022-12.TXT...
Processing ../Data/Pilgatan/v6-2022-07.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2022-02.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2021-12.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2023-07.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2023-10.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2021-02.TXT...
- Invalid file format; SKIPPING! 9 185
Processing ../Data/Pilgatan/v1-2021-04.TXT...
- Invalid file format; SKIPPING! 157 185
Processing ../Data/Pilgatan/v1-2022-07.TXT...
Processing ../Data/Pilgatan/v1-2021-10.TXT...
Processing ../Data/Pilgatan/v6-2023-02.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2021-11.TXT...
Processing ../Data/Pilgatan/v1-2022-11.TXT...
Processing ../Data/Pilgatan/v1-2022-09.TXT...
Processing ../Data/Pilgatan/v1-2022-08.TXT...
Processing ../Data/Pilgatan/v6-2023-03.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2021-07.TXT...
Processing ../Data/Pilgatan/v6-2022-01.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2023-04.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v6-2023-05.TXT...
- Invalid file format; SKIPPING! 147 185
Processing ../Data/Pilgatan/v1-2021-09.TXT...
Processing ../Data/Pilgatan/v1-2022-04.TXT...
Processing ../Data/Pilgatan/v6-2022-11.TXT...
- Invalid file format; SKIPPING! 147 185

@ -1,93 +0,0 @@
Trahus Code Report
2023-10-10
---
All Files: js/dash.js, ../py/import.py, ../py/main.py, dash.html, home.html, css/dash.css, config/config.js, config/datamap.js, ../py/README.md
Number of Lines: 3563
Number of Variables: 182
Number of Functions: 35
Number of If Statements: 14
Number of Switch Statements: 6
Number of ForEach Statements: 12
---
File: js/dash.js
Number of Lines: 1516
Number of Variables: 174
Number of Functions: 21
Number of If Statements: 14
Number of Switch Statements: 6
Number of ForEach Statements: 11
---
File: ../py/import.py
Number of Lines: 101
Number of Variables: 12
Number of Functions: 0
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 0
---
File: ../py/main.py
Number of Lines: 469
Number of Variables: 15
Number of Functions: 14
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 0
---
File: dash.html
Number of Lines: 1073
Number of Variables: 11
Number of Functions: 0
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 0
---
File: home.html
Number of Lines: 89
Number of Variables: 8
Number of Functions: 0
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 1
---
File: css/dash.css
Number of Lines: 103
Number of Variables: 0
Number of Functions: 0
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 0
---
File: config/config.js
Number of Lines: 12
Number of Variables: 5
Number of Functions: 0
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 0
---
File: config/datamap.js
Number of Lines: 80
Number of Variables: 3
Number of Functions: 0
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 0
---
File: ../py/README.md
Number of Lines: 120
Number of Variables: 0
Number of Functions: 0
Number of If Statements: 0
Number of Switch Statements: 0
Number of ForEach Statements: 0
---

@ -1,101 +0,0 @@
import sys
import re
def analyze_file(file_path):
with open(file_path, 'r') as file:
lines = file.readlines()
num_lines = len(lines)
variables = []
functions = 0
ifs = 0
switches = 0
foreachs = 0
for line in lines:
line = line.strip()
# Check for variable declarations and add them to the list
var_declaration_match_js = re.match(r"^(var|let|const)\s+([\w$]+)", line)
var_declaration_match_py = re.match(r"^(?:.*)?(\w+)\s*=", line)
if var_declaration_match_js:
variable = var_declaration_match_js.group(2)
variables.append(variable)
elif var_declaration_match_py:
variable = var_declaration_match_py.group(1)
variables.append(variable)
# Count the number of function declarations
function_declaration_match_js = re.match(r"^(function)\s+[\w$]+\(", line)
function_declaration_match_py = re.match(r"^(?:def)\s+(?:(?:\w+\s*\(.*\))|(?:\w+))", line)
if function_declaration_match_js or function_declaration_match_py:
functions += 1
# Count the number of if statements
if re.match(r"^(if)\s*\(", line):
ifs += 1
# Count the number of switch statements
if re.match(r"^(switch)\s*\(", line):
switches += 1
# Count the number of forEach statements
if re.match(r"^(.+)\.forEach\s*\(", line):
foreachs += 1
return {
'file': file_path,
'num_lines': num_lines,
'num_variables': variables,
'num_functions': functions,
'num_ifs': ifs,
'num_switches': switches,
'num_foreachs': foreachs
}
if __name__ == '__main__':
if len(sys.argv) < 2:
print('Please provide at least one JavaScript or Python file to analyze.')
sys.exit(1)
total_lines = 0
total_variables = []
total_functions = 0
total_ifs = 0
total_switches = 0
total_foreachs = 0
reports = []
for file_path in sys.argv[1:]:
analysis = analyze_file(file_path)
total_lines += analysis["num_lines"]
total_variables.extend(analysis["num_variables"])
total_functions += analysis["num_functions"]
total_ifs += analysis["num_ifs"]
total_switches += analysis["num_switches"]
total_foreachs += analysis["num_foreachs"]
report = f'File: {analysis["file"]}\n'
report += f'Number of Lines: {analysis["num_lines"]}\n'
report += f'Number of Variables: {len(set(analysis["num_variables"]))}\n'
report += f'Number of Functions: {analysis["num_functions"]}\n'
report += f'Number of If Statements: {analysis["num_ifs"]}\n'
report += f'Number of Switch Statements: {analysis["num_switches"]}\n'
report += f'Number of ForEach Statements: {analysis["num_foreachs"]}\n'
report += '---\n'
reports.append(report)
print('Total Report:')
print('---')
print(f'All Files: {", ".join(sys.argv[1:])}')
print(f'Number of Lines: {total_lines}')
print(f'Number of Variables: {len(set(total_variables))}')
print(f'Number of Functions: {total_functions}')
print(f'Number of If Statements: {total_ifs}')
print(f'Number of Switch Statements: {total_switches}')
print(f'Number of ForEach Statements: {total_foreachs}')
print('---\n')
for report in reports:
print(report)

@ -1,48 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Horizon Chart Example with Plotly</title>
<!-- Include the Plotly library -->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
<!-- Create a container for the chart -->
<div id="horizon-chart"></div>
<script>
// Function to create a Horizon chart
function createHorizonChart(dates, values, myid, title) {
// Create a trace for the Horizon chart
const trace = {
x: dates.map(date => new Date(date)),
y: values,
type: 'scatter',
mode: 'lines',
fill: 'tozeroy',
name: title,
hoverinfo: 'x+y',
};
// Create a layout for the chart
const layout = {
title: title,
};
// Plot the chart inside the specified div (myid)
Plotly.newPlot(myid, [trace], layout);
}
// Example data
const exampleDates = [
"2023-01-01", "2023-01-02", "2023-01-03", "2023-01-04", "2023-01-05",
"2023-01-06", "2023-01-07", "2023-01-08", "2023-01-09", "2023-01-10"
];
const exampleValues = [0.1, 0.3, 0.5, 0.4, 0.2, -0.1, -0.3, -0.4, -0.2, -0.1];
const chartTitle = "Example Horizon Chart";
// Call the function to create the Horizon chart
createHorizonChart(exampleDates, exampleValues, 'horizon-chart', chartTitle);
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

@ -1,61 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Click to Add Bar Chart</title>
<style>
.chart-container {
display: flex;
align-items: flex-end;
height: 300px;
}
.bar {
width: 30px;
margin: 0 5px;
background-color: blue;
}
</style>
</head>
<body>
<button id="addButton">Add Bar Chart</button>
<div id="chartContainer" class="chart-container"></div>
<script src="script.js"></script>
<script>
// Function to create the bar chart based on data
function createBarChart(data) {
const chartContainer = document.getElementById('chartContainer');
chartContainer.innerHTML = ''; // Clear the container before adding new bars
for (const value of data) {
const bar = document.createElement('div');
bar.className = 'bar';
bar.style.height = value + 'px'; // Set the bar height based on data
chartContainer.appendChild(bar);
}
}
// Function to generate random data for the bar chart (for demonstration purposes)
function generateRandomData(numBars, maxHeight) {
const data = [];
for (let i = 0; i < numBars; i++) {
data.push(Math.floor(Math.random() * maxHeight) + 1);
}
return data;
}
// Add a click event listener to the button
const addButton = document.getElementById('addButton');
addButton.addEventListener('click', function () {
const numBars = 5; // Number of bars in the chart
const maxHeight = 200; // Maximum height of the bars
const data = generateRandomData(numBars, maxHeight);
createBarChart(data);
});
</script>
</body>
</html>

@ -1,36 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Click to Add Block</title>
<script>
// Function to create the HTML block element
function createBlock() {
const block = document.createElement('div');
block.className = 'block'; // You can add CSS classes to style the block
block.innerHTML = 'This is a new block!'; // You can customize the content here
return block;
}
// Function to add the HTML block to the container
function addBlockToContainer() {
const container = document.getElementById('container');
const block = createBlock();
container.appendChild(block);
}
// Add a click event listener to the button
const addButton = document.getElementById('addButton');
addButton.addEventListener('click', addBlockToContainer);
</script>
</head>
<body>
<button id="addButton">Add Block</button>
<div id="container"></div>
<script src="script.js"></script>
</body>
</html>

@ -1,151 +0,0 @@
Kalejdash data flexiboard:
an Infravis.se data visualization & exploration interface and server-API that enables the creation of editable dashboard combining diagrams creation with rich text entries.
##############################################
Last ToDo, after v0.9-alpha
codenae: "Forum Wood Building Nordic 2023"
- Grid and Horizon: make compatible d3js versions to arrange the tooltips bugs.
- Parallel:
> Reload/re-render graph when resizing column.
> Check <g class="c3-grid c3-grid-line" -> this is not getting update, even when swaping windows or unfocus&clic outside the page.
- Add home page texts to config/confir.json
BIG:
> EDIT DIAGRAM function + button (or TEXT) + Form button "open in new window"
> Save current flexiboard as a JSON in the server (!) -> Rafa needs to do the server-site again through the flask API
#################################################33
#################################################33
FORM IDs:
Parallel -> P
-----------
---->Yearly - Y
<form id="PY">
<input id="PYTitle" name="PYTitle"
<select id="PYSensor" name="PYSensor"
<input id="PYYear" name="PYYear"
<input id="PYTime" name="PYTime"
---->Monthly -> M
<form id="PM">
<input id="PMTitle" name="PMTitle"
<select id="PMFamSensor" name="PMFamSensor"
<select id="PMParameter" name="PMParameter"
<input id="PMYearMonth" name="PMYearMonth"
<input id="PMTime" name="PMTime"
NEW
---->Weekly -> M
<form id="PW">
<input id="PWTitle" name="PMTitle"
<select id="PWFamSensor" name="PWFamSensor"
<select id="PWParameter" name="PWParameter"
<input id="PWWeekMonday" name="PWYear"
Wekday:
<input name="PMWeekMonday" id="PMWeekMonday"
<input id="PMTime" name="PMTime"
DONE
---->Daily -> D
<form id="PD">
<input id="PDTitle" name="PDTitle"
<select id="PDFamSensor" name="PDSensor"
<select id="PDParameter" name="PDParameter"
<input id="PDYearMonthDay" name="PDYearMonthDay"
<input id="PDTime" name="PDTime"
#################################################33
Grid --> G
----
---->Yearly -> Y
<form id="GY">
<input id="GYTitle" name="GYTitle"
<select id="GYSensor" name="GYSensor"
<input id="GYYear" name="GYYear"
<input id="GYTime" name="GYTime"
---->Monthly -> M
<form id="GM">
<input id="GMTitle" name="GMTitle"
<select id="GMSensor" name="GMSensor"
<input id="GMYearMonth" name="GMYearMonth"
<input id="GMTime" name="GMTime"
---->Weekly -> D
<form id="GW">
<input id="GWTitle" name="GWTitle"
<select id="GWSensor" name="GWSensor"
<input id="GWYearMonthMonday" name="GWYearMonthMonday"
<input id="GWTime" name="GWTime"
#################################################33
HorizonChart - H
------------
----> Yearly -> Y
<form id="HW">
<input id="HYTitle" name="HYTitle"
<select id="HYSensorFamily" name="HYSensorFamily"
<input id="HYYear" name="HYYear"
<input id="HYTime" name="HYTime"
selectedItems1
----> Monthly- M
<form id="HW">
<input id="HMTitle" name="HMTitle"
<select id="HMSensorFamily" name="HMSensorFamily"
<select id="HMYearMonth" name="HMYearNonth"
<input id="HMTime" name="HMTime"
selectedItems2
----> Weekly -> W
<form id="HW">
<input id="HWTitle" name="HWTitle"
<select id="HWSensorFamily" name="HWSensorFamily"
<input id="HWYear" name="HWYear"
<input id="HWTime" name="HWTime"
selectedItems3
#################################################
#### Short names and definitions of the three techniques used this app.
> Name of the App -> Flexiboard:
>> is the idea f any dashboard that needs is buided by interacting through web page.
>> you can biuld and save a customized, always editable, shared. In this first version, any saved flexiboard is accessible if you know its URL.
The idea is that the user/editor of the App may curate the home page with contents highlighting/presenting.
> Parallel:
Track Family of sensores
Track Family of sensores in a parallel coordinate visuall technick, use it as a escale of the real positions and mesures on a time period.
-----
> Grid:
Track one sensor.
Track one sensor for outlayer at a glance in a chossen time period
--------
> Horizon:

@ -1,18 +0,0 @@
from flask import Flask, request, jsonify, send_from_directory
app = Flask(__name__)
@app.route("/calculate", methods=["POST"])
def calculate():
data = request.get_json()
num1 = data.get("num1")
num2 = data.get("num2")
result = num1 + num2
return jsonify({"result": result})
@app.route("/")
def index():
return send_from_directory("static", "index.html")
if __name__ == "__main__":
app.run(debug=True)

@ -1,35 +0,0 @@
from flask import Flask, request, jsonify, send_from_directory
app = Flask(__name__)
@app.route("/calculate", methods=["POST"])
def calculate():
data = request.get_json()
# Determine which form was submitted based on a form identifier or name
form_name = data.get("form_name")
if form_name == "calculatorForm":
num1 = data.get("num1")
num2 = data.get("num2")
result = num1 + num2
elif form_name == "anotherForm":
# Handle data from anotherForm
pass
elif form_name == "thirdForm":
# Handle data from thirdForm
pass
elif form_name == "fourthForm":
# Handle data from fourthForm
pass
else:
return jsonify({"error": "Invalid form_name"})
return jsonify({"result": result})
@app.route("/")
def index():
return send_from_directory("static", "forms.html")
if __name__ == "__main__":
app.run(debug=True)

@ -1,80 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Calculator</title>
</head>
<body>
<h1>'m form.html : Simple Calculator</h1>
<form id="calculatorForm">
<label for="num1">Number 1:</label>
<input type="number" id="num1" name="num1" required><br>
<label for="num2">Number 2:</label>
<input type="number" id="num2" name="num2" required><br>
<button type="submit">Calculate</button>
</form>
<h1>Form 2: Another Form</h1>
<form id="anotherForm">
<!-- Include fields for Form 2 here -->
<button type="submit">Submit</button>
</form>
<h1>Form 3: Third Form</h1>
<form id="thirdForm">
<!-- Include fields for Form 3 here -->
<button type="submit">Submit</button>
</form>
<h1>Form 4: Fourth Form</h1>
<form id="fourthForm">
<!-- Include fields for Form 4 here -->
<button type="submit">Submit</button>
</form>
<h2>Result:</h2>
<div id="result"></div>
<script>
function handleSubmit(formId, fieldIds) {
const form = document.getElementById(formId);
form.addEventListener("submit", function (e) {
e.preventDefault();
const data = {
form_name: formId, // Add a form identifier
};
fieldIds.forEach(fieldId => {
data[fieldId] = parseFloat(form.querySelector(`#${fieldId}`).value);
});
calculate(formId, data);
});
}
function calculate(formId, data) {
fetch("/calculate", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
document.getElementById("result").textContent = `Result for form ${formId}: ${data.result}`;
})
.catch(error => {
console.error("Error:", error);
});
}
// Call handleSubmit for each form when the DOM is fully loaded
document.addEventListener("DOMContentLoaded", function () {
handleSubmit("calculatorForm", ["num1", "num2"]);
handleSubmit("anotherForm", ["field1", "field2"]);
handleSubmit("thirdForm", ["field3", "field4"]);
handleSubmit("fourthForm", ["field5", "field6"]);
});
</script>
</body>
</html>

@ -1,59 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Calculator</title>
</head>
<body>
<h1>Simple Calculator</h1>
<form id="calculatorForm">
<label for="num1">Number 1:</label>
<input type="number" id="num1" name="num1" required><br>
<label for="num2">Number 2:</label>
<input type="number" id="num2" name="num2" required><br>
<button type="submit">Calculate</button>
</form>
<h2>Result:</h2>
<div id="result"></div>
<script>
function handleSubmit(formId, fieldIds) {
const form = document.getElementById(formId);
form.addEventListener("submit", function (e) {
e.preventDefault();
const data = {};
fieldIds.forEach(fieldId => {
data[fieldId] = parseFloat(form.querySelector(`#${fieldId}`).value);
});
calculate(formId, data);
});
}
function calculate(formId, data) {
fetch("/calculate", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
document.getElementById("result").textContent = `Result for form ${formId}: ${data.result}`;
})
.catch(error => {
console.error("Error:", error);
});
}
// Call handleSubmit when the DOM is fully loaded
document.addEventListener("DOMContentLoaded", function () {
handleSubmit("calculatorForm", ["num1", "num2"]);
// Add more forms and initialize them as needed with their respective field IDs
// handleSubmit("anotherForm", ["field1", "field2"]);
});
</script>
</body>
</html>

@ -1,155 +0,0 @@
///
// Data formats needed for each the the three diagrams:
// for all the three cases I include dinamycally JS files that content variables
// as arrays. I do this intead of loading CSV values
// IS THIS CORRECT OR BETTER WE MOVE TO LOAD csv?
/////////////////////////////////////////////////////
// tHE THREE DIAGRAMS ARE: pARALLEL, gRID AND hORIZON:
//////////////////////////////////////////
/// 1.PARAllel
// This var is The data. First row gives the positions for the sensors
// of the famimlly (wall depth).
// Then, the raw data is taked as it is but selecting the grup of columns that represent a familly of sensors.
// The example that follows show a sensors-family of 6 sensors at the positions pos_1
sample = [
["pos1", 5, 10, 25, 35, 42, 45],
["2023-01-01 00:10:07", 26.2, 33, 49.5, 53.1, 62.9, 87],
["2023-01-01 00:20:05", 26.5, 33.2, 60.5, 71.3, 78.3, 91.7],
["2023-01-01 00:30:05", 26.7, 33.7, 49.7, 53.7, 63.5, 86.1],
["2023-01-01 00:40:05", 26.6, 33.5, 49.6, 53.6, 63.5, 86.3],
["2023-01-01 00:50:05", 26.6, 33.5, 49.6, 53.5, 63.4, 86.5],
["2023-01-01 01:00:05", 26.5, 33.4, 49.6, 53.5, 63.3, 86.6],
["2023-01-01 01:10:05", 26.4, 33.3, 49.6, 53.4, 63.2, 86.6],
["2023-01-01 01:20:05", 26.3, 33.2, 49.5, 53.3, 63.1, 86.7],
["2023-01-01 01:30:05", 26.3, 33.1, 49.5, 53.2, 63, 86.8]
];
// the xs variables are not depending on the data files.
// They just defina the tick points on the x-axis that are
// highlighted with a vertical axis. This is: they represent
// each sensor belonging to a familly of sensors at the same
// wall position but different depth.
myxs = {
'2023-01-01 00:10:07' : 'pos1',
'2023-01-01 00:20:05' : 'pos1',
'2023-01-01 00:30:05' : 'pos1',
'2023-01-01 00:40:05' : 'pos1',
'2023-01-01 00:50:05' : 'pos1',
'2023-01-01 01:00:05' : 'pos1',
'2023-01-01 01:10:05' : 'pos1',
'2023-01-01 01:20:05' : 'pos1',
'2023-01-01 01:30:05' : 'pos1'
}
> Sensors family selection
//Michael Dorn wishes:
//--> MD:
// Categories:
// yearly - with 12 lines
// monthly - with 4 lines
// weekly - with 7 lines
// daily - with 24 lines
//
// Settings:
// yearly: date: 1st of the month; time: 12:00;
// allow for chosing a different date/time
// monthly: date: choose days 1/8/15/22/29; time; 12:00;
// allow for chosing different date/time
// daily: time: 0-1-2-3-...-23;
// allow for chosing different date/time
//
// Is it possible to allow to supress a line then (hide it)?
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
////// 2.GRID
// it is just a column of the original raw data. At the moment is saved in a JS file as an array with the var name of the original column
// example:
var Temp_MP1_1_Pos4 = [
[11.01, 11.02, 11.01, 11.02, 11.02, 11.01, 11.00, 11.00, 11.02, 11.00, 11.01, 11.00, 11.00, 10.99, 10.99, 10.98, 10.96, 10.97, 10.96, 10.97, 10.96, 10.95, 10.94, 10.94, 10.94, 10.94, 10.94, 10.92, 10.91, 10.90, 10.91, 10.88, 10.88, 10.88, 10.88, 10.86, 10.84, 10.83, 10.82, 10.82, 10.79, 10.78, 10.75, 10.76, 10.74, 10.72, 10.73, 10.71, 10.69, 10.66, 10.66, 10.64, 10.64, 10.60, 10.58, 10.55, 10.52, 10.52, 10.50, 10.48, 10.40, 10.32, 10.28],
['2023-01-01', '2023-01-02', ...],
['00:01.34', '01:01', ...]
]
// IMPORTANT: Just one sensor
//Michael Dorn wishes:
//TIME periods:
// - yearly - 365 days; 12 rows with 28-31 days; at 12:00;
// - monthly - 28 days; 4 rows with 7 days; at 12:00;
// - can this be arranged like in calendar view?
// - weekly - 7 days; one per day at ##:00;
//
// Scale: is it possible here to chose if an actual time is shown or to have the max/min value within a day for the yearly/monthly versions?
//
//
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
////// 3.HORIZON
// The horizon chart has several rows. As it is now, firstly it is defined
// an array of columns from the raw DataTransfer, that will become rows at the horizon chart.As
// so, a list of rows will be:
datas = ["S1:1", "S1:2", "S1:3", "Temp_MP1_1_Pos4", "Temp_MP1_1_Pos5", "Temp_MP1_1_Pos6", "Temp_MP1_2_Pos1", "Temp_MP1_2_Pos2", "Temp_MP1_2_Pos3", "Temp_MP1_2_Pos4", "Temp_MP1_2_Pos5", "Temp_MP1_2_Pos6"];
// And then the values for each row, that comes directly from the raw data columns
// example for the first row "Temp_MP1_1_Pos1"
var Temp_MP1_1_Pos1=[18.71, 18.74, 18.75, 18.76, 18.78, 18.77, 18.77, 18.78, 18.76, 18.77, 18.77, 18.78, 18.78, 18.76, 18.75, 18.75, 18.75, 18.76, 18.78, 18.76, 18.74, 18.74]
// This list can be long. This kind of chart use to represent a big amount og points for each column. Hence, covering a long time period.
// > (Vertical axis) Select a list of sensors
//Michael Dorn wishes
// Horizontal axis:
// Categories:
// year 365 days at 0/6/12/18 h --> 1460 points
// month 28-31 days at 0/1/2/.../23 h --> 744 points
// week 7 days at 0:00/0:15/0:30/... 23:45/24:00 --> 672 points
// day 24 hours all datapoints --> up to 288 points
// Scale:
// it would be good of the width if the browser window is not overflowing sideways
//
//
// vertical axis:
// Temperature:
// - in what steps in °C are you thinking?
// - I expect to have at the most -30°C - +50°C for the weather station
// - can the scale be chosen? E.g. there are steps of 10°C or of 5°C or others?
//###################################
// From Micheal about Naming:
// I attach two files:
// Explanation datafiles.xlsx
// The colored rows on top include channel names / families / units / # of column / ...
// The first part in the name of the channel gives what type of value is measured:
// - temperature (Temp_...)
// - humidity (RH_...)
// - relative dispalcement (RelDisp_...)
// - absolute displacement (AbsDisp)
// - air pressure (AirPres_...)
// - the weather station has many different values
// A row with units is also given.
// Explanation datafiles.pptx
// - Includes information where the sensors and families are located.
// - The last slide includes the distance for the sensors in the walls. Measurement start at the inside of the wall.
// I hope this helps you immediately!
Loading…
Cancel
Save