Compare commits
9 Commits
project-su
...
925a9a619c
| Author | SHA1 | Date | |
|---|---|---|---|
|
925a9a619c
|
|||
|
f01c4a9ed0
|
|||
|
0842b7b280
|
|||
|
fa9c852b8d
|
|||
|
8e85c5e20d
|
|||
|
4bce5e5ee2
|
|||
|
26f1553e26
|
|||
|
5902a47605
|
|||
|
09ee22ff50
|
110
cliff.toml
Normal file
@@ -0,0 +1,110 @@
|
||||
# git-cliff ~ default configuration file
|
||||
# https://git-cliff.org/docs/configuration
|
||||
#
|
||||
# Lines starting with "#" are comments.
|
||||
# Configuration options are organized into tables and keys.
|
||||
# See documentation for more information on available options.
|
||||
|
||||
[changelog]
|
||||
# template for the changelog header
|
||||
header = """
|
||||
# Changelog\n
|
||||
All notable changes to this project will be documented in this file.\n
|
||||
"""
|
||||
# template for the changelog body
|
||||
# https://keats.github.io/tera/docs/#introduction
|
||||
body = """
|
||||
{% if version %}\
|
||||
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
|
||||
{% else %}\
|
||||
## [unreleased]
|
||||
{% endif %}\
|
||||
{% for group, commits in commits | group_by(attribute="group") %}
|
||||
### {{ group | striptags | trim | upper_first }}
|
||||
{% for commit in commits %}
|
||||
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
|
||||
{% if commit.breaking %}[**breaking**] {% endif %}\
|
||||
{{ commit.message | upper_first }}\
|
||||
{%- for footer in commit.footers -%}
|
||||
{%- if footer.token == "Assisted-by" %} *(🤖 {{ footer.value | split(pat=" ") | first | trim }})*{%- endif -%}
|
||||
{%- endfor %}\
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
{%- set ai_models = [] -%}
|
||||
{%- for commit in commits -%}
|
||||
{%- for footer in commit.footers -%}
|
||||
{%- if footer.token == "Assisted-by" -%}
|
||||
{%- set clean_value = footer.value | split(pat=" ") | first | trim -%}
|
||||
{%- set_global ai_models = ai_models | concat(with=clean_value) -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if ai_models | length > 0 %}
|
||||
### 🤖 AI Assistance Repartition
|
||||
{%- for model in ai_models | unique | sort -%}
|
||||
{%- set_global count = 0 -%}
|
||||
{%- for m in ai_models -%}
|
||||
{%- if m == model -%}
|
||||
{%- set_global count = count + 1 -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
- **{{ model }}**: {{ count }} commit{% if count > 1 %}s{% endif %}
|
||||
{%- endfor %}
|
||||
{% endif %}\n
|
||||
"""
|
||||
# template for the changelog footer
|
||||
footer = """
|
||||
<!-- generated by git-cliff -->
|
||||
"""
|
||||
# remove the leading and trailing s
|
||||
trim = true
|
||||
# postprocessors
|
||||
postprocessors = [
|
||||
# { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL
|
||||
]
|
||||
# render body even when there are no releases to process
|
||||
# render_always = true
|
||||
# output file path
|
||||
# output = "test.md"
|
||||
|
||||
[git]
|
||||
# parse the commits based on https://www.conventionalcommits.org
|
||||
conventional_commits = true
|
||||
# filter out the commits that are not conventional
|
||||
filter_unconventional = true
|
||||
# process each line of a commit as an individual commit
|
||||
split_commits = false
|
||||
# regex for preprocessing the commit messages
|
||||
commit_preprocessors = [
|
||||
# Replace issue numbers
|
||||
#{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
|
||||
# Check spelling of the commit with https://github.com/crate-ci/typos
|
||||
# If the spelling is incorrect, it will be automatically fixed.
|
||||
#{ pattern = '.*', replace_command = 'typos --write-changes -' },
|
||||
]
|
||||
# regex for parsing and grouping commits
|
||||
commit_parsers = [
|
||||
{ message = "^feat", group = "<!-- 0 -->🚀 Features" },
|
||||
{ message = "^fix", group = "<!-- 1 -->🐛 Bug Fixes" },
|
||||
{ message = "^doc", group = "<!-- 3 -->📚 Documentation" },
|
||||
{ message = "^perf", group = "<!-- 4 -->⚡ Performance" },
|
||||
{ message = "^refactor", group = "<!-- 2 -->🚜 Refactor" },
|
||||
{ message = "^style", group = "<!-- 5 -->🎨 Styling" },
|
||||
{ message = "^test", group = "<!-- 6 -->🧪 Testing" },
|
||||
{ message = "^chore\\(release\\): prepare for", skip = true },
|
||||
{ message = "^chore: update CHANGELOG.md", skip = true },
|
||||
{ message = "^chore\\(deps.*\\)", skip = true },
|
||||
{ message = "^chore\\(pr\\)", skip = true },
|
||||
{ message = "^chore\\(pull\\)", skip = true },
|
||||
{ message = "^chore|^ci", group = "<!-- 7 -->⚙️ Miscellaneous Tasks" },
|
||||
{ body = ".*security", group = "<!-- 8 -->🛡️ Security" },
|
||||
{ message = "^revert", group = "<!-- 9 -->◀️ Revert" },
|
||||
{ message = ".*", group = "<!-- 10 -->💼 Other" },
|
||||
]
|
||||
# filter out the commits that are not matched by commit parsers
|
||||
filter_commits = false
|
||||
# sort the tags topologically
|
||||
topo_order = false
|
||||
# sort the commits inside sections by oldest/newest order
|
||||
sort_commits = "oldest"
|
||||
102
db/CHANGELOG.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [unreleased]
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Add changelogs
|
||||
|
||||
## [db-gateway-v1.0.0] - 2026-06-04
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(db)* Add influx in db stack
|
||||
- *(db)* Add traefik config example with actual server
|
||||
- *(db)* Add rabittmq as mqtt stack
|
||||
- *(db)* Add influx gateway from previous project
|
||||
- *(db)* Add mqtt gateway from previous project
|
||||
- *(db)* Merge datapoint and message
|
||||
- *(db)* Add SubscribeTyped function and refactor DataPoint structure
|
||||
- *(db)* Add initial main implementation
|
||||
- *(db)* Add rest gateway
|
||||
- *(db)* Add GET current value endpoint
|
||||
- *(db)* Add GET history endpoint
|
||||
- *(db)* Add mapping *(🤖 Junie:gemini-3-flash)*
|
||||
- *(db)* Add swagger doc *(🤖 Junie:gemini-3-flash)*
|
||||
- *(db)* Add parameter for time window in history endpoint
|
||||
- *(db)* Add basic auth
|
||||
- *(db)* Add deploiement stack
|
||||
- *(db)* Add node tag for influx
|
||||
- *(db)* Remove CO2PPM data over 1'000'000'000
|
||||
- *(db)* Add battery field
|
||||
- *(db)* Add battery REST endpoint *(🤖 Junie:claude-sonnet-4.6)*
|
||||
- *(db)* Get mapping dynamically from file *(🤖 Junie:claude-sonnet-4.6)*
|
||||
- *(db)* Add endpoint to export influx data to csv *(🤖 Junie:claude-sonnet-4.6)*
|
||||
- *(server)* Add traefik entry for ui dashboard
|
||||
- *(db)* Add co2 watchdog on each room *(🤖 Junie:gemini-3-flash)*
|
||||
- *(db)* Add co2-status endpoint in REST API *(🤖 Junie:gemini-3-flash)*
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(db)* Add missing entrypoint for influx explorer *(🤖 Gemini:gemini-3.1-pro)*
|
||||
- *(db)* Add missing hostname for influx access in traefik
|
||||
- *(db)* Wrong mqtt port
|
||||
- *(db)* Typo in certResolver
|
||||
- *(db)* Fail if now defaut user / password for mqtt
|
||||
- *(db)* Allow gRPC proxy in traefik *(🤖 Gemini:gemini-3.1-pro)*
|
||||
- *(db)* Proper api url instead of using swagger doc url
|
||||
- *(db)* CORS request *(🤖 Gemini:gemini-3.1-pro)*
|
||||
- *(db)* Url for api start with https
|
||||
- *(db)* Get rooms from mapping file
|
||||
- *(db)* Set time interval for influx limitations
|
||||
- *(db)* Set higher file limit for influx limitations
|
||||
- *(db)* Remove authorization for battery status endpoint
|
||||
- *(db)* Window -> window_open
|
||||
- *(db)* Push data with partial mapping
|
||||
- *(db)* Filter random value
|
||||
- *(db)* Mqtt hostname to keep internal config identique in case of rebuild
|
||||
- *(db)* Add the room in the returned json
|
||||
- *(db)* Return time in RFC3339 to avoid breakchange *(🤖 Junie:claude-opus-4.8)*
|
||||
- *(db)* Return window tag in room status
|
||||
- *(db)* Return only high co2 room for co2-status endpoint
|
||||
- *(db)* Return error directly
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(db)* Move package
|
||||
- *(db)* Unify env getters
|
||||
- *(db)* Split campus and room mapping error detection
|
||||
- *(db)* Map room and node on REST API
|
||||
- *(db)* Add flag to run without MQTT part
|
||||
- *(db)* Adapt SQL query for 5 min average
|
||||
- *(db)* Round averages in SQL queries
|
||||
- *(db)* Using moving average for room history *(🤖 Junie:gemini-3-flash)*
|
||||
- *(db)* Change order for history
|
||||
- *(db)* Add constante for max QOS
|
||||
- *(db)* Add constante for defaultTimeout
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- *(db)* Add deployement documentation
|
||||
- *(db)* Fix typo in doc
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Init
|
||||
- *(db)* Typo and respect go guidelines
|
||||
- *(db)* Get InfluxDB token by secrets *(🤖 Gemini:gemini-3-flash)*
|
||||
- *(db)* Update critical dependancy
|
||||
- *(db)* Add pre-commit for swagger documentation
|
||||
- *(db)* Add local gitignore
|
||||
- *(db)* Set 30min before offline for battery endpoint
|
||||
|
||||
### 🤖 AI Assistance Repartition
|
||||
- **Gemini:gemini-3-flash**: 1 commit
|
||||
- **Gemini:gemini-3.1-pro**: 3 commits
|
||||
- **Junie:claude-opus-4.8**: 1 commit
|
||||
- **Junie:claude-sonnet-4.6**: 3 commits
|
||||
- **Junie:gemini-3-flash**: 5 commits
|
||||
|
||||
<!-- generated by git-cliff -->
|
||||
59
gateway/CHANGELOG.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [unreleased]
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Remove useless gitkeep file
|
||||
- Add changelogs
|
||||
|
||||
## [gateway-v1.0.0] - 2026-06-04
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- Add BLE-to-MQTT gateway implementation
|
||||
- *(gateway)* Add configuration file
|
||||
- *(gateway)* Implement BLE-to-MQTT gateway *(🤖 Claude:claude-sonnet-4-6)*
|
||||
- *(gateway)* Add MQTTS support with TLS and authentication *(🤖 Claude:claude-sonnet-4-6)*
|
||||
- *(gateway)* Add battery level support (key 0x05)
|
||||
- *(gateway)* Add deduplication and continuous BLE scan *(🤖 Claude:claude-sonnet-4-6)*
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(gateway)* Fix architecture diagram code block in README
|
||||
- *(gateway)* Fix architecture diagram code block in README
|
||||
- *(gateway)* Fix payload decoding endianness and skip preamble Switch temperature and CO2 decoding from little-endian to big-endian to match the Zephyr firmware implementation. Skip the 2-byte company id preamble (0xffff) at the start of the manufacturer data payload.
|
||||
- *(gateway)* Replace UUID filter with manufacturer data preamble filter
|
||||
- *(gateway)* Replace UUID filter with manufacturer data preamble filter
|
||||
- *(gateway)* Fix BLE filtering and MQTT connection validation
|
||||
- *(gateway)* Use exact payload size filter and improve robustness
|
||||
- *(gateway)* Revert CO2 range check and add MQTT auto-reconnect
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(gateway)* Switch from GATT connection to passive BLE advertising *(🤖 Claude:claude-sonnet-4-6)*
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- Add gateway README
|
||||
- Add overnight test results and measurements graph
|
||||
- Add overnight test results section to README
|
||||
- *(gateway)* Add README with architecture and MQTT interface *(🤖 Claude:claude-sonnet-4-6)*
|
||||
- *(gateway)* Document MQTT_PASSWORD environment variable in README
|
||||
- *(gateway)* Add deployment checklist, systemd service and update README
|
||||
- *(gateway)* Update README with battery field, security fixes and warnings
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Init
|
||||
- *(gateway)* Add Python dependencies file
|
||||
- *(gateway)* Exclude config.json from repo, add example config
|
||||
- *(gateway)* Use placeholder values in config.example.json
|
||||
- *(gateway)* Update config.example.json with TLS and auth fields
|
||||
|
||||
### 🤖 AI Assistance Repartition
|
||||
- **Claude:claude-sonnet-4-6**: 5 commits
|
||||
|
||||
<!-- generated by git-cliff -->
|
||||
62
nodes/CHANGELOG.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [unreleased]
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Add changelogs
|
||||
|
||||
## [project-submission] - 2026-06-04
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Remove useless gitkeep file
|
||||
- Remove zephyr sample file
|
||||
- Remove release file from repo
|
||||
|
||||
## [nodes-v1.1.0] - 2026-06-04
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(nodes)* Adding management of read error on each values, hence
|
||||
- *(nodes)* Add the battery level in the ble frame
|
||||
- *(nodes)* Adding battery percent as new key/value in the BLE frame
|
||||
- *(nodes)* Using an explicit thread, as it may cause the huge battery usage
|
||||
- *(nodes)* Setting the fastest BLE advertising frequency to 1 minute instead of 2
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(nodes)* Changing incorrect comment
|
||||
- *(nodes)* Using MAC address as BT_ADDR
|
||||
- *(nodes)* Reduce battery consumption
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- *(nodes)* Adding comments in the nodes code
|
||||
|
||||
## [nodes-v1.0.0] - 2026-06-04
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(nodes)* WIP supervisor first implementation
|
||||
- *(nodes)* Adding thermometer and hygrometer
|
||||
- *(nodes)* WIP adding first implementation for BLE advertising.
|
||||
- *(nodes)* Adding co2_level retrieval
|
||||
- *(nodes)* Adding window status reading
|
||||
- *(nodes)* Adding nodes firmware v1.0
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(nodes)* Adjusting broadcasted data to fit definition
|
||||
- *(nodes)* Fixing switch device tree and wrong ordering of ble values
|
||||
- *(nodes)* Properly fetching data from temp/hygro sensor
|
||||
- *(nodes)* Co2 level fetched as desibed in the documentation
|
||||
- *(nodes)* Changing window status sensor to have unequipped nodes return 'window is closed' status
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Init
|
||||
|
||||
<!-- generated by git-cliff -->
|
||||
32
notification_service/CHANGELOG.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [unreleased]
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(notification)* Spring Boot Teams notification service (#19)
|
||||
- *(notification)* Add mock mode for local testing without backend (#19 #21)
|
||||
- *(notification-service)* Replace Teams with Telegram notifications *(🤖 Claude:claude-sonnet-4-6)*
|
||||
- *(notification-service)* Add Dockerfile, actuator health and alert deduplication *(🤖 Claude:claude-sonnet-4-6)*
|
||||
- *(notification-service)* Adapt to Go backend /api/v1/rooms/high-co2 endpoint
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(notification)* Remove non-existent starter-scheduling dep, target Java 17
|
||||
|
||||
### 🧪 Testing
|
||||
|
||||
- *(notification-service)* Add unit tests and clean up Co2Level *(🤖 Claude:claude-sonnet-4-6)*
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(notification-service)* Add CI/CD pipeline with Docker, SSH deploy and API credentials
|
||||
- *(notification-service)* Add SAST, dependency scan and DAST security gates
|
||||
- Add changelogs
|
||||
|
||||
### 🤖 AI Assistance Repartition
|
||||
- **Claude:claude-sonnet-4-6**: 3 commits
|
||||
|
||||
<!-- generated by git-cliff -->
|
||||
@@ -1,11 +1,11 @@
|
||||
#import "../../resources/helper.typ": *
|
||||
#let b = actor("broker",
|
||||
disp_name: [@mqtt\ broker],
|
||||
disp_name: [@mqtt:short\ broker],
|
||||
shape: "queue",
|
||||
show-bottom:false
|
||||
)
|
||||
#let mg = actor("mqtt",
|
||||
disp_name: [@mqtt\ gateway],
|
||||
disp_name: [@mqtt:short\ gateway],
|
||||
show-bottom:false
|
||||
)
|
||||
#let ig = actor("influx",
|
||||
|
||||
106
report/meetings/260611-final/db.typ
Normal file
@@ -0,0 +1,106 @@
|
||||
#import "/metadata.typ": *
|
||||
#import "/tail/bibliography.typ": *
|
||||
#import "/tail/glossary.typ": *
|
||||
#import "/main/architecture/description.typ": *
|
||||
|
||||
#import "/resources/slides.typ": *
|
||||
|
||||
#import "/main/database/sequence.typ": *
|
||||
// server
|
||||
// mqtt->db
|
||||
// db->rest
|
||||
|
||||
|
||||
== Database & API - Server
|
||||
#let server = [
|
||||
#figure(
|
||||
image("server.png", width: 100%),
|
||||
caption: [Server implementation],
|
||||
) <fig:server>
|
||||
]
|
||||
#grid(
|
||||
columns: (1.5fr, 1fr),
|
||||
column-gutter: 2em,
|
||||
server,
|
||||
align(top+left)[
|
||||
#v(3em) #pause
|
||||
- LXC Debian #pause
|
||||
- @ssh:short certificate by user #pause
|
||||
- Docker #pause
|
||||
- Traefik
|
||||
],
|
||||
)
|
||||
|
||||
== Database & API - Save measures in DB
|
||||
#let toDB = {
|
||||
import chronos: *
|
||||
b.display
|
||||
mg.display
|
||||
main.display
|
||||
ig.display
|
||||
db.display
|
||||
_col(b.name, mg.name, width: 5cm)
|
||||
_col(mg.name, main.name, width: 5cm)
|
||||
_col(main.name, ig.name, width: 5cm)
|
||||
_col(ig.name, db.name, width: 5cm)
|
||||
}
|
||||
|
||||
#let toDB-seq = (
|
||||
async(b, mg, "message"),
|
||||
sync(mg, main, "DataPoint"),
|
||||
sync(main, main, "map topics"),
|
||||
sync(main, ig, "DataPoint"),
|
||||
async(ig, db, "flush")
|
||||
)
|
||||
|
||||
#set align(center+top)
|
||||
#v(1em)
|
||||
#figure(
|
||||
box(height: 10cm, {
|
||||
let diag = toDB
|
||||
for (i, step) in toDB-seq.enumerate(start: 1) {
|
||||
diag += step
|
||||
only(i, chronos.diagram(diag, width: 90%))
|
||||
}
|
||||
}),
|
||||
caption: [Sequence from broker to DB]
|
||||
) <fig:seq:toDB>
|
||||
|
||||
|
||||
== Database & API - Get data from DB
|
||||
#let fromDB = {
|
||||
import chronos: *
|
||||
db.display
|
||||
ig.display
|
||||
main.display
|
||||
rg.display
|
||||
u.display
|
||||
_col(db.name, ig.name, width: 5cm)
|
||||
_col(ig.name, main.name, width: 5cm)
|
||||
_col(main.name, rg.name, width: 5cm)
|
||||
_col(rg.name, u.name, width: 5cm)
|
||||
}
|
||||
|
||||
#let fromDB-seq = (
|
||||
async(u, rg, "Request"),
|
||||
sync(rg, main, "getNodes"),
|
||||
sync(main, rg, "", dashed: true),
|
||||
sync(rg, ig, "Query"),
|
||||
sync(ig, db, ""),
|
||||
sync(db, ig, "", dashed: true),
|
||||
sync(ig, rg, "", dashed: true),
|
||||
sync(rg, u, "", dashed: true),
|
||||
)
|
||||
|
||||
#set align(center+top)
|
||||
#v(1em)
|
||||
#figure(
|
||||
box(height: 11.75cm, {
|
||||
let diag = fromDB
|
||||
for (i, step) in fromDB-seq.enumerate(start: 1) {
|
||||
diag += step
|
||||
only(i, chronos.diagram(diag, width: 90%))
|
||||
}
|
||||
}),
|
||||
caption: [Sequence to REST from DB]
|
||||
) <fig:seq:fromDB>
|
||||
67
report/meetings/260611-final/gateway.typ
Normal file
@@ -0,0 +1,67 @@
|
||||
#import "/metadata.typ": *
|
||||
#import "/tail/bibliography.typ": *
|
||||
#import "/tail/glossary.typ": *
|
||||
#import "/main/architecture/description.typ": *
|
||||
#import "/resources/slides.typ": *
|
||||
== Gateway — BLE to MQTT Bridge
|
||||
#slide[
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
gutter: 2em,
|
||||
align: top+left,
|
||||
[
|
||||
*Architecture*
|
||||
- Raspberry Pi 4 — Python
|
||||
- Passive @ble:short scan (bleak)
|
||||
- MQTTS publisher (paho-mqtt)
|
||||
- systemd service — auto-restart
|
||||
- Remote access via Tailscale
|
||||
],
|
||||
[
|
||||
// *Data flow*\
|
||||
// Thingy:52
|
||||
// $->$ BLE advertising
|
||||
// Raspberry Pi
|
||||
// $->$ MQTTS (TLS)
|
||||
// RabbitMQ broker
|
||||
// $->$
|
||||
// InfluxDB
|
||||
]
|
||||
)
|
||||
]
|
||||
== Gateway — Overview
|
||||
#slide[
|
||||
#align(center)[
|
||||
#figure(
|
||||
image("/resources/img/gateway_overview.svg", height: 40%),
|
||||
caption: [Gateway communication chain — from @ble:short advertising to database storage]
|
||||
)
|
||||
]
|
||||
]
|
||||
== Gateway — Key Challenges
|
||||
#slide[
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
gutter: 2em,
|
||||
align: top+left,
|
||||
[
|
||||
*BLE filtering*
|
||||
- GATT $->$ passive advertising
|
||||
- Filter: `company_id = 0xffff`
|
||||
- exactly 14 bytes
|
||||
- Continuous BLE scan (100% duty cycle)
|
||||
- Deduplication: 10s cache per MAC address
|
||||
],
|
||||
[
|
||||
*Reliability — validated in production*
|
||||
- MQTT auto-restart via systemd
|
||||
- `os._exit(1)` on disconnection
|
||||
- Validated with 2 cases:
|
||||
- Network disconnection
|
||||
- Wrong MQTT credentials
|
||||
- Multiple nodes publishing
|
||||
simultaneously — confirmed by broker
|
||||
- No duplicate data
|
||||
]
|
||||
)
|
||||
]
|
||||
60
report/meetings/260611-final/models.typ
Normal file
@@ -0,0 +1,60 @@
|
||||
#import "/metadata.typ": *
|
||||
#import "/tail/bibliography.typ": *
|
||||
#import "/tail/glossary.typ": *
|
||||
#import "/main/architecture/description.typ": *
|
||||
#import "/resources/slides.typ": *
|
||||
---
|
||||
Output:
|
||||
- Evolution of @co2:short concentration without considering air ventilation #pause
|
||||
- Time required to reach a threshold of 1400 ppm #pause
|
||||
- Evolution of @co2:short concentration decrease under natural ventilation #pause
|
||||
- Time required to reach outdoor-equivalent concentration level #pause
|
||||
|
||||
Input:
|
||||
- Provence classrooms specifications - Space A #pause
|
||||
- Open data #pause
|
||||
- Ventilation standard formula #pause
|
||||
- User parameters : Room name, number of students, initial @co2:short concentration
|
||||
|
||||
---
|
||||
=== Modelling the temporal evolution of @co2:short concentration
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
[
|
||||
#figure(
|
||||
image("../../resources/img/Physical model/CO2 concentration over time Simaria.png"),
|
||||
caption: [Comparison of modelled and open data #cite(<Simaria>) @co2:short concentration evolution]
|
||||
) <fig:comparison_open_data_model_no_window_opening>
|
||||
],
|
||||
[
|
||||
#figure(
|
||||
image("../../resources/img/Physical model/CO2 concentration over time INRS secondary school.png"),
|
||||
caption: [Comparison of modelled and open data #cite(<INRS_Study>) @co2:short concentration evolution]
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
---
|
||||
=== Modelling the @co2:short concentration increase without air ventilation and @co2:short decrease under natural ventilation
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
[
|
||||
#figure(
|
||||
image("../../resources/img/Physical model/Window user window opening model.png"),
|
||||
caption: [User input parameters and results]
|
||||
) <fig:user_input_parameters_results>
|
||||
],pause,
|
||||
[
|
||||
#figure(
|
||||
image("../../resources/img/Physical model/CO2 concentration over time user window opening model.png"),
|
||||
caption: [Temporal evolution of @co2:short level using input parameters from @fig:user_input_parameters_results]
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
---
|
||||
=== Comparison of experimental data and the physical model
|
||||
#figure(
|
||||
image("../../resources/img/Physical model/Comparison_expdata_model.png", width: 59%),
|
||||
caption: [Comparison of experimental data and the physical model (A2 classroom, 11 students)]
|
||||
)
|
||||
45
report/meetings/260611-final/nodes.typ
Normal file
@@ -0,0 +1,45 @@
|
||||
#import "/metadata.typ": *
|
||||
#import "/tail/bibliography.typ": *
|
||||
#import "/tail/glossary.typ": *
|
||||
#import "/main/architecture/description.typ": *
|
||||
|
||||
#import "/resources/slides.typ": *
|
||||
---
|
||||
== Nodes | Class diagram
|
||||
#let nodes_class_diagram_impl = [
|
||||
#figure(
|
||||
image("../..//resources/img/nodes_class_diagram_impl.svg"),
|
||||
caption: [Nodes class diagram following implementation]
|
||||
) <fig:nodes_class_diagram_impl>
|
||||
]
|
||||
#nodes_class_diagram_impl
|
||||
== Nodes | Sequence diagram
|
||||
#let nodes_sequence_diagram = [
|
||||
#figure(
|
||||
image("../../resources/img/nodes_sequence_diagram.svg", width: 60%),
|
||||
caption: [Nodes sequence diagram]
|
||||
) <fig:nodes_sequence_diagram>
|
||||
]
|
||||
#nodes_sequence_diagram
|
||||
== Nodes | BLE data
|
||||
#figure(
|
||||
table(
|
||||
columns: (auto, auto, auto),
|
||||
align: center,
|
||||
table.header("name", "key", "data size"),
|
||||
[Window opening status],[0x01],[1B],
|
||||
[Humidity],[0x02],[1B],
|
||||
[Temperature],[0x03],[2B],
|
||||
[@co2:short level],[0x04],[4B],
|
||||
[Battery percent of charge],[0x05],[1B],
|
||||
),
|
||||
caption: [Data communicated in the nodes_interface],
|
||||
)<tab:nodes_interface_content>
|
||||
|
||||
== Nodes | Takeaways
|
||||
#align(top+left)[
|
||||
#v(5em)
|
||||
- Breadboard validation #pause
|
||||
- 28 days later #pause
|
||||
- Improve @ble:short reliability
|
||||
]
|
||||
BIN
report/meetings/260611-final/server.png
Normal file
|
After Width: | Height: | Size: 146 KiB |
13
report/meetings/260611-final/server.uxf
Normal file
@@ -0,0 +1,13 @@
|
||||
<diagram program="umletino" version="15.1"><zoom_level>10</zoom_level><element><id>UMLDeployment</id><coordinates><x>310</x><y>280</y><w>330</w><h>350</h></coordinates><panel_attributes>Server</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>340</x><y>390</y><w>100</w><h>40</h></coordinates><panel_attributes><<Broker MQTT>>
|
||||
RabbitMQ</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>490</x><y>320</y><w>100</w><h>40</h></coordinates><panel_attributes><<Database>>
|
||||
InfluxDB3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>490</x><y>390</y><w>100</w><h>40</h></coordinates><panel_attributes><<API DB>>
|
||||
Go service</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>430</x><y>400</y><w>80</w><h>30</h></coordinates><panel_attributes>lt=<-</panel_attributes><additional_attributes>60;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>560</x><y>350</y><w>30</w><h>60</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>10;10;10;40</additional_attributes></element><element><id>Relation</id><coordinates><x>510</x><y>350</y><w>30</w><h>60</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>10;40;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>230</x><y>390</y><w>130</w><h>50</h></coordinates><panel_attributes>lt=-()
|
||||
m2=MQTT
|
||||
</panel_attributes><additional_attributes>110;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>530</x><y>430</y><w>190</w><h>50</h></coordinates><panel_attributes>lt=-()
|
||||
m2=REST
|
||||
</panel_attributes><additional_attributes>10;20;170;20</additional_attributes></element><element><id>UMLDeployment</id><coordinates><x>330</x><y>510</y><w>110</w><h>50</h></coordinates><panel_attributes><<Dashboard>>
|
||||
Angular</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>430</x><y>490</y><w>140</w><h>60</h></coordinates><panel_attributes>lt=)-
|
||||
m1=
|
||||
</panel_attributes><additional_attributes>110;20;110;40;10;40</additional_attributes></element><element><id>UMLDeployment</id><coordinates><x>330</x><y>570</y><w>110</w><h>50</h></coordinates><panel_attributes><<Notification>>
|
||||
Java</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>430</x><y>520</y><w>130</w><h>90</h></coordinates><panel_attributes></panel_attributes><additional_attributes>110;10;110;70;10;70</additional_attributes></element><element><id>Relation</id><coordinates><x>530</x><y>420</y><w>60</w><h>90</h></coordinates><panel_attributes>lt=-()
|
||||
m2=REST</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element></diagram>
|
||||
@@ -1,14 +1,14 @@
|
||||
#import "/metadata.typ": *
|
||||
#import "/tail/bibliography.typ": *
|
||||
#import "/tail/glossary.typ": *
|
||||
#import "/main/architecture/description.typ": *
|
||||
|
||||
#import "/resources/slides.typ": *
|
||||
|
||||
#show:make-glossary
|
||||
#register-glossary(entry-list)
|
||||
|
||||
#let HANDOUT = true
|
||||
#let NOTES = false
|
||||
#let HANDOUT = false
|
||||
#let NOTES = true
|
||||
|
||||
#show: metropolis-theme.with(
|
||||
aspect-ratio: "16-9",
|
||||
@@ -33,7 +33,7 @@
|
||||
#title-slide()
|
||||
|
||||
// 20 min presentation
|
||||
// 5 (students) + 25 (teacher) min Q&A
|
||||
// 5 (students) + 25 (teachers) min Q&A
|
||||
|
||||
/*
|
||||
technical -> each section should go for around (3min / pers)
|
||||
@@ -58,16 +58,138 @@ TECHNIQUE
|
||||
|
||||
*/
|
||||
|
||||
= Intro
|
||||
= Intro // (50s) Rémi
|
||||
// Context of the project
|
||||
// Dimitri missing
|
||||
#speaker-note[
|
||||
This is a personal note
|
||||
]
|
||||
---
|
||||
|
||||
== foo
|
||||
|
||||
Yolo
|
||||
== Architecture // (50s) Ibrahima
|
||||
#let top_level_architecture = [
|
||||
#figure(
|
||||
image("../../resources/img/ui_images/architecture.png"),
|
||||
caption: [Top level architecture]
|
||||
) <fig:top_level_architecture>
|
||||
]
|
||||
#top_level_architecture
|
||||
|
||||
== bar
|
||||
Hello world
|
||||
== Organisation & Task Management // (50s) Djelal
|
||||
|
||||
#slide[
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
gutter: 2em,
|
||||
align: left+top,
|
||||
[
|
||||
*Project management*
|
||||
- Weekly meetings
|
||||
- PV after each meeting
|
||||
- GitHub Issues & sub-issues
|
||||
- Pull Requests with code review
|
||||
- Teams for daily communication
|
||||
- GULAG Git conventions
|
||||
],
|
||||
[
|
||||
*Work distribution*
|
||||
- Adrien — Nodes firmware (Zephyr)
|
||||
- Djelal — Gateway (BLE-to-MQTT)
|
||||
- Rémi — Database & API
|
||||
- Ibrahima — User Interface
|
||||
- Alison — Physical model
|
||||
]
|
||||
)
|
||||
]
|
||||
|
||||
= Nodes // (3min) Adrien
|
||||
#include "nodes.typ"
|
||||
|
||||
= Gateway // (3min) Djelal
|
||||
#include "gateway.typ"
|
||||
|
||||
= Database & API // (3min) Rémi
|
||||
#include "db.typ"
|
||||
|
||||
= User interface // (3min) Ibrahima
|
||||
#include "ui.typ"
|
||||
|
||||
= Physical model // (3min) Alison
|
||||
#include "models.typ"
|
||||
|
||||
= Conclusion
|
||||
|
||||
---
|
||||
It's the end of the world
|
||||
== Project's takeaways // (50s) Adrien (Regard critique)
|
||||
- @trl:long (@trl:short) 4 #pause
|
||||
- Forecasting // and Teams notifications
|
||||
|
||||
== Future perspectives // (50s) Alison
|
||||
- Deployment in every room #pause
|
||||
- Equip the door with sensors #pause
|
||||
- Calibrate the sensors and, if necessary, replace them with higher-performance devices #pause
|
||||
- Conduct multiple measurement campaigns knowing the number of students to adjust the physical model #pause
|
||||
- Display the predicted time to reach the threshold and the window opening duration on the board #pause
|
||||
- Teams notifications #pause
|
||||
- Implement a forecasting using machine learning
|
||||
|
||||
|
||||
#focus-slide[Questions?]
|
||||
|
||||
#show: appendix
|
||||
|
||||
== Glossary
|
||||
#print-glossary(
|
||||
entry-list,
|
||||
// show all term even if they are not referenced, default to true
|
||||
show-all: false,
|
||||
// disable the back ref at the end of the descriptions
|
||||
disable-back-references: true
|
||||
)
|
||||
|
||||
|
||||
== Bibliography
|
||||
|
||||
#bibliography(title: i18n("bib-title", lang: option.lang), bib.path, style:bib.style)
|
||||
|
||||
= Annexes
|
||||
|
||||
== Description of the model
|
||||
|
||||
#grid(
|
||||
columns: (1.7fr,0.1fr,1fr),
|
||||
[#figure(
|
||||
image("../../resources/img/Physical model/data flow diagram window opening .png"),
|
||||
caption: [Description of the model]
|
||||
) <fig:physical_model_no_ventilation>],
|
||||
[
|
||||
],
|
||||
[
|
||||
Formulas for determining the evolution of @co2 concentration :
|
||||
|
||||
#text(size: 12pt)[
|
||||
- $C_"CO2" (t) = C_"CO2" (t=0) + frac(N.Q_"CO2_prod".t,V)
|
||||
$
|
||||
|
||||
- $C_"CO2" (t) = (C_"CO2_indoor" (t=0) - C_"CO2_outdoor" - frac(0.001 . Q_"CO2_prod", Q_"air")) . \ exp (frac(-Q_"air", V) . t)
|
||||
+ C_"CO2_outdoor" + frac(0.001 . Q_"CO2_prod", Q_"air")
|
||||
$
|
||||
where,
|
||||
|
||||
$C_"CO2" (t=0)$ #h(1.5cm) initial co2 concentration [ppm]
|
||||
|
||||
N #h(3.4cm) number of students
|
||||
|
||||
$Q_"CO2_prod"$ #h(2cm) co2 flow rate per person [l/h]
|
||||
|
||||
$C_"CO2_indoor" (t=0)$ #h(0.6cm) indoor co2 level before window-opening [ppm]
|
||||
|
||||
$C_"CO2_outdoor"$ #h(1.7cm) outdoor air concentration [ppm]
|
||||
|
||||
$Q_"air"$ #h(3cm) incoming air flow rate [$m^3$/h]
|
||||
|
||||
$V$ #h(3.3cm) room volume [$m^3$]
|
||||
|
||||
$t$ #h(3.5cm) time [h]]
|
||||
]
|
||||
)
|
||||
197
report/meetings/260611-final/ui.typ
Normal file
@@ -0,0 +1,197 @@
|
||||
#import "/metadata.typ": *
|
||||
#import "/tail/bibliography.typ": *
|
||||
#import "/tail/glossary.typ": *
|
||||
#import "/main/architecture/description.typ": *
|
||||
|
||||
#import "/resources/slides.typ": *
|
||||
|
||||
// Chemin racine des images — adapter selon ta structure de projet
|
||||
#let img-root = "../../resources/img/ui_images/images/"
|
||||
|
||||
// ── Palette ───────────────────────────────────────────────────────────────────
|
||||
#let c-dark = rgb("#0F172A")
|
||||
#let c-teal = rgb("#0EA5E9")
|
||||
#let c-text = rgb("#1E293B")
|
||||
#let c-muted = rgb("#64748B")
|
||||
#let c-white = rgb("#FFFFFF")
|
||||
#let c-border = rgb("#E2E8F0")
|
||||
|
||||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||||
|
||||
#let icon-circle(img-path, size: 38pt, bg: rgb("#0EA5E9")) = {
|
||||
box(
|
||||
width: size, height: size,
|
||||
fill: bg, radius: (size / 2),
|
||||
inset: 0pt, clip: true,
|
||||
)[
|
||||
#align(center + horizon)[
|
||||
#image(img-path, width: (size * 0.62), height: (size * 0.62), fit: "contain")
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
#let badge(label, fill: rgb("#EF4444")) = {
|
||||
box(fill: fill, radius: 3pt, inset: (x: 5pt, y: 2pt))[
|
||||
#text(size: 6.5pt, weight: "bold", fill: rgb("#FFFFFF"))[#label]
|
||||
]
|
||||
}
|
||||
|
||||
#let devsec-col(phase-title, items) = {
|
||||
block(width: 100%)[
|
||||
#block(
|
||||
width: 100%, height: 28pt,
|
||||
fill: c-dark,
|
||||
radius: (top-left: 5pt, top-right: 5pt, bottom-left: 0pt, bottom-right: 0pt),
|
||||
inset: 0pt,
|
||||
)[
|
||||
#pad(x: 7pt)[
|
||||
#align(horizon + center)[
|
||||
#text(size: 8.5pt, weight: "bold", fill: rgb("#FFFFFF"))[#phase-title]
|
||||
]
|
||||
]
|
||||
]
|
||||
#block(
|
||||
width: 100%,
|
||||
fill: rgb("#F1F5F9"),
|
||||
radius: (top-left: 0pt, top-right: 0pt, bottom-left: 5pt, bottom-right: 5pt),
|
||||
inset: 8pt,
|
||||
)[
|
||||
#for item in items {
|
||||
grid(columns: (30pt, 1fr), gutter: 6pt,
|
||||
icon-circle(item.at("icon"), size: 28pt, bg: item.at("bg", default: c-teal)),
|
||||
align(left + horizon)[
|
||||
#text(size: 8pt, weight: "bold", fill: c-text)[#item.at("name")]
|
||||
#linebreak()
|
||||
#item.at("extra", default: [])
|
||||
],
|
||||
)
|
||||
v(5pt)
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
== Cycle DevSecOps
|
||||
|
||||
#slide[
|
||||
#grid(columns: (1fr, 1fr, 1fr, 1fr), gutter: 8pt,
|
||||
devsec-col("① Code & PR Gate", (
|
||||
(icon: img-root + "image10.png", bg: rgb("#3178C6"), name: "TypeScript",
|
||||
extra: [#text(size: 6.5pt, fill: c-muted)[tsc / ESLint]]),
|
||||
(icon: img-root + "image11.png", bg: rgb("#DD0031"), name: "Angular CI",
|
||||
extra: [#text(size: 6.5pt, fill: c-muted)[Build check]]),
|
||||
(icon: img-root + "image19.png", bg: rgb("#1F2328"), name: "GitHub Actions",
|
||||
extra: [#text(size: 6.5pt, fill: c-muted)[Coverage]]),
|
||||
)),pause,
|
||||
devsec-col("② SAST · SCA", (
|
||||
(icon: img-root + "image7.png", bg: rgb("#000000"), name: "SpotBugs",
|
||||
extra: [#badge("BLOCKING")]),
|
||||
(icon: img-root + "image13.png", bg: rgb("#1F2328"), name: "CodeQL",
|
||||
extra: [#badge("BLOCKING")]),
|
||||
(icon: img-root + "image14.png", bg: rgb("#F97316"), name: "Dep. Check",
|
||||
extra: [#badge("NON-BLOCK", fill: rgb("#F97316"))]),
|
||||
)),pause,
|
||||
devsec-col("③ DAST · Tests", (
|
||||
(icon: img-root + "image15.png", bg: rgb("#00549E"), name: "OWASP ZAP",
|
||||
extra: [#badge("BLOCKING")]),
|
||||
(icon: img-root + "image16.png", bg: rgb("#DD0031"), name: "Karma Tests",
|
||||
extra: [#badge("BLOCKING")]),
|
||||
(icon: img-root + "image17.png", bg: rgb("#64748B"), name: "Runtime check",
|
||||
extra: [#text(size: 6.5pt, fill: c-muted)[HTTP headers]]),
|
||||
)),pause,
|
||||
devsec-col("④ Build · Deploy", (
|
||||
(icon: img-root + "image18.png", bg: rgb("#0DB7ED"), name: "Docker",
|
||||
extra: [#text(size: 6.5pt, fill: c-muted)[SHA-tagged]]),
|
||||
(icon: img-root + "image19.png", bg: rgb("#1F2328"), name: "GHCR Push",
|
||||
extra: [#text(size: 6.5pt, fill: c-muted)[main only]]),
|
||||
(icon: img-root + "image17.png", bg: rgb("#10B981"), name: "SSH Deploy",
|
||||
extra: [#text(size: 6.5pt, fill: c-muted)[cert-auth]]),
|
||||
)),pause,
|
||||
)
|
||||
|
||||
#v(7pt)
|
||||
|
||||
#rect(width: 100%, height: 26pt, fill: c-dark, radius: 4pt, inset: 0pt)[
|
||||
#pad(x: 20pt)[
|
||||
#align(horizon)[
|
||||
#grid(columns: (1fr, 1fr, 1fr),
|
||||
align(center + horizon)[#text(size: 8pt, fill: rgb("#FFFFFF"))[🔐 #h(2pt) Shift-left security]],
|
||||
align(center + horizon)[#text(size: 8pt, fill: rgb("#FFFFFF"))[🔑 #h(2pt) Zero secret in code]],
|
||||
align(center + horizon)[#text(size: 8pt, fill: rgb("#FFFFFF"))[🔄 #h(2pt) Automated Deployment]],
|
||||
)
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
#v(6pt)
|
||||
]
|
||||
|
||||
|
||||
// ── SLIDE 3 — Dashboard ───────────────────────────────────────────────────────
|
||||
== Dashboard
|
||||
|
||||
#slide[
|
||||
#align(center + horizon)[
|
||||
#figure(
|
||||
image(img-root + "image20.png", width: 100%, fit: "contain"),
|
||||
caption: [Dashboard]
|
||||
)
|
||||
]
|
||||
]
|
||||
|
||||
// ── SLIDE 4 — Details Page ────────────────────────────────────────────────────
|
||||
== Details Page
|
||||
|
||||
#slide[
|
||||
#align(center + horizon)[
|
||||
#figure(
|
||||
image(img-root + "image21.png", width: 100%, fit: "contain"),
|
||||
caption: [Details page]
|
||||
)
|
||||
]
|
||||
]
|
||||
|
||||
// ── SLIDE 5 — Notification ────────────────────────────────────────────────────
|
||||
== Notification
|
||||
|
||||
#slide[
|
||||
#grid(columns: (1fr, 1fr), gutter: 16pt,
|
||||
// Screenshot Telegram
|
||||
align(center + horizon)[
|
||||
|
||||
#figure(
|
||||
image(img-root + "image22.png", height: 300pt, fit: "contain"),
|
||||
caption: [Telegram notification]
|
||||
)
|
||||
],
|
||||
// Carte descriptive
|
||||
rect(width: 100%, radius: 6pt, stroke: 0.5pt + c-border, fill: rgb("#FFFFFF"), inset: 12pt)[
|
||||
#text(size: 10pt, weight: "bold", fill: c-text)[CO₂ Alerts System]
|
||||
#v(5pt)
|
||||
#line(length: 100%, stroke: 0.5pt + c-border)
|
||||
#v(6pt)
|
||||
|
||||
#let alert-row(col, level, desc) = {
|
||||
grid(columns: (10pt, 52pt, 1fr), gutter: 5pt,
|
||||
box(width: 8pt, height: 8pt, fill: col, radius: 4pt),
|
||||
text(size: 8.5pt, weight: "bold")[#level],
|
||||
text(size: 8pt, fill: c-muted)[#desc],
|
||||
)
|
||||
v(4pt)
|
||||
}
|
||||
#alert-row(rgb("#f44336"), "Critical", "> 2000 ppm")
|
||||
#alert-row(rgb("#F97316"), "Very Poor", "1500-2000 ppm")
|
||||
#alert-row(rgb("#ff9800"), "Poor", "1200-1500 ppm")
|
||||
#alert-row(rgb("#ffc107"), "Moderate", "1000-1200 ppm")
|
||||
#alert-row(rgb("#8bc34a"), "Good", "800-1000 ppm")
|
||||
#alert-row(rgb("#4caf50"), "Excellent", "< 800 ppm")
|
||||
|
||||
#v(6pt)
|
||||
#line(length: 100%, stroke: 0.5pt + c-border)
|
||||
#v(6pt)
|
||||
|
||||
#v(6pt)
|
||||
|
||||
],
|
||||
)
|
||||
]
|
||||
43
report/resources/img/gateway_overview.svg
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="238px" preserveAspectRatio="none" style="width:1106px;height:238px;" version="1.1" viewBox="0 0 1106 238" width="1106px" zoomAndPan="magnify"><defs><filter height="300%" id="fdgkvirjllmq" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[d638d2e8639369a4c8d274dd926c65e9]
|
||||
entity thingy--><rect fill="#ADD8E6" filter="url(#fdgkvirjllmq)" height="117.7813" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="6" y="11.5"/><rect fill="#ADD8E6" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="1" y="16.5"/><rect fill="#ADD8E6" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="1" y="119.2813"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="69" x="16" y="34.4951">Thingy:52</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="80" x="16" y="50.792">──────────</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="16" y="67.0889">CO2, Temp</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="59" x="16" y="83.3857">Humidity</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="99.6826">Battery</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="16" y="115.9795">Window</text><!--MD5=[7b30460008fc71f9986330c33ee2d290]
|
||||
entity gateway--><rect fill="#90EE90" filter="url(#fdgkvirjllmq)" height="101.4844" style="stroke: #A80036; stroke-width: 1.5;" width="151" x="310" y="20"/><rect fill="#90EE90" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="305" y="25"/><rect fill="#90EE90" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="305" y="111.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="99" x="320" y="42.9951">Raspberry Pi 4</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="80" x="320" y="59.292">──────────</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="77" x="320" y="75.5889">gateway.py</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="129" x="320" y="91.8857">bleak + paho-mqtt</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="131" x="320" y="108.1826">asyncio + systemd</text><!--MD5=[e701bbac852ce3c7f1c3d2193e52d58f]
|
||||
entity broker--><rect fill="#FFFFE0" filter="url(#fdgkvirjllmq)" height="85.1875" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="710" y="28"/><rect fill="#FFFFE0" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="705" y="33"/><rect fill="#FFFFE0" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="705" y="103.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="67" x="720" y="50.9951">RabbitMQ</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="80" x="720" y="67.292">──────────</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="99" x="720" y="83.5889">MQTTS broker</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="76" x="720" y="99.8857">TLS + auth</text><!--MD5=[7468467f3b6b392f1d176d828c753b77]
|
||||
entity db--><rect fill="#FFA07A" filter="url(#fdgkvirjllmq)" height="36.2969" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="1019" y="52.5"/><rect fill="#FFA07A" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="1014" y="57.5"/><rect fill="#FFA07A" height="5" style="stroke: #A80036; stroke-width: 1.5;" width="10" x="1014" y="78.7969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="56" x="1029" y="75.4951">InfluxDB</text><path d="M307,156 L307,226.5313 A0,0 0 0 0 307,226.5313 L464,226.5313 A0,0 0 0 0 464,226.5313 L464,166 L454,156 L389.5,156 L385.5,121.02 L381.5,156 L307,156 A0,0 0 0 0 307,156 " fill="#FBFB77" filter="url(#fdgkvirjllmq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,156 L454,166 L464,166 L454,156 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="42" x="313" y="173.0669">Filters:</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="313" y="188.1997">- company_id = 0xffff</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="133" x="313" y="203.3325">- payload = 14 bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="313" y="218.4653">- dedup 10s per MAC</text><!--MD5=[72a710db11e8fbeffe0299f3833be780]
|
||||
link thingy to gateway--><path d="M106.03,70.5 C158.53,70.5 242.65,70.5 304.72,70.5 " fill="none" id="thingy->gateway" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="309.9,70.5,300.9,66.5,304.9,70.5,300.9,74.5,309.9,70.5" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="157.5" y="21.5669">BLE advertising</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="150.5" y="36.6997">company_id 0xffff</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="55" x="179" y="51.8325">14 bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="139" x="137" y="66.9653">3 channels (37/38/39)</text><!--MD5=[d5fc4fe9659f4c010806cb130a744287]
|
||||
link gateway to broker--><path d="M461.06,70.5 C531.95,70.5 637.45,70.5 704.59,70.5 " fill="none" id="gateway->broker" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="709.76,70.5,700.76,66.5,704.76,70.5,700.76,74.5,709.76,70.5" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="540" y="36.5669">MQTTS port 80</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="544" y="51.6997">JSON payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="495" y="66.8325">{gateway_id}/{mac}/update</text><!--MD5=[b33725c11cd6fb0cd801e7a81b9a0575]
|
||||
link broker to db--><path d="M829.31,70.5 C884.12,70.5 964.53,70.5 1013.4,70.5 " fill="none" id="broker->db" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1018.61,70.5,1009.61,66.5,1013.61,70.5,1009.61,74.5,1018.61,70.5" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="860" y="66.5669">store measurement</text><!--MD5=[9109db2b88df5a8c8bdd4041f3fe8ffc]
|
||||
@startuml
|
||||
skinparam linestyle ortho
|
||||
skinparam componentStyle rectangle
|
||||
skinparam backgroundColor white
|
||||
|
||||
left to right direction
|
||||
|
||||
component "Thingy:52\n──────────\nCO2, Temp\nHumidity\nBattery\nWindow" as thingy #LightBlue
|
||||
component "Raspberry Pi 4\n──────────\ngateway.py\nbleak + paho-mqtt\nasyncio + systemd" as gateway #LightGreen
|
||||
component "RabbitMQ\n──────────\nMQTTS broker\nTLS + auth" as broker #LightYellow
|
||||
component "InfluxDB" as db #LightSalmon
|
||||
|
||||
thingy - -> gateway : BLE advertising\ncompany_id 0xffff\n14 bytes\n3 channels (37/38/39)
|
||||
gateway - -> broker : MQTTS port 80\nJSON payload\n{gateway_id}/{mac}/update
|
||||
broker - -> db : store measurement
|
||||
|
||||
note bottom of gateway
|
||||
Filters:
|
||||
- company_id = 0xffff
|
||||
- payload = 14 bytes
|
||||
- dedup 10s per MAC
|
||||
end note
|
||||
|
||||
@enduml
|
||||
|
||||
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
|
||||
(GPL source distribution)
|
||||
Java Runtime: OpenJDK Runtime Environment
|
||||
JVM: OpenJDK 64-Bit Server VM
|
||||
Java Version: 21.0.11+10-1-deb13u2-Debian
|
||||
Operating System: Linux
|
||||
Default Encoding: UTF-8
|
||||
Language: en
|
||||
Country: GB
|
||||
--></g></svg>
|
||||
|
After Width: | Height: | Size: 9.0 KiB |
BIN
report/resources/img/ui_images/architecture.png
Normal file
|
After Width: | Height: | Size: 403 KiB |
BIN
report/resources/img/ui_images/image.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
report/resources/img/ui_images/images/image1.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
report/resources/img/ui_images/images/image10.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
report/resources/img/ui_images/images/image11.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
report/resources/img/ui_images/images/image12.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
report/resources/img/ui_images/images/image13.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
report/resources/img/ui_images/images/image14.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
report/resources/img/ui_images/images/image15.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
report/resources/img/ui_images/images/image16.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
report/resources/img/ui_images/images/image17.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
report/resources/img/ui_images/images/image18.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
report/resources/img/ui_images/images/image19.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
report/resources/img/ui_images/images/image2.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
report/resources/img/ui_images/images/image20.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
report/resources/img/ui_images/images/image21.png
Normal file
|
After Width: | Height: | Size: 412 KiB |
BIN
report/resources/img/ui_images/images/image22.png
Normal file
|
After Width: | Height: | Size: 638 KiB |
BIN
report/resources/img/ui_images/images/image3.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
report/resources/img/ui_images/images/image4.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
report/resources/img/ui_images/images/image5.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
report/resources/img/ui_images/images/image6.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
report/resources/img/ui_images/images/image7.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
report/resources/img/ui_images/images/image8.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
report/resources/img/ui_images/images/image9.jpeg
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
441
report/resources/measures/A3-D5_2F_7E_30_10_5A.csv
Normal file
@@ -0,0 +1,441 @@
|
||||
time,co2,temperature,humidity,windows,battery
|
||||
2026-06-11T08:45:04,1766,27.7,38,0,25
|
||||
2026-06-11T08:46:04,1815,28.1,37,0,27
|
||||
2026-06-11T08:48:05,1836,28.7,37,0,25
|
||||
2026-06-11T08:49:06,1844,29,36,0,25
|
||||
2026-06-11T08:50:06,1830,29.2,36,0,25
|
||||
2026-06-11T08:51:07,1837,29.5,35,0,27
|
||||
2026-06-11T08:53:08,1903,29.8,35,0,27
|
||||
2026-06-11T08:54:08,1903,30,34,0,25
|
||||
2026-06-11T08:55:09,1868,30.2,34,0,27
|
||||
2026-06-11T08:56:10,1900,30.3,34,0,25
|
||||
2026-06-11T08:57:10,1914,30.5,34,0,27
|
||||
2026-06-11T08:58:10,1925,30.6,33,0,27
|
||||
2026-06-11T08:59:11,1951,30.7,33,0,25
|
||||
2026-06-11T09:00:11,1975,30.8,33,0,27
|
||||
2026-06-11T09:01:12,1975,31,32,0,27
|
||||
2026-06-11T09:02:13,1942,31,33,0,25
|
||||
2026-06-11T09:03:13,1938,31.1,32,0,27
|
||||
2026-06-11T09:04:14,1965,31.2,32,0,27
|
||||
2026-06-11T09:05:14,1989,31.3,32,0,25
|
||||
2026-06-11T09:07:15,1978,31.5,32,0,27
|
||||
2026-06-11T09:08:15,1989,31.6,32,0,27
|
||||
2026-06-11T09:09:16,1989,31.6,31,0,27
|
||||
2026-06-11T09:10:16,2007,31.6,32,0,25
|
||||
2026-06-11T09:11:17,1978,31.3,32,0,27
|
||||
2026-06-11T09:12:18,1989,31.1,32,0,25
|
||||
2026-06-11T09:13:18,1965,30.7,32,0,25
|
||||
2026-06-11T09:14:18,1980,30.3,32,0,25
|
||||
2026-06-11T09:15:19,1946,30,32,0,25
|
||||
2026-06-11T09:16:19,1914,29.6,33,0,25
|
||||
2026-06-11T09:18:21,1926,29.1,33,0,25
|
||||
2026-06-11T09:19:21,1895,28.7,33,0,25
|
||||
2026-06-11T09:20:21,1937,28.6,33,0,25
|
||||
2026-06-11T09:21:22,1937,28.3,33,0,25
|
||||
2026-06-11T09:22:22,1937,28.2,34,0,27
|
||||
2026-06-11T09:23:23,1902,28,34,0,25
|
||||
2026-06-11T09:24:23,1890,27.8,34,0,25
|
||||
2026-06-11T09:25:24,1939,27.7,34,0,27
|
||||
2026-06-11T09:26:24,1960,27.6,35,0,25
|
||||
2026-06-11T09:27:25,1934,27.5,34,0,25
|
||||
2026-06-11T09:28:25,1933,27.3,35,0,25
|
||||
2026-06-11T09:29:26,1917,27.2,35,0,25
|
||||
2026-06-11T09:30:27,1908,27.2,35,0,25
|
||||
2026-06-11T09:31:27,1897,27.1,35,0,25
|
||||
2026-06-11T09:32:28,1879,27,35,0,25
|
||||
2026-06-11T09:33:28,1879,26.8,35,0,25
|
||||
2026-06-11T09:34:29,1900,26.7,35,0,25
|
||||
2026-06-11T09:35:29,1900,26.7,36,0,25
|
||||
2026-06-11T09:36:29,1885,26.6,36,0,25
|
||||
2026-06-11T09:37:30,1894,26.6,36,0,25
|
||||
2026-06-11T09:38:30,1885,26.5,36,0,27
|
||||
2026-06-11T09:39:31,1894,26.5,36,0,25
|
||||
2026-06-11T09:40:31,1885,26.5,36,0,27
|
||||
2026-06-11T09:41:32,1885,26.3,36,0,27
|
||||
2026-06-11T09:42:32,1875,26.3,36,0,27
|
||||
2026-06-11T09:43:33,1875,26.3,36,0,25
|
||||
2026-06-11T09:44:34,1902,26.2,37,0,27
|
||||
2026-06-11T09:45:34,1852,26.2,37,0,27
|
||||
2026-06-11T09:46:35,1852,26.2,37,0,25
|
||||
2026-06-11T09:47:35,1834,26.1,37,0,27
|
||||
2026-06-11T09:48:35,1843,26.1,37,0,25
|
||||
2026-06-11T09:49:36,1852,26.1,37,0,25
|
||||
2026-06-11T09:50:37,1843,26.1,37,0,25
|
||||
2026-06-11T09:51:37,1834,26,37,0,25
|
||||
2026-06-11T09:52:37,1825,26,37,0,25
|
||||
2026-06-11T09:53:38,1825,26,38,0,25
|
||||
2026-06-11T09:54:38,1811,25.8,37,0,27
|
||||
2026-06-11T09:55:39,1897,26,37,0,25
|
||||
2026-06-11T09:56:40,1819,25.8,38,0,25
|
||||
2026-06-11T09:57:40,1875,25.8,38,0,25
|
||||
2026-06-11T09:58:41,1855,25.8,38,0,25
|
||||
2026-06-11T09:59:41,1865,25.8,38,0,25
|
||||
2026-06-11T10:00:41,1847,25.7,38,0,27
|
||||
2026-06-11T10:01:42,1847,25.7,38,0,25
|
||||
2026-06-11T10:02:42,1847,25.7,38,0,25
|
||||
2026-06-11T10:03:43,1855,25.7,38,0,25
|
||||
2026-06-11T10:04:43,1855,25.7,39,0,25
|
||||
2026-06-11T10:05:44,1842,25.7,38,0,25
|
||||
2026-06-11T10:06:45,1855,25.7,39,0,25
|
||||
2026-06-11T10:07:45,1833,25.6,38,0,25
|
||||
2026-06-11T10:08:46,1837,25.6,39,0,25
|
||||
2026-06-11T10:09:46,1833,25.6,39,0,25
|
||||
2026-06-11T10:10:47,1833,25.5,39,0,25
|
||||
2026-06-11T10:11:47,1833,25.6,39,0,25
|
||||
2026-06-11T10:12:48,1833,25.3,41,0,25
|
||||
2026-06-11T10:13:48,1833,25.5,38,0,25
|
||||
2026-06-11T10:14:49,1847,25.5,39,0,25
|
||||
2026-06-11T10:15:49,1833,25.5,39,0,25
|
||||
2026-06-11T10:16:50,1833,25.3,39,0,25
|
||||
2026-06-11T10:17:50,1824,25.3,39,0,25
|
||||
2026-06-11T10:18:51,1824,25.3,40,0,25
|
||||
2026-06-11T10:19:51,1811,25.3,39,0,25
|
||||
2026-06-11T10:20:52,1860,25.5,39,0,25
|
||||
2026-06-11T10:21:52,1866,25.3,39,0,25
|
||||
2026-06-11T10:22:53,1897,25.5,39,0,25
|
||||
2026-06-11T10:23:53,1914,25.5,40,0,25
|
||||
2026-06-11T10:24:54,1915,25.5,40,0,25
|
||||
2026-06-11T10:25:54,1915,25.5,40,0,25
|
||||
2026-06-11T10:26:55,1935,25.5,40,0,25
|
||||
2026-06-11T10:27:55,1946,25.5,40,0,25
|
||||
2026-06-11T10:28:56,1956,25.5,39,0,25
|
||||
2026-06-11T10:29:56,1971,25.5,40,0,27
|
||||
2026-06-11T10:30:57,1956,25.5,40,0,25
|
||||
2026-06-11T10:31:57,1976,25.5,39,0,25
|
||||
2026-06-11T10:33:58,1965,25.5,40,0,25
|
||||
2026-06-11T10:34:59,1976,25.5,40,0,25
|
||||
2026-06-11T10:35:59,1965,25.5,40,0,25
|
||||
2026-06-11T10:37:00,1956,25.5,40,0,25
|
||||
2026-06-11T10:38:00,1956,25.5,39,0,25
|
||||
2026-06-11T10:39:01,1971,25.5,40,0,25
|
||||
2026-06-11T10:40:01,1935,25.3,40,0,25
|
||||
2026-06-11T10:41:02,1935,25.5,39,0,25
|
||||
2026-06-11T10:42:02,1950,25.3,39,0,25
|
||||
2026-06-11T10:43:03,1950,25.3,40,0,25
|
||||
2026-06-11T10:44:03,1915,25.3,40,0,25
|
||||
2026-06-11T10:45:04,1915,25.3,40,0,25
|
||||
2026-06-11T10:46:04,1915,25.3,40,0,25
|
||||
2026-06-11T10:47:05,1928,25.3,40,0,25
|
||||
2026-06-11T10:48:05,1928,25.3,40,0,25
|
||||
2026-06-11T10:49:06,1928,25.3,40,0,25
|
||||
2026-06-11T10:50:06,1928,25.3,40,0,25
|
||||
2026-06-11T10:51:07,1928,25.3,40,0,25
|
||||
2026-06-11T10:52:07,1915,25.2,40,0,25
|
||||
2026-06-11T10:53:08,1928,25.3,40,0,25
|
||||
2026-06-11T10:54:08,1928,25.3,40,0,25
|
||||
2026-06-11T10:55:09,1928,25.2,40,0,25
|
||||
2026-06-11T10:56:09,1928,25.2,40,0,25
|
||||
2026-06-11T10:57:10,1909,25.2,40,0,25
|
||||
2026-06-11T11:00:11,1899,25.2,39,0,25
|
||||
2026-06-11T11:01:12,1914,25.3,40,0,25
|
||||
2026-06-11T11:03:13,1899,25.2,39,0,25
|
||||
2026-06-11T11:04:13,1903,25.2,40,0,25
|
||||
2026-06-11T11:05:14,1899,25.2,40,0,25
|
||||
2026-06-11T11:06:14,1899,25.2,40,0,25
|
||||
2026-06-11T11:07:15,1899,25.2,39,0,25
|
||||
2026-06-11T11:08:15,1914,25.2,39,0,25
|
||||
2026-06-11T11:09:16,1914,25.2,39,0,25
|
||||
2026-06-11T11:10:16,1914,25.2,39,0,25
|
||||
2026-06-11T11:12:17,1922,25.2,40,0,25
|
||||
2026-06-11T11:13:18,1915,25.2,40,0,25
|
||||
2026-06-11T11:14:18,1915,25.2,40,0,25
|
||||
2026-06-11T11:15:19,1928,25.2,39,0,25
|
||||
2026-06-11T11:16:19,1940,25.2,40,0,25
|
||||
2026-06-11T11:17:20,1928,25.2,40,0,25
|
||||
2026-06-11T11:18:20,1915,25.2,40,0,25
|
||||
2026-06-11T11:19:21,1915,25.1,40,0,25
|
||||
2026-06-11T11:20:21,1909,25.2,39,0,25
|
||||
2026-06-11T11:21:22,1909,25.2,40,0,22
|
||||
2026-06-11T11:22:22,1899,25.2,39,0,25
|
||||
2026-06-11T11:23:23,1922,25.2,39,0,25
|
||||
2026-06-11T11:24:23,1922,25.2,39,0,25
|
||||
2026-06-11T11:26:24,1914,25.2,39,0,25
|
||||
2026-06-11T11:27:25,1903,25.2,40,0,25
|
||||
2026-06-11T11:28:26,1899,25.2,40,0,25
|
||||
2026-06-11T11:29:26,1899,25.2,40,0,25
|
||||
2026-06-11T11:30:26,1899,25.2,40,0,25
|
||||
2026-06-11T11:31:27,1889,25.2,40,0,25
|
||||
2026-06-11T11:32:27,1889,25.2,40,0,25
|
||||
2026-06-11T11:33:28,1889,25.1,40,0,25
|
||||
2026-06-11T11:34:28,1889,25.1,40,0,25
|
||||
2026-06-11T11:35:29,1871,25.1,39,0,25
|
||||
2026-06-11T11:36:29,1897,25.1,39,0,25
|
||||
2026-06-11T11:37:30,1903,25.1,39,0,25
|
||||
2026-06-11T11:38:30,1922,25.2,39,0,25
|
||||
2026-06-11T11:39:31,1930,25.2,40,0,25
|
||||
2026-06-11T11:40:31,1928,25.2,40,0,25
|
||||
2026-06-11T11:41:32,1946,25.2,39,0,25
|
||||
2026-06-11T11:43:33,1980,25.3,39,0,25
|
||||
2026-06-11T11:44:33,2001,25.3,39,0,25
|
||||
2026-06-11T11:45:34,1980,25.3,39,0,25
|
||||
2026-06-11T11:46:34,2001,25.3,40,0,25
|
||||
2026-06-11T11:47:35,2004,25.3,39,0,25
|
||||
2026-06-11T11:48:35,2028,25.5,40,0,25
|
||||
2026-06-11T11:49:36,2025,25.5,40,0,25
|
||||
2026-06-11T11:50:36,2025,25.3,40,0,25
|
||||
2026-06-11T11:51:37,2025,25.5,40,0,25
|
||||
2026-06-11T11:52:37,2035,25.5,40,0,25
|
||||
2026-06-11T11:53:38,2054,25.5,40,0,25
|
||||
2026-06-11T11:54:38,2054,25.5,40,0,25
|
||||
2026-06-11T11:55:39,2054,25.5,39,0,25
|
||||
2026-06-11T11:56:39,2070,25.5,39,0,25
|
||||
2026-06-11T11:57:40,2070,25.5,40,0,25
|
||||
2026-06-11T11:58:40,2035,25.5,39,0,25
|
||||
2026-06-11T11:59:41,2070,25.5,39,0,25
|
||||
2026-06-11T12:00:41,2080,25.3,40,0,25
|
||||
2026-06-11T12:01:42,2066,25.5,39,0,25
|
||||
2026-06-11T12:02:42,2060,25.5,40,0,25
|
||||
2026-06-11T12:03:43,2054,25.5,40,0,25
|
||||
2026-06-11T12:04:43,2054,25.5,40,0,25
|
||||
2026-06-11T12:05:44,2035,25.3,40,0,25
|
||||
2026-06-11T12:06:44,2054,25.5,39,0,25
|
||||
2026-06-11T12:07:45,2080,25.5,40,0,25
|
||||
2026-06-11T12:08:45,2054,25.5,40,0,25
|
||||
2026-06-11T12:09:46,2054,25.5,40,0,25
|
||||
2026-06-11T12:10:46,2066,25.5,40,0,25
|
||||
2026-06-11T12:11:47,2066,25.5,39,0,25
|
||||
2026-06-11T12:12:48,2080,25.5,39,0,25
|
||||
2026-06-11T12:13:48,2080,25.5,39,0,25
|
||||
2026-06-11T12:14:48,2088,25.5,39,0,25
|
||||
2026-06-11T12:15:49,2080,25.3,39,0,25
|
||||
2026-06-11T12:16:49,2080,25.3,39,0,25
|
||||
2026-06-11T12:17:50,2060,25.5,39,0,25
|
||||
2026-06-11T12:18:50,2048,25.5,39,0,25
|
||||
2026-06-11T12:19:51,2048,25.3,38,0,25
|
||||
2026-06-11T12:20:51,2074,25.5,38,0,25
|
||||
2026-06-11T12:21:52,2074,25.5,38,0,25
|
||||
2026-06-11T12:22:53,2066,25.5,39,0,25
|
||||
2026-06-11T12:23:53,2048,25.5,39,0,25
|
||||
2026-06-11T12:24:53,2048,25.5,39,0,25
|
||||
2026-06-11T12:25:54,2028,25.5,39,0,25
|
||||
2026-06-11T12:26:55,2028,25.3,38,0,25
|
||||
2026-06-11T12:27:55,2028,25.5,38,0,22
|
||||
2026-06-11T12:28:56,2052,25.5,39,0,25
|
||||
2026-06-11T12:29:56,2028,25.5,39,0,25
|
||||
2026-06-11T12:30:57,2028,25.5,38,0,25
|
||||
2026-06-11T12:31:57,2052,25.5,38,0,25
|
||||
2026-06-11T12:32:57,2052,25.5,38,0,25
|
||||
2026-06-11T12:33:58,2052,25.5,38,0,25
|
||||
2026-06-11T12:35:59,2052,25.5,38,0,25
|
||||
2026-06-11T12:37:00,2052,25.5,38,0,25
|
||||
2026-06-11T12:38:00,2066,25.5,39,0,25
|
||||
2026-06-11T12:39:00,2048,25.5,38,0,25
|
||||
2026-06-11T12:40:01,2074,25.5,38,0,25
|
||||
2026-06-11T12:41:01,2074,25.5,38,0,25
|
||||
2026-06-11T12:42:02,2084,25.5,38,0,25
|
||||
2026-06-11T12:43:02,2094,25.6,38,0,25
|
||||
2026-06-11T12:44:03,2094,25.6,38,0,25
|
||||
2026-06-11T12:45:04,2084,25.6,38,0,25
|
||||
2026-06-11T12:46:04,2094,25.6,38,0,25
|
||||
2026-06-11T12:47:04,2094,25.6,38,0,25
|
||||
2026-06-11T12:48:05,2094,25.6,38,0,25
|
||||
2026-06-11T12:49:05,2094,25.6,38,0,25
|
||||
2026-06-11T12:50:06,2094,25.6,38,0,25
|
||||
2026-06-11T12:51:07,2084,25.6,38,0,25
|
||||
2026-06-11T12:52:07,2084,25.6,39,0,25
|
||||
2026-06-11T12:53:07,2060,25.7,38,0,25
|
||||
2026-06-11T12:54:08,2094,25.6,39,0,25
|
||||
2026-06-11T12:55:08,2132,25.7,38,0,25
|
||||
2026-06-11T12:56:09,2094,25.6,38,0,25
|
||||
2026-06-11T12:57:10,2094,25.7,39,0,25
|
||||
2026-06-11T12:58:10,2098,25.7,38,0,25
|
||||
2026-06-11T12:59:10,2138,25.7,38,0,25
|
||||
2026-06-11T13:00:11,2116,25.7,39,0,22
|
||||
2026-06-11T13:01:12,2098,25.7,38,0,25
|
||||
2026-06-11T13:02:12,2116,25.7,38,0,25
|
||||
2026-06-11T13:03:12,2116,25.7,38,0,25
|
||||
2026-06-11T13:04:13,2116,25.7,38,0,25
|
||||
2026-06-11T13:05:13,2104,25.7,38,0,22
|
||||
2026-06-11T13:06:14,2116,25.7,38,0,25
|
||||
2026-06-11T13:07:15,2126,25.7,38,0,25
|
||||
2026-06-11T13:08:15,2126,25.8,38,0,25
|
||||
2026-06-11T13:09:16,2138,25.8,39,0,25
|
||||
2026-06-11T13:10:16,2120,25.8,39,0,25
|
||||
2026-06-11T13:11:16,2144,25.8,39,0,22
|
||||
2026-06-11T13:12:17,2110,25.8,39,0,25
|
||||
2026-06-11T13:13:18,2120,25.8,38,0,25
|
||||
2026-06-11T13:14:18,2150,25.8,38,0,25
|
||||
2026-06-11T13:15:18,2162,25.8,38,0,25
|
||||
2026-06-11T13:16:19,2162,25.8,38,0,25
|
||||
2026-06-11T13:17:19,2172,25.8,38,0,25
|
||||
2026-06-11T13:18:20,2184,26,38,0,25
|
||||
2026-06-11T13:19:21,2102,26,38,0,25
|
||||
2026-06-11T13:20:21,2102,26.1,39,0,25
|
||||
2026-06-11T13:21:21,2098,26,39,0,25
|
||||
2026-06-11T13:22:22,2098,26,39,0,25
|
||||
2026-06-11T13:23:22,2120,26.1,38,0,22
|
||||
2026-06-11T13:24:23,2136,26.1,39,0,25
|
||||
2026-06-11T13:25:24,2120,26.1,38,0,25
|
||||
2026-06-11T13:26:24,2136,26.1,38,0,25
|
||||
2026-06-11T13:27:25,2150,26.1,38,0,25
|
||||
2026-06-11T13:28:25,2162,26.1,38,0,25
|
||||
2026-06-11T13:29:26,2162,26.1,38,0,25
|
||||
2026-06-11T13:30:26,2150,26.1,38,0,25
|
||||
2026-06-11T13:31:27,2162,26.1,38,0,25
|
||||
2026-06-11T13:32:27,2172,26.2,38,0,25
|
||||
2026-06-11T13:33:28,2162,26.1,38,0,25
|
||||
2026-06-11T13:34:28,2136,26.2,38,0,25
|
||||
2026-06-11T13:35:29,2136,26.2,39,0,25
|
||||
2026-06-11T13:36:29,2120,26.1,38,0,25
|
||||
2026-06-11T13:37:30,2136,26.1,38,0,22
|
||||
2026-06-11T13:38:30,2136,26.1,38,0,22
|
||||
2026-06-11T13:39:31,2150,26.1,38,0,22
|
||||
2026-06-11T13:40:31,2150,26.2,38,0,22
|
||||
2026-06-11T13:41:32,2150,26.2,38,0,25
|
||||
2026-06-11T13:42:32,2150,26.2,38,0,25
|
||||
2026-06-11T13:43:33,2162,26.2,37,0,22
|
||||
2026-06-11T13:44:33,2166,26.2,38,0,25
|
||||
2026-06-11T13:45:34,2150,26.2,38,0,25
|
||||
2026-06-11T13:46:34,2136,26.2,38,0,25
|
||||
2026-06-11T13:47:35,2150,26.2,38,0,25
|
||||
2026-06-11T13:48:35,2136,26.2,38,0,25
|
||||
2026-06-11T13:49:36,2136,26.2,38,0,25
|
||||
2026-06-11T13:50:36,2124,26.2,38,0,25
|
||||
2026-06-11T13:51:37,2124,26.2,38,0,25
|
||||
2026-06-11T13:52:37,2124,26.2,39,0,22
|
||||
2026-06-11T13:53:38,2120,26.1,38,0,25
|
||||
2026-06-11T13:54:38,2136,26.2,38,0,25
|
||||
2026-06-11T13:55:39,2150,26.1,38,0,25
|
||||
2026-06-11T13:56:39,2150,26.2,38,0,25
|
||||
2026-06-11T13:57:40,2124,26.2,38,0,25
|
||||
2026-06-11T13:58:40,2124,26.2,38,0,25
|
||||
2026-06-11T13:59:41,2124,26.2,38,0,25
|
||||
2026-06-11T14:00:41,2124,26.2,37,0,25
|
||||
2026-06-11T14:01:42,2154,26.2,38,0,25
|
||||
2026-06-11T14:02:42,2136,26.2,37,0,25
|
||||
2026-06-11T14:03:43,2142,26.2,38,0,25
|
||||
2026-06-11T14:04:43,2136,26.2,38,0,25
|
||||
2026-06-11T14:05:44,2136,26.2,37,0,25
|
||||
2026-06-11T14:06:44,2142,26.2,37,0,25
|
||||
2026-06-11T14:08:45,2142,26.2,37,0,25
|
||||
2026-06-11T14:09:46,2154,26.2,37,0,25
|
||||
2026-06-11T14:11:47,2166,26.2,38,0,25
|
||||
2026-06-11T14:12:48,2136,26.2,37,0,25
|
||||
2026-06-11T14:13:48,2154,26.2,38,0,25
|
||||
2026-06-11T14:14:48,2136,26.2,38,0,22
|
||||
2026-06-11T14:16:49,2124,26.2,38,0,22
|
||||
2026-06-11T14:17:50,2124,26.2,38,0,25
|
||||
2026-06-11T14:18:50,2124,26.2,38,0,25
|
||||
2026-06-11T14:19:51,2114,26.2,38,0,25
|
||||
2026-06-11T14:20:51,2102,26.2,37,0,25
|
||||
2026-06-11T14:21:52,2118,26.2,37,0,25
|
||||
2026-06-11T14:22:52,2130,26.2,37,0,25
|
||||
2026-06-11T14:23:53,2154,26.2,37,0,25
|
||||
2026-06-11T14:24:53,2154,26.2,37,0,25
|
||||
2026-06-11T14:25:54,2142,26.2,37,0,22
|
||||
2026-06-11T14:26:54,2130,26.3,37,0,25
|
||||
2026-06-11T14:27:55,2142,26.2,37,0,25
|
||||
2026-06-11T14:28:55,2166,26.2,37,0,22
|
||||
2026-06-11T14:29:56,2180,26.3,37,0,25
|
||||
2026-06-11T14:30:56,2189,26.3,37,0,22
|
||||
2026-06-11T14:31:57,2203,26.3,37,0,22
|
||||
2026-06-11T14:32:57,2203,26.2,37,0,25
|
||||
2026-06-11T14:33:58,2203,26.3,37,0,22
|
||||
2026-06-11T14:34:58,2214,26.3,37,0,25
|
||||
2026-06-11T14:35:59,2203,26.3,37,0,25
|
||||
2026-06-11T14:36:59,2214,26.3,37,0,25
|
||||
2026-06-11T14:38:00,2214,26.3,37,0,25
|
||||
2026-06-11T14:39:00,2214,26.3,37,0,25
|
||||
2026-06-11T14:40:01,2214,26.3,37,0,22
|
||||
2026-06-11T14:41:01,2203,26.3,37,0,22
|
||||
2026-06-11T14:42:02,2203,26.3,37,0,22
|
||||
2026-06-11T14:43:02,2203,26.3,37,0,22
|
||||
2026-06-11T14:44:03,2214,26.3,37,0,25
|
||||
2026-06-11T14:45:03,2189,26.3,37,0,25
|
||||
2026-06-11T14:46:04,2189,26.3,37,0,22
|
||||
2026-06-11T14:47:04,2189,26.3,37,0,25
|
||||
2026-06-11T14:48:05,2189,26.3,37,0,22
|
||||
2026-06-11T14:49:05,2189,26.3,37,0,22
|
||||
2026-06-11T14:50:06,2189,26.3,37,0,25
|
||||
2026-06-11T14:51:06,2189,26.3,37,0,25
|
||||
2026-06-11T14:52:07,2180,26.3,37,0,22
|
||||
2026-06-11T14:53:07,2203,26.3,37,0,22
|
||||
2026-06-11T14:54:08,2203,26.3,38,0,22
|
||||
2026-06-11T14:55:08,2197,26.3,37,0,22
|
||||
2026-06-11T14:56:09,2214,26.3,37,0,25
|
||||
2026-06-11T14:57:09,2214,26.5,37,0,22
|
||||
2026-06-11T14:58:10,2240,26.5,37,0,22
|
||||
2026-06-11T14:59:10,2255,26.5,38,0,25
|
||||
2026-06-11T15:00:11,2236,26.5,37,0,22
|
||||
2026-06-11T15:01:11,2255,26.5,38,0,25
|
||||
2026-06-11T15:02:12,2220,26.6,37,0,25
|
||||
2026-06-11T15:03:12,2228,26.6,38,0,22
|
||||
2026-06-11T15:04:13,2236,26.6,38,0,25
|
||||
2026-06-11T15:05:13,2249,26.6,37,0,25
|
||||
2026-06-11T15:06:14,2265,26.6,37,0,22
|
||||
2026-06-11T15:07:14,2279,26.6,37,0,25
|
||||
2026-06-11T15:08:15,2265,26.7,37,0,22
|
||||
2026-06-11T15:09:15,2292,26.7,37,0,22
|
||||
2026-06-11T15:10:16,2279,26.7,37,0,22
|
||||
2026-06-11T15:11:17,2265,26.7,37,0,22
|
||||
2026-06-11T15:12:17,2265,26.7,37,0,25
|
||||
2026-06-11T15:13:17,2265,26.7,37,0,22
|
||||
2026-06-11T15:14:18,2279,26.7,37,0,22
|
||||
2026-06-11T15:15:18,2265,26.7,37,0,22
|
||||
2026-06-11T15:16:19,2279,26.7,37,0,22
|
||||
2026-06-11T15:17:20,2292,26.7,37,0,25
|
||||
2026-06-11T15:18:20,2265,26.7,37,0,25
|
||||
2026-06-11T15:20:21,2255,26.7,37,0,22
|
||||
2026-06-11T15:21:22,2265,26.7,37,0,25
|
||||
2026-06-11T15:22:22,2255,26.7,37,0,22
|
||||
2026-06-11T15:23:22,2265,26.7,37,0,22
|
||||
2026-06-11T15:24:23,2255,26.7,37,0,22
|
||||
2026-06-11T15:25:23,2279,26.7,37,0,22
|
||||
2026-06-11T15:26:24,2279,26.7,37,0,22
|
||||
2026-06-11T15:27:24,2279,26.7,37,0,25
|
||||
2026-06-11T15:28:25,2292,26.7,37,0,22
|
||||
2026-06-11T15:29:26,2279,26.7,37,0,22
|
||||
2026-06-11T15:30:26,2292,26.8,37,0,25
|
||||
2026-06-11T15:31:27,2334,26.7,37,0,22
|
||||
2026-06-11T15:32:27,2292,26.8,36,0,22
|
||||
2026-06-11T15:33:28,2324,26.7,37,0,22
|
||||
2026-06-11T15:34:28,2292,26.8,37,0,22
|
||||
2026-06-11T15:35:28,2318,26.8,36,0,25
|
||||
2026-06-11T15:36:29,2265,26.8,37,0,22
|
||||
2026-06-11T15:37:30,2242,26.8,37,0,25
|
||||
2026-06-11T15:38:30,2270,26.8,37,0,22
|
||||
2026-06-11T15:39:30,2255,26.8,37,0,22
|
||||
2026-06-11T15:40:31,2259,26.8,37,0,22
|
||||
2026-06-11T15:41:32,2281,26.8,37,0,25
|
||||
2026-06-11T15:42:32,2285,26.8,37,0,25
|
||||
2026-06-11T15:44:33,2281,26.8,37,0,22
|
||||
2026-06-11T15:45:33,2285,26.8,37,0,25
|
||||
2026-06-11T15:47:34,2249,26.8,36,0,22
|
||||
2026-06-11T15:48:35,2226,26.8,37,0,22
|
||||
2026-06-11T15:49:36,2226,26.8,37,0,22
|
||||
2026-06-11T15:50:36,2259,26.8,37,0,22
|
||||
2026-06-11T15:51:37,2255,26.8,37,0,22
|
||||
2026-06-11T15:52:37,2249,26.8,37,0,22
|
||||
2026-06-11T15:53:37,2263,26.8,37,0,22
|
||||
2026-06-11T15:54:38,2259,26.8,36,0,22
|
||||
2026-06-11T15:55:38,2278,26.8,36,0,22
|
||||
2026-06-11T15:56:39,2287,27,37,0,22
|
||||
2026-06-11T15:57:39,2222,26.8,36,0,22
|
||||
2026-06-11T15:58:40,2281,26.8,37,0,22
|
||||
2026-06-11T15:59:40,2276,27,36,0,22
|
||||
2026-06-11T16:00:41,2222,27,37,0,22
|
||||
2026-06-11T16:01:41,2189,27,36,0,22
|
||||
2026-06-11T16:03:43,2205,27,37,0,22
|
||||
2026-06-11T16:04:43,2195,27,36,0,22
|
||||
2026-06-11T16:05:43,2218,27,36,0,25
|
||||
2026-06-11T16:06:44,2207,26.8,37,0,22
|
||||
2026-06-11T16:07:44,2259,27,37,0,22
|
||||
2026-06-11T16:08:45,2189,26.8,37,0,22
|
||||
2026-06-11T16:09:46,2259,26.8,37,0,22
|
||||
2026-06-11T16:10:46,2276,26.8,37,0,22
|
||||
2026-06-11T16:11:47,2281,27,37,0,22
|
||||
2026-06-11T16:13:48,2210,27,37,0,22
|
||||
2026-06-11T16:14:48,2205,27,37,0,22
|
||||
2026-06-11T16:15:49,2210,27.1,37,0,22
|
||||
2026-06-11T16:16:49,2210,26.8,37,0,22
|
||||
2026-06-11T16:17:50,2296,27.3,37,0,22
|
||||
2026-06-11T16:18:50,2210,27,37,0,22
|
||||
2026-06-11T16:19:50,2245,27,37,0,22
|
||||
2026-06-11T16:20:51,2232,27.1,37,0,22
|
||||
2026-06-11T16:21:51,2212,27,37,0,22
|
||||
2026-06-11T16:22:52,2222,27,37,0,22
|
||||
2026-06-11T16:23:53,2251,27,37,0,22
|
||||
2026-06-11T16:25:53,2222,27.1,37,0,22
|
||||
2026-06-11T16:26:54,2222,27.1,37,1,22
|
||||
2026-06-11T16:28:55,2224,27.1,37,1,22
|
||||
2026-06-11T16:29:56,2224,27.1,37,1,22
|
||||
|
444
report/resources/measures/A3-DC_06_D9_40_7A_CB.csv
Normal file
@@ -0,0 +1,444 @@
|
||||
time,co2,temperature,humidity,windows,battery
|
||||
2026-06-11T08:45:43,496,27.7,38,0,57
|
||||
2026-06-11T08:46:43,496,27.7,38,0,55
|
||||
2026-06-11T08:47:44,491,27.8,37,0,57
|
||||
2026-06-11T08:49:45,527,28,37,0,57
|
||||
2026-06-11T08:50:45,459,28,37,0,57
|
||||
2026-06-11T08:51:46,448,28.1,37,0,57
|
||||
2026-06-11T08:52:46,486,28.2,37,0,57
|
||||
2026-06-11T08:53:47,463,28.2,37,0,57
|
||||
2026-06-11T08:54:47,445,28.2,37,0,57
|
||||
2026-06-11T08:55:48,454,28.3,37,0,57
|
||||
2026-06-11T08:56:48,486,28.3,37,0,57
|
||||
2026-06-11T08:57:49,459,28.3,37,0,57
|
||||
2026-06-11T08:58:49,466,28.5,37,0,57
|
||||
2026-06-11T08:59:50,476,28.5,37,0,57
|
||||
2026-06-11T09:00:50,491,28.6,37,0,57
|
||||
2026-06-11T09:01:51,481,28.6,37,0,55
|
||||
2026-06-11T09:02:51,481,28.6,37,0,57
|
||||
2026-06-11T09:03:52,486,28.7,37,0,57
|
||||
2026-06-11T09:04:52,481,28.7,36,0,57
|
||||
2026-06-11T09:05:53,518,28.8,36,0,57
|
||||
2026-06-11T09:06:53,502,28.7,37,0,57
|
||||
2026-06-11T09:07:54,502,28.8,36,0,57
|
||||
2026-06-11T09:08:54,536,29,37,0,57
|
||||
2026-06-11T09:09:55,450,29,36,0,57
|
||||
2026-06-11T09:10:55,472,29,36,0,57
|
||||
2026-06-11T09:11:56,477,29,36,0,57
|
||||
2026-06-11T09:12:56,445,29.1,36,0,55
|
||||
2026-06-11T09:13:57,464,29.1,36,0,57
|
||||
2026-06-11T09:15:58,455,29.2,36,0,57
|
||||
2026-06-11T09:16:58,472,29.3,36,0,57
|
||||
2026-06-11T09:17:59,498,29.3,35,0,57
|
||||
2026-06-11T09:18:59,493,29.5,36,0,57
|
||||
2026-06-11T09:20:00,464,29.5,35,0,57
|
||||
2026-06-11T09:21:00,478,29.5,35,0,57
|
||||
2026-06-11T09:22:01,493,29.6,35,0,57
|
||||
2026-06-11T09:23:01,478,29.6,35,0,57
|
||||
2026-06-11T09:24:02,519,29.6,35,0,57
|
||||
2026-06-11T09:25:02,478,29.5,35,0,57
|
||||
2026-06-11T09:26:03,472,29.6,35,0,57
|
||||
2026-06-11T09:27:03,514,29.6,35,0,57
|
||||
2026-06-11T09:28:04,514,29.5,35,0,57
|
||||
2026-06-11T09:29:05,500,29.7,35,0,57
|
||||
2026-06-11T09:30:05,493,29.7,35,0,57
|
||||
2026-06-11T09:31:05,519,29.7,34,0,57
|
||||
2026-06-11T09:32:06,503,29.7,35,0,57
|
||||
2026-06-11T09:33:07,487,29.6,35,0,57
|
||||
2026-06-11T09:34:07,500,29.7,34,0,57
|
||||
2026-06-11T09:35:07,580,29.7,34,0,57
|
||||
2026-06-11T09:36:08,520,29.7,34,0,57
|
||||
2026-06-11T09:37:08,514,29.7,34,0,57
|
||||
2026-06-11T09:38:09,520,29.7,35,0,57
|
||||
2026-06-11T09:39:09,500,29.7,34,0,57
|
||||
2026-06-11T09:40:10,498,29.7,35,0,57
|
||||
2026-06-11T09:41:10,493,29.7,34,0,57
|
||||
2026-06-11T09:42:11,520,29.7,35,0,57
|
||||
2026-06-11T09:43:11,527,29.7,34,0,57
|
||||
2026-06-11T09:44:12,537,29.7,34,0,57
|
||||
2026-06-11T09:45:12,537,29.7,34,0,55
|
||||
2026-06-11T09:46:13,526,29.7,34,0,57
|
||||
2026-06-11T09:47:13,531,29.7,34,0,57
|
||||
2026-06-11T09:48:14,503,29.7,34,0,57
|
||||
2026-06-11T09:49:15,514,29.7,34,0,57
|
||||
2026-06-11T09:50:15,520,29.7,34,0,57
|
||||
2026-06-11T09:51:15,514,29.7,35,0,57
|
||||
2026-06-11T09:52:16,500,29.8,34,0,57
|
||||
2026-06-11T09:53:17,514,29.7,35,0,57
|
||||
2026-06-11T09:54:17,514,29.8,34,0,57
|
||||
2026-06-11T09:55:17,531,29.8,34,0,57
|
||||
2026-06-11T09:56:18,520,29.8,34,0,57
|
||||
2026-06-11T09:57:18,537,29.8,34,0,57
|
||||
2026-06-11T09:58:19,520,29.8,34,0,57
|
||||
2026-06-11T09:59:19,537,29.7,34,0,57
|
||||
2026-06-11T10:00:20,545,29.8,34,0,55
|
||||
2026-06-11T10:01:20,551,29.8,34,0,57
|
||||
2026-06-11T10:02:21,574,29.8,34,0,57
|
||||
2026-06-11T10:03:22,520,29.8,34,0,57
|
||||
2026-06-11T10:04:22,537,29.8,34,0,57
|
||||
2026-06-11T10:05:22,537,29.8,34,0,57
|
||||
2026-06-11T10:06:23,545,29.8,34,0,57
|
||||
2026-06-11T10:07:23,551,29.8,34,0,57
|
||||
2026-06-11T10:08:24,545,29.8,34,0,57
|
||||
2026-06-11T10:09:25,537,29.8,34,0,57
|
||||
2026-06-11T10:10:25,556,29.8,34,0,55
|
||||
2026-06-11T10:11:25,531,29.8,35,0,57
|
||||
2026-06-11T10:12:26,514,29.8,34,0,57
|
||||
2026-06-11T10:13:26,537,29.8,34,0,57
|
||||
2026-06-11T10:15:28,551,29.8,34,0,57
|
||||
2026-06-11T10:16:28,526,29.8,34,0,57
|
||||
2026-06-11T10:17:29,537,29.8,34,0,57
|
||||
2026-06-11T10:18:29,537,29.8,34,0,57
|
||||
2026-06-11T10:19:29,498,29.8,34,0,57
|
||||
2026-06-11T10:20:30,537,29.8,35,0,57
|
||||
2026-06-11T10:21:30,527,29.7,34,0,57
|
||||
2026-06-11T10:22:31,514,29.7,34,0,57
|
||||
2026-06-11T10:23:32,545,29.6,34,0,57
|
||||
2026-06-11T10:24:32,537,29.6,35,0,57
|
||||
2026-06-11T10:25:32,533,29.5,35,0,57
|
||||
2026-06-11T10:26:33,539,29.5,35,0,57
|
||||
2026-06-11T10:27:33,482,29.5,35,0,57
|
||||
2026-06-11T10:28:34,500,29.5,35,0,57
|
||||
2026-06-11T10:29:35,539,29.5,35,0,57
|
||||
2026-06-11T10:30:35,487,29.5,35,0,57
|
||||
2026-06-11T10:31:36,500,29.5,34,0,57
|
||||
2026-06-11T10:32:36,514,29.5,35,0,57
|
||||
2026-06-11T10:33:37,527,29.5,35,0,55
|
||||
2026-06-11T10:34:37,500,29.5,35,0,57
|
||||
2026-06-11T10:35:38,503,29.5,34,0,57
|
||||
2026-06-11T10:36:38,537,29.5,35,0,57
|
||||
2026-06-11T10:37:39,539,29.6,35,0,57
|
||||
2026-06-11T10:38:39,493,29.6,35,0,57
|
||||
2026-06-11T10:39:40,561,29.6,35,0,57
|
||||
2026-06-11T10:40:40,500,29.7,35,0,57
|
||||
2026-06-11T10:41:41,533,29.6,35,0,57
|
||||
2026-06-11T10:42:41,533,29.7,35,0,57
|
||||
2026-06-11T10:43:42,493,29.7,34,0,57
|
||||
2026-06-11T10:44:42,526,29.7,35,0,57
|
||||
2026-06-11T10:45:43,533,29.7,35,0,55
|
||||
2026-06-11T10:46:43,545,29.8,35,0,55
|
||||
2026-06-11T10:47:44,545,29.7,34,0,57
|
||||
2026-06-11T10:48:44,531,29.7,34,0,57
|
||||
2026-06-11T10:49:45,520,29.7,35,0,57
|
||||
2026-06-11T10:50:45,520,29.8,34,0,55
|
||||
2026-06-11T10:51:46,611,29.8,35,0,57
|
||||
2026-06-11T10:52:46,503,29.8,35,0,55
|
||||
2026-06-11T10:53:47,478,29.8,34,0,55
|
||||
2026-06-11T10:54:47,537,29.8,34,0,55
|
||||
2026-06-11T10:55:48,514,29.7,35,0,57
|
||||
2026-06-11T10:56:48,519,29.8,35,0,55
|
||||
2026-06-11T10:57:49,539,29.8,34,0,55
|
||||
2026-06-11T10:58:49,588,30,34,0,55
|
||||
2026-06-11T10:59:50,526,29.8,35,0,55
|
||||
2026-06-11T11:00:50,514,29.8,34,0,55
|
||||
2026-06-11T11:01:51,545,30,34,0,57
|
||||
2026-06-11T11:02:51,523,29.8,35,0,57
|
||||
2026-06-11T11:03:52,533,29.8,35,0,55
|
||||
2026-06-11T11:04:52,561,29.8,34,0,57
|
||||
2026-06-11T11:05:53,545,29.8,34,0,57
|
||||
2026-06-11T11:06:53,574,29.8,35,0,57
|
||||
2026-06-11T11:07:54,519,30,34,0,57
|
||||
2026-06-11T11:08:54,481,30,35,0,57
|
||||
2026-06-11T11:09:55,491,29.8,35,0,57
|
||||
2026-06-11T11:11:56,514,30,34,0,57
|
||||
2026-06-11T11:12:56,476,29.8,34,0,57
|
||||
2026-06-11T11:13:57,556,30,34,0,57
|
||||
2026-06-11T11:14:58,534,30,35,0,57
|
||||
2026-06-11T11:15:58,463,30,34,0,57
|
||||
2026-06-11T11:16:58,506,30,35,0,57
|
||||
2026-06-11T11:17:59,496,30,35,0,57
|
||||
2026-06-11T11:18:59,496,30,34,0,57
|
||||
2026-06-11T11:20:00,463,30,34,0,57
|
||||
2026-06-11T11:21:00,488,30,34,0,57
|
||||
2026-06-11T11:22:01,488,30,34,0,57
|
||||
2026-06-11T11:23:02,470,30,34,0,57
|
||||
2026-06-11T11:24:02,488,30,34,0,57
|
||||
2026-06-11T11:25:02,500,30,34,0,57
|
||||
2026-06-11T11:26:03,495,30,34,0,57
|
||||
2026-06-11T11:27:03,481,30,34,0,57
|
||||
2026-06-11T11:28:04,457,30,34,0,57
|
||||
2026-06-11T11:29:04,500,30.1,34,0,57
|
||||
2026-06-11T11:30:05,529,30,34,0,57
|
||||
2026-06-11T11:31:05,476,30,34,0,57
|
||||
2026-06-11T11:32:06,506,30,34,0,57
|
||||
2026-06-11T11:33:06,452,30.1,34,0,57
|
||||
2026-06-11T11:34:07,495,30,34,0,57
|
||||
2026-06-11T11:36:08,463,30,35,0,57
|
||||
2026-06-11T11:37:09,438,30,34,0,57
|
||||
2026-06-11T11:38:09,517,30.1,34,0,57
|
||||
2026-06-11T11:40:10,481,30,34,0,57
|
||||
2026-06-11T11:41:10,470,30.1,34,0,57
|
||||
2026-06-11T11:42:11,463,30.1,34,0,57
|
||||
2026-06-11T11:43:11,470,30,35,0,57
|
||||
2026-06-11T11:44:12,473,30,34,0,57
|
||||
2026-06-11T11:45:12,488,30,34,0,57
|
||||
2026-06-11T11:46:13,470,30,34,0,57
|
||||
2026-06-11T11:47:13,523,30,34,0,57
|
||||
2026-06-11T11:48:14,488,30,34,0,57
|
||||
2026-06-11T11:49:14,452,30,34,0,57
|
||||
2026-06-11T11:50:15,476,30,34,0,57
|
||||
2026-06-11T11:51:15,488,30,35,0,57
|
||||
2026-06-11T11:52:16,501,30.1,35,0,57
|
||||
2026-06-11T11:53:16,454,30.1,34,0,57
|
||||
2026-06-11T11:55:17,470,30,34,0,55
|
||||
2026-06-11T11:56:18,470,30,35,0,57
|
||||
2026-06-11T11:57:19,459,30,35,0,57
|
||||
2026-06-11T11:58:19,463,30,34,0,57
|
||||
2026-06-11T11:59:19,529,30,35,0,57
|
||||
2026-06-11T12:00:20,478,30.1,35,0,57
|
||||
2026-06-11T12:01:20,473,30,35,0,57
|
||||
2026-06-11T12:02:21,463,30,34,0,57
|
||||
2026-06-11T12:03:21,506,30.1,35,0,57
|
||||
2026-06-11T12:04:22,473,30.1,35,0,57
|
||||
2026-06-11T12:05:23,496,30.1,34,0,57
|
||||
2026-06-11T12:06:23,546,30.1,34,0,57
|
||||
2026-06-11T12:07:23,534,30.1,34,0,57
|
||||
2026-06-11T12:08:24,517,30.1,34,0,57
|
||||
2026-06-11T12:09:24,500,30.1,35,0,57
|
||||
2026-06-11T12:10:25,506,30.1,34,0,57
|
||||
2026-06-11T12:11:25,500,30.1,34,0,57
|
||||
2026-06-11T12:12:26,561,30.1,34,0,57
|
||||
2026-06-11T12:13:27,529,30.1,35,0,57
|
||||
2026-06-11T12:14:27,478,30.1,34,0,57
|
||||
2026-06-11T12:15:28,517,30.1,34,0,57
|
||||
2026-06-11T12:16:28,523,30,34,0,57
|
||||
2026-06-11T12:17:28,517,30.1,35,0,57
|
||||
2026-06-11T12:18:29,491,30.1,35,0,57
|
||||
2026-06-11T12:19:29,506,30.2,34,0,57
|
||||
2026-06-11T12:20:30,506,30.1,34,0,57
|
||||
2026-06-11T12:21:30,567,30.1,34,0,57
|
||||
2026-06-11T12:22:31,517,30.1,34,0,57
|
||||
2026-06-11T12:23:31,523,30.1,34,0,57
|
||||
2026-06-11T12:24:32,506,30.1,34,0,57
|
||||
2026-06-11T12:25:32,523,30.1,34,0,57
|
||||
2026-06-11T12:26:33,517,30.1,34,0,57
|
||||
2026-06-11T12:27:33,523,30.1,34,0,57
|
||||
2026-06-11T12:28:34,567,30.2,34,0,57
|
||||
2026-06-11T12:29:35,517,30.2,35,0,57
|
||||
2026-06-11T12:30:35,506,30.2,34,0,57
|
||||
2026-06-11T12:31:36,529,30.1,34,0,57
|
||||
2026-06-11T12:32:36,534,30.2,35,0,57
|
||||
2026-06-11T12:33:36,501,30.2,34,0,57
|
||||
2026-06-11T12:34:37,529,30.2,34,0,57
|
||||
2026-06-11T12:35:38,599,30.2,34,0,57
|
||||
2026-06-11T12:36:38,567,30.2,34,0,57
|
||||
2026-06-11T12:37:39,534,30.2,34,0,57
|
||||
2026-06-11T12:38:39,552,30.1,34,0,57
|
||||
2026-06-11T12:39:40,534,30.2,34,0,60
|
||||
2026-06-11T12:40:40,546,30.2,34,0,57
|
||||
2026-06-11T12:41:41,592,30.2,34,0,57
|
||||
2026-06-11T12:42:41,534,30.2,34,0,57
|
||||
2026-06-11T12:43:42,552,30.2,34,0,57
|
||||
2026-06-11T12:44:42,546,30.2,34,0,57
|
||||
2026-06-11T12:45:43,546,30.3,34,0,57
|
||||
2026-06-11T12:46:43,592,30.2,34,0,57
|
||||
2026-06-11T12:47:44,529,30.2,34,0,57
|
||||
2026-06-11T12:48:44,534,30.2,34,0,57
|
||||
2026-06-11T12:49:45,540,30.3,34,0,57
|
||||
2026-06-11T12:50:45,561,30.3,34,0,57
|
||||
2026-06-11T12:51:46,552,30.3,35,0,57
|
||||
2026-06-11T12:52:46,517,30.2,34,0,57
|
||||
2026-06-11T12:53:47,546,30.2,34,0,57
|
||||
2026-06-11T12:54:47,567,30.3,34,0,57
|
||||
2026-06-11T12:55:48,534,30.2,34,0,57
|
||||
2026-06-11T12:56:48,552,30.2,34,0,57
|
||||
2026-06-11T12:57:49,552,30.2,34,0,57
|
||||
2026-06-11T12:58:49,546,30.3,34,0,57
|
||||
2026-06-11T12:59:50,534,30.3,34,0,57
|
||||
2026-06-11T13:00:50,580,30.3,34,0,57
|
||||
2026-06-11T13:01:51,534,30.3,34,0,57
|
||||
2026-06-11T13:02:51,561,30.3,34,0,57
|
||||
2026-06-11T13:03:52,561,30.3,34,0,57
|
||||
2026-06-11T13:04:52,592,30.3,34,0,57
|
||||
2026-06-11T13:06:53,537,30.3,34,0,57
|
||||
2026-06-11T13:07:54,574,30.3,34,0,57
|
||||
2026-06-11T13:09:55,517,30.3,34,0,57
|
||||
2026-06-11T13:10:55,529,30.3,34,0,57
|
||||
2026-06-11T13:11:56,546,30.3,34,0,57
|
||||
2026-06-11T13:12:56,561,30.3,34,0,57
|
||||
2026-06-11T13:13:57,540,30.3,33,0,57
|
||||
2026-06-11T13:14:57,569,30.2,34,0,57
|
||||
2026-06-11T13:15:58,580,30.2,34,0,57
|
||||
2026-06-11T13:16:58,552,30.2,34,0,57
|
||||
2026-06-11T13:17:59,534,30.1,34,0,55
|
||||
2026-06-11T13:18:59,523,30.1,35,0,57
|
||||
2026-06-11T13:20:00,542,30,34,0,57
|
||||
2026-06-11T13:21:00,523,29.8,35,0,57
|
||||
2026-06-11T13:22:01,567,29.8,34,0,57
|
||||
2026-06-11T13:23:01,611,29.8,35,0,55
|
||||
2026-06-11T13:24:02,589,29.7,35,0,57
|
||||
2026-06-11T13:25:03,553,29.8,34,0,57
|
||||
2026-06-11T13:26:03,565,29.8,34,0,57
|
||||
2026-06-11T13:27:03,580,29.7,34,0,57
|
||||
2026-06-11T13:28:04,551,29.7,34,0,57
|
||||
2026-06-11T13:29:04,580,29.7,35,0,57
|
||||
2026-06-11T13:30:05,539,29.7,35,0,57
|
||||
2026-06-11T13:31:05,539,29.7,35,0,57
|
||||
2026-06-11T13:32:06,567,29.7,35,0,57
|
||||
2026-06-11T13:34:07,556,29.8,35,0,57
|
||||
2026-06-11T13:35:07,545,29.8,34,0,57
|
||||
2026-06-11T13:36:08,551,30,34,0,57
|
||||
2026-06-11T13:37:09,500,30,35,0,57
|
||||
2026-06-11T13:38:09,496,30,35,0,55
|
||||
2026-06-11T13:39:09,506,30,35,0,57
|
||||
2026-06-11T13:40:10,478,30,34,0,57
|
||||
2026-06-11T13:41:10,546,30,35,0,57
|
||||
2026-06-11T13:42:11,501,30,34,0,57
|
||||
2026-06-11T13:44:12,461,29.8,35,0,55
|
||||
2026-06-11T13:45:12,539,29.3,34,0,57
|
||||
2026-06-11T13:46:13,556,29.1,35,0,57
|
||||
2026-06-11T13:47:14,567,28.7,35,0,55
|
||||
2026-06-11T13:48:14,607,28.6,36,0,57
|
||||
2026-06-11T13:49:14,588,28.3,35,0,57
|
||||
2026-06-11T13:50:15,580,28.2,36,0,57
|
||||
2026-06-11T13:51:16,561,28,36,0,57
|
||||
2026-06-11T13:52:16,553,27.8,36,0,55
|
||||
2026-06-11T13:53:16,653,27.7,36,0,57
|
||||
2026-06-11T13:54:17,618,27.7,36,0,57
|
||||
2026-06-11T13:55:17,612,27.5,37,0,57
|
||||
2026-06-11T13:56:18,575,27.5,37,0,57
|
||||
2026-06-11T13:57:18,556,27.3,37,0,55
|
||||
2026-06-11T13:58:19,570,27.2,37,0,55
|
||||
2026-06-11T13:59:19,591,27.2,37,0,55
|
||||
2026-06-11T14:00:20,533,27.1,37,0,55
|
||||
2026-06-11T14:01:20,549,27.1,38,0,57
|
||||
2026-06-11T14:02:21,501,27,37,0,55
|
||||
2026-06-11T14:03:22,523,27,37,0,55
|
||||
2026-06-11T14:04:22,523,26.8,38,0,57
|
||||
2026-06-11T14:05:22,537,26.7,38,0,55
|
||||
2026-06-11T14:06:23,589,26.7,38,0,57
|
||||
2026-06-11T14:07:23,542,26.7,38,0,57
|
||||
2026-06-11T14:08:24,567,26.6,38,0,57
|
||||
2026-06-11T14:09:24,564,26.6,38,0,57
|
||||
2026-06-11T14:10:25,567,26.6,38,0,57
|
||||
2026-06-11T14:11:26,575,26.6,38,0,57
|
||||
2026-06-11T14:12:26,575,26.6,37,0,57
|
||||
2026-06-11T14:13:27,575,26.5,38,0,55
|
||||
2026-06-11T14:15:28,508,26.5,38,0,55
|
||||
2026-06-11T14:16:28,549,26.3,38,0,55
|
||||
2026-06-11T14:17:28,529,26.3,38,0,55
|
||||
2026-06-11T14:18:29,529,26.5,39,0,57
|
||||
2026-06-11T14:19:30,476,26.3,38,0,57
|
||||
2026-06-11T14:20:30,514,26.3,39,0,55
|
||||
2026-06-11T14:21:31,492,26.2,38,0,55
|
||||
2026-06-11T14:22:31,501,26.2,38,0,55
|
||||
2026-06-11T14:23:32,514,26.2,39,0,57
|
||||
2026-06-11T14:24:32,495,26.2,38,0,57
|
||||
2026-06-11T14:25:32,581,26.2,39,0,55
|
||||
2026-06-11T14:26:33,624,26.2,38,0,55
|
||||
2026-06-11T14:27:33,682,26.2,39,0,55
|
||||
2026-06-11T14:28:34,675,26.2,39,0,55
|
||||
2026-06-11T14:29:35,671,26.2,39,0,55
|
||||
2026-06-11T14:30:35,629,26.1,39,0,55
|
||||
2026-06-11T14:31:36,638,26.2,39,0,57
|
||||
2026-06-11T14:32:36,638,26.1,38,0,55
|
||||
2026-06-11T14:33:37,615,26.2,38,0,55
|
||||
2026-06-11T14:34:37,607,26.2,39,0,55
|
||||
2026-06-11T14:35:37,638,26.1,39,0,55
|
||||
2026-06-11T14:36:38,600,26.1,39,0,55
|
||||
2026-06-11T14:37:39,575,26.2,39,0,55
|
||||
2026-06-11T14:38:39,575,26.1,39,0,55
|
||||
2026-06-11T14:39:40,596,26.1,39,0,57
|
||||
2026-06-11T14:40:40,624,26.1,39,0,55
|
||||
2026-06-11T14:41:41,575,26.1,39,0,57
|
||||
2026-06-11T14:42:41,565,26.1,38,0,55
|
||||
2026-06-11T14:43:42,637,26.1,39,0,55
|
||||
2026-06-11T14:44:42,581,26.1,39,0,57
|
||||
2026-06-11T14:45:43,581,26.1,39,0,55
|
||||
2026-06-11T14:46:43,556,26.1,39,0,55
|
||||
2026-06-11T14:49:45,565,26.1,39,0,57
|
||||
2026-06-11T14:50:45,565,26.1,39,0,55
|
||||
2026-06-11T14:51:46,545,26,39,0,55
|
||||
2026-06-11T14:52:46,526,26.1,39,0,55
|
||||
2026-06-11T14:53:47,549,26.1,39,0,55
|
||||
2026-06-11T14:54:47,549,26,38,0,55
|
||||
2026-06-11T14:55:48,575,26.1,39,0,55
|
||||
2026-06-11T14:56:48,533,26.1,39,0,55
|
||||
2026-06-11T14:58:49,526,26.1,39,0,55
|
||||
2026-06-11T14:59:50,526,26.1,39,0,55
|
||||
2026-06-11T15:00:50,565,26.1,39,0,57
|
||||
2026-06-11T15:01:51,520,26,39,0,55
|
||||
2026-06-11T15:02:51,526,26.1,38,0,57
|
||||
2026-06-11T15:03:52,526,26.1,38,0,55
|
||||
2026-06-11T15:04:52,549,26.1,39,0,55
|
||||
2026-06-11T15:05:53,539,26.1,39,0,57
|
||||
2026-06-11T15:06:53,549,26.2,39,0,55
|
||||
2026-06-11T15:07:54,565,26.2,39,0,55
|
||||
2026-06-11T15:08:54,533,26.1,39,0,57
|
||||
2026-06-11T15:09:55,526,26.2,40,0,55
|
||||
2026-06-11T15:10:55,505,26.2,39,0,57
|
||||
2026-06-11T15:11:56,526,26.2,39,0,57
|
||||
2026-06-11T15:12:57,526,26.2,39,0,55
|
||||
2026-06-11T15:13:57,549,26.2,39,0,55
|
||||
2026-06-11T15:14:57,549,26.2,39,0,55
|
||||
2026-06-11T15:15:58,539,26.2,39,0,57
|
||||
2026-06-11T15:16:58,556,26.2,39,0,55
|
||||
2026-06-11T15:17:59,545,26.2,39,0,55
|
||||
2026-06-11T15:18:59,565,26.2,40,0,57
|
||||
2026-06-11T15:21:00,517,26.3,39,0,55
|
||||
2026-06-11T15:22:01,565,26.3,39,0,55
|
||||
2026-06-11T15:23:01,533,26.3,39,0,57
|
||||
2026-06-11T15:24:02,533,26.3,40,0,55
|
||||
2026-06-11T15:25:02,546,26.3,40,0,55
|
||||
2026-06-11T15:26:03,523,26.3,39,0,57
|
||||
2026-06-11T15:27:03,533,26.3,39,0,55
|
||||
2026-06-11T15:28:04,549,26.3,39,0,57
|
||||
2026-06-11T15:29:04,545,26.3,39,0,55
|
||||
2026-06-11T15:30:05,549,26.3,39,0,57
|
||||
2026-06-11T15:31:05,575,26.3,39,0,55
|
||||
2026-06-11T15:32:06,539,26.3,39,0,57
|
||||
2026-06-11T15:33:06,565,26.3,39,0,55
|
||||
2026-06-11T15:34:07,526,26.5,39,0,55
|
||||
2026-06-11T15:35:07,575,26.3,39,0,55
|
||||
2026-06-11T15:37:08,565,26.3,39,0,55
|
||||
2026-06-11T15:38:09,549,26.5,39,0,55
|
||||
2026-06-11T15:39:10,533,26.5,40,0,55
|
||||
2026-06-11T15:40:10,565,26.3,40,0,55
|
||||
2026-06-11T15:41:10,565,26.5,39,0,55
|
||||
2026-06-11T15:42:11,549,26.3,40,0,55
|
||||
2026-06-11T15:43:11,529,26.5,39,0,55
|
||||
2026-06-11T15:45:12,581,26.5,39,0,55
|
||||
2026-06-11T15:46:13,596,26.5,40,0,55
|
||||
2026-06-11T15:47:13,546,26.5,39,0,55
|
||||
2026-06-11T15:48:14,575,26.3,39,0,55
|
||||
2026-06-11T15:49:14,589,26.5,40,0,55
|
||||
2026-06-11T15:50:15,540,26.5,39,0,55
|
||||
2026-06-11T15:51:15,596,26.3,40,0,55
|
||||
2026-06-11T15:52:16,529,26.5,40,0,57
|
||||
2026-06-11T15:53:16,540,26.5,39,0,55
|
||||
2026-06-11T15:54:17,575,26.5,39,0,55
|
||||
2026-06-11T15:55:17,545,26.5,39,0,55
|
||||
2026-06-11T15:56:18,581,26.3,39,0,55
|
||||
2026-06-11T15:57:18,545,26.5,39,0,57
|
||||
2026-06-11T15:58:19,545,26.5,40,0,57
|
||||
2026-06-11T15:59:19,529,26.5,40,0,57
|
||||
2026-06-11T16:00:20,546,26.5,40,0,55
|
||||
2026-06-11T16:01:20,546,26.5,39,0,57
|
||||
2026-06-11T16:02:21,556,26.3,39,0,57
|
||||
2026-06-11T16:03:21,545,26.5,39,0,57
|
||||
2026-06-11T16:04:22,556,26.5,38,0,55
|
||||
2026-06-11T16:05:23,575,26.6,39,0,55
|
||||
2026-06-11T16:06:23,565,26.6,38,0,57
|
||||
2026-06-11T16:07:23,629,26.6,39,0,57
|
||||
2026-06-11T16:08:24,549,26.5,39,0,57
|
||||
2026-06-11T16:09:24,556,26.5,39,0,55
|
||||
2026-06-11T16:10:25,570,26.5,40,0,55
|
||||
2026-06-11T16:11:25,565,26.5,39,0,55
|
||||
2026-06-11T16:12:26,575,26.5,38,0,55
|
||||
2026-06-11T16:13:26,615,26.6,39,0,57
|
||||
2026-06-11T16:14:27,556,26.5,39,0,55
|
||||
2026-06-11T16:15:27,570,26.6,39,0,55
|
||||
2026-06-11T16:16:28,575,26.6,39,0,55
|
||||
2026-06-11T16:17:28,556,26.6,39,0,55
|
||||
2026-06-11T16:18:29,575,26.5,40,0,55
|
||||
2026-06-11T16:19:29,565,26.6,39,0,55
|
||||
2026-06-11T16:20:30,556,26.5,39,0,55
|
||||
2026-06-11T16:21:31,565,26.6,40,0,55
|
||||
2026-06-11T16:22:31,533,26.6,39,0,57
|
||||
2026-06-11T16:23:31,575,26.6,40,0,55
|
||||
2026-06-11T16:24:32,570,26.6,39,0,55
|
||||
2026-06-11T16:25:33,556,26.6,39,0,57
|
||||
2026-06-11T16:26:33,545,26.6,39,0,55
|
||||
2026-06-11T16:27:33,589,26.5,39,0,57
|
||||
2026-06-11T16:28:34,549,26.6,39,0,55
|
||||
2026-06-11T16:29:34,581,26.6,39,0,55
|
||||
|
415
report/resources/measures/A3-E6_8A_79_C8_87_25.csv
Normal file
@@ -0,0 +1,415 @@
|
||||
time,co2,temperature,humidity,windows,battery
|
||||
2026-06-11T08:46:55,400,25.1,39,0,36
|
||||
2026-06-11T08:49:55,405,25.1,39,0,36
|
||||
2026-06-11T08:50:55,413,25.1,38,0,36
|
||||
2026-06-11T08:51:56,425,25.1,39,0,36
|
||||
2026-06-11T08:53:57,408,25.2,39,0,36
|
||||
2026-06-11T08:54:57,418,25.2,38,0,36
|
||||
2026-06-11T08:55:58,425,25.2,39,0,36
|
||||
2026-06-11T08:56:58,418,25.2,39,0,36
|
||||
2026-06-11T08:57:59,423,25.2,38,0,36
|
||||
2026-06-11T08:59:00,442,25.2,39,0,36
|
||||
2026-06-11T09:00:00,426,25.2,39,0,36
|
||||
2026-06-11T09:01:01,426,25.1,38,0,33
|
||||
2026-06-11T09:02:01,434,25.3,39,0,36
|
||||
2026-06-11T09:03:01,423,25.3,39,0,36
|
||||
2026-06-11T09:05:02,434,25.3,39,0,36
|
||||
2026-06-11T09:06:03,439,25.3,38,0,36
|
||||
2026-06-11T09:07:04,454,25.3,39,0,36
|
||||
2026-06-11T09:08:04,439,25.3,39,0,36
|
||||
2026-06-11T09:10:05,454,25.3,39,0,36
|
||||
2026-06-11T09:11:05,439,25.5,38,0,36
|
||||
2026-06-11T09:12:06,454,25.3,38,0,36
|
||||
2026-06-11T09:13:06,454,25.5,39,0,36
|
||||
2026-06-11T09:14:07,439,25.3,39,0,36
|
||||
2026-06-11T09:15:07,439,25.3,39,0,36
|
||||
2026-06-11T09:16:08,434,25.3,39,0,36
|
||||
2026-06-11T09:17:09,445,25.3,38,0,36
|
||||
2026-06-11T09:18:09,459,25.3,38,0,36
|
||||
2026-06-11T09:19:09,459,25.2,39,0,36
|
||||
2026-06-11T09:21:10,434,25.3,39,0,36
|
||||
2026-06-11T09:22:11,434,25.2,39,0,36
|
||||
2026-06-11T09:23:12,426,25.2,39,0,36
|
||||
2026-06-11T09:24:12,423,25.2,38,0,36
|
||||
2026-06-11T09:25:12,442,25.2,39,0,36
|
||||
2026-06-11T09:26:13,426,25.2,38,0,36
|
||||
2026-06-11T09:27:13,438,25.1,38,0,36
|
||||
2026-06-11T09:28:14,438,25.1,38,0,36
|
||||
2026-06-11T09:29:15,438,25.1,39,0,36
|
||||
2026-06-11T09:30:15,418,25.2,39,0,36
|
||||
2026-06-11T09:31:16,418,25.1,38,0,36
|
||||
2026-06-11T09:32:16,418,25.2,39,0,36
|
||||
2026-06-11T09:33:17,415,25.1,39,0,36
|
||||
2026-06-11T09:34:17,418,25.1,38,0,36
|
||||
2026-06-11T09:35:18,427,25,39,0,36
|
||||
2026-06-11T09:36:18,413,25.1,39,0,36
|
||||
2026-06-11T09:37:19,415,25,39,0,36
|
||||
2026-06-11T09:39:20,408,25,39,0,36
|
||||
2026-06-11T09:40:20,405,25.1,39,0,36
|
||||
2026-06-11T09:41:20,408,25,38,0,36
|
||||
2026-06-11T09:42:21,422,25,38,0,36
|
||||
2026-06-11T09:43:21,418,25,38,0,36
|
||||
2026-06-11T09:44:22,418,25.1,39,0,36
|
||||
2026-06-11T09:45:23,408,25.1,39,0,36
|
||||
2026-06-11T09:46:23,408,25.1,38,0,36
|
||||
2026-06-11T09:47:24,422,25.1,38,0,36
|
||||
2026-06-11T09:48:24,414,25.1,39,0,36
|
||||
2026-06-11T09:49:24,408,25,38,0,36
|
||||
2026-06-11T09:50:25,414,25.1,39,0,36
|
||||
2026-06-11T09:51:26,405,25,38,0,36
|
||||
2026-06-11T09:52:26,418,25.1,39,0,36
|
||||
2026-06-11T09:53:27,408,25.1,38,0,36
|
||||
2026-06-11T09:54:27,422,25.1,39,0,36
|
||||
2026-06-11T09:55:28,400,25,39,0,36
|
||||
2026-06-11T09:57:28,400,25,38,0,36
|
||||
2026-06-11T10:00:29,414,25,39,0,36
|
||||
2026-06-11T10:01:29,414,25,39,0,36
|
||||
2026-06-11T10:02:30,400,25,38,0,36
|
||||
2026-06-11T10:04:30,420,25,39,0,36
|
||||
2026-06-11T10:05:31,400,25,40,0,36
|
||||
2026-06-11T10:07:31,400,25,39,0,36
|
||||
2026-06-11T10:10:32,414,25,39,0,36
|
||||
2026-06-11T10:11:32,407,25,39,0,36
|
||||
2026-06-11T10:12:33,414,24.8,39,0,36
|
||||
2026-06-11T10:13:33,488,25,38,0,36
|
||||
2026-06-11T10:14:34,424,24.8,39,0,36
|
||||
2026-06-11T10:16:35,414,24.8,39,0,36
|
||||
2026-06-11T10:17:35,488,25,39,0,36
|
||||
2026-06-11T10:18:36,414,24.8,39,0,36
|
||||
2026-06-11T10:19:36,485,24.8,39,0,36
|
||||
2026-06-11T10:20:37,477,25,39,0,36
|
||||
2026-06-11T10:21:37,400,24.8,39,0,36
|
||||
2026-06-11T10:23:38,480,24.8,39,0,36
|
||||
2026-06-11T10:24:38,480,25,39,0,36
|
||||
2026-06-11T10:25:39,409,25,39,0,36
|
||||
2026-06-11T10:26:39,414,25,39,0,36
|
||||
2026-06-11T10:27:40,420,25,39,0,36
|
||||
2026-06-11T10:28:40,420,25,39,0,36
|
||||
2026-06-11T10:29:41,420,24.8,40,0,31
|
||||
2026-06-11T10:30:41,475,25,39,0,36
|
||||
2026-06-11T10:31:42,420,25,39,0,36
|
||||
2026-06-11T10:32:42,420,25,39,0,36
|
||||
2026-06-11T10:33:43,427,25,40,0,36
|
||||
2026-06-11T10:34:43,420,25.1,39,0,36
|
||||
2026-06-11T10:35:44,432,25.1,40,0,36
|
||||
2026-06-11T10:36:44,415,25,39,0,36
|
||||
2026-06-11T10:37:45,436,25.1,40,0,36
|
||||
2026-06-11T10:38:45,417,25.1,39,0,36
|
||||
2026-06-11T10:39:46,432,25.1,39,0,36
|
||||
2026-06-11T10:40:46,436,25.1,39,0,36
|
||||
2026-06-11T10:41:47,441,25,39,0,36
|
||||
2026-06-11T10:42:47,427,25.1,40,0,36
|
||||
2026-06-11T10:43:48,425,25.1,39,0,33
|
||||
2026-06-11T10:44:49,436,25.1,39,0,36
|
||||
2026-06-11T10:45:49,436,25.1,39,0,36
|
||||
2026-06-11T10:46:49,441,25.1,39,0,36
|
||||
2026-06-11T10:47:50,441,25.1,39,0,36
|
||||
2026-06-11T10:48:50,436,25.1,40,0,36
|
||||
2026-06-11T10:49:51,417,25.1,39,0,36
|
||||
2026-06-11T10:50:52,441,25,39,0,36
|
||||
2026-06-11T10:51:52,424,25.1,39,0,36
|
||||
2026-06-11T10:52:52,441,25.1,40,0,36
|
||||
2026-06-11T10:53:53,425,25.1,39,0,36
|
||||
2026-06-11T10:54:54,441,25.1,39,0,36
|
||||
2026-06-11T10:55:54,436,25.1,40,0,36
|
||||
2026-06-11T10:56:54,420,25.1,39,0,36
|
||||
2026-06-11T10:57:55,441,25.1,39,0,36
|
||||
2026-06-11T10:58:55,441,25.1,39,0,36
|
||||
2026-06-11T10:59:56,441,25,39,0,33
|
||||
2026-06-11T11:00:56,427,25.1,39,0,36
|
||||
2026-06-11T11:02:57,441,25.1,40,0,36
|
||||
2026-06-11T11:03:58,420,25.1,40,0,36
|
||||
2026-06-11T11:04:58,428,25.1,40,0,36
|
||||
2026-06-11T11:05:59,428,25.1,39,0,36
|
||||
2026-06-11T11:06:59,445,25.1,39,0,36
|
||||
2026-06-11T11:08:00,441,25.1,39,0,36
|
||||
2026-06-11T11:09:01,436,25.1,39,0,36
|
||||
2026-06-11T11:10:01,436,25.1,39,0,36
|
||||
2026-06-11T11:11:01,445,25.1,39,0,36
|
||||
2026-06-11T11:12:02,445,25.1,39,0,36
|
||||
2026-06-11T11:13:02,445,25.1,39,0,36
|
||||
2026-06-11T11:14:03,445,25.1,39,0,36
|
||||
2026-06-11T11:15:03,441,25.1,39,0,36
|
||||
2026-06-11T11:16:04,441,25.1,40,0,36
|
||||
2026-06-11T11:17:04,428,25.1,39,0,36
|
||||
2026-06-11T11:18:05,441,25.1,39,0,36
|
||||
2026-06-11T11:19:05,441,25.1,40,0,36
|
||||
2026-06-11T11:20:06,428,25.1,39,0,36
|
||||
2026-06-11T11:21:06,432,25.1,39,0,36
|
||||
2026-06-11T11:22:07,441,25.1,39,0,36
|
||||
2026-06-11T11:23:07,441,25.1,39,0,36
|
||||
2026-06-11T11:25:09,441,25.1,39,0,36
|
||||
2026-06-11T11:26:09,436,25.1,39,0,36
|
||||
2026-06-11T11:27:09,436,25.1,39,0,36
|
||||
2026-06-11T11:29:10,459,25.1,39,0,36
|
||||
2026-06-11T11:30:11,459,25.1,39,0,33
|
||||
2026-06-11T11:32:12,441,25.1,38,0,36
|
||||
2026-06-11T11:33:12,455,25.1,39,0,36
|
||||
2026-06-11T11:34:13,432,25.1,40,0,33
|
||||
2026-06-11T11:35:13,420,25.1,39,0,36
|
||||
2026-06-11T11:36:14,432,25.2,38,0,36
|
||||
2026-06-11T11:37:14,436,25.1,39,0,36
|
||||
2026-06-11T11:38:15,427,25.1,39,0,36
|
||||
2026-06-11T11:39:16,432,25.2,39,0,36
|
||||
2026-06-11T11:40:16,441,25.2,39,0,36
|
||||
2026-06-11T11:41:16,432,25.2,39,0,36
|
||||
2026-06-11T11:42:17,432,25.2,38,0,36
|
||||
2026-06-11T11:43:17,455,25.2,39,0,36
|
||||
2026-06-11T11:44:18,441,25.2,39,0,36
|
||||
2026-06-11T11:45:19,441,25.2,39,0,33
|
||||
2026-06-11T11:46:19,441,25.2,38,0,36
|
||||
2026-06-11T11:47:19,459,25.2,39,0,36
|
||||
2026-06-11T11:48:20,450,25.2,39,0,36
|
||||
2026-06-11T11:49:21,450,25.3,38,0,36
|
||||
2026-06-11T11:50:21,464,25.3,40,0,36
|
||||
2026-06-11T11:51:21,428,25.3,39,0,36
|
||||
2026-06-11T11:52:22,450,25.3,39,0,36
|
||||
2026-06-11T11:53:23,450,25.3,39,0,36
|
||||
2026-06-11T11:54:23,450,25.3,39,0,36
|
||||
2026-06-11T11:55:23,456,25.3,39,0,36
|
||||
2026-06-11T11:56:24,456,25.3,39,0,36
|
||||
2026-06-11T11:57:25,456,25.3,40,0,36
|
||||
2026-06-11T11:58:25,447,25.3,38,0,36
|
||||
2026-06-11T11:59:26,482,25.3,39,0,36
|
||||
2026-06-11T12:00:26,482,25.3,39,0,33
|
||||
2026-06-11T12:01:26,461,25.3,39,0,36
|
||||
2026-06-11T12:02:27,470,25.2,39,0,36
|
||||
2026-06-11T12:03:28,465,25.2,39,0,36
|
||||
2026-06-11T12:04:28,461,25.3,39,0,36
|
||||
2026-06-11T12:07:30,470,25.3,39,0,33
|
||||
2026-06-11T12:10:31,465,25.3,39,0,36
|
||||
2026-06-11T12:11:32,470,25.3,39,0,36
|
||||
2026-06-11T12:12:32,470,25.3,39,0,36
|
||||
2026-06-11T12:13:33,470,25.3,39,0,36
|
||||
2026-06-11T12:14:33,470,25.2,39,0,36
|
||||
2026-06-11T12:15:34,470,25.3,39,0,36
|
||||
2026-06-11T12:16:34,470,25.3,40,0,36
|
||||
2026-06-11T12:17:34,454,25.3,39,0,36
|
||||
2026-06-11T12:18:35,465,25.3,39,0,36
|
||||
2026-06-11T12:19:36,470,25.3,39,0,36
|
||||
2026-06-11T12:20:36,461,25.3,38,0,36
|
||||
2026-06-11T12:21:37,478,25.3,38,0,36
|
||||
2026-06-11T12:22:37,478,25.3,38,0,36
|
||||
2026-06-11T12:23:38,485,25.3,39,0,36
|
||||
2026-06-11T12:24:38,465,25.3,38,0,36
|
||||
2026-06-11T12:25:39,482,25.3,38,0,36
|
||||
2026-06-11T12:27:40,470,25.5,39,0,36
|
||||
2026-06-11T12:28:40,473,25.5,38,0,36
|
||||
2026-06-11T12:30:41,473,25.3,39,0,33
|
||||
2026-06-11T12:31:42,473,25.5,38,0,36
|
||||
2026-06-11T12:32:42,485,25.3,38,0,36
|
||||
2026-06-11T12:33:43,490,25.5,38,0,36
|
||||
2026-06-11T12:34:43,485,25.5,39,0,36
|
||||
2026-06-11T12:35:44,473,25.5,38,0,36
|
||||
2026-06-11T12:36:44,490,25.5,39,0,36
|
||||
2026-06-11T12:37:45,473,25.5,39,0,36
|
||||
2026-06-11T12:38:45,478,25.5,38,0,36
|
||||
2026-06-11T12:39:46,490,25.5,39,0,36
|
||||
2026-06-11T12:40:46,473,25.5,38,0,33
|
||||
2026-06-11T12:41:47,493,25.5,39,0,33
|
||||
2026-06-11T12:42:47,473,25.6,39,0,36
|
||||
2026-06-11T12:43:48,478,25.5,38,0,33
|
||||
2026-06-11T12:44:48,493,25.5,38,0,36
|
||||
2026-06-11T12:45:49,493,25.5,39,0,33
|
||||
2026-06-11T12:46:49,490,25.6,38,0,36
|
||||
2026-06-11T12:47:50,493,25.6,39,0,36
|
||||
2026-06-11T12:48:50,481,25.6,38,0,36
|
||||
2026-06-11T12:49:51,493,25.6,38,0,36
|
||||
2026-06-11T12:50:51,496,25.6,38,0,36
|
||||
2026-06-11T12:51:52,505,25.6,38,0,36
|
||||
2026-06-11T12:52:52,505,25.6,38,0,36
|
||||
2026-06-11T12:53:53,505,25.6,38,0,33
|
||||
2026-06-11T12:54:53,496,25.6,38,0,36
|
||||
2026-06-11T12:55:54,496,25.6,38,0,36
|
||||
2026-06-11T12:56:54,505,25.7,38,0,33
|
||||
2026-06-11T12:57:55,505,25.6,39,0,33
|
||||
2026-06-11T12:58:55,492,25.6,39,0,36
|
||||
2026-06-11T12:59:56,490,25.6,38,0,36
|
||||
2026-06-11T13:00:56,505,25.7,39,0,36
|
||||
2026-06-11T13:01:57,505,25.6,38,0,33
|
||||
2026-06-11T13:02:57,507,25.6,39,0,33
|
||||
2026-06-11T13:03:58,492,25.6,38,0,33
|
||||
2026-06-11T13:04:58,507,25.7,39,0,33
|
||||
2026-06-11T13:05:59,492,25.7,38,0,33
|
||||
2026-06-11T13:06:59,507,25.7,39,0,36
|
||||
2026-06-11T13:08:00,481,25.7,38,0,36
|
||||
2026-06-11T13:09:00,505,25.7,39,0,36
|
||||
2026-06-11T13:10:01,492,25.7,39,0,33
|
||||
2026-06-11T13:11:02,492,25.7,38,0,33
|
||||
2026-06-11T13:12:02,507,25.7,38,0,36
|
||||
2026-06-11T13:13:02,521,25.6,38,0,36
|
||||
2026-06-11T13:14:03,521,25.7,38,0,36
|
||||
2026-06-11T13:15:03,521,25.7,39,0,36
|
||||
2026-06-11T13:16:04,501,25.7,38,0,33
|
||||
2026-06-11T13:17:04,517,25.7,38,0,33
|
||||
2026-06-11T13:18:05,530,25.7,39,0,36
|
||||
2026-06-11T13:19:05,508,25.7,39,0,33
|
||||
2026-06-11T13:20:06,508,25.7,39,0,33
|
||||
2026-06-11T13:21:06,518,25.8,39,0,36
|
||||
2026-06-11T13:22:07,523,25.8,38,0,36
|
||||
2026-06-11T13:23:07,530,25.8,39,0,33
|
||||
2026-06-11T13:24:08,523,25.8,38,0,36
|
||||
2026-06-11T13:25:09,542,25.8,38,0,33
|
||||
2026-06-11T13:26:09,542,25.8,39,0,33
|
||||
2026-06-11T13:27:09,526,25.8,38,0,33
|
||||
2026-06-11T13:28:10,542,26,39,0,36
|
||||
2026-06-11T13:29:11,441,26,38,0,36
|
||||
2026-06-11T13:30:11,455,26,39,0,33
|
||||
2026-06-11T13:31:11,451,26,38,0,33
|
||||
2026-06-11T13:32:12,460,26,39,0,36
|
||||
2026-06-11T13:33:13,441,26,38,0,36
|
||||
2026-06-11T13:34:13,441,26,39,0,36
|
||||
2026-06-11T13:35:13,441,26,38,0,36
|
||||
2026-06-11T13:36:14,465,26,38,0,33
|
||||
2026-06-11T13:37:14,460,26,39,0,36
|
||||
2026-06-11T13:38:15,441,26,38,0,33
|
||||
2026-06-11T13:39:16,455,26.1,39,0,33
|
||||
2026-06-11T13:40:16,451,26,38,0,36
|
||||
2026-06-11T13:41:16,465,26.1,39,0,33
|
||||
2026-06-11T13:42:17,451,26,38,0,36
|
||||
2026-06-11T13:43:18,465,26,38,0,33
|
||||
2026-06-11T13:44:18,460,26.1,38,0,33
|
||||
2026-06-11T13:45:18,465,26,38,0,33
|
||||
2026-06-11T13:46:19,465,26.1,39,0,36
|
||||
2026-06-11T13:47:19,451,26,38,0,36
|
||||
2026-06-11T13:48:20,465,26.1,38,0,33
|
||||
2026-06-11T13:49:20,465,26,39,0,36
|
||||
2026-06-11T13:50:21,446,26,38,0,36
|
||||
2026-06-11T13:51:22,460,26,38,0,33
|
||||
2026-06-11T13:52:22,460,26,38,0,36
|
||||
2026-06-11T13:53:22,460,26,39,0,36
|
||||
2026-06-11T13:54:23,446,26,38,0,33
|
||||
2026-06-11T13:55:23,460,26,39,0,36
|
||||
2026-06-11T13:56:24,438,26,39,0,36
|
||||
2026-06-11T13:57:24,438,26,38,0,33
|
||||
2026-06-11T13:58:25,455,26,38,0,33
|
||||
2026-06-11T13:59:25,460,26,39,0,33
|
||||
2026-06-11T14:01:26,438,26,39,0,36
|
||||
2026-06-11T14:02:27,438,26,37,0,36
|
||||
2026-06-11T14:03:28,470,26.1,38,0,33
|
||||
2026-06-11T14:04:28,455,26,38,0,36
|
||||
2026-06-11T14:05:29,482,26,38,0,36
|
||||
2026-06-11T14:08:30,452,26,38,0,36
|
||||
2026-06-11T14:09:31,455,26.1,38,0,36
|
||||
2026-06-11T14:10:31,455,26.1,38,0,33
|
||||
2026-06-11T14:11:32,452,26.1,39,0,36
|
||||
2026-06-11T14:12:32,441,26.1,39,0,36
|
||||
2026-06-11T14:14:33,452,26.1,38,0,36
|
||||
2026-06-11T14:15:34,455,26.1,38,0,33
|
||||
2026-06-11T14:17:34,460,26.1,38,0,33
|
||||
2026-06-11T14:19:36,455,26.1,38,0,33
|
||||
2026-06-11T14:20:36,452,26,38,0,33
|
||||
2026-06-11T14:21:36,455,26.1,38,0,36
|
||||
2026-06-11T14:22:37,455,26,38,0,36
|
||||
2026-06-11T14:23:38,452,26.1,38,0,36
|
||||
2026-06-11T14:24:38,460,26.1,38,0,36
|
||||
2026-06-11T14:25:39,465,26,37,0,36
|
||||
2026-06-11T14:26:39,495,26.1,38,0,33
|
||||
2026-06-11T14:27:40,475,26.1,38,0,36
|
||||
2026-06-11T14:28:40,475,26.1,38,0,36
|
||||
2026-06-11T14:29:40,471,26.1,38,0,33
|
||||
2026-06-11T14:30:41,475,26.2,38,0,36
|
||||
2026-06-11T14:31:41,475,26.1,39,0,36
|
||||
2026-06-11T14:32:42,459,26.1,37,0,33
|
||||
2026-06-11T14:33:43,492,26.2,38,0,36
|
||||
2026-06-11T14:34:43,471,26.1,38,0,33
|
||||
2026-06-11T14:35:44,475,26.1,38,0,33
|
||||
2026-06-11T14:36:44,475,26.2,38,0,36
|
||||
2026-06-11T14:37:45,475,26.1,38,0,33
|
||||
2026-06-11T14:38:45,475,26.1,38,0,33
|
||||
2026-06-11T14:39:46,471,26.2,37,0,33
|
||||
2026-06-11T14:40:46,492,26.2,38,0,33
|
||||
2026-06-11T14:41:47,465,26.1,37,0,36
|
||||
2026-06-11T14:42:47,488,26.1,38,0,36
|
||||
2026-06-11T14:43:48,475,26.2,38,0,36
|
||||
2026-06-11T14:44:48,465,26.2,38,0,36
|
||||
2026-06-11T14:45:49,465,26.2,38,0,36
|
||||
2026-06-11T14:47:50,465,26.2,38,0,36
|
||||
2026-06-11T14:48:50,475,26.2,38,0,33
|
||||
2026-06-11T14:50:51,488,26.2,37,0,33
|
||||
2026-06-11T14:52:52,475,26.2,38,0,33
|
||||
2026-06-11T14:53:53,471,26.2,37,0,36
|
||||
2026-06-11T14:54:53,488,26.2,38,0,33
|
||||
2026-06-11T14:55:54,471,26.2,37,0,33
|
||||
2026-06-11T14:56:54,483,26.2,38,0,33
|
||||
2026-06-11T14:57:55,471,26.3,38,0,36
|
||||
2026-06-11T14:58:55,475,26.3,38,0,33
|
||||
2026-06-11T14:59:56,475,26.3,37,0,33
|
||||
2026-06-11T15:00:56,488,26.3,38,0,33
|
||||
2026-06-11T15:01:57,475,26.3,38,0,36
|
||||
2026-06-11T15:02:57,475,26.3,37,0,36
|
||||
2026-06-11T15:03:58,500,26.2,37,0,36
|
||||
2026-06-11T15:04:58,495,26.2,37,0,33
|
||||
2026-06-11T15:05:59,506,26.3,37,0,36
|
||||
2026-06-11T15:06:59,515,26.3,38,0,33
|
||||
2026-06-11T15:08:00,493,26.3,38,0,36
|
||||
2026-06-11T15:09:00,497,26.3,38,0,36
|
||||
2026-06-11T15:10:01,493,26.3,39,0,33
|
||||
2026-06-11T15:11:01,493,26.5,37,0,33
|
||||
2026-06-11T15:12:02,523,26.5,38,0,33
|
||||
2026-06-11T15:13:02,506,26.5,38,0,33
|
||||
2026-06-11T15:14:03,506,26.5,38,0,33
|
||||
2026-06-11T15:15:03,506,26.5,38,0,33
|
||||
2026-06-11T15:16:04,521,26.5,38,0,36
|
||||
2026-06-11T15:17:04,526,26.5,37,0,36
|
||||
2026-06-11T15:18:05,544,26.5,38,0,33
|
||||
2026-06-11T15:21:07,529,26.3,38,0,33
|
||||
2026-06-11T15:22:07,526,26.5,38,0,33
|
||||
2026-06-11T15:23:07,529,26.5,38,0,36
|
||||
2026-06-11T15:25:08,518,26.6,38,0,33
|
||||
2026-06-11T15:26:09,538,26.5,38,0,36
|
||||
2026-06-11T15:28:10,541,26.5,37,0,33
|
||||
2026-06-11T15:29:10,556,26.5,39,0,33
|
||||
2026-06-11T15:31:12,541,26.5,38,0,36
|
||||
2026-06-11T15:33:13,541,26.5,38,0,36
|
||||
2026-06-11T15:34:13,541,26.6,38,0,36
|
||||
2026-06-11T15:35:13,546,26.5,38,0,33
|
||||
2026-06-11T15:36:14,541,26.5,38,0,33
|
||||
2026-06-11T15:38:15,529,26.6,38,0,33
|
||||
2026-06-11T15:39:15,546,26.5,38,0,33
|
||||
2026-06-11T15:40:16,546,26.5,37,0,36
|
||||
2026-06-11T15:41:16,566,26.5,38,0,36
|
||||
2026-06-11T15:42:17,541,26.5,39,0,36
|
||||
2026-06-11T15:44:18,534,26.5,39,0,31
|
||||
2026-06-11T15:45:18,524,26.5,39,0,33
|
||||
2026-06-11T15:46:19,524,26.6,38,0,33
|
||||
2026-06-11T15:47:20,551,26.5,38,0,36
|
||||
2026-06-11T15:48:20,546,26.5,38,0,33
|
||||
2026-06-11T15:49:20,541,26.5,38,0,33
|
||||
2026-06-11T15:50:21,546,26.3,38,0,33
|
||||
2026-06-11T15:51:22,541,26.5,38,0,33
|
||||
2026-06-11T15:53:23,546,26.5,38,0,33
|
||||
2026-06-11T15:54:23,541,26.5,38,0,33
|
||||
2026-06-11T15:55:23,546,26.5,39,0,33
|
||||
2026-06-11T15:56:24,534,26.6,38,0,33
|
||||
2026-06-11T15:57:24,551,26.6,38,0,33
|
||||
2026-06-11T15:58:25,551,26.6,37,0,33
|
||||
2026-06-11T15:59:25,578,26.6,37,0,33
|
||||
2026-06-11T16:00:26,566,26.6,39,0,36
|
||||
2026-06-11T16:01:26,534,26.5,39,0,33
|
||||
2026-06-11T16:02:27,529,26.6,37,0,36
|
||||
2026-06-11T16:03:27,566,26.6,38,0,33
|
||||
2026-06-11T16:04:28,551,26.6,39,0,33
|
||||
2026-06-11T16:05:29,534,26.6,39,0,33
|
||||
2026-06-11T16:06:29,540,26.6,38,0,33
|
||||
2026-06-11T16:07:29,551,26.6,37,0,36
|
||||
2026-06-11T16:08:30,571,26.6,38,0,33
|
||||
2026-06-11T16:09:31,556,26.6,38,0,36
|
||||
2026-06-11T16:10:31,546,26.6,38,0,33
|
||||
2026-06-11T16:11:31,551,26.5,38,0,33
|
||||
2026-06-11T16:12:32,551,26.6,38,0,36
|
||||
2026-06-11T16:13:32,551,26.6,39,0,36
|
||||
2026-06-11T16:14:33,529,26.6,38,0,33
|
||||
2026-06-11T16:15:33,551,26.6,37,0,36
|
||||
2026-06-11T16:16:34,571,26.6,38,0,33
|
||||
2026-06-11T16:17:34,571,26.6,39,0,31
|
||||
2026-06-11T16:18:35,529,26.6,37,0,33
|
||||
2026-06-11T16:19:35,566,26.6,38,0,36
|
||||
2026-06-11T16:22:37,551,26.6,38,0,33
|
||||
2026-06-11T16:23:38,556,26.6,38,0,33
|
||||
2026-06-11T16:24:38,562,26.6,39,0,33
|
||||
2026-06-11T16:25:38,534,26.6,38,0,33
|
||||
2026-06-11T16:26:39,562,26.6,39,0,33
|
||||
2026-06-11T16:27:40,540,26.6,38,0,33
|
||||
2026-06-11T16:28:40,551,26.6,39,0,33
|
||||
2026-06-11T16:29:41,542,26.6,38,0,33
|
||||
|
441
report/resources/measures/A3-ED_B2_F3_74_3E_C2.csv
Normal file
@@ -0,0 +1,441 @@
|
||||
time,co2,temperature,humidity,windows,battery
|
||||
2026-06-11T08:45:47,552,25,40,0,31
|
||||
2026-06-11T08:46:47,485,25,41,0,31
|
||||
2026-06-11T08:47:48,463,25,40,0,31
|
||||
2026-06-11T08:48:48,491,25,41,0,31
|
||||
2026-06-11T08:49:49,463,25,41,0,31
|
||||
2026-06-11T08:50:49,463,25.1,42,0,31
|
||||
2026-06-11T08:51:50,461,25.1,40,0,31
|
||||
2026-06-11T08:52:51,493,25.1,41,0,31
|
||||
2026-06-11T08:53:51,478,25.1,40,0,31
|
||||
2026-06-11T08:54:52,493,25.2,40,0,31
|
||||
2026-06-11T08:55:52,493,25.2,40,0,31
|
||||
2026-06-11T08:56:53,501,25.2,40,0,31
|
||||
2026-06-11T08:57:53,514,25.2,41,0,31
|
||||
2026-06-11T08:59:54,492,25.2,40,0,31
|
||||
2026-06-11T09:00:55,514,25.2,41,0,31
|
||||
2026-06-11T09:01:55,500,25.2,41,0,31
|
||||
2026-06-11T09:02:56,508,25.2,41,0,31
|
||||
2026-06-11T09:03:56,495,25.3,41,0,31
|
||||
2026-06-11T09:04:57,508,25.3,40,0,31
|
||||
2026-06-11T09:05:57,529,25.3,40,0,31
|
||||
2026-06-11T09:06:58,529,25.3,41,0,31
|
||||
2026-06-11T09:07:58,515,25.3,40,0,31
|
||||
2026-06-11T09:08:59,537,25.3,41,0,31
|
||||
2026-06-11T09:09:59,520,25.3,41,0,31
|
||||
2026-06-11T09:11:00,520,25.5,42,0,31
|
||||
2026-06-11T09:12:00,497,25.3,41,0,31
|
||||
2026-06-11T09:13:01,527,25.3,41,0,31
|
||||
2026-06-11T09:14:01,520,25.3,41,0,31
|
||||
2026-06-11T09:15:02,515,25.3,41,0,31
|
||||
2026-06-11T09:16:02,520,25.3,40,0,31
|
||||
2026-06-11T09:17:03,537,25.3,40,0,31
|
||||
2026-06-11T09:18:03,537,25.3,40,0,31
|
||||
2026-06-11T09:20:04,531,25.2,41,0,31
|
||||
2026-06-11T09:22:05,529,25.2,41,0,31
|
||||
2026-06-11T09:23:06,500,25.2,40,0,31
|
||||
2026-06-11T09:24:06,514,25.2,41,0,31
|
||||
2026-06-11T09:25:07,495,25.2,41,0,31
|
||||
2026-06-11T09:26:07,492,25.2,41,0,31
|
||||
2026-06-11T09:27:08,486,25.2,41,0,31
|
||||
2026-06-11T09:28:08,486,25.2,40,0,31
|
||||
2026-06-11T09:29:09,506,25.2,40,0,31
|
||||
2026-06-11T09:30:09,501,25.2,40,0,31
|
||||
2026-06-11T09:31:10,501,25.1,40,0,31
|
||||
2026-06-11T09:32:10,501,25.1,39,0,31
|
||||
2026-06-11T09:33:11,508,25.2,40,0,31
|
||||
2026-06-11T09:34:11,501,25.1,40,0,31
|
||||
2026-06-11T09:35:12,501,25.1,40,0,31
|
||||
2026-06-11T09:36:12,491,25.1,40,0,31
|
||||
2026-06-11T09:37:13,493,25.1,40,0,29
|
||||
2026-06-11T09:38:13,493,25.1,40,0,31
|
||||
2026-06-11T09:40:14,493,25.1,40,0,29
|
||||
2026-06-11T09:41:15,485,25.1,40,0,31
|
||||
2026-06-11T09:42:15,491,25.1,40,0,31
|
||||
2026-06-11T09:43:16,493,25.1,40,0,31
|
||||
2026-06-11T09:44:16,493,25.1,40,0,31
|
||||
2026-06-11T09:45:17,491,25.1,41,0,31
|
||||
2026-06-11T09:46:17,478,25.1,41,0,31
|
||||
2026-06-11T09:47:18,478,25.1,40,0,29
|
||||
2026-06-11T09:48:18,493,25.1,40,0,31
|
||||
2026-06-11T09:49:19,485,25.1,41,0,29
|
||||
2026-06-11T09:50:19,476,25.1,39,0,29
|
||||
2026-06-11T09:51:20,500,25.1,40,0,31
|
||||
2026-06-11T09:52:20,485,25.1,41,0,31
|
||||
2026-06-11T09:53:21,476,25.1,40,0,31
|
||||
2026-06-11T09:54:21,491,25.1,40,0,31
|
||||
2026-06-11T09:55:22,491,25.1,40,0,31
|
||||
2026-06-11T09:56:22,493,25.1,40,0,31
|
||||
2026-06-11T09:57:23,491,25.1,41,0,31
|
||||
2026-06-11T09:58:23,470,25.1,40,0,31
|
||||
2026-06-11T09:59:24,491,25.1,41,0,31
|
||||
2026-06-11T10:00:25,476,25.1,41,0,31
|
||||
2026-06-11T10:01:25,476,25.1,41,0,31
|
||||
2026-06-11T10:03:26,470,25.1,41,0,31
|
||||
2026-06-11T10:04:26,470,25.1,41,0,31
|
||||
2026-06-11T10:05:27,476,25.1,41,0,31
|
||||
2026-06-11T10:06:28,476,25.2,41,0,31
|
||||
2026-06-11T10:07:28,470,25.1,40,0,31
|
||||
2026-06-11T10:08:28,485,25.1,40,0,31
|
||||
2026-06-11T10:09:29,491,25.1,40,0,31
|
||||
2026-06-11T10:10:29,491,25.1,41,0,31
|
||||
2026-06-11T10:11:30,476,25.1,41,0,31
|
||||
2026-06-11T10:12:30,476,25,41,0,31
|
||||
2026-06-11T10:13:31,476,25.1,40,0,33
|
||||
2026-06-11T10:14:31,493,25.1,41,0,31
|
||||
2026-06-11T10:15:32,470,25.1,41,0,31
|
||||
2026-06-11T10:16:32,476,25.1,40,0,31
|
||||
2026-06-11T10:17:33,485,25,41,0,31
|
||||
2026-06-11T10:18:34,478,25,41,0,31
|
||||
2026-06-11T10:19:34,454,25,41,0,31
|
||||
2026-06-11T10:20:34,463,25.1,41,0,31
|
||||
2026-06-11T10:21:35,454,25,40,0,31
|
||||
2026-06-11T10:22:36,466,25.1,41,0,31
|
||||
2026-06-11T10:23:36,470,25.1,41,0,31
|
||||
2026-06-11T10:24:36,463,25.1,41,0,31
|
||||
2026-06-11T10:25:37,478,25.1,41,0,31
|
||||
2026-06-11T10:26:37,478,25.1,41,0,31
|
||||
2026-06-11T10:28:38,492,25.1,41,0,31
|
||||
2026-06-11T10:29:39,486,25.1,41,0,29
|
||||
2026-06-11T10:30:39,486,25.2,41,0,29
|
||||
2026-06-11T10:31:40,492,25.2,40,0,31
|
||||
2026-06-11T10:32:40,506,25.2,41,0,29
|
||||
2026-06-11T10:33:41,495,25.2,41,0,31
|
||||
2026-06-11T10:34:41,495,25.2,42,0,31
|
||||
2026-06-11T10:36:42,519,25.2,41,0,31
|
||||
2026-06-11T10:37:43,508,25.2,41,0,31
|
||||
2026-06-11T10:38:44,508,25.2,41,0,29
|
||||
2026-06-11T10:39:44,515,25.2,41,0,31
|
||||
2026-06-11T10:40:44,500,25.2,41,0,31
|
||||
2026-06-11T10:41:45,508,25.2,41,0,31
|
||||
2026-06-11T10:42:45,500,25.2,41,0,31
|
||||
2026-06-11T10:43:46,508,25.1,41,0,29
|
||||
2026-06-11T10:44:46,508,25.2,41,0,31
|
||||
2026-06-11T10:45:47,500,25.2,41,0,31
|
||||
2026-06-11T10:46:47,508,25.2,42,0,31
|
||||
2026-06-11T10:47:48,486,25.2,42,0,31
|
||||
2026-06-11T10:48:48,486,25.2,40,0,29
|
||||
2026-06-11T10:49:49,519,25.1,40,0,31
|
||||
2026-06-11T10:50:50,519,25.2,42,0,31
|
||||
2026-06-11T10:51:50,486,25.2,42,0,31
|
||||
2026-06-11T10:52:51,486,25.1,40,0,31
|
||||
2026-06-11T10:53:51,514,25.1,40,0,29
|
||||
2026-06-11T10:54:52,514,25.2,41,0,31
|
||||
2026-06-11T10:55:52,508,25.1,42,0,31
|
||||
2026-06-11T10:56:53,495,25.1,41,0,31
|
||||
2026-06-11T10:57:53,508,25.2,41,0,29
|
||||
2026-06-11T10:58:54,500,25.1,41,0,29
|
||||
2026-06-11T10:59:54,500,25.1,41,0,31
|
||||
2026-06-11T11:00:55,500,25.1,41,0,31
|
||||
2026-06-11T11:01:55,508,25.2,42,0,31
|
||||
2026-06-11T11:02:55,486,25.1,41,0,31
|
||||
2026-06-11T11:03:56,500,25.1,42,0,31
|
||||
2026-06-11T11:04:57,495,25.2,42,0,31
|
||||
2026-06-11T11:05:57,495,25.2,41,0,29
|
||||
2026-06-11T11:06:57,508,25.2,41,0,29
|
||||
2026-06-11T11:07:58,508,25.2,42,0,31
|
||||
2026-06-11T11:08:59,486,25.2,41,0,29
|
||||
2026-06-11T11:09:59,508,25.2,42,0,29
|
||||
2026-06-11T11:11:00,486,25.2,42,0,31
|
||||
2026-06-11T11:12:00,495,25.2,41,0,31
|
||||
2026-06-11T11:13:01,500,25.2,40,0,29
|
||||
2026-06-11T11:14:01,531,25.2,40,0,31
|
||||
2026-06-11T11:15:02,519,25.1,41,0,31
|
||||
2026-06-11T11:16:02,508,25.2,41,0,31
|
||||
2026-06-11T11:17:03,508,25.2,41,0,29
|
||||
2026-06-11T11:18:03,500,25.2,41,0,31
|
||||
2026-06-11T11:19:04,500,25.2,42,0,29
|
||||
2026-06-11T11:20:04,497,25.2,41,0,31
|
||||
2026-06-11T11:21:05,508,25.2,41,0,31
|
||||
2026-06-11T11:22:05,500,25.2,41,0,31
|
||||
2026-06-11T11:23:06,515,25.2,41,0,31
|
||||
2026-06-11T11:24:06,508,25.2,41,0,31
|
||||
2026-06-11T11:25:07,500,25.2,40,0,31
|
||||
2026-06-11T11:26:07,531,25.2,41,0,31
|
||||
2026-06-11T11:27:08,508,25.2,40,0,29
|
||||
2026-06-11T11:28:08,529,25.2,41,0,31
|
||||
2026-06-11T11:29:09,500,25.2,41,0,31
|
||||
2026-06-11T11:30:09,500,25.2,40,0,29
|
||||
2026-06-11T11:31:10,531,25.2,41,0,29
|
||||
2026-06-11T11:32:10,508,25.2,41,0,31
|
||||
2026-06-11T11:33:11,508,25.2,41,0,31
|
||||
2026-06-11T11:34:11,500,25.2,41,0,31
|
||||
2026-06-11T11:35:12,508,25.2,40,0,31
|
||||
2026-06-11T11:36:12,514,25.2,41,0,31
|
||||
2026-06-11T11:37:13,486,25.2,40,0,29
|
||||
2026-06-11T11:38:13,501,25.2,41,0,31
|
||||
2026-06-11T11:39:14,495,25.2,42,0,29
|
||||
2026-06-11T11:40:14,495,25.2,39,0,29
|
||||
2026-06-11T11:41:15,545,25.2,40,0,29
|
||||
2026-06-11T11:42:15,531,25.2,41,0,31
|
||||
2026-06-11T11:43:16,508,25.3,41,0,29
|
||||
2026-06-11T11:44:16,520,25.3,42,0,31
|
||||
2026-06-11T11:45:17,502,25.3,41,0,31
|
||||
2026-06-11T11:47:18,520,25.5,41,0,31
|
||||
2026-06-11T11:48:18,536,25.3,40,0,31
|
||||
2026-06-11T11:49:19,543,25.5,40,0,31
|
||||
2026-06-11T11:50:19,555,25.3,41,0,29
|
||||
2026-06-11T11:51:20,536,25.3,42,0,29
|
||||
2026-06-11T11:52:20,508,25.3,40,0,31
|
||||
2026-06-11T11:54:21,520,25.3,40,0,29
|
||||
2026-06-11T11:56:22,555,25.5,41,0,31
|
||||
2026-06-11T11:57:23,539,25.5,40,0,31
|
||||
2026-06-11T11:58:23,564,25.5,41,0,31
|
||||
2026-06-11T11:59:24,551,25.5,41,0,29
|
||||
2026-06-11T12:00:24,556,25.3,40,0,31
|
||||
2026-06-11T12:02:25,556,25.5,42,0,31
|
||||
2026-06-11T12:04:26,551,25.5,41,0,29
|
||||
2026-06-11T12:05:27,551,25.5,41,0,29
|
||||
2026-06-11T12:06:27,551,25.3,41,0,29
|
||||
2026-06-11T12:07:28,556,25.3,41,0,31
|
||||
2026-06-11T12:08:28,551,25.5,40,0,31
|
||||
2026-06-11T12:09:29,575,25.5,41,0,31
|
||||
2026-06-11T12:10:29,551,25.5,41,0,31
|
||||
2026-06-11T12:11:30,551,25.3,41,0,31
|
||||
2026-06-11T12:12:30,545,25.5,41,0,31
|
||||
2026-06-11T12:13:31,551,25.5,42,0,29
|
||||
2026-06-11T12:15:32,530,25.3,42,0,29
|
||||
2026-06-11T12:16:32,536,25.5,42,0,29
|
||||
2026-06-11T12:17:33,536,25.5,42,0,29
|
||||
2026-06-11T12:18:33,530,25.5,41,0,31
|
||||
2026-06-11T12:19:34,551,25.5,40,0,31
|
||||
2026-06-11T12:20:34,564,25.5,41,0,29
|
||||
2026-06-11T12:21:35,539,25.5,41,0,31
|
||||
2026-06-11T12:22:35,545,25.5,40,0,29
|
||||
2026-06-11T12:23:36,569,25.5,40,0,29
|
||||
2026-06-11T12:24:36,575,25.5,42,0,31
|
||||
2026-06-11T12:25:37,530,25.5,40,0,29
|
||||
2026-06-11T12:26:37,569,25.5,41,0,31
|
||||
2026-06-11T12:27:38,551,25.5,40,0,29
|
||||
2026-06-11T12:28:38,564,25.5,40,0,29
|
||||
2026-06-11T12:29:39,564,25.5,41,0,31
|
||||
2026-06-11T12:30:39,545,25.5,40,0,29
|
||||
2026-06-11T12:31:40,569,25.5,39,0,29
|
||||
2026-06-11T12:32:40,588,25.6,42,0,31
|
||||
2026-06-11T12:33:41,536,25.5,39,0,29
|
||||
2026-06-11T12:34:41,588,25.5,40,0,29
|
||||
2026-06-11T12:35:42,575,25.6,40,0,31
|
||||
2026-06-11T12:36:43,569,25.5,41,0,29
|
||||
2026-06-11T12:37:43,556,25.6,41,0,29
|
||||
2026-06-11T12:38:44,556,25.5,41,0,29
|
||||
2026-06-11T12:39:44,551,25.6,40,0,31
|
||||
2026-06-11T12:40:44,575,25.6,40,0,29
|
||||
2026-06-11T12:41:45,569,25.6,42,0,31
|
||||
2026-06-11T12:42:45,548,25.6,39,0,29
|
||||
2026-06-11T12:43:46,594,25.5,41,0,31
|
||||
2026-06-11T12:44:46,545,25.6,42,0,29
|
||||
2026-06-11T12:45:47,548,25.6,41,0,29
|
||||
2026-06-11T12:46:47,565,25.6,40,0,31
|
||||
2026-06-11T12:47:48,575,25.6,42,0,31
|
||||
2026-06-11T12:48:48,553,25.6,40,0,31
|
||||
2026-06-11T12:49:49,581,25.6,39,0,29
|
||||
2026-06-11T12:50:49,594,25.6,39,0,29
|
||||
2026-06-11T12:51:50,607,25.6,40,0,29
|
||||
2026-06-11T12:52:50,589,25.6,41,0,29
|
||||
2026-06-11T12:53:51,556,25.6,42,0,29
|
||||
2026-06-11T12:54:51,553,25.6,42,0,29
|
||||
2026-06-11T12:55:52,548,25.6,40,0,29
|
||||
2026-06-11T12:56:53,589,25.6,39,0,29
|
||||
2026-06-11T12:57:53,607,25.7,41,0,29
|
||||
2026-06-11T12:58:53,575,25.6,40,0,29
|
||||
2026-06-11T12:59:54,589,25.6,40,0,29
|
||||
2026-06-11T13:00:54,594,25.7,40,0,29
|
||||
2026-06-11T13:01:55,602,25.7,40,0,29
|
||||
2026-06-11T13:02:55,589,25.7,39,0,29
|
||||
2026-06-11T13:03:56,623,25.7,39,0,29
|
||||
2026-06-11T13:04:56,614,25.7,41,0,29
|
||||
2026-06-11T13:05:57,575,25.7,40,0,29
|
||||
2026-06-11T13:06:58,589,25.7,41,0,29
|
||||
2026-06-11T13:07:58,575,25.7,38,0,29
|
||||
2026-06-11T13:08:58,627,25.7,40,0,29
|
||||
2026-06-11T13:09:59,611,25.7,40,0,29
|
||||
2026-06-11T13:10:59,602,25.6,40,0,29
|
||||
2026-06-11T13:12:00,602,25.7,40,0,29
|
||||
2026-06-11T13:13:00,611,25.7,42,0,29
|
||||
2026-06-11T13:14:01,567,25.7,40,0,29
|
||||
2026-06-11T13:15:01,594,25.7,42,0,31
|
||||
2026-06-11T13:16:02,574,25.7,40,0,29
|
||||
2026-06-11T13:17:03,589,25.7,41,0,29
|
||||
2026-06-11T13:18:03,584,25.8,40,0,29
|
||||
2026-06-11T13:19:04,589,25.7,40,0,29
|
||||
2026-06-11T13:20:04,602,25.8,41,0,29
|
||||
2026-06-11T13:21:05,584,25.8,40,0,29
|
||||
2026-06-11T13:22:05,594,25.8,41,0,31
|
||||
2026-06-11T13:24:06,560,25.8,42,0,29
|
||||
2026-06-11T13:25:07,574,25.8,38,0,29
|
||||
2026-06-11T13:26:07,641,26,41,0,29
|
||||
2026-06-11T13:27:08,531,25.8,40,0,29
|
||||
2026-06-11T13:28:08,611,25.8,41,0,29
|
||||
2026-06-11T13:29:09,575,25.8,42,0,29
|
||||
2026-06-11T13:30:09,574,26,40,0,29
|
||||
2026-06-11T13:31:10,548,26,41,0,29
|
||||
2026-06-11T13:32:10,526,26,41,0,29
|
||||
2026-06-11T13:33:11,531,26,40,0,29
|
||||
2026-06-11T13:34:11,548,26,42,0,29
|
||||
2026-06-11T13:35:12,517,26,41,0,29
|
||||
2026-06-11T13:36:12,531,26,41,0,29
|
||||
2026-06-11T13:37:13,531,26,40,0,29
|
||||
2026-06-11T13:38:13,548,25.8,42,0,29
|
||||
2026-06-11T13:39:14,567,26,42,0,29
|
||||
2026-06-11T13:40:14,517,26,42,0,29
|
||||
2026-06-11T13:41:15,501,26,41,0,29
|
||||
2026-06-11T13:42:15,526,26,39,0,29
|
||||
2026-06-11T13:43:16,560,26,41,0,29
|
||||
2026-06-11T13:44:16,526,26,39,0,29
|
||||
2026-06-11T13:45:17,552,26,39,0,29
|
||||
2026-06-11T13:46:17,552,26,39,0,29
|
||||
2026-06-11T13:47:18,560,26,40,0,29
|
||||
2026-06-11T13:48:18,542,26,40,0,29
|
||||
2026-06-11T13:49:19,542,26,42,0,29
|
||||
2026-06-11T13:50:19,517,26,39,0,29
|
||||
2026-06-11T13:51:20,560,26,40,0,29
|
||||
2026-06-11T13:52:20,548,26,40,0,29
|
||||
2026-06-11T13:53:21,548,26,41,0,29
|
||||
2026-06-11T13:54:21,531,26,40,0,29
|
||||
2026-06-11T13:55:22,542,25.8,38,0,29
|
||||
2026-06-11T13:56:22,633,25.8,39,0,29
|
||||
2026-06-11T13:57:23,623,25.8,39,0,29
|
||||
2026-06-11T13:58:23,623,26,39,0,29
|
||||
2026-06-11T13:59:24,566,26,40,0,29
|
||||
2026-06-11T14:00:24,548,26,40,0,29
|
||||
2026-06-11T14:01:25,548,26,40,0,29
|
||||
2026-06-11T14:02:25,548,26,40,0,29
|
||||
2026-06-11T14:03:26,548,26,39,0,29
|
||||
2026-06-11T14:04:26,572,26,41,0,29
|
||||
2026-06-11T14:05:27,531,26,39,0,29
|
||||
2026-06-11T14:06:27,566,26,41,0,29
|
||||
2026-06-11T14:07:28,537,26,40,0,29
|
||||
2026-06-11T14:08:28,542,26,41,0,29
|
||||
2026-06-11T14:09:29,537,26,41,0,29
|
||||
2026-06-11T14:10:29,531,26,39,0,29
|
||||
2026-06-11T14:11:30,560,26.1,40,0,29
|
||||
2026-06-11T14:12:30,542,26.1,40,0,29
|
||||
2026-06-11T14:13:31,548,26.1,40,0,29
|
||||
2026-06-11T14:14:31,542,26.1,39,0,29
|
||||
2026-06-11T14:15:32,566,26.1,41,0,29
|
||||
2026-06-11T14:16:32,526,26.1,40,0,29
|
||||
2026-06-11T14:17:33,548,26.1,40,0,29
|
||||
2026-06-11T14:18:33,548,26.1,41,0,29
|
||||
2026-06-11T14:19:34,537,26.1,40,0,29
|
||||
2026-06-11T14:20:34,548,26.1,40,0,29
|
||||
2026-06-11T14:21:35,542,26.1,40,0,29
|
||||
2026-06-11T14:22:35,542,26.1,40,0,29
|
||||
2026-06-11T14:23:36,641,26.1,40,0,29
|
||||
2026-06-11T14:24:36,780,26.1,39,0,29
|
||||
2026-06-11T14:25:37,752,26.1,40,0,29
|
||||
2026-06-11T14:26:37,749,26.1,40,0,29
|
||||
2026-06-11T14:27:38,759,26.1,39,0,29
|
||||
2026-06-11T14:28:38,746,26.1,40,0,29
|
||||
2026-06-11T14:29:39,719,26.1,40,0,29
|
||||
2026-06-11T14:30:39,719,26.1,39,0,29
|
||||
2026-06-11T14:31:40,737,26.1,40,0,29
|
||||
2026-06-11T14:32:40,704,26.1,41,0,29
|
||||
2026-06-11T14:33:41,668,26.1,39,0,29
|
||||
2026-06-11T14:34:41,712,26.1,40,0,29
|
||||
2026-06-11T14:35:42,690,26.1,40,0,29
|
||||
2026-06-11T14:36:42,690,26.1,40,0,29
|
||||
2026-06-11T14:37:43,690,26.2,40,0,29
|
||||
2026-06-11T14:38:43,682,26.1,40,0,29
|
||||
2026-06-11T14:40:44,690,26.1,40,0,29
|
||||
2026-06-11T14:41:45,682,26.1,41,0,29
|
||||
2026-06-11T14:42:45,652,26.1,40,0,29
|
||||
2026-06-11T14:43:46,674,26.2,39,0,29
|
||||
2026-06-11T14:44:46,686,26.1,39,0,29
|
||||
2026-06-11T14:45:47,678,26.2,39,0,29
|
||||
2026-06-11T14:46:47,678,26.2,39,0,29
|
||||
2026-06-11T14:49:49,678,26.2,40,0,29
|
||||
2026-06-11T14:50:50,641,26.2,41,0,29
|
||||
2026-06-11T14:51:50,629,26.2,40,0,29
|
||||
2026-06-11T14:52:51,641,26.1,40,0,29
|
||||
2026-06-11T14:53:51,649,26.2,40,0,29
|
||||
2026-06-11T14:54:51,641,26.2,40,0,29
|
||||
2026-06-11T14:55:52,641,26.2,40,0,29
|
||||
2026-06-11T14:56:52,633,26.2,40,0,29
|
||||
2026-06-11T14:57:53,626,26.2,39,0,29
|
||||
2026-06-11T14:58:53,652,26.2,39,0,29
|
||||
2026-06-11T14:59:54,627,26.2,39,0,29
|
||||
2026-06-11T15:00:54,645,26.2,40,0,29
|
||||
2026-06-11T15:01:55,633,26.3,40,0,29
|
||||
2026-06-11T15:02:55,600,26.2,39,0,29
|
||||
2026-06-11T15:03:56,638,26.3,39,0,29
|
||||
2026-06-11T15:04:56,638,26.3,40,0,29
|
||||
2026-06-11T15:05:57,626,26.3,40,0,29
|
||||
2026-06-11T15:06:57,626,26.5,39,0,29
|
||||
2026-06-11T15:07:58,652,26.5,41,0,29
|
||||
2026-06-11T15:08:58,581,26.5,39,0,29
|
||||
2026-06-11T15:09:59,645,26.5,40,0,27
|
||||
2026-06-11T15:11:00,626,26.6,40,0,27
|
||||
2026-06-11T15:12:00,641,26.6,40,0,29
|
||||
2026-06-11T15:14:01,637,26.6,40,0,29
|
||||
2026-06-11T15:15:02,656,26.7,40,0,27
|
||||
2026-06-11T15:16:02,665,26.7,41,0,29
|
||||
2026-06-11T15:17:02,637,26.7,40,0,29
|
||||
2026-06-11T15:18:03,665,26.7,40,0,29
|
||||
2026-06-11T15:19:03,665,26.6,40,0,29
|
||||
2026-06-11T15:20:04,674,26.7,40,0,29
|
||||
2026-06-11T15:21:04,665,26.7,40,0,29
|
||||
2026-06-11T15:22:05,674,26.7,40,0,29
|
||||
2026-06-11T15:23:06,682,26.7,41,0,29
|
||||
2026-06-11T15:24:06,652,26.8,40,0,29
|
||||
2026-06-11T15:25:06,682,26.8,41,0,29
|
||||
2026-06-11T15:26:07,652,26.8,40,0,29
|
||||
2026-06-11T15:27:07,682,26.8,40,0,29
|
||||
2026-06-11T15:28:08,682,26.8,40,0,29
|
||||
2026-06-11T15:29:09,682,26.8,40,0,29
|
||||
2026-06-11T15:30:09,682,26.7,40,0,29
|
||||
2026-06-11T15:31:10,682,26.7,40,0,29
|
||||
2026-06-11T15:32:10,682,26.7,41,0,27
|
||||
2026-06-11T15:33:11,659,26.7,40,0,29
|
||||
2026-06-11T15:34:11,682,26.7,41,0,27
|
||||
2026-06-11T15:36:12,659,26.8,40,0,29
|
||||
2026-06-11T15:37:13,690,26.8,40,0,29
|
||||
2026-06-11T15:38:13,674,26.8,40,0,29
|
||||
2026-06-11T15:39:14,690,26.7,41,0,27
|
||||
2026-06-11T15:40:14,659,26.8,40,0,29
|
||||
2026-06-11T15:42:15,682,26.8,40,0,29
|
||||
2026-06-11T15:43:16,682,26.7,40,0,29
|
||||
2026-06-11T15:44:16,674,26.8,40,0,27
|
||||
2026-06-11T15:45:17,682,26.8,40,0,29
|
||||
2026-06-11T15:46:17,674,26.8,40,0,29
|
||||
2026-06-11T15:47:18,665,26.7,40,0,29
|
||||
2026-06-11T15:48:18,665,26.7,40,0,29
|
||||
2026-06-11T15:49:19,665,26.7,40,0,27
|
||||
2026-06-11T15:50:19,665,26.7,40,0,29
|
||||
2026-06-11T15:51:20,656,26.8,40,0,29
|
||||
2026-06-11T15:52:20,656,26.7,40,0,29
|
||||
2026-06-11T15:53:21,649,26.7,40,0,29
|
||||
2026-06-11T15:54:21,656,26.8,40,0,29
|
||||
2026-06-11T15:55:22,665,26.8,41,0,29
|
||||
2026-06-11T15:56:22,643,26.8,40,0,27
|
||||
2026-06-11T15:57:23,665,26.8,40,0,29
|
||||
2026-06-11T15:58:23,665,26.8,40,0,29
|
||||
2026-06-11T15:59:24,665,26.8,40,0,29
|
||||
2026-06-11T16:00:24,674,26.8,40,0,27
|
||||
2026-06-11T16:01:25,674,26.8,40,0,29
|
||||
2026-06-11T16:02:25,674,26.8,40,0,29
|
||||
2026-06-11T16:03:26,674,26.8,40,0,29
|
||||
2026-06-11T16:04:26,665,26.8,40,0,29
|
||||
2026-06-11T16:05:27,665,26.8,40,0,29
|
||||
2026-06-11T16:06:27,674,26.8,40,0,25
|
||||
2026-06-11T16:07:28,674,26.8,40,0,29
|
||||
2026-06-11T16:08:28,674,26.8,39,0,27
|
||||
2026-06-11T16:09:29,697,26.8,40,0,29
|
||||
2026-06-11T16:10:29,665,26.8,39,0,29
|
||||
2026-06-11T16:11:30,697,26.8,40,0,29
|
||||
2026-06-11T16:12:30,674,26.8,39,0,29
|
||||
2026-06-11T16:13:31,697,26.8,40,0,29
|
||||
2026-06-11T16:14:31,674,26.8,40,0,29
|
||||
2026-06-11T16:16:32,665,27,40,0,29
|
||||
2026-06-11T16:17:33,597,27,40,0,29
|
||||
2026-06-11T16:18:33,591,26.8,40,0,29
|
||||
2026-06-11T16:19:34,656,26.8,40,0,29
|
||||
2026-06-11T16:20:34,665,27,41,0,29
|
||||
2026-06-11T16:21:35,578,26.8,41,0,29
|
||||
2026-06-11T16:22:35,643,27,40,0,29
|
||||
2026-06-11T16:23:36,597,27,41,0,29
|
||||
2026-06-11T16:24:36,566,27,41,0,29
|
||||
2026-06-11T16:25:37,566,26.8,41,0,29
|
||||
2026-06-11T16:26:37,637,27,41,0,29
|
||||
2026-06-11T16:27:38,578,27,41,0,29
|
||||
2026-06-11T16:28:38,572,26.8,40,0,29
|
||||
2026-06-11T16:29:39,649,26.8,41,0,29
|
||||
|
@@ -1,23 +1,40 @@
|
||||
#import "/resources/measures/plot_measures.typ": *
|
||||
|
||||
#let start-date = datetime(year: 2026, month: 5, day: 27, hour: 14, minute: 0, second: 0)
|
||||
#let stop-date = datetime(year: 2026, month: 5, day: 27, hour: 17, minute: 59, second: 59)
|
||||
#let start-date = datetime(year: 2026, month: 6, day: 11, hour: 10, minute: 0, second: 0)
|
||||
#let stop-date = datetime(year: 2026, month: 6, day: 11, hour: 17, minute: 59, second: 59)
|
||||
|
||||
// #let node = "A2-C2_64_0F_68_35_3E"
|
||||
// #let node = "A2-C6_7E_0A_DE_DA_74"
|
||||
// #let node = "A2-E1_C0_30_15_4E_89"
|
||||
// #let node = "A2-E8_F3_0A_F7_3B_F3"
|
||||
// #let node = "A2-C6_95_1B_A6_49_E6" // Windows
|
||||
#let node = "A2-F5_80_05_76_53_F0" // Windows
|
||||
#set page(height: auto)
|
||||
|
||||
= Indoor Air Quality Analysis
|
||||
Data range: #start-date.display("[day] [month repr:long] [year] [hour]h[minute]") to #stop-date.display("[day] [month repr:long] [year] [hour]h[minute]")
|
||||
|
||||
|
||||
#let node = "A3-DC_06_D9_40_7A_CB"
|
||||
== CO2 Level #node
|
||||
|
||||
#plot_co2("/resources/measures/" + node + ".csv", start-date, stop-date)
|
||||
|
||||
#let node = "A3-E6_8A_79_C8_87_25"
|
||||
== CO2 Level #node
|
||||
|
||||
#plot_co2("/resources/measures/" + node + ".csv", start-date, stop-date)
|
||||
|
||||
#let node = "A3-ED_B2_F3_74_3E_C2"
|
||||
== CO2 Level #node
|
||||
|
||||
#plot_co2("/resources/measures/" + node + ".csv", start-date, stop-date)
|
||||
|
||||
#pagebreak()
|
||||
#let node = "A3-DC_06_D9_40_7A_CB"
|
||||
== Temperature / Humidity #node
|
||||
|
||||
#plot_temp_hum("/resources/measures/" + node + ".csv", start-date, stop-date)
|
||||
|
||||
#let node = "A3-E6_8A_79_C8_87_25"
|
||||
== Temperature / Humidity #node
|
||||
|
||||
#plot_temp_hum("/resources/measures/" + node + ".csv", start-date, stop-date)
|
||||
|
||||
#let node = "A3-ED_B2_F3_74_3E_C2"
|
||||
== Temperature / Humidity #node
|
||||
|
||||
#plot_temp_hum("/resources/measures/" + node + ".csv", start-date, stop-date)
|
||||
|
||||
@@ -128,6 +128,11 @@
|
||||
key: "svg",
|
||||
short: "SVG",
|
||||
long: "Scalable Vector Graphics"
|
||||
),
|
||||
(
|
||||
key: "trl",
|
||||
short: "TRL",
|
||||
long: "Technical Readiness Level"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
44
ui/CHANGELOG.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [unreleased]
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- *(ui)* Initialize Angular 18 dashboard project
|
||||
- *(ui)* Create organized folder structure for application
|
||||
- *(ui)* Configure routing with lazy-loaded components
|
||||
- *(ci)* Add Docker build, push and SSH deploy pipeline *(🤖 Claude:claude-sonnet-4-6)*
|
||||
- *(ui)* Implement interactive room map with REST services and unit tests
|
||||
- *(ui)* Interactive room map, detail panel redesign and polling
|
||||
- *(ui)* Dynamic room polling, secure credentials and CO2 levels
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(ui)* Add environment.prod.ts for production builds
|
||||
- *(ui)* Address code review feedback
|
||||
- *(ui)* Remove hardcoded credentials and make CO2 spec config-driven
|
||||
|
||||
### 🚜 Refactor
|
||||
|
||||
- *(ui)* Simplify room names and remove dead code
|
||||
|
||||
### 🎨 Styling
|
||||
|
||||
- *(ui)* Apply Prettier formatting
|
||||
- *(ui)* Apply Prettier formatting *(🤖 Claude:claude-sonnet-4-6)*
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Init
|
||||
- *(ui)* Setup GitHub Actions CI/CD pipeline
|
||||
- *(ui)* Remove commented-out gitignore line for environment.prod.ts
|
||||
- *(ui)* Add plan.svg floor plan asset
|
||||
- Remove useless gitkeep file
|
||||
- Add changelogs
|
||||
|
||||
### 🤖 AI Assistance Repartition
|
||||
- **Claude:claude-sonnet-4-6**: 2 commits
|
||||
|
||||
<!-- generated by git-cliff -->
|
||||