23 Commits

Author SHA1 Message Date
925a9a619c chore(changelog): add AI assistance mention to changelog
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-14 16:35:16 +02:00
f01c4a9ed0 chore(changelog): add AI assistance mention to changelog
Add a mention next to the commit message when the commit is AI assisted
and group AI models used in an 'AI Assistance Repartition' section.

Assisted-by: Zed:gemini-3.1-pro
2026-06-14 16:35:16 +02:00
0842b7b280 chore: add changelogs
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-14 16:35:16 +02:00
fa9c852b8d docs(reports): final tidy up before presentation
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-14 16:24:40 +02:00
8e85c5e20d docs(reports): add A3 co2 curves of the presentation day
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-14 16:17:24 +02:00
4bce5e5ee2 docs(reports): sequence helper in chronos
Co-authored-by: LordBaryhobal <lordbaryhobal@gmail.com>
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-10 22:01:44 +02:00
26f1553e26 docs(reports): backup from typst online
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-10 22:00:34 +02:00
5902a47605 docs(reports): add ui + db
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-10 13:33:45 +02:00
09ee22ff50 docs(reports): init final presentation
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-10 13:27:38 +02:00
964a2d3375 chores: remove release file from repo
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-04 21:45:20 +02:00
5ca64315eb chores: remove zephyr sample file
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-04 21:44:53 +02:00
9b06b9f6f7 chores: remove useless gitkeep file
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-04 21:44:31 +02:00
2ec7eefaa0 chore: remove .DS_STORE
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-04 21:20:38 +02:00
3293d9194c docs(GULAG): fix typo
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-04 21:20:38 +02:00
adrien balleyguier
d593dfd759 feat(nodes): setting the fastest BLE advertising frequency to 1 minute instead of 2
This is motivated by the measure period by the css811 sensor, which is 1 minute and cannot be set to 2.
Hence, we adverstise every minute to avoid trashing half of the measurements
2026-06-04 21:01:43 +02:00
adrien balleyguier
83705f4b5e fix(nodes): reduce battery consumption
co-authored-by: Klagarge <remi@heredero.ch>
co-authored-by: Terrazed <simon.donnet-monay@nordicsemi.no>
2026-06-04 21:01:43 +02:00
adrien balleyguier
dffdcd36db feat(nodes): using an explicit thread, as it may cause the huge battery usage 2026-06-04 21:01:43 +02:00
adrien balleyguier
676913e280 feat(nodes): adding battery percent as new key/value in the BLE frame
Closes: #66
2026-06-04 21:01:43 +02:00
adrien balleyguier
8a559024a6 feat(nodes): add the battery level in the ble frame
wip: The battery_setup fails for some unknown reasons
2026-06-04 21:01:43 +02:00
adrien balleyguier
7c19b5dadb fix(nodes): using MAC address as BT_ADDR 2026-06-04 21:01:42 +02:00
adrien balleyguier
c4e1315478 feat(nodes): adding management of read error on each values, hence
Closes: #65
2026-06-04 21:01:42 +02:00
adrien balleyguier
6b12612580 fix(nodes): changing incorrect comment 2026-06-04 21:01:42 +02:00
adrien balleyguier
c32728ccbe doc(nodes): adding comments in the nodes code
close #62
2026-06-04 21:01:42 +02:00
73 changed files with 3388 additions and 4460 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -2,7 +2,7 @@
## General
- Git history **has** to be kept linear. Branches **have** to be __rebased__ before being merged.
- Merge commit is stricly forbidden.
- Merge commit is strictly forbidden.
- Force pushes are disallowed on shared branches unless discussed beforehand with affected people.
## Branches

110
cliff.toml Normal file
View 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
View 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 -->

View File

59
gateway/CHANGELOG.md Normal file
View 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 -->

View File

62
nodes/CHANGELOG.md Normal file
View 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 -->

View File

@@ -4,4 +4,5 @@ cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(plein_de_eeeeeeeeeeee)
target_sources(app PRIVATE src/main.c src/window_status.c src/window_status.h src/thermometer.c src/thermometer.h src/hygrometer.c src/hygrometer.h src/co2_level.c src/co2_level.h src/supervisor.c src/supervisor.h src/ble_advertiser.c src/ble_advertiser.h)
target_sources(app PRIVATE src/main.c src/window_status.c src/window_status.h src/thermometer.c src/thermometer.h src/hygrometer.c src/hygrometer.h src/co2_level.c src/co2_level.h src/supervisor.c src/supervisor.h src/ble_advertiser.c src/ble_advertiser.h src/battery_percent.h src/battery_percent.c)
target_sources(app PRIVATE src/modules/battery.h src/modules/battery.c)

View File

@@ -1,97 +0,0 @@
.. zephyr:code-sample:: blinky
:name: Blinky
:relevant-api: gpio_interface
Blink an LED forever using the GPIO API.
Overview
********
The Blinky sample blinks an LED forever using the :ref:`GPIO API <gpio_api>`.
The source code shows how to:
#. Get a pin specification from the :ref:`devicetree <dt-guide>` as a
:c:struct:`gpio_dt_spec`
#. Configure the GPIO pin as an output
#. Toggle the pin forever
See :zephyr:code-sample:`pwm-blinky` for a similar sample that uses the PWM API instead.
.. _blinky-sample-requirements:
Requirements
************
Your board must:
#. Have an LED connected via a GPIO pin (these are called "User LEDs" on many of
Zephyr's :ref:`boards`).
#. Have the LED configured using the ``led0`` devicetree alias.
Building and Running
********************
Build and flash Blinky as follows, changing ``reel_board`` for your board:
.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: reel_board
:goals: build flash
:compact:
After flashing, the LED starts to blink and messages with the current LED state
are printed on the console. If a runtime error occurs, the sample exits without
printing to the console.
Build errors
************
You will see a build error at the source code line defining the ``struct
gpio_dt_spec led`` variable if you try to build Blinky for an unsupported
board.
On GCC-based toolchains, the error looks like this:
.. code-block:: none
error: '__device_dts_ord_DT_N_ALIAS_led_P_gpios_IDX_0_PH_ORD' undeclared here (not in a function)
Adding board support
********************
To add support for your board, add something like this to your devicetree:
.. code-block:: DTS
/ {
aliases {
led0 = &myled0;
};
leds {
compatible = "gpio-leds";
myled0: led_0 {
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
};
};
};
The above sets your board's ``led0`` alias to use pin 13 on GPIO controller
``gpio0``. The pin flags :c:macro:`GPIO_ACTIVE_LOW` mean the LED is on when
the pin is set to its low state, and off when the pin is in its high state.
Tips:
- See :dtcompatible:`gpio-leds` for more information on defining GPIO-based LEDs
in devicetree.
- If you're not sure what to do, check the devicetrees for supported boards which
use the same SoC as your target. See :ref:`get-devicetree-outputs` for details.
- See :zephyr_file:`include/zephyr/dt-bindings/gpio/gpio.h` for the flags you can use
in devicetree.
- If the LED is built in to your board hardware, the alias should be defined in
your :ref:`BOARD.dts file <devicetree-in-out-files>`. Otherwise, you can
define one in a :ref:`devicetree overlay <set-devicetree-overlays>`.

View File

@@ -1,3 +1,16 @@
CONFIG_ADC=y
CONFIG_I2C=y
CONFIG_SENSOR=y
CONFIG_BT=y
CONFIG_GPIO=y
CONFIG_LOG=n
CONFIG_CONSOLE=n
CONFIG_SERIAL=n
CONFIG_PRINTK=n
CONFIG_UART_CONSOLE=n
CONFIG_PM=y
CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y
CONFIG_CCS811_DRIVE_MODE_3=y

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +0,0 @@
sample:
name: Blinky Sample
tests:
sample.basic.blinky:
tags:
- LED
- gpio
filter: dt_enabled_alias_with_parent_compat("led0", "gpio-leds")
depends_on: gpio
harness: led
integration_platforms:
- frdm_k64f

View File

@@ -0,0 +1,42 @@
#include "battery_percent.h"
/**
* Taken from sample/board/nordic/battery/src/main.c
* A discharge curve specific to the power source.
*/
static const struct battery_level_point levels[] = {
/* "Curve" here eyeballed from captured data for the [Adafruit
* 3.7v 2000 mAh](https://www.adafruit.com/product/2011) LIPO
* under full load that started with a charge of 3.96 V and
* dropped about linearly to 3.58 V over 15 hours. It then
* dropped rapidly to 3.10 V over one hour, at which point it
* stopped transmitting.
*
* Based on eyeball comparisons we'll say that 15/16 of life
* goes between 3.95 and 3.55 V, and 1/16 goes between 3.55 V
* and 3.1 V.
*/
{ 10000, 3950 },
{ 625, 3550 },
{ 0, 3100 },
};
enum error_code battery_init(){
enum error_code ret = init_failed;
if(0 == battery_measure_enable(true)){
ret = success;
}else{}
return ret;
}
enum error_code battery_get_value(int* holder){
enum error_code ret = read_failed;
// battery_voltage in [mV]
int battery_voltage = battery_sample();
if(battery_voltage >= 0){
*holder = (battery_level_pptt(battery_voltage, levels)/100);
ret = success;
}else{}
return ret;
}

View File

@@ -0,0 +1,27 @@
#ifndef BATTERY_PERCENT_H
#define BATTERY_PERCENT_H
#include <zephyr/kernel.h>
#include "modules/battery.h"
#include "error_code.h"
/**
* @brief init the battery module
* @return init_failed upon any error during init
* @return success otherwise
*/
enum error_code battery_init();
/**
* @brief Retrieve the battery charge percentage and stores it in the given parameter
* @param[out] holder : pointer where the measurement will be stored
* @return read_failed upon any error occuring during measurement
* @return success otherwise
* @note the content of holder should not be trusted upon returning something else than success
*/
enum error_code battery_get_value(int* holder);
#endif //BATTERY_PERCENT_H

View File

