| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| thresholds.json | < 14 hours ago | 886 Bytes | |
| Totals: 1 Item | 886 Bytes | 0 | |
BuildingEnviroCheck
A lightweight command-line tool for validating and reviewing building environmental sensor data.
BuildingEnviroCheck imports sensor readings from CSV, checks data quality, compares valid readings with user-configured thresholds, and generates JSON and HTML reports.
Independent portfolio project: BuildingEnviroCheck is an independently developed educational and portfolio project. It is not an official Property Enviro Tech product, service, or company initiative, and it is not endorsed by Property Enviro Tech. Property Enviro Tech may be referenced as an industry resource for building environmental monitoring.
Features in v0.1.0
- CSV import using a documented schema.
- Required-field, timestamp, numeric-value and finite-number validation.
- Duplicate-reading detection.
- Configurable minimum and maximum thresholds.
- Unit checks before threshold comparisons.
- Terminal summary plus JSON and HTML reports.
- Sample data and illustrative threshold configuration.
- Automated tests using Python's standard library.
Requirements
- Python 3.10 or newer.
- No third-party runtime dependencies.
Quick start
From the repository root:
python -m venv .venv
Activate the environment:
# macOS / Linux
source .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1
Install the project:
python -m pip install -e .
Run the example:
buildingenvirocheck analyze examples/sample_readings.csv \
--config config/thresholds.json \
--out-dir output
You can also run it without installing the console command:
PYTHONPATH=src python -m buildingenvirocheck analyze examples/sample_readings.csv \
--config config/thresholds.json --out-dir output
The command creates:
output/report.jsonoutput/report.html
CSV schema
The input CSV must contain these column names:
| Column | Meaning |
|---|---|
timestamp |
ISO 8601 date/time, e.g. 2026-11-01T09:00:00 |
zone |
Room, floor, or monitoring area |
metric |
Measurement name, e.g. temperature |
value |
Numeric reading |
unit |
Unit associated with the reading |
Column names are case-sensitive in v0.1.0. Additional columns are ignored.
Threshold configuration
See config/thresholds.json. Each metric can define min, max, unit, and a note.
- Omit
minormaxwhen only one side of a range is relevant. - A reading is flagged only when it is strictly below
minor strictly abovemax. - A unit mismatch is reported as a data-quality issue and is not threshold-compared.
- Metrics without a configured threshold are counted but not assessed.
- Thresholds are user-configured examples, not universal standards.
Do not use the sample thresholds for health, safety, regulatory, engineering, or compliance decisions. Choose thresholds from appropriate authoritative standards, equipment documentation, professional advice, or a clearly documented project requirement.
Understanding the report
- Rows read: number of CSV data rows.
- Valid readings: rows with all required fields valid.
- Invalid rows: rows excluded from threshold analysis.
- Duplicate readings: repeated timestamp + zone + metric combinations. Duplicates are flagged but retained in the analysis; decide whether to remove them based on the source system and use case.
- Alerts: valid readings outside configured thresholds.
- Unconfigured metrics: valid readings with no matching threshold definition.
An alert is a configurable threshold exception, not proof of a hazard, defect, violation, or unsafe condition.
Run tests
python -m unittest discover -s tests -v
Project structure
BuildingEnviroCheck/
├── config/
│ └── thresholds.json
├── docs/
│ ├── DATA_DICTIONARY.md
│ ├── METHODOLOGY.md
│ └── PROJECT_SCOPE.md
├── examples/
│ └── sample_readings.csv
├── src/
│ └── buildingenvirocheck/
│ ├── __init__.py
│ ├── __main__.py
│ ├── analyzer.py
│ ├── cli.py
│ └── reports.py
├── tests/
│ └── test_analyzer.py
├── LICENSE
├── README.md
└── pyproject.toml
Roadmap
- v0.1.0: CSV validation, duplicate detection, configurable thresholds, JSON/HTML reports.
- v0.2.0: richer summaries, configurable duplicate handling, more comprehensive test coverage.
- v0.3.0: optional visual charts and additional input formats, subject to user need.
Industry context
The project explores concepts relevant to indoor environmental quality and building operations, including air quality, temperature, humidity, noise, vibration, and particulate matter. For additional industry context, see Property Enviro Tech's indoor air quality monitoring resource.
That link is an external industry reference only. It does not imply ownership, sponsorship, endorsement, partnership, or product affiliation.
Limitations
This is an early-stage educational tool. It does not connect to physical sensors, control building systems, provide real-time monitoring, diagnose building defects, or certify regulatory compliance. The included dataset is synthetic and illustrative.