@@ -2,10 +2,13 @@
static const int BT_MS_ADV_UP = 500; // [ms] time during which the advertising is active
// keys as defined in the specs
static const char BT_KEY_SIZE = 1; // [B]
static const char BT_KEY_WINDOW = 0x01;
static const char BT_KEY_HUMIDITY = 0x02;
static const char BT_KEY_TEMP = 0x03;
static const char BT_KEY_CO2_LVL = 0x04;
static const char BT_KEY_BATT = 0x05;
// value size [B]
static const char BT_PREAMBLE_SIZE = 2;
@@ -13,23 +16,31 @@ static const char BT_VALUE_SIZE_WINDOW = 1;
static const char BT_VALUE_SIZE_HUMIDITY = 1;
static const char BT_VALUE_SIZE_TEMP = 2;
static const char BT_VALUE_SIZE_CO2_LVL = 4;
static const char BT_VALUE_SIZE_BATT = 1;
static const int BT_AD_DATA_INDEX_WINDOW = BT_PREAMBLE_SIZE + 1;
static const int BT_AD_DATA_INDEX_HUMIDITY = BT_AD_DATA_INDEX_WINDOW + 2;
static const int BT_AD_DATA_INDEX_TEMP = BT_AD_DATA_INDEX_HUMIDITY + 2;
static const int BT_AD_DATA_INDEX_CO2_LVL = BT_AD_DATA_INDEX_TEMP + 3;
// value start index in the frame - equal to {prior field index + prior value size + key size}
static const int BT_AD_DATA_INDEX_WINDOW = BT_PREAMBLE_SIZE + BT_KEY_SIZE;
static const int BT_AD_DATA_INDEX_HUMIDITY = BT_AD_DATA_INDEX_WINDOW + BT_VALUE_SIZE_WINDOW + BT_KEY_SIZE;
static const int BT_AD_DATA_INDEX_TEMP = BT_AD_DATA_INDEX_HUMIDITY + BT_VALUE_SIZE_HUMIDITY + BT_KEY_SIZE;
static const int BT_AD_DATA_INDEX_CO2_LVL = BT_AD_DATA_INDEX_TEMP + BT_VALUE_SIZE_TEMP + BT_KEY_SIZE;
static const int BT_AD_DATA_INDEX_BATT = BT_AD_DATA_INDEX_CO2_LVL + BT_VALUE_SIZE_CO2_LVL + BT_KEY_SIZE;
// sum of all value size + size for all keys
// sum of all value size + size for all keys + size preamble
static const char BT_AD_TOTAL_SIZE =
BT_VALUE_SIZE_WINDOW + BT_VALUE_SIZE_HUMIDITY + BT_VALUE_SIZE_TEMP + BT_VALUE_SIZE_CO2_LVL + 4 + 2;
BT_PREAMBLE_SIZE + (5 * BT_KEY_SIZE) +
BT_VALUE_SIZE_WINDOW + BT_VALUE_SIZE_HUMIDITY + BT_VALUE_SIZE_TEMP + BT_VALUE_SIZE_CO2_LVL + BT_VALUE_SIZE_BATT;
// data field in the broadcasted frame
// all values are set to 0 and the "company id" field is set to 0xffff
static uint8_t ad_data[] = {
0xff, 0xff,
BT_KEY_WINDOW, 0x00,
BT_KEY_HUMIDITY, 0x00,
BT_KEY_TEMP, 0x00, 0x00,
BT_KEY_CO2_LVL, 0x00, 0x00, 0x00, 0x00
BT_KEY_CO2_LVL, 0x00, 0x00, 0x00, 0x00,
BT_KEY_BATT, 0x00
};
// frame that will be broadcasted
static const struct bt_data ad[] = {
BT_DATA(BT_DATA_MANUFACTURER_DATA, ad_data, BT_AD_TOTAL_SIZE),
};
@@ -42,13 +53,14 @@ enum error_code ble_advertise(
enum window_status window_value,
int hygro_value,
int thermo_value,
int co2_lvl_value
int co2_lvl_value,
int batt_value
){
enum error_code ret = write_failed;
int shift = 0;
// set values here
ad_data[BT_AD_DATA_INDEX_WINDOW] = (uint8_t)(window_value == open ? 0x1 : 0x0);
ad_data[BT_AD_DATA_INDEX_HUMIDITY] = (uint8_t)(hygro_value & 0xff);
ad_data[BT_AD_DATA_INDEX_BATT] = (uint8_t)(batt_value & 0xff);
for(int i=0;i<BT_VALUE_SIZE_TEMP;i++){
shift = 8 * (BT_VALUE_SIZE_TEMP - i - 1);
ad_data[BT_AD_DATA_INDEX_TEMP + i] = (uint8_t)((thermo_value>>(shift)) & 0xff);
@@ -57,7 +69,7 @@ enum error_code ble_advertise(
shift = 8 * (BT_VALUE_SIZE_CO2_LVL - i - 1);
ad_data[BT_AD_DATA_INDEX_CO2_LVL + i] = (uint8_t)((co2_lvl_value>>(shift)) & 0xff);
}
if(0 == bt_le_adv_start(BT_LE_ADV_NCONN, ad, ARRAY_SIZE(ad), NULL, 0)){
if(0 == bt_le_adv_start(BT_LE_ADV_NCONN_IDENTITY, ad, ARRAY_SIZE(ad), NULL, 0)){
k_msleep(BT_MS_ADV_UP);
if(0 == bt_le_adv_stop()){
ret = success;

View File

@@ -8,12 +8,30 @@
#include "error_code.h"
#include "window_status.h"
/**
* @brief Initialise the ble module
* @return init_failed upon any error occuring during init
* @return success otherwise
*/
enum error_code ble_init();
/**
* @brief Sets the given values as data and broadcast the BLE frame
* @param window_value : window opening status in {open/closed}
* @param hygro_value : humidity percentage [%]
* @param thermo_value : temperature in [d°C]
* @param co2_lvl_value : co2 level in [ppm]
* @param battery_percent_value : battery current level of charge [%]
* @return write_failed if any problem occur during the BLE broadcast
* @return success otherwise
* @note The broadcast is stopped at the return time
*/
enum error_code ble_advertise(
enum window_status window_value,
int hygro_value,
int thermo_value,
int co2_lvl_value
int co2_lvl_value,
int batt_value
);
#endif //BLE_ADVERTISER_H

View File

@@ -22,9 +22,10 @@ enum error_code co2_lvl_get_value(int* holder){
temp.val2 = temp_value%10;
// humidity conversion is straight away
humidity.val1 = humidity_value;
if(
// co2 measurement requires temperature and humidity
(0 == ccs811_envdata_update(dev, &temp, &humidity)) &&
// fetch is required to update sensor read data
(0 == sensor_sample_fetch(dev)) &&
(0 == sensor_channel_get(dev, SENSOR_CHAN_CO2, &co2))
){

View File

@@ -10,7 +10,21 @@
extern const int CO2_LEVEL_EMPTY_ROOM; // [ppm]
/**
* @brief init the co2 level measurement module
* @return init_failed upon any error during init
* @return success otherwise
*/
enum error_code co2_lvl_init();
/**
* @brief Retrieve the CO2 level measurement and stores it in the given parameter
* @param[out] holder : pointer where the measurement will be stored
* @return read_failed upon any error occuring during measurement
* @return success otherwise
* @note the content of holder should not be trusted upon returning something else than success
* @note the value is not read for the first few measurements after a reboot
*/
enum error_code co2_lvl_get_value(int* holder);
#endif //CO2_LEVEL_H

View File

@@ -3,12 +3,13 @@
#include <limits.h>
// enum of all error code that may occur during the plein_de_eeeeeeeeeeeeeee application runtime
enum error_code{
success = 0,
init_failed,
read_failed,
write_failed,
error_unknown,
success = 0, // any kind of success
init_failed, // error related to initialization
read_failed, // error related to reading action
write_failed, // error related to writing action
error_unknown, // any error not linked to other code
error_code_last, // iteration purpose
};

View File

@@ -13,7 +13,9 @@ enum error_code hygro_init(){
enum error_code hygro_get_value(int* holder){
enum error_code ret = read_failed;
struct sensor_value humidity;
if( (sensor_sample_fetch(dev) >= 0) &&
if(
// fetch is required to update sensor read data
(sensor_sample_fetch(dev) >= 0) &&
(sensor_channel_get(dev, SENSOR_CHAN_HUMIDITY, &humidity) >= 0)
){
*holder = humidity.val1; //taking only the integer part

View File

@@ -7,7 +7,20 @@
#include "error_code.h"
/**
* @brief init the hygrometer module
* @return init_failed upon any error during init
* @return success otherwise
*/
enum error_code hygro_init();
/**
* @brief Retrieve the humidity level and stores it in the given parameter
* @param[out] holder : pointer where the measurement will be stored
* @return read_failed upon any error occuring during measurement
* @return success otherwise
* @note the content of holder should not be trusted upon returning something else than success
*/
enum error_code hygro_get_value(int* holder);
#endif //HYGROMETER_H

View File

@@ -10,9 +10,9 @@
#include "supervisor.h"
int main(void){
supervisor_init();
supervisor_run();
// should never come here
return 0;
}
// size of a stack used by the supervisor thread
#define STACKSIZE 1024
// scheduling priority used by the supervisor thread
#define PRIORITY 7
K_THREAD_DEFINE(supervisor_id, STACKSIZE, thread_supervisor, NULL, NULL, NULL, PRIORITY, 0, 0);

231
nodes/src/modules/battery.c Normal file
View File

@@ -0,0 +1,231 @@
/*
* Copyright (c) 2018-2019 Peter Bigot Consulting, LLC
* Copyright (c) 2019-2020 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <zephyr/kernel.h>
#include <zephyr/init.h>
#include <zephyr/drivers/gpio.h>
#include <zephyr/drivers/adc.h>
#include <zephyr/drivers/sensor.h>
#include <zephyr/logging/log.h>
#include "battery.h"
LOG_MODULE_REGISTER(BATTERY, CONFIG_ADC_LOG_LEVEL);
#define VBATT DT_PATH(vbatt)
#define ZEPHYR_USER DT_PATH(zephyr_user)
#ifdef CONFIG_BOARD_THINGY52_NRF52832
/* This board uses a divider that reduces max voltage to
* reference voltage (600 mV).
*/
#define BATTERY_ADC_GAIN ADC_GAIN_1
#else
/* Other boards may use dividers that only reduce battery voltage to
* the maximum supported by the hardware (3.6 V)
*/
#define BATTERY_ADC_GAIN ADC_GAIN_1_6
#endif
struct io_channel_config {
uint8_t channel;
};
struct divider_config {
struct io_channel_config io_channel;
struct gpio_dt_spec power_gpios;
/* output_ohm is used as a flag value: if it is nonzero then
* the battery is measured through a voltage divider;
* otherwise it is assumed to be directly connected to Vdd.
*/
uint32_t output_ohm;
uint32_t full_ohm;
};
static const struct divider_config divider_config = {
#if DT_NODE_HAS_STATUS_OKAY(VBATT)
.io_channel = {
DT_IO_CHANNELS_INPUT(VBATT),
},
.power_gpios = GPIO_DT_SPEC_GET_OR(VBATT, power_gpios, {}),
.output_ohm = DT_PROP(VBATT, output_ohms),
.full_ohm = DT_PROP(VBATT, full_ohms),
#else /* /vbatt exists */
.io_channel = {
DT_IO_CHANNELS_INPUT(ZEPHYR_USER),
},
#endif /* /vbatt exists */
};
struct divider_data {
const struct device *adc;
struct adc_channel_cfg adc_cfg;
struct adc_sequence adc_seq;
int16_t raw;
};
static struct divider_data divider_data = {
#if DT_NODE_HAS_STATUS_OKAY(VBATT)
.adc = DEVICE_DT_GET(DT_IO_CHANNELS_CTLR(VBATT)),
#else
.adc = DEVICE_DT_GET(DT_IO_CHANNELS_CTLR(ZEPHYR_USER)),
#endif
};
static int divider_setup(void)
{
const struct divider_config *cfg = &divider_config;
const struct io_channel_config *iocp = &cfg->io_channel;
const struct gpio_dt_spec *gcp = &cfg->power_gpios;
struct divider_data *ddp = &divider_data;
struct adc_sequence *asp = &ddp->adc_seq;
struct adc_channel_cfg *accp = &ddp->adc_cfg;
int rc;
if (!device_is_ready(ddp->adc)) {
LOG_ERR("ADC device is not ready %s", ddp->adc->name);
return -ENOENT;
}
if (gcp->port) {
if (!device_is_ready(gcp->port)) {
LOG_ERR("%s: device not ready", gcp->port->name);
return -ENOENT;
}
rc = gpio_pin_configure_dt(gcp, GPIO_OUTPUT_INACTIVE);
if (rc != 0) {
LOG_ERR("Failed to control feed %s.%u: %d",
gcp->port->name, gcp->pin, rc);
return rc;
}
}
*asp = (struct adc_sequence){
.channels = BIT(0),
.buffer = &ddp->raw,
.buffer_size = sizeof(ddp->raw),
.oversampling = 4,
.calibrate = true,
};
#ifdef CONFIG_ADC_NRFX_SAADC
*accp = (struct adc_channel_cfg){
.gain = BATTERY_ADC_GAIN,
.reference = ADC_REF_INTERNAL,
.acquisition_time = ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS, 40),
};
if (cfg->output_ohm != 0) {
accp->input_positive = SAADC_CH_PSELP_PSELP_AnalogInput0
+ iocp->channel;
} else {
accp->input_positive = SAADC_CH_PSELP_PSELP_VDD;
}
asp->resolution = 14;
#else /* CONFIG_ADC_var */
#error Unsupported ADC
#endif /* CONFIG_ADC_var */
rc = adc_channel_setup(ddp->adc, accp);
LOG_INF("Setup AIN%u got %d", iocp->channel, rc);
return rc;
}
static bool battery_ok;
static int battery_setup(void)
{
int rc = divider_setup();
battery_ok = (rc == 0);
LOG_INF("Battery setup: %d %d", rc, battery_ok);
return rc;
}
SYS_INIT(battery_setup, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY);
int battery_measure_enable(bool enable)
{
int rc = -ENOENT;
if (battery_ok) {
const struct gpio_dt_spec *gcp = &divider_config.power_gpios;
rc = 0;
if (gcp->port) {
rc = gpio_pin_set_dt(gcp, enable);
}
}
return rc;
}
int battery_sample(void)
{
int rc = -ENOENT;
if (battery_ok) {
struct divider_data *ddp = &divider_data;
const struct divider_config *dcp = &divider_config;
struct adc_sequence *sp = &ddp->adc_seq;
rc = adc_read(ddp->adc, sp);
sp->calibrate = false;
if (rc == 0) {
int32_t val = ddp->raw;
adc_raw_to_millivolts(adc_ref_internal(ddp->adc),
ddp->adc_cfg.gain,
sp->resolution,
&val);
if (dcp->output_ohm != 0) {
rc = val * (uint64_t)dcp->full_ohm
/ dcp->output_ohm;
LOG_INF("raw %u ~ %u mV => %d mV\n",
ddp->raw, val, rc);
} else {
rc = val;
LOG_INF("raw %u ~ %u mV\n", ddp->raw, val);
}
}
}
return rc;
}
unsigned int battery_level_pptt(unsigned int batt_mV,
const struct battery_level_point *curve)
{
const struct battery_level_point *pb = curve;
if (batt_mV >= pb->lvl_mV) {
/* Measured voltage above highest point, cap at maximum. */
return pb->lvl_pptt;
}
/* Go down to the last point at or below the measured voltage. */
while ((pb->lvl_pptt > 0)
&& (batt_mV < pb->lvl_mV)) {
++pb;
}
if (batt_mV < pb->lvl_mV) {
/* Below lowest point, cap at minimum */
return pb->lvl_pptt;
}
/* Linear interpolation between below and above points. */
const struct battery_level_point *pa = pb - 1;
return pb->lvl_pptt
+ ((pa->lvl_pptt - pb->lvl_pptt)
* (batt_mV - pb->lvl_mV)
/ (pa->lvl_mV - pb->lvl_mV));
}

View File

@@ -0,0 +1,53 @@
/*
* Copyright (c) 2018-2019 Peter Bigot Consulting, LLC
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef APPLICATION_BATTERY_H_
#define APPLICATION_BATTERY_H_
/** Enable or disable measurement of the battery voltage.
*
* @param enable true to enable, false to disable
*
* @return zero on success, or a negative error code.
*/
int battery_measure_enable(bool enable);
/** Measure the battery voltage.
*
* @return the battery voltage in millivolts, or a negative error
* code.
*/
int battery_sample(void);
/** A point in a battery discharge curve sequence.
*
* A discharge curve is defined as a sequence of these points, where
* the first point has #lvl_pptt set to 10000 and the last point has
* #lvl_pptt set to zero. Both #lvl_pptt and #lvl_mV should be
* monotonic decreasing within the sequence.
*/
struct battery_level_point {
/** Remaining life at #lvl_mV. */
uint16_t lvl_pptt;
/** Battery voltage at #lvl_pptt remaining life. */
uint16_t lvl_mV;
};
/** Calculate the estimated battery level based on a measured voltage.
*
* @param batt_mV a measured battery voltage level.
*
* @param curve the discharge curve for the type of battery installed
* on the system.
*
* @return the estimated remaining capacity in parts per ten
* thousand.
*/
unsigned int battery_level_pptt(unsigned int batt_mV,
const struct battery_level_point *curve);
#endif /* APPLICATION_BATTERY_H_ */

View File

@@ -1,23 +1,30 @@
#include "supervisor.h"
const int SLEEP_GRANULARITY = 2; // [min]
const int SLEEP_GRANULARITY = 1; // [min]
const int SLEEP_MIN_DURATION = SLEEP_GRANULARITY; // [min]
const int SLEEP_MAX_DURATION = 30; // [min]
// Zephyr related stuff
void thread_supervisor(){
supervisor_init();
supervisor_run();
//should never return
}
// supervisor stuff
enum error_code supervisor_init(){
enum error_code ret = init_failed;
ret = ble_init();
if(success == ret){
ret = co2_lvl_init();
if(success == ret){
ret = hygro_init();
if(success == ret){
ret = thermo_init();
if(success == ret){
ret = window_init();
}else{}
}else{}
}else{}
if(
success == ble_init() &&
success == co2_lvl_init() &&
success == hygro_init() &&
success == thermo_init() &&
success == window_init() &&
success == battery_init()
){
ret = success;
}else{}
return ret;
}
@@ -26,22 +33,37 @@ enum error_code supervisor_run(){
int co2_lvl_value = -1;
int hygro_value = -1;
int thermo_value = -1;
int batt_value = -1;
enum window_status window_value = unknown;
enum error_code co2_lvl_status, hygro_status, thermo_status, window_status;
enum error_code co2_lvl_status, hygro_status, thermo_status, window_status, batt_status;
int current_sleep_time = SLEEP_MIN_DURATION;
while(1){
co2_lvl_status = co2_lvl_get_value(&co2_lvl_value);
hygro_status = hygro_get_value(&hygro_value);
thermo_status = thermo_get_value(&thermo_value);
window_status = window_get_value(&window_value);
// maybe change arguments order
// todo : manage special values
ble_advertise(window_value, hygro_value, thermo_value, co2_lvl_value);
batt_status = battery_get_value(&batt_value);
if(success != window_status){
window_value = unknown;
}else{}
if(success != hygro_status){
hygro_value = -1;
}else{}
if(success != thermo_status){
thermo_value = -1;
}else{}
if(success != co2_lvl_status){
co2_lvl_value = -1;
}else{}
if(success != batt_status){
batt_value = -1;
}else{}
ble_advertise(window_value, hygro_value, thermo_value, co2_lvl_value, batt_value);
if((co2_lvl_value > CO2_LEVEL_EMPTY_ROOM) || (window_value == open)){
// there are people in the room, or someone forgot to close the window
current_sleep_time = SLEEP_MIN_DURATION;
}else{
// no one is in the room, we can wait a liitle bit longer before getting the next data point
// no one is in the room, we can wait a litle bit longer before getting the next data point
current_sleep_time += SLEEP_GRANULARITY;
if(current_sleep_time > SLEEP_MAX_DURATION){
current_sleep_time = SLEEP_MAX_DURATION;

View File

@@ -10,12 +10,29 @@
#include "thermometer.h"
#include "hygrometer.h"
#include "co2_level.h"
#include "battery_percent.h"
extern const int SLEEP_GRANULARITY; // [min]
extern const int SLEEP_MIN_DURATION; // [min]
extern const int SLEEP_MAX_DURATION; // [min]
/**
* @brief thread function to run the supervisor in zephyr environment
*/
void thread_supervisor();
/**
* @brief init the supervisor, and thus the complete plein_de_ee application
* @return init_failed upon any error occurring during the initialisation of any module
* @return success otherwise
*/
enum error_code supervisor_init();
/**
* @brief exexcute the plein_de_eeeeeee application
* @return error_unknown
* @note should never return
*/
enum error_code supervisor_run();
#endif //SUPERVISOR_H

View File

@@ -7,7 +7,20 @@
#include "error_code.h"
/**
* @brief init the thermometer module
* @return init_failed upon any error during init
* @return success otherwise
*/
enum error_code thermo_init();
/**
* @brief Retrieve the temperature and stores it in the given parameter
* @param[out] holder : pointer where the measurement will be stored
* @return read_failed upon any error occuring during measurement
* @return success otherwise
* @note the content of holder should not be trusted upon returning something else than success
*/
enum error_code thermo_get_value(int* holder);
#endif //THERMOMETER_H

View File

@@ -4,7 +4,7 @@ static const struct gpio_dt_spec window_switch = GPIO_DT_SPEC_GET(DT_NODELABEL(w
enum error_code window_init(){
enum error_code ret = init_failed;
if(gpio_is_ready_dt(&window_switch) && gpio_pin_configure_dt(&window_switch, GPIO_INPUT)){
if(gpio_is_ready_dt(&window_switch) && (0 == gpio_pin_configure_dt(&window_switch, GPIO_INPUT))){
ret = success;
}else{}
return ret;

View File

@@ -6,13 +6,26 @@
#include "error_code.h"
enum window_status{
closed = 0,
open,
unknown,
closed = 0, // window is closed or sensor is not connected
open, // window is opened
unknown, // window opening status could not be read
windows_status_last, // iteration purpose
};
/**
* @brief init the window opening status module
* @return init_failed upon any error during init
* @return success otherwise
*/
enum error_code window_init();
/**
* @brief Retrieve the window opening status and stores it in the given parameter
* @param[out] holder : pointer where the measurement will be stored
* @return read_failed upon any error occuring during measurement
* @return success otherwise
* @note the content of holder should not be trusted upon returning something else than success
*/
enum error_code window_get_value(enum window_status* holder);
#endif //WINDOW_STATUS_

View 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 -->

View File

@@ -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",

View 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>

View 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
]
)
]

View 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)]
)

View 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
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View 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>&lt;&lt;Broker MQTT&gt;&gt;
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>&lt;&lt;Database&gt;&gt;
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>&lt;&lt;API DB&gt;&gt;
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=&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=-&gt;</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=-&gt;</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>&lt;&lt;Dashboard&gt;&gt;
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>&lt;&lt;Notification&gt;&gt;
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>

View File

@@ -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]]
]
)

View 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)
],
)
]

View 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-&gt;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-&gt;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-&gt;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

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View 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
1 time co2 temperature humidity windows battery
2 2026-06-11T08:45:04 1766 27.7 38 0 25
3 2026-06-11T08:46:04 1815 28.1 37 0 27
4 2026-06-11T08:48:05 1836 28.7 37 0 25
5 2026-06-11T08:49:06 1844 29 36 0 25
6 2026-06-11T08:50:06 1830 29.2 36 0 25
7 2026-06-11T08:51:07 1837 29.5 35 0 27
8 2026-06-11T08:53:08 1903 29.8 35 0 27
9 2026-06-11T08:54:08 1903 30 34 0 25
10 2026-06-11T08:55:09 1868 30.2 34 0 27
11 2026-06-11T08:56:10 1900 30.3 34 0 25
12 2026-06-11T08:57:10 1914 30.5 34 0 27
13 2026-06-11T08:58:10 1925 30.6 33 0 27
14 2026-06-11T08:59:11 1951 30.7 33 0 25
15 2026-06-11T09:00:11 1975 30.8 33 0 27
16 2026-06-11T09:01:12 1975 31 32 0 27
17 2026-06-11T09:02:13 1942 31 33 0 25
18 2026-06-11T09:03:13 1938 31.1 32 0 27
19 2026-06-11T09:04:14 1965 31.2 32 0 27
20 2026-06-11T09:05:14 1989 31.3 32 0 25
21 2026-06-11T09:07:15 1978 31.5 32 0 27
22 2026-06-11T09:08:15 1989 31.6 32 0 27
23 2026-06-11T09:09:16 1989 31.6 31 0 27
24 2026-06-11T09:10:16 2007 31.6 32 0 25
25 2026-06-11T09:11:17 1978 31.3 32 0 27
26 2026-06-11T09:12:18 1989 31.1 32 0 25
27 2026-06-11T09:13:18 1965 30.7 32 0 25
28 2026-06-11T09:14:18 1980 30.3 32 0 25
29 2026-06-11T09:15:19 1946 30 32 0 25
30 2026-06-11T09:16:19 1914 29.6 33 0 25
31 2026-06-11T09:18:21 1926 29.1 33 0 25
32 2026-06-11T09:19:21 1895 28.7 33 0 25
33 2026-06-11T09:20:21 1937 28.6 33 0 25
34 2026-06-11T09:21:22 1937 28.3 33 0 25
35 2026-06-11T09:22:22 1937 28.2 34 0 27
36 2026-06-11T09:23:23 1902 28 34 0 25
37 2026-06-11T09:24:23 1890 27.8 34 0 25
38 2026-06-11T09:25:24 1939 27.7 34 0 27
39 2026-06-11T09:26:24 1960 27.6 35 0 25
40 2026-06-11T09:27:25 1934 27.5 34 0 25
41 2026-06-11T09:28:25 1933 27.3 35 0 25
42 2026-06-11T09:29:26 1917 27.2 35 0 25
43 2026-06-11T09:30:27 1908 27.2 35 0 25
44 2026-06-11T09:31:27 1897 27.1 35 0 25
45 2026-06-11T09:32:28 1879 27 35 0 25
46 2026-06-11T09:33:28 1879 26.8 35 0 25
47 2026-06-11T09:34:29 1900 26.7 35 0 25
48 2026-06-11T09:35:29 1900 26.7 36 0 25
49 2026-06-11T09:36:29 1885 26.6 36 0 25
50 2026-06-11T09:37:30 1894 26.6 36 0 25
51 2026-06-11T09:38:30 1885 26.5 36 0 27
52 2026-06-11T09:39:31 1894 26.5 36 0 25
53 2026-06-11T09:40:31 1885 26.5 36 0 27
54 2026-06-11T09:41:32 1885 26.3 36 0 27
55 2026-06-11T09:42:32 1875 26.3 36 0 27
56 2026-06-11T09:43:33 1875 26.3 36 0 25
57 2026-06-11T09:44:34 1902 26.2 37 0 27
58 2026-06-11T09:45:34 1852 26.2 37 0 27
59 2026-06-11T09:46:35 1852 26.2 37 0 25
60 2026-06-11T09:47:35 1834 26.1 37 0 27
61 2026-06-11T09:48:35 1843 26.1 37 0 25
62 2026-06-11T09:49:36 1852 26.1 37 0 25
63 2026-06-11T09:50:37 1843 26.1 37 0 25
64 2026-06-11T09:51:37 1834 26 37 0 25
65 2026-06-11T09:52:37 1825 26 37 0 25
66 2026-06-11T09:53:38 1825 26 38 0 25
67 2026-06-11T09:54:38 1811 25.8 37 0 27
68 2026-06-11T09:55:39 1897 26 37 0 25
69 2026-06-11T09:56:40 1819 25.8 38 0 25
70 2026-06-11T09:57:40 1875 25.8 38 0 25
71 2026-06-11T09:58:41 1855 25.8 38 0 25
72 2026-06-11T09:59:41 1865 25.8 38 0 25
73 2026-06-11T10:00:41 1847 25.7 38 0 27
74 2026-06-11T10:01:42 1847 25.7 38 0 25
75 2026-06-11T10:02:42 1847 25.7 38 0 25
76 2026-06-11T10:03:43 1855 25.7 38 0 25
77 2026-06-11T10:04:43 1855 25.7 39 0 25
78 2026-06-11T10:05:44 1842 25.7 38 0 25
79 2026-06-11T10:06:45 1855 25.7 39 0 25
80 2026-06-11T10:07:45 1833 25.6 38 0 25
81 2026-06-11T10:08:46 1837 25.6 39 0 25
82 2026-06-11T10:09:46 1833 25.6 39 0 25
83 2026-06-11T10:10:47 1833 25.5 39 0 25
84 2026-06-11T10:11:47 1833 25.6 39 0 25
85 2026-06-11T10:12:48 1833 25.3 41 0 25
86 2026-06-11T10:13:48 1833 25.5 38 0 25
87 2026-06-11T10:14:49 1847 25.5 39 0 25
88 2026-06-11T10:15:49 1833 25.5 39 0 25
89 2026-06-11T10:16:50 1833 25.3 39 0 25
90 2026-06-11T10:17:50 1824 25.3 39 0 25
91 2026-06-11T10:18:51 1824 25.3 40 0 25
92 2026-06-11T10:19:51 1811 25.3 39 0 25
93 2026-06-11T10:20:52 1860 25.5 39 0 25
94 2026-06-11T10:21:52 1866 25.3 39 0 25
95 2026-06-11T10:22:53 1897 25.5 39 0 25
96 2026-06-11T10:23:53 1914 25.5 40 0 25
97 2026-06-11T10:24:54 1915 25.5 40 0 25
98 2026-06-11T10:25:54 1915 25.5 40 0 25
99 2026-06-11T10:26:55 1935 25.5 40 0 25
100 2026-06-11T10:27:55 1946 25.5 40 0 25
101 2026-06-11T10:28:56 1956 25.5 39 0 25
102 2026-06-11T10:29:56 1971 25.5 40 0 27
103 2026-06-11T10:30:57 1956 25.5 40 0 25
104 2026-06-11T10:31:57 1976 25.5 39 0 25
105 2026-06-11T10:33:58 1965 25.5 40 0 25
106 2026-06-11T10:34:59 1976 25.5 40 0 25
107 2026-06-11T10:35:59 1965 25.5 40 0 25
108 2026-06-11T10:37:00 1956 25.5 40 0 25
109 2026-06-11T10:38:00 1956 25.5 39 0 25
110 2026-06-11T10:39:01 1971 25.5 40 0 25
111 2026-06-11T10:40:01 1935 25.3 40 0 25
112 2026-06-11T10:41:02 1935 25.5 39 0 25
113 2026-06-11T10:42:02 1950 25.3 39 0 25
114 2026-06-11T10:43:03 1950 25.3 40 0 25
115 2026-06-11T10:44:03 1915 25.3 40 0 25
116 2026-06-11T10:45:04 1915 25.3 40 0 25
117 2026-06-11T10:46:04 1915 25.3 40 0 25
118 2026-06-11T10:47:05 1928 25.3 40 0 25
119 2026-06-11T10:48:05 1928 25.3 40 0 25
120 2026-06-11T10:49:06 1928 25.3 40 0 25
121 2026-06-11T10:50:06 1928 25.3 40 0 25
122 2026-06-11T10:51:07 1928 25.3 40 0 25
123 2026-06-11T10:52:07 1915 25.2 40 0 25
124 2026-06-11T10:53:08 1928 25.3 40 0 25
125 2026-06-11T10:54:08 1928 25.3 40 0 25
126 2026-06-11T10:55:09 1928 25.2 40 0 25
127 2026-06-11T10:56:09 1928 25.2 40 0 25
128 2026-06-11T10:57:10 1909 25.2 40 0 25
129 2026-06-11T11:00:11 1899 25.2 39 0 25
130 2026-06-11T11:01:12 1914 25.3 40 0 25
131 2026-06-11T11:03:13 1899 25.2 39 0 25
132 2026-06-11T11:04:13 1903 25.2 40 0 25
133 2026-06-11T11:05:14 1899 25.2 40 0 25
134 2026-06-11T11:06:14 1899 25.2 40 0 25
135 2026-06-11T11:07:15 1899 25.2 39 0 25
136 2026-06-11T11:08:15 1914 25.2 39 0 25
137 2026-06-11T11:09:16 1914 25.2 39 0 25
138 2026-06-11T11:10:16 1914 25.2 39 0 25
139 2026-06-11T11:12:17 1922 25.2 40 0 25
140 2026-06-11T11:13:18 1915 25.2 40 0 25
141 2026-06-11T11:14:18 1915 25.2 40 0 25
142 2026-06-11T11:15:19 1928 25.2 39 0 25
143 2026-06-11T11:16:19 1940 25.2 40 0 25
144 2026-06-11T11:17:20 1928 25.2 40 0 25
145 2026-06-11T11:18:20 1915 25.2 40 0 25
146 2026-06-11T11:19:21 1915 25.1 40 0 25
147 2026-06-11T11:20:21 1909 25.2 39 0 25
148 2026-06-11T11:21:22 1909 25.2 40 0 22
149 2026-06-11T11:22:22 1899 25.2 39 0 25
150 2026-06-11T11:23:23 1922 25.2 39 0 25
151 2026-06-11T11:24:23 1922 25.2 39 0 25
152 2026-06-11T11:26:24 1914 25.2 39 0 25
153 2026-06-11T11:27:25 1903 25.2 40 0 25
154 2026-06-11T11:28:26 1899 25.2 40 0 25
155 2026-06-11T11:29:26 1899 25.2 40 0 25
156 2026-06-11T11:30:26 1899 25.2 40 0 25
157 2026-06-11T11:31:27 1889 25.2 40 0 25
158 2026-06-11T11:32:27 1889 25.2 40 0 25
159 2026-06-11T11:33:28 1889 25.1 40 0 25
160 2026-06-11T11:34:28 1889 25.1 40 0 25
161 2026-06-11T11:35:29 1871 25.1 39 0 25
162 2026-06-11T11:36:29 1897 25.1 39 0 25
163 2026-06-11T11:37:30 1903 25.1 39 0 25
164 2026-06-11T11:38:30 1922 25.2 39 0 25
165 2026-06-11T11:39:31 1930 25.2 40 0 25
166 2026-06-11T11:40:31 1928 25.2 40 0 25
167 2026-06-11T11:41:32 1946 25.2 39 0 25
168 2026-06-11T11:43:33 1980 25.3 39 0 25
169 2026-06-11T11:44:33 2001 25.3 39 0 25
170 2026-06-11T11:45:34 1980 25.3 39 0 25
171 2026-06-11T11:46:34 2001 25.3 40 0 25
172 2026-06-11T11:47:35 2004 25.3 39 0 25
173 2026-06-11T11:48:35 2028 25.5 40 0 25
174 2026-06-11T11:49:36 2025 25.5 40 0 25
175 2026-06-11T11:50:36 2025 25.3 40 0 25
176 2026-06-11T11:51:37 2025 25.5 40 0 25
177 2026-06-11T11:52:37 2035 25.5 40 0 25
178 2026-06-11T11:53:38 2054 25.5 40 0 25
179 2026-06-11T11:54:38 2054 25.5 40 0 25
180 2026-06-11T11:55:39 2054 25.5 39 0 25
181 2026-06-11T11:56:39 2070 25.5 39 0 25
182 2026-06-11T11:57:40 2070 25.5 40 0 25
183 2026-06-11T11:58:40 2035 25.5 39 0 25
184 2026-06-11T11:59:41 2070 25.5 39 0 25
185 2026-06-11T12:00:41 2080 25.3 40 0 25
186 2026-06-11T12:01:42 2066 25.5 39 0 25
187 2026-06-11T12:02:42 2060 25.5 40 0 25
188 2026-06-11T12:03:43 2054 25.5 40 0 25
189 2026-06-11T12:04:43 2054 25.5 40 0 25
190 2026-06-11T12:05:44 2035 25.3 40 0 25
191 2026-06-11T12:06:44 2054 25.5 39 0 25
192 2026-06-11T12:07:45 2080 25.5 40 0 25
193 2026-06-11T12:08:45 2054 25.5 40 0 25
194 2026-06-11T12:09:46 2054 25.5 40 0 25
195 2026-06-11T12:10:46 2066 25.5 40 0 25
196 2026-06-11T12:11:47 2066 25.5 39 0 25
197 2026-06-11T12:12:48 2080 25.5 39 0 25
198 2026-06-11T12:13:48 2080 25.5 39 0 25
199 2026-06-11T12:14:48 2088 25.5 39 0 25
200 2026-06-11T12:15:49 2080 25.3 39 0 25
201 2026-06-11T12:16:49 2080 25.3 39 0 25
202 2026-06-11T12:17:50 2060 25.5 39 0 25
203 2026-06-11T12:18:50 2048 25.5 39 0 25
204 2026-06-11T12:19:51 2048 25.3 38 0 25
205 2026-06-11T12:20:51 2074 25.5 38 0 25
206 2026-06-11T12:21:52 2074 25.5 38 0 25
207 2026-06-11T12:22:53 2066 25.5 39 0 25
208 2026-06-11T12:23:53 2048 25.5 39 0 25
209 2026-06-11T12:24:53 2048 25.5 39 0 25
210 2026-06-11T12:25:54 2028 25.5 39 0 25
211 2026-06-11T12:26:55 2028 25.3 38 0 25
212 2026-06-11T12:27:55 2028 25.5 38 0 22
213 2026-06-11T12:28:56 2052 25.5 39 0 25
214 2026-06-11T12:29:56 2028 25.5 39 0 25
215 2026-06-11T12:30:57 2028 25.5 38 0 25
216 2026-06-11T12:31:57 2052 25.5 38 0 25
217 2026-06-11T12:32:57 2052 25.5 38 0 25
218 2026-06-11T12:33:58 2052 25.5 38 0 25
219 2026-06-11T12:35:59 2052 25.5 38 0 25
220 2026-06-11T12:37:00 2052 25.5 38 0 25
221 2026-06-11T12:38:00 2066 25.5 39 0 25
222 2026-06-11T12:39:00 2048 25.5 38 0 25
223 2026-06-11T12:40:01 2074 25.5 38 0 25
224 2026-06-11T12:41:01 2074 25.5 38 0 25
225 2026-06-11T12:42:02 2084 25.5 38 0 25
226 2026-06-11T12:43:02 2094 25.6 38 0 25
227 2026-06-11T12:44:03 2094 25.6 38 0 25
228 2026-06-11T12:45:04 2084 25.6 38 0 25
229 2026-06-11T12:46:04 2094 25.6 38 0 25
230 2026-06-11T12:47:04 2094 25.6 38 0 25
231 2026-06-11T12:48:05 2094 25.6 38 0 25
232 2026-06-11T12:49:05 2094 25.6 38 0 25
233 2026-06-11T12:50:06 2094 25.6 38 0 25
234 2026-06-11T12:51:07 2084 25.6 38 0 25
235 2026-06-11T12:52:07 2084 25.6 39 0 25
236 2026-06-11T12:53:07 2060 25.7 38 0 25
237 2026-06-11T12:54:08 2094 25.6 39 0 25
238 2026-06-11T12:55:08 2132 25.7 38 0 25
239 2026-06-11T12:56:09 2094 25.6 38 0 25
240 2026-06-11T12:57:10 2094 25.7 39 0 25
241 2026-06-11T12:58:10 2098 25.7 38 0 25
242 2026-06-11T12:59:10 2138 25.7 38 0 25
243 2026-06-11T13:00:11 2116 25.7 39 0 22
244 2026-06-11T13:01:12 2098 25.7 38 0 25
245 2026-06-11T13:02:12 2116 25.7 38 0 25
246 2026-06-11T13:03:12 2116 25.7 38 0 25
247 2026-06-11T13:04:13 2116 25.7 38 0 25
248 2026-06-11T13:05:13 2104 25.7 38 0 22
249 2026-06-11T13:06:14 2116 25.7 38 0 25
250 2026-06-11T13:07:15 2126 25.7 38 0 25
251 2026-06-11T13:08:15 2126 25.8 38 0 25
252 2026-06-11T13:09:16 2138 25.8 39 0 25
253 2026-06-11T13:10:16 2120 25.8 39 0 25
254 2026-06-11T13:11:16 2144 25.8 39 0 22
255 2026-06-11T13:12:17 2110 25.8 39 0 25
256 2026-06-11T13:13:18 2120 25.8 38 0 25
257 2026-06-11T13:14:18 2150 25.8 38 0 25
258 2026-06-11T13:15:18 2162 25.8 38 0 25
259 2026-06-11T13:16:19 2162 25.8 38 0 25
260 2026-06-11T13:17:19 2172 25.8 38 0 25
261 2026-06-11T13:18:20 2184 26 38 0 25
262 2026-06-11T13:19:21 2102 26 38 0 25
263 2026-06-11T13:20:21 2102 26.1 39 0 25
264 2026-06-11T13:21:21 2098 26 39 0 25
265 2026-06-11T13:22:22 2098 26 39 0 25
266 2026-06-11T13:23:22 2120 26.1 38 0 22
267 2026-06-11T13:24:23 2136 26.1 39 0 25
268 2026-06-11T13:25:24 2120 26.1 38 0 25
269 2026-06-11T13:26:24 2136 26.1 38 0 25
270 2026-06-11T13:27:25 2150 26.1 38 0 25
271 2026-06-11T13:28:25 2162 26.1 38 0 25
272 2026-06-11T13:29:26 2162 26.1 38 0 25
273 2026-06-11T13:30:26 2150 26.1 38 0 25
274 2026-06-11T13:31:27 2162 26.1 38 0 25
275 2026-06-11T13:32:27 2172 26.2 38 0 25
276 2026-06-11T13:33:28 2162 26.1 38 0 25
277 2026-06-11T13:34:28 2136 26.2 38 0 25
278 2026-06-11T13:35:29 2136 26.2 39 0 25
279 2026-06-11T13:36:29 2120 26.1 38 0 25
280 2026-06-11T13:37:30 2136 26.1 38 0 22
281 2026-06-11T13:38:30 2136 26.1 38 0 22
282 2026-06-11T13:39:31 2150 26.1 38 0 22
283 2026-06-11T13:40:31 2150 26.2 38 0 22
284 2026-06-11T13:41:32 2150 26.2 38 0 25
285 2026-06-11T13:42:32 2150 26.2 38 0 25
286 2026-06-11T13:43:33 2162 26.2 37 0 22
287 2026-06-11T13:44:33 2166 26.2 38 0 25
288 2026-06-11T13:45:34 2150 26.2 38 0 25
289 2026-06-11T13:46:34 2136 26.2 38 0 25
290 2026-06-11T13:47:35 2150 26.2 38 0 25
291 2026-06-11T13:48:35 2136 26.2 38 0 25
292 2026-06-11T13:49:36 2136 26.2 38 0 25
293 2026-06-11T13:50:36 2124 26.2 38 0 25
294 2026-06-11T13:51:37 2124 26.2 38 0 25
295 2026-06-11T13:52:37 2124 26.2 39 0 22
296 2026-06-11T13:53:38 2120 26.1 38 0 25
297 2026-06-11T13:54:38 2136 26.2 38 0 25
298 2026-06-11T13:55:39 2150 26.1 38 0 25
299 2026-06-11T13:56:39 2150 26.2 38 0 25
300 2026-06-11T13:57:40 2124 26.2 38 0 25
301 2026-06-11T13:58:40 2124 26.2 38 0 25
302 2026-06-11T13:59:41 2124 26.2 38 0 25
303 2026-06-11T14:00:41 2124 26.2 37 0 25
304 2026-06-11T14:01:42 2154 26.2 38 0 25
305 2026-06-11T14:02:42 2136 26.2 37 0 25
306 2026-06-11T14:03:43 2142 26.2 38 0 25
307 2026-06-11T14:04:43 2136 26.2 38 0 25
308 2026-06-11T14:05:44 2136 26.2 37 0 25
309 2026-06-11T14:06:44 2142 26.2 37 0 25
310 2026-06-11T14:08:45 2142 26.2 37 0 25
311 2026-06-11T14:09:46 2154 26.2 37 0 25
312 2026-06-11T14:11:47 2166 26.2 38 0 25
313 2026-06-11T14:12:48 2136 26.2 37 0 25
314 2026-06-11T14:13:48 2154 26.2 38 0 25
315 2026-06-11T14:14:48 2136 26.2 38 0 22
316 2026-06-11T14:16:49 2124 26.2 38 0 22
317 2026-06-11T14:17:50 2124 26.2 38 0 25
318 2026-06-11T14:18:50 2124 26.2 38 0 25
319 2026-06-11T14:19:51 2114 26.2 38 0 25
320 2026-06-11T14:20:51 2102 26.2 37 0 25
321 2026-06-11T14:21:52 2118 26.2 37 0 25
322 2026-06-11T14:22:52 2130 26.2 37 0 25
323 2026-06-11T14:23:53 2154 26.2 37 0 25
324 2026-06-11T14:24:53 2154 26.2 37 0 25
325 2026-06-11T14:25:54 2142 26.2 37 0 22
326 2026-06-11T14:26:54 2130 26.3 37 0 25
327 2026-06-11T14:27:55 2142 26.2 37 0 25
328 2026-06-11T14:28:55 2166 26.2 37 0 22
329 2026-06-11T14:29:56 2180 26.3 37 0 25
330 2026-06-11T14:30:56 2189 26.3 37 0 22
331 2026-06-11T14:31:57 2203 26.3 37 0 22
332 2026-06-11T14:32:57 2203 26.2 37 0 25
333 2026-06-11T14:33:58 2203 26.3 37 0 22
334 2026-06-11T14:34:58 2214 26.3 37 0 25
335 2026-06-11T14:35:59 2203 26.3 37 0 25
336 2026-06-11T14:36:59 2214 26.3 37 0 25
337 2026-06-11T14:38:00 2214 26.3 37 0 25
338 2026-06-11T14:39:00 2214 26.3 37 0 25
339 2026-06-11T14:40:01 2214 26.3 37 0 22
340 2026-06-11T14:41:01 2203 26.3 37 0 22
341 2026-06-11T14:42:02 2203 26.3 37 0 22
342 2026-06-11T14:43:02 2203 26.3 37 0 22
343 2026-06-11T14:44:03 2214 26.3 37 0 25
344 2026-06-11T14:45:03 2189 26.3 37 0 25
345 2026-06-11T14:46:04 2189 26.3 37 0 22
346 2026-06-11T14:47:04 2189 26.3 37 0 25
347 2026-06-11T14:48:05 2189 26.3 37 0 22
348 2026-06-11T14:49:05 2189 26.3 37 0 22
349 2026-06-11T14:50:06 2189 26.3 37 0 25
350 2026-06-11T14:51:06 2189 26.3 37 0 25
351 2026-06-11T14:52:07 2180 26.3 37 0 22
352 2026-06-11T14:53:07 2203 26.3 37 0 22
353 2026-06-11T14:54:08 2203 26.3 38 0 22
354 2026-06-11T14:55:08 2197 26.3 37 0 22
355 2026-06-11T14:56:09 2214 26.3 37 0 25
356 2026-06-11T14:57:09 2214 26.5 37 0 22
357 2026-06-11T14:58:10 2240 26.5 37 0 22
358 2026-06-11T14:59:10 2255 26.5 38 0 25
359 2026-06-11T15:00:11 2236 26.5 37 0 22
360 2026-06-11T15:01:11 2255 26.5 38 0 25
361 2026-06-11T15:02:12 2220 26.6 37 0 25
362 2026-06-11T15:03:12 2228 26.6 38 0 22
363 2026-06-11T15:04:13 2236 26.6 38 0 25
364 2026-06-11T15:05:13 2249 26.6 37 0 25
365 2026-06-11T15:06:14 2265 26.6 37 0 22
366 2026-06-11T15:07:14 2279 26.6 37 0 25
367 2026-06-11T15:08:15 2265 26.7 37 0 22
368 2026-06-11T15:09:15 2292 26.7 37 0 22
369 2026-06-11T15:10:16 2279 26.7 37 0 22
370 2026-06-11T15:11:17 2265 26.7 37 0 22
371 2026-06-11T15:12:17 2265 26.7 37 0 25
372 2026-06-11T15:13:17 2265 26.7 37 0 22
373 2026-06-11T15:14:18 2279 26.7 37 0 22
374 2026-06-11T15:15:18 2265 26.7 37 0 22
375 2026-06-11T15:16:19 2279 26.7 37 0 22
376 2026-06-11T15:17:20 2292 26.7 37 0 25
377 2026-06-11T15:18:20 2265 26.7 37 0 25
378 2026-06-11T15:20:21 2255 26.7 37 0 22
379 2026-06-11T15:21:22 2265 26.7 37 0 25
380 2026-06-11T15:22:22 2255 26.7 37 0 22
381 2026-06-11T15:23:22 2265 26.7 37 0 22
382 2026-06-11T15:24:23 2255 26.7 37 0 22
383 2026-06-11T15:25:23 2279 26.7 37 0 22
384 2026-06-11T15:26:24 2279 26.7 37 0 22
385 2026-06-11T15:27:24 2279 26.7 37 0 25
386 2026-06-11T15:28:25 2292 26.7 37 0 22
387 2026-06-11T15:29:26 2279 26.7 37 0 22
388 2026-06-11T15:30:26 2292 26.8 37 0 25
389 2026-06-11T15:31:27 2334 26.7 37 0 22
390 2026-06-11T15:32:27 2292 26.8 36 0 22
391 2026-06-11T15:33:28 2324 26.7 37 0 22
392 2026-06-11T15:34:28 2292 26.8 37 0 22
393 2026-06-11T15:35:28 2318 26.8 36 0 25
394 2026-06-11T15:36:29 2265 26.8 37 0 22
395 2026-06-11T15:37:30 2242 26.8 37 0 25
396 2026-06-11T15:38:30 2270 26.8 37 0 22
397 2026-06-11T15:39:30 2255 26.8 37 0 22
398 2026-06-11T15:40:31 2259 26.8 37 0 22
399 2026-06-11T15:41:32 2281 26.8 37 0 25
400 2026-06-11T15:42:32 2285 26.8 37 0 25
401 2026-06-11T15:44:33 2281 26.8 37 0 22
402 2026-06-11T15:45:33 2285 26.8 37 0 25
403 2026-06-11T15:47:34 2249 26.8 36 0 22
404 2026-06-11T15:48:35 2226 26.8 37 0 22
405 2026-06-11T15:49:36 2226 26.8 37 0 22
406 2026-06-11T15:50:36 2259 26.8 37 0 22
407 2026-06-11T15:51:37 2255 26.8 37 0 22
408 2026-06-11T15:52:37 2249 26.8 37 0 22
409 2026-06-11T15:53:37 2263 26.8 37 0 22
410 2026-06-11T15:54:38 2259 26.8 36 0 22
411 2026-06-11T15:55:38 2278 26.8 36 0 22
412 2026-06-11T15:56:39 2287 27 37 0 22
413 2026-06-11T15:57:39 2222 26.8 36 0 22
414 2026-06-11T15:58:40 2281 26.8 37 0 22
415 2026-06-11T15:59:40 2276 27 36 0 22
416 2026-06-11T16:00:41 2222 27 37 0 22
417 2026-06-11T16:01:41 2189 27 36 0 22
418 2026-06-11T16:03:43 2205 27 37 0 22
419 2026-06-11T16:04:43 2195 27 36 0 22
420 2026-06-11T16:05:43 2218 27 36 0 25
421 2026-06-11T16:06:44 2207 26.8 37 0 22
422 2026-06-11T16:07:44 2259 27 37 0 22
423 2026-06-11T16:08:45 2189 26.8 37 0 22
424 2026-06-11T16:09:46 2259 26.8 37 0 22
425 2026-06-11T16:10:46 2276 26.8 37 0 22
426 2026-06-11T16:11:47 2281 27 37 0 22
427 2026-06-11T16:13:48 2210 27 37 0 22
428 2026-06-11T16:14:48 2205 27 37 0 22
429 2026-06-11T16:15:49 2210 27.1 37 0 22
430 2026-06-11T16:16:49 2210 26.8 37 0 22
431 2026-06-11T16:17:50 2296 27.3 37 0 22
432 2026-06-11T16:18:50 2210 27 37 0 22
433 2026-06-11T16:19:50 2245 27 37 0 22
434 2026-06-11T16:20:51 2232 27.1 37 0 22
435 2026-06-11T16:21:51 2212 27 37 0 22
436 2026-06-11T16:22:52 2222 27 37 0 22
437 2026-06-11T16:23:53 2251 27 37 0 22
438 2026-06-11T16:25:53 2222 27.1 37 0 22
439 2026-06-11T16:26:54 2222 27.1 37 1 22
440 2026-06-11T16:28:55 2224 27.1 37 1 22
441 2026-06-11T16:29:56 2224 27.1 37 1 22

View 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
1 time co2 temperature humidity windows battery
2 2026-06-11T08:45:43 496 27.7 38 0 57
3 2026-06-11T08:46:43 496 27.7 38 0 55
4 2026-06-11T08:47:44 491 27.8 37 0 57
5 2026-06-11T08:49:45 527 28 37 0 57
6 2026-06-11T08:50:45 459 28 37 0 57
7 2026-06-11T08:51:46 448 28.1 37 0 57
8 2026-06-11T08:52:46 486 28.2 37 0 57
9 2026-06-11T08:53:47 463 28.2 37 0 57
10 2026-06-11T08:54:47 445 28.2 37 0 57
11 2026-06-11T08:55:48 454 28.3 37 0 57
12 2026-06-11T08:56:48 486 28.3 37 0 57
13 2026-06-11T08:57:49 459 28.3 37 0 57
14 2026-06-11T08:58:49 466 28.5 37 0 57
15 2026-06-11T08:59:50 476 28.5 37 0 57
16 2026-06-11T09:00:50 491 28.6 37 0 57
17 2026-06-11T09:01:51 481 28.6 37 0 55
18 2026-06-11T09:02:51 481 28.6 37 0 57
19 2026-06-11T09:03:52 486 28.7 37 0 57
20 2026-06-11T09:04:52 481 28.7 36 0 57
21 2026-06-11T09:05:53 518 28.8 36 0 57
22 2026-06-11T09:06:53 502 28.7 37 0 57
23 2026-06-11T09:07:54 502 28.8 36 0 57
24 2026-06-11T09:08:54 536 29 37 0 57
25 2026-06-11T09:09:55 450 29 36 0 57
26 2026-06-11T09:10:55 472 29 36 0 57
27 2026-06-11T09:11:56 477 29 36 0 57
28 2026-06-11T09:12:56 445 29.1 36 0 55
29 2026-06-11T09:13:57 464 29.1 36 0 57
30 2026-06-11T09:15:58 455 29.2 36 0 57
31 2026-06-11T09:16:58 472 29.3 36 0 57
32 2026-06-11T09:17:59 498 29.3 35 0 57
33 2026-06-11T09:18:59 493 29.5 36 0 57
34 2026-06-11T09:20:00 464 29.5 35 0 57
35 2026-06-11T09:21:00 478 29.5 35 0 57
36 2026-06-11T09:22:01 493 29.6 35 0 57
37 2026-06-11T09:23:01 478 29.6 35 0 57
38 2026-06-11T09:24:02 519 29.6 35 0 57
39 2026-06-11T09:25:02 478 29.5 35 0 57
40 2026-06-11T09:26:03 472 29.6 35 0 57
41 2026-06-11T09:27:03 514 29.6 35 0 57
42 2026-06-11T09:28:04 514 29.5 35 0 57
43 2026-06-11T09:29:05 500 29.7 35 0 57
44 2026-06-11T09:30:05 493 29.7 35 0 57
45 2026-06-11T09:31:05 519 29.7 34 0 57
46 2026-06-11T09:32:06 503 29.7 35 0 57
47 2026-06-11T09:33:07 487 29.6 35 0 57
48 2026-06-11T09:34:07 500 29.7 34 0 57
49 2026-06-11T09:35:07 580 29.7 34 0 57
50 2026-06-11T09:36:08 520 29.7 34 0 57
51 2026-06-11T09:37:08 514 29.7 34 0 57
52 2026-06-11T09:38:09 520 29.7 35 0 57
53 2026-06-11T09:39:09 500 29.7 34 0 57
54 2026-06-11T09:40:10 498 29.7 35 0 57
55 2026-06-11T09:41:10 493 29.7 34 0 57
56 2026-06-11T09:42:11 520 29.7 35 0 57
57 2026-06-11T09:43:11 527 29.7 34 0 57
58 2026-06-11T09:44:12 537 29.7 34 0 57
59 2026-06-11T09:45:12 537 29.7 34 0 55
60 2026-06-11T09:46:13 526 29.7 34 0 57
61 2026-06-11T09:47:13 531 29.7 34 0 57
62 2026-06-11T09:48:14 503 29.7 34 0 57
63 2026-06-11T09:49:15 514 29.7 34 0 57
64 2026-06-11T09:50:15 520 29.7 34 0 57
65 2026-06-11T09:51:15 514 29.7 35 0 57
66 2026-06-11T09:52:16 500 29.8 34 0 57
67 2026-06-11T09:53:17 514 29.7 35 0 57
68 2026-06-11T09:54:17 514 29.8 34 0 57
69 2026-06-11T09:55:17 531 29.8 34 0 57
70 2026-06-11T09:56:18 520 29.8 34 0 57
71 2026-06-11T09:57:18 537 29.8 34 0 57
72 2026-06-11T09:58:19 520 29.8 34 0 57
73 2026-06-11T09:59:19 537 29.7 34 0 57
74 2026-06-11T10:00:20 545 29.8 34 0 55
75 2026-06-11T10:01:20 551 29.8 34 0 57
76 2026-06-11T10:02:21 574 29.8 34 0 57
77 2026-06-11T10:03:22 520 29.8 34 0 57
78 2026-06-11T10:04:22 537 29.8 34 0 57
79 2026-06-11T10:05:22 537 29.8 34 0 57
80 2026-06-11T10:06:23 545 29.8 34 0 57
81 2026-06-11T10:07:23 551 29.8 34 0 57
82 2026-06-11T10:08:24 545 29.8 34 0 57
83 2026-06-11T10:09:25 537 29.8 34 0 57
84 2026-06-11T10:10:25 556 29.8 34 0 55
85 2026-06-11T10:11:25 531 29.8 35 0 57
86 2026-06-11T10:12:26 514 29.8 34 0 57
87 2026-06-11T10:13:26 537 29.8 34 0 57
88 2026-06-11T10:15:28 551 29.8 34 0 57
89 2026-06-11T10:16:28 526 29.8 34 0 57
90 2026-06-11T10:17:29 537 29.8 34 0 57
91 2026-06-11T10:18:29 537 29.8 34 0 57
92 2026-06-11T10:19:29 498 29.8 34 0 57
93 2026-06-11T10:20:30 537 29.8 35 0 57
94 2026-06-11T10:21:30 527 29.7 34 0 57
95 2026-06-11T10:22:31 514 29.7 34 0 57
96 2026-06-11T10:23:32 545 29.6 34 0 57
97 2026-06-11T10:24:32 537 29.6 35 0 57
98 2026-06-11T10:25:32 533 29.5 35 0 57
99 2026-06-11T10:26:33 539 29.5 35 0 57
100 2026-06-11T10:27:33 482 29.5 35 0 57
101 2026-06-11T10:28:34 500 29.5 35 0 57
102 2026-06-11T10:29:35 539 29.5 35 0 57
103 2026-06-11T10:30:35 487 29.5 35 0 57
104 2026-06-11T10:31:36 500 29.5 34 0 57
105 2026-06-11T10:32:36 514 29.5 35 0 57
106 2026-06-11T10:33:37 527 29.5 35 0 55
107 2026-06-11T10:34:37 500 29.5 35 0 57
108 2026-06-11T10:35:38 503 29.5 34 0 57
109 2026-06-11T10:36:38 537 29.5 35 0 57
110 2026-06-11T10:37:39 539 29.6 35 0 57
111 2026-06-11T10:38:39 493 29.6 35 0 57
112 2026-06-11T10:39:40 561 29.6 35 0 57
113 2026-06-11T10:40:40 500 29.7 35 0 57
114 2026-06-11T10:41:41 533 29.6 35 0 57
115 2026-06-11T10:42:41 533 29.7 35 0 57
116 2026-06-11T10:43:42 493 29.7 34 0 57
117 2026-06-11T10:44:42 526 29.7 35 0 57
118 2026-06-11T10:45:43 533 29.7 35 0 55
119 2026-06-11T10:46:43 545 29.8 35 0 55
120 2026-06-11T10:47:44 545 29.7 34 0 57
121 2026-06-11T10:48:44 531 29.7 34 0 57
122 2026-06-11T10:49:45 520 29.7 35 0 57
123 2026-06-11T10:50:45 520 29.8 34 0 55
124 2026-06-11T10:51:46 611 29.8 35 0 57
125 2026-06-11T10:52:46 503 29.8 35 0 55
126 2026-06-11T10:53:47 478 29.8 34 0 55
127 2026-06-11T10:54:47 537 29.8 34 0 55
128 2026-06-11T10:55:48 514 29.7 35 0 57
129 2026-06-11T10:56:48 519 29.8 35 0 55
130 2026-06-11T10:57:49 539 29.8 34 0 55
131 2026-06-11T10:58:49 588 30 34 0 55
132 2026-06-11T10:59:50 526 29.8 35 0 55
133 2026-06-11T11:00:50 514 29.8 34 0 55
134 2026-06-11T11:01:51 545 30 34 0 57
135 2026-06-11T11:02:51 523 29.8 35 0 57
136 2026-06-11T11:03:52 533 29.8 35 0 55
137 2026-06-11T11:04:52 561 29.8 34 0 57
138 2026-06-11T11:05:53 545 29.8 34 0 57
139 2026-06-11T11:06:53 574 29.8 35 0 57
140 2026-06-11T11:07:54 519 30 34 0 57
141 2026-06-11T11:08:54 481 30 35 0 57
142 2026-06-11T11:09:55 491 29.8 35 0 57
143 2026-06-11T11:11:56 514 30 34 0 57
144 2026-06-11T11:12:56 476 29.8 34 0 57
145 2026-06-11T11:13:57 556 30 34 0 57
146 2026-06-11T11:14:58 534 30 35 0 57
147 2026-06-11T11:15:58 463 30 34 0 57
148 2026-06-11T11:16:58 506 30 35 0 57
149 2026-06-11T11:17:59 496 30 35 0 57
150 2026-06-11T11:18:59 496 30 34 0 57
151 2026-06-11T11:20:00 463 30 34 0 57
152 2026-06-11T11:21:00 488 30 34 0 57
153 2026-06-11T11:22:01 488 30 34 0 57
154 2026-06-11T11:23:02 470 30 34 0 57
155 2026-06-11T11:24:02 488 30 34 0 57
156 2026-06-11T11:25:02 500 30 34 0 57
157 2026-06-11T11:26:03 495 30 34 0 57
158 2026-06-11T11:27:03 481 30 34 0 57
159 2026-06-11T11:28:04 457 30 34 0 57
160 2026-06-11T11:29:04 500 30.1 34 0 57
161 2026-06-11T11:30:05 529 30 34 0 57
162 2026-06-11T11:31:05 476 30 34 0 57
163 2026-06-11T11:32:06 506 30 34 0 57
164 2026-06-11T11:33:06 452 30.1 34 0 57
165 2026-06-11T11:34:07 495 30 34 0 57
166 2026-06-11T11:36:08 463 30 35 0 57
167 2026-06-11T11:37:09 438 30 34 0 57
168 2026-06-11T11:38:09 517 30.1 34 0 57
169 2026-06-11T11:40:10 481 30 34 0 57
170 2026-06-11T11:41:10 470 30.1 34 0 57
171 2026-06-11T11:42:11 463 30.1 34 0 57
172 2026-06-11T11:43:11 470 30 35 0 57
173 2026-06-11T11:44:12 473 30 34 0 57
174 2026-06-11T11:45:12 488 30 34 0 57
175 2026-06-11T11:46:13 470 30 34 0 57
176 2026-06-11T11:47:13 523 30 34 0 57
177 2026-06-11T11:48:14 488 30 34 0 57
178 2026-06-11T11:49:14 452 30 34 0 57
179 2026-06-11T11:50:15 476 30 34 0 57
180 2026-06-11T11:51:15 488 30 35 0 57
181 2026-06-11T11:52:16 501 30.1 35 0 57
182 2026-06-11T11:53:16 454 30.1 34 0 57
183 2026-06-11T11:55:17 470 30 34 0 55
184 2026-06-11T11:56:18 470 30 35 0 57
185 2026-06-11T11:57:19 459 30 35 0 57
186 2026-06-11T11:58:19 463 30 34 0 57
187 2026-06-11T11:59:19 529 30 35 0 57
188 2026-06-11T12:00:20 478 30.1 35 0 57
189 2026-06-11T12:01:20 473 30 35 0 57
190 2026-06-11T12:02:21 463 30 34 0 57
191 2026-06-11T12:03:21 506 30.1 35 0 57
192 2026-06-11T12:04:22 473 30.1 35 0 57
193 2026-06-11T12:05:23 496 30.1 34 0 57
194 2026-06-11T12:06:23 546 30.1 34 0 57
195 2026-06-11T12:07:23 534 30.1 34 0 57
196 2026-06-11T12:08:24 517 30.1 34 0 57
197 2026-06-11T12:09:24 500 30.1 35 0 57
198 2026-06-11T12:10:25 506 30.1 34 0 57
199 2026-06-11T12:11:25 500 30.1 34 0 57
200 2026-06-11T12:12:26 561 30.1 34 0 57
201 2026-06-11T12:13:27 529 30.1 35 0 57
202 2026-06-11T12:14:27 478 30.1 34 0 57
203 2026-06-11T12:15:28 517 30.1 34 0 57
204 2026-06-11T12:16:28 523 30 34 0 57
205 2026-06-11T12:17:28 517 30.1 35 0 57
206 2026-06-11T12:18:29 491 30.1 35 0 57
207 2026-06-11T12:19:29 506 30.2 34 0 57
208 2026-06-11T12:20:30 506 30.1 34 0 57
209 2026-06-11T12:21:30 567 30.1 34 0 57
210 2026-06-11T12:22:31 517 30.1 34 0 57
211 2026-06-11T12:23:31 523 30.1 34 0 57
212 2026-06-11T12:24:32 506 30.1 34 0 57
213 2026-06-11T12:25:32 523 30.1 34 0 57
214 2026-06-11T12:26:33 517 30.1 34 0 57
215 2026-06-11T12:27:33 523 30.1 34 0 57
216 2026-06-11T12:28:34 567 30.2 34 0 57
217 2026-06-11T12:29:35 517 30.2 35 0 57
218 2026-06-11T12:30:35 506 30.2 34 0 57
219 2026-06-11T12:31:36 529 30.1 34 0 57
220 2026-06-11T12:32:36 534 30.2 35 0 57
221 2026-06-11T12:33:36 501 30.2 34 0 57
222 2026-06-11T12:34:37 529 30.2 34 0 57
223 2026-06-11T12:35:38 599 30.2 34 0 57
224 2026-06-11T12:36:38 567 30.2 34 0 57
225 2026-06-11T12:37:39 534 30.2 34 0 57
226 2026-06-11T12:38:39 552 30.1 34 0 57
227 2026-06-11T12:39:40 534 30.2 34 0 60
228 2026-06-11T12:40:40 546 30.2 34 0 57
229 2026-06-11T12:41:41 592 30.2 34 0 57
230 2026-06-11T12:42:41 534 30.2 34 0 57
231 2026-06-11T12:43:42 552 30.2 34 0 57
232 2026-06-11T12:44:42 546 30.2 34 0 57
233 2026-06-11T12:45:43 546 30.3 34 0 57
234 2026-06-11T12:46:43 592 30.2 34 0 57
235 2026-06-11T12:47:44 529 30.2 34 0 57
236 2026-06-11T12:48:44 534 30.2 34 0 57
237 2026-06-11T12:49:45 540 30.3 34 0 57
238 2026-06-11T12:50:45 561 30.3 34 0 57
239 2026-06-11T12:51:46 552 30.3 35 0 57
240 2026-06-11T12:52:46 517 30.2 34 0 57
241 2026-06-11T12:53:47 546 30.2 34 0 57
242 2026-06-11T12:54:47 567 30.3 34 0 57
243 2026-06-11T12:55:48 534 30.2 34 0 57
244 2026-06-11T12:56:48 552 30.2 34 0 57
245 2026-06-11T12:57:49 552 30.2 34 0 57
246 2026-06-11T12:58:49 546 30.3 34 0 57
247 2026-06-11T12:59:50 534 30.3 34 0 57
248 2026-06-11T13:00:50 580 30.3 34 0 57
249 2026-06-11T13:01:51 534 30.3 34 0 57
250 2026-06-11T13:02:51 561 30.3 34 0 57
251 2026-06-11T13:03:52 561 30.3 34 0 57
252 2026-06-11T13:04:52 592 30.3 34 0 57
253 2026-06-11T13:06:53 537 30.3 34 0 57
254 2026-06-11T13:07:54 574 30.3 34 0 57
255 2026-06-11T13:09:55 517 30.3 34 0 57
256 2026-06-11T13:10:55 529 30.3 34 0 57
257 2026-06-11T13:11:56 546 30.3 34 0 57
258 2026-06-11T13:12:56 561 30.3 34 0 57
259 2026-06-11T13:13:57 540 30.3 33 0 57
260 2026-06-11T13:14:57 569 30.2 34 0 57
261 2026-06-11T13:15:58 580 30.2 34 0 57
262 2026-06-11T13:16:58 552 30.2 34 0 57
263 2026-06-11T13:17:59 534 30.1 34 0 55
264 2026-06-11T13:18:59 523 30.1 35 0 57
265 2026-06-11T13:20:00 542 30 34 0 57
266 2026-06-11T13:21:00 523 29.8 35 0 57
267 2026-06-11T13:22:01 567 29.8 34 0 57
268 2026-06-11T13:23:01 611 29.8 35 0 55
269 2026-06-11T13:24:02 589 29.7 35 0 57
270 2026-06-11T13:25:03 553 29.8 34 0 57
271 2026-06-11T13:26:03 565 29.8 34 0 57
272 2026-06-11T13:27:03 580 29.7 34 0 57
273 2026-06-11T13:28:04 551 29.7 34 0 57
274 2026-06-11T13:29:04 580 29.7 35 0 57
275 2026-06-11T13:30:05 539 29.7 35 0 57
276 2026-06-11T13:31:05 539 29.7 35 0 57
277 2026-06-11T13:32:06 567 29.7 35 0 57
278 2026-06-11T13:34:07 556 29.8 35 0 57
279 2026-06-11T13:35:07 545 29.8 34 0 57
280 2026-06-11T13:36:08 551 30 34 0 57
281 2026-06-11T13:37:09 500 30 35 0 57
282 2026-06-11T13:38:09 496 30 35 0 55
283 2026-06-11T13:39:09 506 30 35 0 57
284 2026-06-11T13:40:10 478 30 34 0 57
285 2026-06-11T13:41:10 546 30 35 0 57
286 2026-06-11T13:42:11 501 30 34 0 57
287 2026-06-11T13:44:12 461 29.8 35 0 55
288 2026-06-11T13:45:12 539 29.3 34 0 57
289 2026-06-11T13:46:13 556 29.1 35 0 57
290 2026-06-11T13:47:14 567 28.7 35 0 55
291 2026-06-11T13:48:14 607 28.6 36 0 57
292 2026-06-11T13:49:14 588 28.3 35 0 57
293 2026-06-11T13:50:15 580 28.2 36 0 57
294 2026-06-11T13:51:16 561 28 36 0 57
295 2026-06-11T13:52:16 553 27.8 36 0 55
296 2026-06-11T13:53:16 653 27.7 36 0 57
297 2026-06-11T13:54:17 618 27.7 36 0 57
298 2026-06-11T13:55:17 612 27.5 37 0 57
299 2026-06-11T13:56:18 575 27.5 37 0 57
300 2026-06-11T13:57:18 556 27.3 37 0 55
301 2026-06-11T13:58:19 570 27.2 37 0 55
302 2026-06-11T13:59:19 591 27.2 37 0 55
303 2026-06-11T14:00:20 533 27.1 37 0 55
304 2026-06-11T14:01:20 549 27.1 38 0 57
305 2026-06-11T14:02:21 501 27 37 0 55
306 2026-06-11T14:03:22 523 27 37 0 55
307 2026-06-11T14:04:22 523 26.8 38 0 57
308 2026-06-11T14:05:22 537 26.7 38 0 55
309 2026-06-11T14:06:23 589 26.7 38 0 57
310 2026-06-11T14:07:23 542 26.7 38 0 57
311 2026-06-11T14:08:24 567 26.6 38 0 57
312 2026-06-11T14:09:24 564 26.6 38 0 57
313 2026-06-11T14:10:25 567 26.6 38 0 57
314 2026-06-11T14:11:26 575 26.6 38 0 57
315 2026-06-11T14:12:26 575 26.6 37 0 57
316 2026-06-11T14:13:27 575 26.5 38 0 55
317 2026-06-11T14:15:28 508 26.5 38 0 55
318 2026-06-11T14:16:28 549 26.3 38 0 55
319 2026-06-11T14:17:28 529 26.3 38 0 55
320 2026-06-11T14:18:29 529 26.5 39 0 57
321 2026-06-11T14:19:30 476 26.3 38 0 57
322 2026-06-11T14:20:30 514 26.3 39 0 55
323 2026-06-11T14:21:31 492 26.2 38 0 55
324 2026-06-11T14:22:31 501 26.2 38 0 55
325 2026-06-11T14:23:32 514 26.2 39 0 57
326 2026-06-11T14:24:32 495 26.2 38 0 57
327 2026-06-11T14:25:32 581 26.2 39 0 55
328 2026-06-11T14:26:33 624 26.2 38 0 55
329 2026-06-11T14:27:33 682 26.2 39 0 55
330 2026-06-11T14:28:34 675 26.2 39 0 55
331 2026-06-11T14:29:35 671 26.2 39 0 55
332 2026-06-11T14:30:35 629 26.1 39 0 55
333 2026-06-11T14:31:36 638 26.2 39 0 57
334 2026-06-11T14:32:36 638 26.1 38 0 55
335 2026-06-11T14:33:37 615 26.2 38 0 55
336 2026-06-11T14:34:37 607 26.2 39 0 55
337 2026-06-11T14:35:37 638 26.1 39 0 55
338 2026-06-11T14:36:38 600 26.1 39 0 55
339 2026-06-11T14:37:39 575 26.2 39 0 55
340 2026-06-11T14:38:39 575 26.1 39 0 55
341 2026-06-11T14:39:40 596 26.1 39 0 57
342 2026-06-11T14:40:40 624 26.1 39 0 55
343 2026-06-11T14:41:41 575 26.1 39 0 57
344 2026-06-11T14:42:41 565 26.1 38 0 55
345 2026-06-11T14:43:42 637 26.1 39 0 55
346 2026-06-11T14:44:42 581 26.1 39 0 57
347 2026-06-11T14:45:43 581 26.1 39 0 55
348 2026-06-11T14:46:43 556 26.1 39 0 55
349 2026-06-11T14:49:45 565 26.1 39 0 57
350 2026-06-11T14:50:45 565 26.1 39 0 55
351 2026-06-11T14:51:46 545 26 39 0 55
352 2026-06-11T14:52:46 526 26.1 39 0 55
353 2026-06-11T14:53:47 549 26.1 39 0 55
354 2026-06-11T14:54:47 549 26 38 0 55
355 2026-06-11T14:55:48 575 26.1 39 0 55
356 2026-06-11T14:56:48 533 26.1 39 0 55
357 2026-06-11T14:58:49 526 26.1 39 0 55
358 2026-06-11T14:59:50 526 26.1 39 0 55
359 2026-06-11T15:00:50 565 26.1 39 0 57
360 2026-06-11T15:01:51 520 26 39 0 55
361 2026-06-11T15:02:51 526 26.1 38 0 57
362 2026-06-11T15:03:52 526 26.1 38 0 55
363 2026-06-11T15:04:52 549 26.1 39 0 55
364 2026-06-11T15:05:53 539 26.1 39 0 57
365 2026-06-11T15:06:53 549 26.2 39 0 55
366 2026-06-11T15:07:54 565 26.2 39 0 55
367 2026-06-11T15:08:54 533 26.1 39 0 57
368 2026-06-11T15:09:55 526 26.2 40 0 55
369 2026-06-11T15:10:55 505 26.2 39 0 57
370 2026-06-11T15:11:56 526 26.2 39 0 57
371 2026-06-11T15:12:57 526 26.2 39 0 55
372 2026-06-11T15:13:57 549 26.2 39 0 55
373 2026-06-11T15:14:57 549 26.2 39 0 55
374 2026-06-11T15:15:58 539 26.2 39 0 57
375 2026-06-11T15:16:58 556 26.2 39 0 55
376 2026-06-11T15:17:59 545 26.2 39 0 55
377 2026-06-11T15:18:59 565 26.2 40 0 57
378 2026-06-11T15:21:00 517 26.3 39 0 55
379 2026-06-11T15:22:01 565 26.3 39 0 55
380 2026-06-11T15:23:01 533 26.3 39 0 57
381 2026-06-11T15:24:02 533 26.3 40 0 55
382 2026-06-11T15:25:02 546 26.3 40 0 55
383 2026-06-11T15:26:03 523 26.3 39 0 57
384 2026-06-11T15:27:03 533 26.3 39 0 55
385 2026-06-11T15:28:04 549 26.3 39 0 57
386 2026-06-11T15:29:04 545 26.3 39 0 55
387 2026-06-11T15:30:05 549 26.3 39 0 57
388 2026-06-11T15:31:05 575 26.3 39 0 55
389 2026-06-11T15:32:06 539 26.3 39 0 57
390 2026-06-11T15:33:06 565 26.3 39 0 55
391 2026-06-11T15:34:07 526 26.5 39 0 55
392 2026-06-11T15:35:07 575 26.3 39 0 55
393 2026-06-11T15:37:08 565 26.3 39 0 55
394 2026-06-11T15:38:09 549 26.5 39 0 55
395 2026-06-11T15:39:10 533 26.5 40 0 55
396 2026-06-11T15:40:10 565 26.3 40 0 55
397 2026-06-11T15:41:10 565 26.5 39 0 55
398 2026-06-11T15:42:11 549 26.3 40 0 55
399 2026-06-11T15:43:11 529 26.5 39 0 55
400 2026-06-11T15:45:12 581 26.5 39 0 55
401 2026-06-11T15:46:13 596 26.5 40 0 55
402 2026-06-11T15:47:13 546 26.5 39 0 55
403 2026-06-11T15:48:14 575 26.3 39 0 55
404 2026-06-11T15:49:14 589 26.5 40 0 55
405 2026-06-11T15:50:15 540 26.5 39 0 55
406 2026-06-11T15:51:15 596 26.3 40 0 55
407 2026-06-11T15:52:16 529 26.5 40 0 57
408 2026-06-11T15:53:16 540 26.5 39 0 55
409 2026-06-11T15:54:17 575 26.5 39 0 55
410 2026-06-11T15:55:17 545 26.5 39 0 55
411 2026-06-11T15:56:18 581 26.3 39 0 55
412 2026-06-11T15:57:18 545 26.5 39 0 57
413 2026-06-11T15:58:19 545 26.5 40 0 57
414 2026-06-11T15:59:19 529 26.5 40 0 57
415 2026-06-11T16:00:20 546 26.5 40 0 55
416 2026-06-11T16:01:20 546 26.5 39 0 57
417 2026-06-11T16:02:21 556 26.3 39 0 57
418 2026-06-11T16:03:21 545 26.5 39 0 57
419 2026-06-11T16:04:22 556 26.5 38 0 55
420 2026-06-11T16:05:23 575 26.6 39 0 55
421 2026-06-11T16:06:23 565 26.6 38 0 57
422 2026-06-11T16:07:23 629 26.6 39 0 57
423 2026-06-11T16:08:24 549 26.5 39 0 57
424 2026-06-11T16:09:24 556 26.5 39 0 55
425 2026-06-11T16:10:25 570 26.5 40 0 55
426 2026-06-11T16:11:25 565 26.5 39 0 55
427 2026-06-11T16:12:26 575 26.5 38 0 55
428 2026-06-11T16:13:26 615 26.6 39 0 57
429 2026-06-11T16:14:27 556 26.5 39 0 55
430 2026-06-11T16:15:27 570 26.6 39 0 55
431 2026-06-11T16:16:28 575 26.6 39 0 55
432 2026-06-11T16:17:28 556 26.6 39 0 55
433 2026-06-11T16:18:29 575 26.5 40 0 55
434 2026-06-11T16:19:29 565 26.6 39 0 55
435 2026-06-11T16:20:30 556 26.5 39 0 55
436 2026-06-11T16:21:31 565 26.6 40 0 55
437 2026-06-11T16:22:31 533 26.6 39 0 57
438 2026-06-11T16:23:31 575 26.6 40 0 55
439 2026-06-11T16:24:32 570 26.6 39 0 55
440 2026-06-11T16:25:33 556 26.6 39 0 57
441 2026-06-11T16:26:33 545 26.6 39 0 55
442 2026-06-11T16:27:33 589 26.5 39 0 57
443 2026-06-11T16:28:34 549 26.6 39 0 55
444 2026-06-11T16:29:34 581 26.6 39 0 55

View 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
1 time co2 temperature humidity windows battery
2 2026-06-11T08:46:55 400 25.1 39 0 36
3 2026-06-11T08:49:55 405 25.1 39 0 36
4 2026-06-11T08:50:55 413 25.1 38 0 36
5 2026-06-11T08:51:56 425 25.1 39 0 36
6 2026-06-11T08:53:57 408 25.2 39 0 36
7 2026-06-11T08:54:57 418 25.2 38 0 36
8 2026-06-11T08:55:58 425 25.2 39 0 36
9 2026-06-11T08:56:58 418 25.2 39 0 36
10 2026-06-11T08:57:59 423 25.2 38 0 36
11 2026-06-11T08:59:00 442 25.2 39 0 36
12 2026-06-11T09:00:00 426 25.2 39 0 36
13 2026-06-11T09:01:01 426 25.1 38 0 33
14 2026-06-11T09:02:01 434 25.3 39 0 36
15 2026-06-11T09:03:01 423 25.3 39 0 36
16 2026-06-11T09:05:02 434 25.3 39 0 36
17 2026-06-11T09:06:03 439 25.3 38 0 36
18 2026-06-11T09:07:04 454 25.3 39 0 36
19 2026-06-11T09:08:04 439 25.3 39 0 36
20 2026-06-11T09:10:05 454 25.3 39 0 36
21 2026-06-11T09:11:05 439 25.5 38 0 36
22 2026-06-11T09:12:06 454 25.3 38 0 36
23 2026-06-11T09:13:06 454 25.5 39 0 36
24 2026-06-11T09:14:07 439 25.3 39 0 36
25 2026-06-11T09:15:07 439 25.3 39 0 36
26 2026-06-11T09:16:08 434 25.3 39 0 36
27 2026-06-11T09:17:09 445 25.3 38 0 36
28 2026-06-11T09:18:09 459 25.3 38 0 36
29 2026-06-11T09:19:09 459 25.2 39 0 36
30 2026-06-11T09:21:10 434 25.3 39 0 36
31 2026-06-11T09:22:11 434 25.2 39 0 36
32 2026-06-11T09:23:12 426 25.2 39 0 36
33 2026-06-11T09:24:12 423 25.2 38 0 36
34 2026-06-11T09:25:12 442 25.2 39 0 36
35 2026-06-11T09:26:13 426 25.2 38 0 36
36 2026-06-11T09:27:13 438 25.1 38 0 36
37 2026-06-11T09:28:14 438 25.1 38 0 36
38 2026-06-11T09:29:15 438 25.1 39 0 36
39 2026-06-11T09:30:15 418 25.2 39 0 36
40 2026-06-11T09:31:16 418 25.1 38 0 36
41 2026-06-11T09:32:16 418 25.2 39 0 36
42 2026-06-11T09:33:17 415 25.1 39 0 36
43 2026-06-11T09:34:17 418 25.1 38 0 36
44 2026-06-11T09:35:18 427 25 39 0 36
45 2026-06-11T09:36:18 413 25.1 39 0 36
46 2026-06-11T09:37:19 415 25 39 0 36
47 2026-06-11T09:39:20 408 25 39 0 36
48 2026-06-11T09:40:20 405 25.1 39 0 36
49 2026-06-11T09:41:20 408 25 38 0 36
50 2026-06-11T09:42:21 422 25 38 0 36
51 2026-06-11T09:43:21 418 25 38 0 36
52 2026-06-11T09:44:22 418 25.1 39 0 36
53 2026-06-11T09:45:23 408 25.1 39 0 36
54 2026-06-11T09:46:23 408 25.1 38 0 36
55 2026-06-11T09:47:24 422 25.1 38 0 36
56 2026-06-11T09:48:24 414 25.1 39 0 36
57 2026-06-11T09:49:24 408 25 38 0 36
58 2026-06-11T09:50:25 414 25.1 39 0 36
59 2026-06-11T09:51:26 405 25 38 0 36
60 2026-06-11T09:52:26 418 25.1 39 0 36
61 2026-06-11T09:53:27 408 25.1 38 0 36
62 2026-06-11T09:54:27 422 25.1 39 0 36
63 2026-06-11T09:55:28 400 25 39 0 36
64 2026-06-11T09:57:28 400 25 38 0 36
65 2026-06-11T10:00:29 414 25 39 0 36
66 2026-06-11T10:01:29 414 25 39 0 36
67 2026-06-11T10:02:30 400 25 38 0 36
68 2026-06-11T10:04:30 420 25 39 0 36
69 2026-06-11T10:05:31 400 25 40 0 36
70 2026-06-11T10:07:31 400 25 39 0 36
71 2026-06-11T10:10:32 414 25 39 0 36
72 2026-06-11T10:11:32 407 25 39 0 36
73 2026-06-11T10:12:33 414 24.8 39 0 36
74 2026-06-11T10:13:33 488 25 38 0 36
75 2026-06-11T10:14:34 424 24.8 39 0 36
76 2026-06-11T10:16:35 414 24.8 39 0 36
77 2026-06-11T10:17:35 488 25 39 0 36
78 2026-06-11T10:18:36 414 24.8 39 0 36
79 2026-06-11T10:19:36 485 24.8 39 0 36
80 2026-06-11T10:20:37 477 25 39 0 36
81 2026-06-11T10:21:37 400 24.8 39 0 36
82 2026-06-11T10:23:38 480 24.8 39 0 36
83 2026-06-11T10:24:38 480 25 39 0 36
84 2026-06-11T10:25:39 409 25 39 0 36
85 2026-06-11T10:26:39 414 25 39 0 36
86 2026-06-11T10:27:40 420 25 39 0 36
87 2026-06-11T10:28:40 420 25 39 0 36
88 2026-06-11T10:29:41 420 24.8 40 0 31
89 2026-06-11T10:30:41 475 25 39 0 36
90 2026-06-11T10:31:42 420 25 39 0 36
91 2026-06-11T10:32:42 420 25 39 0 36
92 2026-06-11T10:33:43 427 25 40 0 36
93 2026-06-11T10:34:43 420 25.1 39 0 36
94 2026-06-11T10:35:44 432 25.1 40 0 36
95 2026-06-11T10:36:44 415 25 39 0 36
96 2026-06-11T10:37:45 436 25.1 40 0 36
97 2026-06-11T10:38:45 417 25.1 39 0 36
98 2026-06-11T10:39:46 432 25.1 39 0 36
99 2026-06-11T10:40:46 436 25.1 39 0 36
100 2026-06-11T10:41:47 441 25 39 0 36
101 2026-06-11T10:42:47 427 25.1 40 0 36
102 2026-06-11T10:43:48 425 25.1 39 0 33
103 2026-06-11T10:44:49 436 25.1 39 0 36
104 2026-06-11T10:45:49 436 25.1 39 0 36
105 2026-06-11T10:46:49 441 25.1 39 0 36
106 2026-06-11T10:47:50 441 25.1 39 0 36
107 2026-06-11T10:48:50 436 25.1 40 0 36
108 2026-06-11T10:49:51 417 25.1 39 0 36
109 2026-06-11T10:50:52 441 25 39 0 36
110 2026-06-11T10:51:52 424 25.1 39 0 36
111 2026-06-11T10:52:52 441 25.1 40 0 36
112 2026-06-11T10:53:53 425 25.1 39 0 36
113 2026-06-11T10:54:54 441 25.1 39 0 36
114 2026-06-11T10:55:54 436 25.1 40 0 36
115 2026-06-11T10:56:54 420 25.1 39 0 36
116 2026-06-11T10:57:55 441 25.1 39 0 36
117 2026-06-11T10:58:55 441 25.1 39 0 36
118 2026-06-11T10:59:56 441 25 39 0 33
119 2026-06-11T11:00:56 427 25.1 39 0 36
120 2026-06-11T11:02:57 441 25.1 40 0 36
121 2026-06-11T11:03:58 420 25.1 40 0 36
122 2026-06-11T11:04:58 428 25.1 40 0 36
123 2026-06-11T11:05:59 428 25.1 39 0 36
124 2026-06-11T11:06:59 445 25.1 39 0 36
125 2026-06-11T11:08:00 441 25.1 39 0 36
126 2026-06-11T11:09:01 436 25.1 39 0 36
127 2026-06-11T11:10:01 436 25.1 39 0 36
128 2026-06-11T11:11:01 445 25.1 39 0 36
129 2026-06-11T11:12:02 445 25.1 39 0 36
130 2026-06-11T11:13:02 445 25.1 39 0 36
131 2026-06-11T11:14:03 445 25.1 39 0 36
132 2026-06-11T11:15:03 441 25.1 39 0 36
133 2026-06-11T11:16:04 441 25.1 40 0 36
134 2026-06-11T11:17:04 428 25.1 39 0 36
135 2026-06-11T11:18:05 441 25.1 39 0 36
136 2026-06-11T11:19:05 441 25.1 40 0 36
137 2026-06-11T11:20:06 428 25.1 39 0 36
138 2026-06-11T11:21:06 432 25.1 39 0 36
139 2026-06-11T11:22:07 441 25.1 39 0 36
140 2026-06-11T11:23:07 441 25.1 39 0 36
141 2026-06-11T11:25:09 441 25.1 39 0 36
142 2026-06-11T11:26:09 436 25.1 39 0 36
143 2026-06-11T11:27:09 436 25.1 39 0 36
144 2026-06-11T11:29:10 459 25.1 39 0 36
145 2026-06-11T11:30:11 459 25.1 39 0 33
146 2026-06-11T11:32:12 441 25.1 38 0 36
147 2026-06-11T11:33:12 455 25.1 39 0 36
148 2026-06-11T11:34:13 432 25.1 40 0 33
149 2026-06-11T11:35:13 420 25.1 39 0 36
150 2026-06-11T11:36:14 432 25.2 38 0 36
151 2026-06-11T11:37:14 436 25.1 39 0 36
152 2026-06-11T11:38:15 427 25.1 39 0 36
153 2026-06-11T11:39:16 432 25.2 39 0 36
154 2026-06-11T11:40:16 441 25.2 39 0 36
155 2026-06-11T11:41:16 432 25.2 39 0 36
156 2026-06-11T11:42:17 432 25.2 38 0 36
157 2026-06-11T11:43:17 455 25.2 39 0 36
158 2026-06-11T11:44:18 441 25.2 39 0 36
159 2026-06-11T11:45:19 441 25.2 39 0 33
160 2026-06-11T11:46:19 441 25.2 38 0 36
161 2026-06-11T11:47:19 459 25.2 39 0 36
162 2026-06-11T11:48:20 450 25.2 39 0 36
163 2026-06-11T11:49:21 450 25.3 38 0 36
164 2026-06-11T11:50:21 464 25.3 40 0 36
165 2026-06-11T11:51:21 428 25.3 39 0 36
166 2026-06-11T11:52:22 450 25.3 39 0 36
167 2026-06-11T11:53:23 450 25.3 39 0 36
168 2026-06-11T11:54:23 450 25.3 39 0 36
169 2026-06-11T11:55:23 456 25.3 39 0 36
170 2026-06-11T11:56:24 456 25.3 39 0 36
171 2026-06-11T11:57:25 456 25.3 40 0 36
172 2026-06-11T11:58:25 447 25.3 38 0 36
173 2026-06-11T11:59:26 482 25.3 39 0 36
174 2026-06-11T12:00:26 482 25.3 39 0 33
175 2026-06-11T12:01:26 461 25.3 39 0 36
176 2026-06-11T12:02:27 470 25.2 39 0 36
177 2026-06-11T12:03:28 465 25.2 39 0 36
178 2026-06-11T12:04:28 461 25.3 39 0 36
179 2026-06-11T12:07:30 470 25.3 39 0 33
180 2026-06-11T12:10:31 465 25.3 39 0 36
181 2026-06-11T12:11:32 470 25.3 39 0 36
182 2026-06-11T12:12:32 470 25.3 39 0 36
183 2026-06-11T12:13:33 470 25.3 39 0 36
184 2026-06-11T12:14:33 470 25.2 39 0 36
185 2026-06-11T12:15:34 470 25.3 39 0 36
186 2026-06-11T12:16:34 470 25.3 40 0 36
187 2026-06-11T12:17:34 454 25.3 39 0 36
188 2026-06-11T12:18:35 465 25.3 39 0 36
189 2026-06-11T12:19:36 470 25.3 39 0 36
190 2026-06-11T12:20:36 461 25.3 38 0 36
191 2026-06-11T12:21:37 478 25.3 38 0 36
192 2026-06-11T12:22:37 478 25.3 38 0 36
193 2026-06-11T12:23:38 485 25.3 39 0 36
194 2026-06-11T12:24:38 465 25.3 38 0 36
195 2026-06-11T12:25:39 482 25.3 38 0 36
196 2026-06-11T12:27:40 470 25.5 39 0 36
197 2026-06-11T12:28:40 473 25.5 38 0 36
198 2026-06-11T12:30:41 473 25.3 39 0 33
199 2026-06-11T12:31:42 473 25.5 38 0 36
200 2026-06-11T12:32:42 485 25.3 38 0 36
201 2026-06-11T12:33:43 490 25.5 38 0 36
202 2026-06-11T12:34:43 485 25.5 39 0 36
203 2026-06-11T12:35:44 473 25.5 38 0 36
204 2026-06-11T12:36:44 490 25.5 39 0 36
205 2026-06-11T12:37:45 473 25.5 39 0 36
206 2026-06-11T12:38:45 478 25.5 38 0 36
207 2026-06-11T12:39:46 490 25.5 39 0 36
208 2026-06-11T12:40:46 473 25.5 38 0 33
209 2026-06-11T12:41:47 493 25.5 39 0 33
210 2026-06-11T12:42:47 473 25.6 39 0 36
211 2026-06-11T12:43:48 478 25.5 38 0 33
212 2026-06-11T12:44:48 493 25.5 38 0 36
213 2026-06-11T12:45:49 493 25.5 39 0 33
214 2026-06-11T12:46:49 490 25.6 38 0 36
215 2026-06-11T12:47:50 493 25.6 39 0 36
216 2026-06-11T12:48:50 481 25.6 38 0 36
217 2026-06-11T12:49:51 493 25.6 38 0 36
218 2026-06-11T12:50:51 496 25.6 38 0 36
219 2026-06-11T12:51:52 505 25.6 38 0 36
220 2026-06-11T12:52:52 505 25.6 38 0 36
221 2026-06-11T12:53:53 505 25.6 38 0 33
222 2026-06-11T12:54:53 496 25.6 38 0 36
223 2026-06-11T12:55:54 496 25.6 38 0 36
224 2026-06-11T12:56:54 505 25.7 38 0 33
225 2026-06-11T12:57:55 505 25.6 39 0 33
226 2026-06-11T12:58:55 492 25.6 39 0 36
227 2026-06-11T12:59:56 490 25.6 38 0 36
228 2026-06-11T13:00:56 505 25.7 39 0 36
229 2026-06-11T13:01:57 505 25.6 38 0 33
230 2026-06-11T13:02:57 507 25.6 39 0 33
231 2026-06-11T13:03:58 492 25.6 38 0 33
232 2026-06-11T13:04:58 507 25.7 39 0 33
233 2026-06-11T13:05:59 492 25.7 38 0 33
234 2026-06-11T13:06:59 507 25.7 39 0 36
235 2026-06-11T13:08:00 481 25.7 38 0 36
236 2026-06-11T13:09:00 505 25.7 39 0 36
237 2026-06-11T13:10:01 492 25.7 39 0 33
238 2026-06-11T13:11:02 492 25.7 38 0 33
239 2026-06-11T13:12:02 507 25.7 38 0 36
240 2026-06-11T13:13:02 521 25.6 38 0 36
241 2026-06-11T13:14:03 521 25.7 38 0 36
242 2026-06-11T13:15:03 521 25.7 39 0 36
243 2026-06-11T13:16:04 501 25.7 38 0 33
244 2026-06-11T13:17:04 517 25.7 38 0 33
245 2026-06-11T13:18:05 530 25.7 39 0 36
246 2026-06-11T13:19:05 508 25.7 39 0 33
247 2026-06-11T13:20:06 508 25.7 39 0 33
248 2026-06-11T13:21:06 518 25.8 39 0 36
249 2026-06-11T13:22:07 523 25.8 38 0 36
250 2026-06-11T13:23:07 530 25.8 39 0 33
251 2026-06-11T13:24:08 523 25.8 38 0 36
252 2026-06-11T13:25:09 542 25.8 38 0 33
253 2026-06-11T13:26:09 542 25.8 39 0 33
254 2026-06-11T13:27:09 526 25.8 38 0 33
255 2026-06-11T13:28:10 542 26 39 0 36
256 2026-06-11T13:29:11 441 26 38 0 36
257 2026-06-11T13:30:11 455 26 39 0 33
258 2026-06-11T13:31:11 451 26 38 0 33
259 2026-06-11T13:32:12 460 26 39 0 36
260 2026-06-11T13:33:13 441 26 38 0 36
261 2026-06-11T13:34:13 441 26 39 0 36
262 2026-06-11T13:35:13 441 26 38 0 36
263 2026-06-11T13:36:14 465 26 38 0 33
264 2026-06-11T13:37:14 460 26 39 0 36
265 2026-06-11T13:38:15 441 26 38 0 33
266 2026-06-11T13:39:16 455 26.1 39 0 33
267 2026-06-11T13:40:16 451 26 38 0 36
268 2026-06-11T13:41:16 465 26.1 39 0 33
269 2026-06-11T13:42:17 451 26 38 0 36
270 2026-06-11T13:43:18 465 26 38 0 33
271 2026-06-11T13:44:18 460 26.1 38 0 33
272 2026-06-11T13:45:18 465 26 38 0 33
273 2026-06-11T13:46:19 465 26.1 39 0 36
274 2026-06-11T13:47:19 451 26 38 0 36
275 2026-06-11T13:48:20 465 26.1 38 0 33
276 2026-06-11T13:49:20 465 26 39 0 36
277 2026-06-11T13:50:21 446 26 38 0 36
278 2026-06-11T13:51:22 460 26 38 0 33
279 2026-06-11T13:52:22 460 26 38 0 36
280 2026-06-11T13:53:22 460 26 39 0 36
281 2026-06-11T13:54:23 446 26 38 0 33
282 2026-06-11T13:55:23 460 26 39 0 36
283 2026-06-11T13:56:24 438 26 39 0 36
284 2026-06-11T13:57:24 438 26 38 0 33
285 2026-06-11T13:58:25 455 26 38 0 33
286 2026-06-11T13:59:25 460 26 39 0 33
287 2026-06-11T14:01:26 438 26 39 0 36
288 2026-06-11T14:02:27 438 26 37 0 36
289 2026-06-11T14:03:28 470 26.1 38 0 33
290 2026-06-11T14:04:28 455 26 38 0 36
291 2026-06-11T14:05:29 482 26 38 0 36
292 2026-06-11T14:08:30 452 26 38 0 36
293 2026-06-11T14:09:31 455 26.1 38 0 36
294 2026-06-11T14:10:31 455 26.1 38 0 33
295 2026-06-11T14:11:32 452 26.1 39 0 36
296 2026-06-11T14:12:32 441 26.1 39 0 36
297 2026-06-11T14:14:33 452 26.1 38 0 36
298 2026-06-11T14:15:34 455 26.1 38 0 33
299 2026-06-11T14:17:34 460 26.1 38 0 33
300 2026-06-11T14:19:36 455 26.1 38 0 33
301 2026-06-11T14:20:36 452 26 38 0 33
302 2026-06-11T14:21:36 455 26.1 38 0 36
303 2026-06-11T14:22:37 455 26 38 0 36
304 2026-06-11T14:23:38 452 26.1 38 0 36
305 2026-06-11T14:24:38 460 26.1 38 0 36
306 2026-06-11T14:25:39 465 26 37 0 36
307 2026-06-11T14:26:39 495 26.1 38 0 33
308 2026-06-11T14:27:40 475 26.1 38 0 36
309 2026-06-11T14:28:40 475 26.1 38 0 36
310 2026-06-11T14:29:40 471 26.1 38 0 33
311 2026-06-11T14:30:41 475 26.2 38 0 36
312 2026-06-11T14:31:41 475 26.1 39 0 36
313 2026-06-11T14:32:42 459 26.1 37 0 33
314 2026-06-11T14:33:43 492 26.2 38 0 36
315 2026-06-11T14:34:43 471 26.1 38 0 33
316 2026-06-11T14:35:44 475 26.1 38 0 33
317 2026-06-11T14:36:44 475 26.2 38 0 36
318 2026-06-11T14:37:45 475 26.1 38 0 33
319 2026-06-11T14:38:45 475 26.1 38 0 33
320 2026-06-11T14:39:46 471 26.2 37 0 33
321 2026-06-11T14:40:46 492 26.2 38 0 33
322 2026-06-11T14:41:47 465 26.1 37 0 36
323 2026-06-11T14:42:47 488 26.1 38 0 36
324 2026-06-11T14:43:48 475 26.2 38 0 36
325 2026-06-11T14:44:48 465 26.2 38 0 36
326 2026-06-11T14:45:49 465 26.2 38 0 36
327 2026-06-11T14:47:50 465 26.2 38 0 36
328 2026-06-11T14:48:50 475 26.2 38 0 33
329 2026-06-11T14:50:51 488 26.2 37 0 33
330 2026-06-11T14:52:52 475 26.2 38 0 33
331 2026-06-11T14:53:53 471 26.2 37 0 36
332 2026-06-11T14:54:53 488 26.2 38 0 33
333 2026-06-11T14:55:54 471 26.2 37 0 33
334 2026-06-11T14:56:54 483 26.2 38 0 33
335 2026-06-11T14:57:55 471 26.3 38 0 36
336 2026-06-11T14:58:55 475 26.3 38 0 33
337 2026-06-11T14:59:56 475 26.3 37 0 33
338 2026-06-11T15:00:56 488 26.3 38 0 33
339 2026-06-11T15:01:57 475 26.3 38 0 36
340 2026-06-11T15:02:57 475 26.3 37 0 36
341 2026-06-11T15:03:58 500 26.2 37 0 36
342 2026-06-11T15:04:58 495 26.2 37 0 33
343 2026-06-11T15:05:59 506 26.3 37 0 36
344 2026-06-11T15:06:59 515 26.3 38 0 33
345 2026-06-11T15:08:00 493 26.3 38 0 36
346 2026-06-11T15:09:00 497 26.3 38 0 36
347 2026-06-11T15:10:01 493 26.3 39 0 33
348 2026-06-11T15:11:01 493 26.5 37 0 33
349 2026-06-11T15:12:02 523 26.5 38 0 33
350 2026-06-11T15:13:02 506 26.5 38 0 33
351 2026-06-11T15:14:03 506 26.5 38 0 33
352 2026-06-11T15:15:03 506 26.5 38 0 33
353 2026-06-11T15:16:04 521 26.5 38 0 36
354 2026-06-11T15:17:04 526 26.5 37 0 36
355 2026-06-11T15:18:05 544 26.5 38 0 33
356 2026-06-11T15:21:07 529 26.3 38 0 33
357 2026-06-11T15:22:07 526 26.5 38 0 33
358 2026-06-11T15:23:07 529 26.5 38 0 36
359 2026-06-11T15:25:08 518 26.6 38 0 33
360 2026-06-11T15:26:09 538 26.5 38 0 36
361 2026-06-11T15:28:10 541 26.5 37 0 33
362 2026-06-11T15:29:10 556 26.5 39 0 33
363 2026-06-11T15:31:12 541 26.5 38 0 36
364 2026-06-11T15:33:13 541 26.5 38 0 36
365 2026-06-11T15:34:13 541 26.6 38 0 36
366 2026-06-11T15:35:13 546 26.5 38 0 33
367 2026-06-11T15:36:14 541 26.5 38 0 33
368 2026-06-11T15:38:15 529 26.6 38 0 33
369 2026-06-11T15:39:15 546 26.5 38 0 33
370 2026-06-11T15:40:16 546 26.5 37 0 36
371 2026-06-11T15:41:16 566 26.5 38 0 36
372 2026-06-11T15:42:17 541 26.5 39 0 36
373 2026-06-11T15:44:18 534 26.5 39 0 31
374 2026-06-11T15:45:18 524 26.5 39 0 33
375 2026-06-11T15:46:19 524 26.6 38 0 33
376 2026-06-11T15:47:20 551 26.5 38 0 36
377 2026-06-11T15:48:20 546 26.5 38 0 33
378 2026-06-11T15:49:20 541 26.5 38 0 33
379 2026-06-11T15:50:21 546 26.3 38 0 33
380 2026-06-11T15:51:22 541 26.5 38 0 33
381 2026-06-11T15:53:23 546 26.5 38 0 33
382 2026-06-11T15:54:23 541 26.5 38 0 33
383 2026-06-11T15:55:23 546 26.5 39 0 33
384 2026-06-11T15:56:24 534 26.6 38 0 33
385 2026-06-11T15:57:24 551 26.6 38 0 33
386 2026-06-11T15:58:25 551 26.6 37 0 33
387 2026-06-11T15:59:25 578 26.6 37 0 33
388 2026-06-11T16:00:26 566 26.6 39 0 36
389 2026-06-11T16:01:26 534 26.5 39 0 33
390 2026-06-11T16:02:27 529 26.6 37 0 36
391 2026-06-11T16:03:27 566 26.6 38 0 33
392 2026-06-11T16:04:28 551 26.6 39 0 33
393 2026-06-11T16:05:29 534 26.6 39 0 33
394 2026-06-11T16:06:29 540 26.6 38 0 33
395 2026-06-11T16:07:29 551 26.6 37 0 36
396 2026-06-11T16:08:30 571 26.6 38 0 33
397 2026-06-11T16:09:31 556 26.6 38 0 36
398 2026-06-11T16:10:31 546 26.6 38 0 33
399 2026-06-11T16:11:31 551 26.5 38 0 33
400 2026-06-11T16:12:32 551 26.6 38 0 36
401 2026-06-11T16:13:32 551 26.6 39 0 36
402 2026-06-11T16:14:33 529 26.6 38 0 33
403 2026-06-11T16:15:33 551 26.6 37 0 36
404 2026-06-11T16:16:34 571 26.6 38 0 33
405 2026-06-11T16:17:34 571 26.6 39 0 31
406 2026-06-11T16:18:35 529 26.6 37 0 33
407 2026-06-11T16:19:35 566 26.6 38 0 36
408 2026-06-11T16:22:37 551 26.6 38 0 33
409 2026-06-11T16:23:38 556 26.6 38 0 33
410 2026-06-11T16:24:38 562 26.6 39 0 33
411 2026-06-11T16:25:38 534 26.6 38 0 33
412 2026-06-11T16:26:39 562 26.6 39 0 33
413 2026-06-11T16:27:40 540 26.6 38 0 33
414 2026-06-11T16:28:40 551 26.6 39 0 33
415 2026-06-11T16:29:41 542 26.6 38 0 33

View 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 time co2 temperature humidity windows battery
2 2026-06-11T08:45:47 552 25 40 0 31
3 2026-06-11T08:46:47 485 25 41 0 31
4 2026-06-11T08:47:48 463 25 40 0 31
5 2026-06-11T08:48:48 491 25 41 0 31
6 2026-06-11T08:49:49 463 25 41 0 31
7 2026-06-11T08:50:49 463 25.1 42 0 31
8 2026-06-11T08:51:50 461 25.1 40 0 31
9 2026-06-11T08:52:51 493 25.1 41 0 31
10 2026-06-11T08:53:51 478 25.1 40 0 31
11 2026-06-11T08:54:52 493 25.2 40 0 31
12 2026-06-11T08:55:52 493 25.2 40 0 31
13 2026-06-11T08:56:53 501 25.2 40 0 31
14 2026-06-11T08:57:53 514 25.2 41 0 31
15 2026-06-11T08:59:54 492 25.2 40 0 31
16 2026-06-11T09:00:55 514 25.2 41 0 31
17 2026-06-11T09:01:55 500 25.2 41 0 31
18 2026-06-11T09:02:56 508 25.2 41 0 31
19 2026-06-11T09:03:56 495 25.3 41 0 31
20 2026-06-11T09:04:57 508 25.3 40 0 31
21 2026-06-11T09:05:57 529 25.3 40 0 31
22 2026-06-11T09:06:58 529 25.3 41 0 31
23 2026-06-11T09:07:58 515 25.3 40 0 31
24 2026-06-11T09:08:59 537 25.3 41 0 31
25 2026-06-11T09:09:59 520 25.3 41 0 31
26 2026-06-11T09:11:00 520 25.5 42 0 31
27 2026-06-11T09:12:00 497 25.3 41 0 31
28 2026-06-11T09:13:01 527 25.3 41 0 31
29 2026-06-11T09:14:01 520 25.3 41 0 31
30 2026-06-11T09:15:02 515 25.3 41 0 31
31 2026-06-11T09:16:02 520 25.3 40 0 31
32 2026-06-11T09:17:03 537 25.3 40 0 31
33 2026-06-11T09:18:03 537 25.3 40 0 31
34 2026-06-11T09:20:04 531 25.2 41 0 31
35 2026-06-11T09:22:05 529 25.2 41 0 31
36 2026-06-11T09:23:06 500 25.2 40 0 31
37 2026-06-11T09:24:06 514 25.2 41 0 31
38 2026-06-11T09:25:07 495 25.2 41 0 31
39 2026-06-11T09:26:07 492 25.2 41 0 31
40 2026-06-11T09:27:08 486 25.2 41 0 31
41 2026-06-11T09:28:08 486 25.2 40 0 31
42 2026-06-11T09:29:09 506 25.2 40 0 31
43 2026-06-11T09:30:09 501 25.2 40 0 31
44 2026-06-11T09:31:10 501 25.1 40 0 31
45 2026-06-11T09:32:10 501 25.1 39 0 31
46 2026-06-11T09:33:11 508 25.2 40 0 31
47 2026-06-11T09:34:11 501 25.1 40 0 31
48 2026-06-11T09:35:12 501 25.1 40 0 31
49 2026-06-11T09:36:12 491 25.1 40 0 31
50 2026-06-11T09:37:13 493 25.1 40 0 29
51 2026-06-11T09:38:13 493 25.1 40 0 31
52 2026-06-11T09:40:14 493 25.1 40 0 29
53 2026-06-11T09:41:15 485 25.1 40 0 31
54 2026-06-11T09:42:15 491 25.1 40 0 31
55 2026-06-11T09:43:16 493 25.1 40 0 31
56 2026-06-11T09:44:16 493 25.1 40 0 31
57 2026-06-11T09:45:17 491 25.1 41 0 31
58 2026-06-11T09:46:17 478 25.1 41 0 31
59 2026-06-11T09:47:18 478 25.1 40 0 29
60 2026-06-11T09:48:18 493 25.1 40 0 31
61 2026-06-11T09:49:19 485 25.1 41 0 29
62 2026-06-11T09:50:19 476 25.1 39 0 29
63 2026-06-11T09:51:20 500 25.1 40 0 31
64 2026-06-11T09:52:20 485 25.1 41 0 31
65 2026-06-11T09:53:21 476 25.1 40 0 31
66 2026-06-11T09:54:21 491 25.1 40 0 31
67 2026-06-11T09:55:22 491 25.1 40 0 31
68 2026-06-11T09:56:22 493 25.1 40 0 31
69 2026-06-11T09:57:23 491 25.1 41 0 31
70 2026-06-11T09:58:23 470 25.1 40 0 31
71 2026-06-11T09:59:24 491 25.1 41 0 31
72 2026-06-11T10:00:25 476 25.1 41 0 31
73 2026-06-11T10:01:25 476 25.1 41 0 31
74 2026-06-11T10:03:26 470 25.1 41 0 31
75 2026-06-11T10:04:26 470 25.1 41 0 31
76 2026-06-11T10:05:27 476 25.1 41 0 31
77 2026-06-11T10:06:28 476 25.2 41 0 31
78 2026-06-11T10:07:28 470 25.1 40 0 31
79 2026-06-11T10:08:28 485 25.1 40 0 31
80 2026-06-11T10:09:29 491 25.1 40 0 31
81 2026-06-11T10:10:29 491 25.1 41 0 31
82 2026-06-11T10:11:30 476 25.1 41 0 31
83 2026-06-11T10:12:30 476 25 41 0 31
84 2026-06-11T10:13:31 476 25.1 40 0 33
85 2026-06-11T10:14:31 493 25.1 41 0 31
86 2026-06-11T10:15:32 470 25.1 41 0 31
87 2026-06-11T10:16:32 476 25.1 40 0 31
88 2026-06-11T10:17:33 485 25 41 0 31
89 2026-06-11T10:18:34 478 25 41 0 31
90 2026-06-11T10:19:34 454 25 41 0 31
91 2026-06-11T10:20:34 463 25.1 41 0 31
92 2026-06-11T10:21:35 454 25 40 0 31
93 2026-06-11T10:22:36 466 25.1 41 0 31
94 2026-06-11T10:23:36 470 25.1 41 0 31
95 2026-06-11T10:24:36 463 25.1 41 0 31
96 2026-06-11T10:25:37 478 25.1 41 0 31
97 2026-06-11T10:26:37 478 25.1 41 0 31
98 2026-06-11T10:28:38 492 25.1 41 0 31
99 2026-06-11T10:29:39 486 25.1 41 0 29
100 2026-06-11T10:30:39 486 25.2 41 0 29
101 2026-06-11T10:31:40 492 25.2 40 0 31
102 2026-06-11T10:32:40 506 25.2 41 0 29
103 2026-06-11T10:33:41 495 25.2 41 0 31
104 2026-06-11T10:34:41 495 25.2 42 0 31
105 2026-06-11T10:36:42 519 25.2 41 0 31
106 2026-06-11T10:37:43 508 25.2 41 0 31
107 2026-06-11T10:38:44 508 25.2 41 0 29
108 2026-06-11T10:39:44 515 25.2 41 0 31
109 2026-06-11T10:40:44 500 25.2 41 0 31
110 2026-06-11T10:41:45 508 25.2 41 0 31
111 2026-06-11T10:42:45 500 25.2 41 0 31
112 2026-06-11T10:43:46 508 25.1 41 0 29
113 2026-06-11T10:44:46 508 25.2 41 0 31
114 2026-06-11T10:45:47 500 25.2 41 0 31
115 2026-06-11T10:46:47 508 25.2 42 0 31
116 2026-06-11T10:47:48 486 25.2 42 0 31
117 2026-06-11T10:48:48 486 25.2 40 0 29
118 2026-06-11T10:49:49 519 25.1 40 0 31
119 2026-06-11T10:50:50 519 25.2 42 0 31
120 2026-06-11T10:51:50 486 25.2 42 0 31
121 2026-06-11T10:52:51 486 25.1 40 0 31
122 2026-06-11T10:53:51 514 25.1 40 0 29
123 2026-06-11T10:54:52 514 25.2 41 0 31
124 2026-06-11T10:55:52 508 25.1 42 0 31
125 2026-06-11T10:56:53 495 25.1 41 0 31
126 2026-06-11T10:57:53 508 25.2 41 0 29
127 2026-06-11T10:58:54 500 25.1 41 0 29
128 2026-06-11T10:59:54 500 25.1 41 0 31
129 2026-06-11T11:00:55 500 25.1 41 0 31
130 2026-06-11T11:01:55 508 25.2 42 0 31
131 2026-06-11T11:02:55 486 25.1 41 0 31
132 2026-06-11T11:03:56 500 25.1 42 0 31
133 2026-06-11T11:04:57 495 25.2 42 0 31
134 2026-06-11T11:05:57 495 25.2 41 0 29
135 2026-06-11T11:06:57 508 25.2 41 0 29
136 2026-06-11T11:07:58 508 25.2 42 0 31
137 2026-06-11T11:08:59 486 25.2 41 0 29
138 2026-06-11T11:09:59 508 25.2 42 0 29
139 2026-06-11T11:11:00 486 25.2 42 0 31
140 2026-06-11T11:12:00 495 25.2 41 0 31
141 2026-06-11T11:13:01 500 25.2 40 0 29
142 2026-06-11T11:14:01 531 25.2 40 0 31
143 2026-06-11T11:15:02 519 25.1 41 0 31
144 2026-06-11T11:16:02 508 25.2 41 0 31
145 2026-06-11T11:17:03 508 25.2 41 0 29
146 2026-06-11T11:18:03 500 25.2 41 0 31
147 2026-06-11T11:19:04 500 25.2 42 0 29
148 2026-06-11T11:20:04 497 25.2 41 0 31
149 2026-06-11T11:21:05 508 25.2 41 0 31
150 2026-06-11T11:22:05 500 25.2 41 0 31
151 2026-06-11T11:23:06 515 25.2 41 0 31
152 2026-06-11T11:24:06 508 25.2 41 0 31
153 2026-06-11T11:25:07 500 25.2 40 0 31
154 2026-06-11T11:26:07 531 25.2 41 0 31
155 2026-06-11T11:27:08 508 25.2 40 0 29
156 2026-06-11T11:28:08 529 25.2 41 0 31
157 2026-06-11T11:29:09 500 25.2 41 0 31
158 2026-06-11T11:30:09 500 25.2 40 0 29
159 2026-06-11T11:31:10 531 25.2 41 0 29
160 2026-06-11T11:32:10 508 25.2 41 0 31
161 2026-06-11T11:33:11 508 25.2 41 0 31
162 2026-06-11T11:34:11 500 25.2 41 0 31
163 2026-06-11T11:35:12 508 25.2 40 0 31
164 2026-06-11T11:36:12 514 25.2 41 0 31
165 2026-06-11T11:37:13 486 25.2 40 0 29
166 2026-06-11T11:38:13 501 25.2 41 0 31
167 2026-06-11T11:39:14 495 25.2 42 0 29
168 2026-06-11T11:40:14 495 25.2 39 0 29
169 2026-06-11T11:41:15 545 25.2 40 0 29
170 2026-06-11T11:42:15 531 25.2 41 0 31
171 2026-06-11T11:43:16 508 25.3 41 0 29
172 2026-06-11T11:44:16 520 25.3 42 0 31
173 2026-06-11T11:45:17 502 25.3 41 0 31
174 2026-06-11T11:47:18 520 25.5 41 0 31
175 2026-06-11T11:48:18 536 25.3 40 0 31
176 2026-06-11T11:49:19 543 25.5 40 0 31
177 2026-06-11T11:50:19 555 25.3 41 0 29
178 2026-06-11T11:51:20 536 25.3 42 0 29
179 2026-06-11T11:52:20 508 25.3 40 0 31
180 2026-06-11T11:54:21 520 25.3 40 0 29
181 2026-06-11T11:56:22 555 25.5 41 0 31
182 2026-06-11T11:57:23 539 25.5 40 0 31
183 2026-06-11T11:58:23 564 25.5 41 0 31
184 2026-06-11T11:59:24 551 25.5 41 0 29
185 2026-06-11T12:00:24 556 25.3 40 0 31
186 2026-06-11T12:02:25 556 25.5 42 0 31
187 2026-06-11T12:04:26 551 25.5 41 0 29
188 2026-06-11T12:05:27 551 25.5 41 0 29
189 2026-06-11T12:06:27 551 25.3 41 0 29
190 2026-06-11T12:07:28 556 25.3 41 0 31
191 2026-06-11T12:08:28 551 25.5 40 0 31
192 2026-06-11T12:09:29 575 25.5 41 0 31
193 2026-06-11T12:10:29 551 25.5 41 0 31
194 2026-06-11T12:11:30 551 25.3 41 0 31
195 2026-06-11T12:12:30 545 25.5 41 0 31
196 2026-06-11T12:13:31 551 25.5 42 0 29
197 2026-06-11T12:15:32 530 25.3 42 0 29
198 2026-06-11T12:16:32 536 25.5 42 0 29
199 2026-06-11T12:17:33 536 25.5 42 0 29
200 2026-06-11T12:18:33 530 25.5 41 0 31
201 2026-06-11T12:19:34 551 25.5 40 0 31
202 2026-06-11T12:20:34 564 25.5 41 0 29
203 2026-06-11T12:21:35 539 25.5 41 0 31
204 2026-06-11T12:22:35 545 25.5 40 0 29
205 2026-06-11T12:23:36 569 25.5 40 0 29
206 2026-06-11T12:24:36 575 25.5 42 0 31
207 2026-06-11T12:25:37 530 25.5 40 0 29
208 2026-06-11T12:26:37 569 25.5 41 0 31
209 2026-06-11T12:27:38 551 25.5 40 0 29
210 2026-06-11T12:28:38 564 25.5 40 0 29
211 2026-06-11T12:29:39 564 25.5 41 0 31
212 2026-06-11T12:30:39 545 25.5 40 0 29
213 2026-06-11T12:31:40 569 25.5 39 0 29
214 2026-06-11T12:32:40 588 25.6 42 0 31
215 2026-06-11T12:33:41 536 25.5 39 0 29
216 2026-06-11T12:34:41 588 25.5 40 0 29
217 2026-06-11T12:35:42 575 25.6 40 0 31
218 2026-06-11T12:36:43 569 25.5 41 0 29
219 2026-06-11T12:37:43 556 25.6 41 0 29
220 2026-06-11T12:38:44 556 25.5 41 0 29
221 2026-06-11T12:39:44 551 25.6 40 0 31
222 2026-06-11T12:40:44 575 25.6 40 0 29
223 2026-06-11T12:41:45 569 25.6 42 0 31
224 2026-06-11T12:42:45 548 25.6 39 0 29
225 2026-06-11T12:43:46 594 25.5 41 0 31
226 2026-06-11T12:44:46 545 25.6 42 0 29
227 2026-06-11T12:45:47 548 25.6 41 0 29
228 2026-06-11T12:46:47 565 25.6 40 0 31
229 2026-06-11T12:47:48 575 25.6 42 0 31
230 2026-06-11T12:48:48 553 25.6 40 0 31
231 2026-06-11T12:49:49 581 25.6 39 0 29
232 2026-06-11T12:50:49 594 25.6 39 0 29
233 2026-06-11T12:51:50 607 25.6 40 0 29
234 2026-06-11T12:52:50 589 25.6 41 0 29
235 2026-06-11T12:53:51 556 25.6 42 0 29
236 2026-06-11T12:54:51 553 25.6 42 0 29
237 2026-06-11T12:55:52 548 25.6 40 0 29
238 2026-06-11T12:56:53 589 25.6 39 0 29
239 2026-06-11T12:57:53 607 25.7 41 0 29
240 2026-06-11T12:58:53 575 25.6 40 0 29
241 2026-06-11T12:59:54 589 25.6 40 0 29
242 2026-06-11T13:00:54 594 25.7 40 0 29
243 2026-06-11T13:01:55 602 25.7 40 0 29
244 2026-06-11T13:02:55 589 25.7 39 0 29
245 2026-06-11T13:03:56 623 25.7 39 0 29
246 2026-06-11T13:04:56 614 25.7 41 0 29
247 2026-06-11T13:05:57 575 25.7 40 0 29
248 2026-06-11T13:06:58 589 25.7 41 0 29
249 2026-06-11T13:07:58 575 25.7 38 0 29
250 2026-06-11T13:08:58 627 25.7 40 0 29
251 2026-06-11T13:09:59 611 25.7 40 0 29
252 2026-06-11T13:10:59 602 25.6 40 0 29
253 2026-06-11T13:12:00 602 25.7 40 0 29
254 2026-06-11T13:13:00 611 25.7 42 0 29
255 2026-06-11T13:14:01 567 25.7 40 0 29
256 2026-06-11T13:15:01 594 25.7 42 0 31
257 2026-06-11T13:16:02 574 25.7 40 0 29
258 2026-06-11T13:17:03 589 25.7 41 0 29
259 2026-06-11T13:18:03 584 25.8 40 0 29
260 2026-06-11T13:19:04 589 25.7 40 0 29
261 2026-06-11T13:20:04 602 25.8 41 0 29
262 2026-06-11T13:21:05 584 25.8 40 0 29
263 2026-06-11T13:22:05 594 25.8 41 0 31
264 2026-06-11T13:24:06 560 25.8 42 0 29
265 2026-06-11T13:25:07 574 25.8 38 0 29
266 2026-06-11T13:26:07 641 26 41 0 29
267 2026-06-11T13:27:08 531 25.8 40 0 29
268 2026-06-11T13:28:08 611 25.8 41 0 29
269 2026-06-11T13:29:09 575 25.8 42 0 29
270 2026-06-11T13:30:09 574 26 40 0 29
271 2026-06-11T13:31:10 548 26 41 0 29
272 2026-06-11T13:32:10 526 26 41 0 29
273 2026-06-11T13:33:11 531 26 40 0 29
274 2026-06-11T13:34:11 548 26 42 0 29
275 2026-06-11T13:35:12 517 26 41 0 29
276 2026-06-11T13:36:12 531 26 41 0 29
277 2026-06-11T13:37:13 531 26 40 0 29
278 2026-06-11T13:38:13 548 25.8 42 0 29
279 2026-06-11T13:39:14 567 26 42 0 29
280 2026-06-11T13:40:14 517 26 42 0 29
281 2026-06-11T13:41:15 501 26 41 0 29
282 2026-06-11T13:42:15 526 26 39 0 29
283 2026-06-11T13:43:16 560 26 41 0 29
284 2026-06-11T13:44:16 526 26 39 0 29
285 2026-06-11T13:45:17 552 26 39 0 29
286 2026-06-11T13:46:17 552 26 39 0 29
287 2026-06-11T13:47:18 560 26 40 0 29
288 2026-06-11T13:48:18 542 26 40 0 29
289 2026-06-11T13:49:19 542 26 42 0 29
290 2026-06-11T13:50:19 517 26 39 0 29
291 2026-06-11T13:51:20 560 26 40 0 29
292 2026-06-11T13:52:20 548 26 40 0 29
293 2026-06-11T13:53:21 548 26 41 0 29
294 2026-06-11T13:54:21 531 26 40 0 29
295 2026-06-11T13:55:22 542 25.8 38 0 29
296 2026-06-11T13:56:22 633 25.8 39 0 29
297 2026-06-11T13:57:23 623 25.8 39 0 29
298 2026-06-11T13:58:23 623 26 39 0 29
299 2026-06-11T13:59:24 566 26 40 0 29
300 2026-06-11T14:00:24 548 26 40 0 29
301 2026-06-11T14:01:25 548 26 40 0 29
302 2026-06-11T14:02:25 548 26 40 0 29
303 2026-06-11T14:03:26 548 26 39 0 29
304 2026-06-11T14:04:26 572 26 41 0 29
305 2026-06-11T14:05:27 531 26 39 0 29
306 2026-06-11T14:06:27 566 26 41 0 29
307 2026-06-11T14:07:28 537 26 40 0 29
308 2026-06-11T14:08:28 542 26 41 0 29
309 2026-06-11T14:09:29 537 26 41 0 29
310 2026-06-11T14:10:29 531 26 39 0 29
311 2026-06-11T14:11:30 560 26.1 40 0 29
312 2026-06-11T14:12:30 542 26.1 40 0 29
313 2026-06-11T14:13:31 548 26.1 40 0 29
314 2026-06-11T14:14:31 542 26.1 39 0 29
315 2026-06-11T14:15:32 566 26.1 41 0 29
316 2026-06-11T14:16:32 526 26.1 40 0 29
317 2026-06-11T14:17:33 548 26.1 40 0 29
318 2026-06-11T14:18:33 548 26.1 41 0 29
319 2026-06-11T14:19:34 537 26.1 40 0 29
320 2026-06-11T14:20:34 548 26.1 40 0 29
321 2026-06-11T14:21:35 542 26.1 40 0 29
322 2026-06-11T14:22:35 542 26.1 40 0 29
323 2026-06-11T14:23:36 641 26.1 40 0 29
324 2026-06-11T14:24:36 780 26.1 39 0 29
325 2026-06-11T14:25:37 752 26.1 40 0 29
326 2026-06-11T14:26:37 749 26.1 40 0 29
327 2026-06-11T14:27:38 759 26.1 39 0 29
328 2026-06-11T14:28:38 746 26.1 40 0 29
329 2026-06-11T14:29:39 719 26.1 40 0 29
330 2026-06-11T14:30:39 719 26.1 39 0 29
331 2026-06-11T14:31:40 737 26.1 40 0 29
332 2026-06-11T14:32:40 704 26.1 41 0 29
333 2026-06-11T14:33:41 668 26.1 39 0 29
334 2026-06-11T14:34:41 712 26.1 40 0 29
335 2026-06-11T14:35:42 690 26.1 40 0 29
336 2026-06-11T14:36:42 690 26.1 40 0 29
337 2026-06-11T14:37:43 690 26.2 40 0 29
338 2026-06-11T14:38:43 682 26.1 40 0 29
339 2026-06-11T14:40:44 690 26.1 40 0 29
340 2026-06-11T14:41:45 682 26.1 41 0 29
341 2026-06-11T14:42:45 652 26.1 40 0 29
342 2026-06-11T14:43:46 674 26.2 39 0 29
343 2026-06-11T14:44:46 686 26.1 39 0 29
344 2026-06-11T14:45:47 678 26.2 39 0 29
345 2026-06-11T14:46:47 678 26.2 39 0 29
346 2026-06-11T14:49:49 678 26.2 40 0 29
347 2026-06-11T14:50:50 641 26.2 41 0 29
348 2026-06-11T14:51:50 629 26.2 40 0 29
349 2026-06-11T14:52:51 641 26.1 40 0 29
350 2026-06-11T14:53:51 649 26.2 40 0 29
351 2026-06-11T14:54:51 641 26.2 40 0 29
352 2026-06-11T14:55:52 641 26.2 40 0 29
353 2026-06-11T14:56:52 633 26.2 40 0 29
354 2026-06-11T14:57:53 626 26.2 39 0 29
355 2026-06-11T14:58:53 652 26.2 39 0 29
356 2026-06-11T14:59:54 627 26.2 39 0 29
357 2026-06-11T15:00:54 645 26.2 40 0 29
358 2026-06-11T15:01:55 633 26.3 40 0 29
359 2026-06-11T15:02:55 600 26.2 39 0 29
360 2026-06-11T15:03:56 638 26.3 39 0 29
361 2026-06-11T15:04:56 638 26.3 40 0 29
362 2026-06-11T15:05:57 626 26.3 40 0 29
363 2026-06-11T15:06:57 626 26.5 39 0 29
364 2026-06-11T15:07:58 652 26.5 41 0 29
365 2026-06-11T15:08:58 581 26.5 39 0 29
366 2026-06-11T15:09:59 645 26.5 40 0 27
367 2026-06-11T15:11:00 626 26.6 40 0 27
368 2026-06-11T15:12:00 641 26.6 40 0 29
369 2026-06-11T15:14:01 637 26.6 40 0 29
370 2026-06-11T15:15:02 656 26.7 40 0 27
371 2026-06-11T15:16:02 665 26.7 41 0 29
372 2026-06-11T15:17:02 637 26.7 40 0 29
373 2026-06-11T15:18:03 665 26.7 40 0 29
374 2026-06-11T15:19:03 665 26.6 40 0 29
375 2026-06-11T15:20:04 674 26.7 40 0 29
376 2026-06-11T15:21:04 665 26.7 40 0 29
377 2026-06-11T15:22:05 674 26.7 40 0 29
378 2026-06-11T15:23:06 682 26.7 41 0 29
379 2026-06-11T15:24:06 652 26.8 40 0 29
380 2026-06-11T15:25:06 682 26.8 41 0 29
381 2026-06-11T15:26:07 652 26.8 40 0 29
382 2026-06-11T15:27:07 682 26.8 40 0 29
383 2026-06-11T15:28:08 682 26.8 40 0 29
384 2026-06-11T15:29:09 682 26.8 40 0 29
385 2026-06-11T15:30:09 682 26.7 40 0 29
386 2026-06-11T15:31:10 682 26.7 40 0 29
387 2026-06-11T15:32:10 682 26.7 41 0 27
388 2026-06-11T15:33:11 659 26.7 40 0 29
389 2026-06-11T15:34:11 682 26.7 41 0 27
390 2026-06-11T15:36:12 659 26.8 40 0 29
391 2026-06-11T15:37:13 690 26.8 40 0 29
392 2026-06-11T15:38:13 674 26.8 40 0 29
393 2026-06-11T15:39:14 690 26.7 41 0 27
394 2026-06-11T15:40:14 659 26.8 40 0 29
395 2026-06-11T15:42:15 682 26.8 40 0 29
396 2026-06-11T15:43:16 682 26.7 40 0 29
397 2026-06-11T15:44:16 674 26.8 40 0 27
398 2026-06-11T15:45:17 682 26.8 40 0 29
399 2026-06-11T15:46:17 674 26.8 40 0 29
400 2026-06-11T15:47:18 665 26.7 40 0 29
401 2026-06-11T15:48:18 665 26.7 40 0 29
402 2026-06-11T15:49:19 665 26.7 40 0 27
403 2026-06-11T15:50:19 665 26.7 40 0 29
404 2026-06-11T15:51:20 656 26.8 40 0 29
405 2026-06-11T15:52:20 656 26.7 40 0 29
406 2026-06-11T15:53:21 649 26.7 40 0 29
407 2026-06-11T15:54:21 656 26.8 40 0 29
408 2026-06-11T15:55:22 665 26.8 41 0 29
409 2026-06-11T15:56:22 643 26.8 40 0 27
410 2026-06-11T15:57:23 665 26.8 40 0 29
411 2026-06-11T15:58:23 665 26.8 40 0 29
412 2026-06-11T15:59:24 665 26.8 40 0 29
413 2026-06-11T16:00:24 674 26.8 40 0 27
414 2026-06-11T16:01:25 674 26.8 40 0 29
415 2026-06-11T16:02:25 674 26.8 40 0 29
416 2026-06-11T16:03:26 674 26.8 40 0 29
417 2026-06-11T16:04:26 665 26.8 40 0 29
418 2026-06-11T16:05:27 665 26.8 40 0 29
419 2026-06-11T16:06:27 674 26.8 40 0 25
420 2026-06-11T16:07:28 674 26.8 40 0 29
421 2026-06-11T16:08:28 674 26.8 39 0 27
422 2026-06-11T16:09:29 697 26.8 40 0 29
423 2026-06-11T16:10:29 665 26.8 39 0 29
424 2026-06-11T16:11:30 697 26.8 40 0 29
425 2026-06-11T16:12:30 674 26.8 39 0 29
426 2026-06-11T16:13:31 697 26.8 40 0 29
427 2026-06-11T16:14:31 674 26.8 40 0 29
428 2026-06-11T16:16:32 665 27 40 0 29
429 2026-06-11T16:17:33 597 27 40 0 29
430 2026-06-11T16:18:33 591 26.8 40 0 29
431 2026-06-11T16:19:34 656 26.8 40 0 29
432 2026-06-11T16:20:34 665 27 41 0 29
433 2026-06-11T16:21:35 578 26.8 41 0 29
434 2026-06-11T16:22:35 643 27 40 0 29
435 2026-06-11T16:23:36 597 27 41 0 29
436 2026-06-11T16:24:36 566 27 41 0 29
437 2026-06-11T16:25:37 566 26.8 41 0 29
438 2026-06-11T16:26:37 637 27 41 0 29
439 2026-06-11T16:27:38 578 27 41 0 29
440 2026-06-11T16:28:38 572 26.8 40 0 29
441 2026-06-11T16:29:39 649 26.8 41 0 29

View File

@@ -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)

View File

@@ -128,6 +128,11 @@
key: "svg",
short: "SVG",
long: "Scalable Vector Graphics"
),
(
key: "trl",
short: "TRL",
long: "Technical Readiness Level"
)
)

View File

44
ui/CHANGELOG.md Normal file
View 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 -->