In active use Personal product 2026–present

Home Environment Monitor & Weather Assistant

A self-hosted home-environment system that turns several asynchronous inputs into timely, explainable household decisions. Deterministic rules decide what the evidence supports; a small local language model may narrate that result, but it never receives the raw numbers or invents the recommendation.

  • Python
  • asyncio
  • MQTT
  • Bluetooth LE
  • InfluxDB
  • Grafana
  • Telegram
  • Raspberry Pi 5
  • Hailo-10H
  • systemd
  • pytest
Concept illustration — no private project data shown.

01 · Problem

What needed solving

Indoor humidity, air quality, ventilation and rapidly changing local weather interact. Separate dashboards show measurements, but they do not answer the practical question: what should I do now, and why?

Combine home automation, environmental data and local AI in a system where advice remains testable and safe when any one service fails.

02 · Constraints

The difficult parts

  • Reconcile seven concurrent inputs with different update schedules and failure modes.
  • Turn temperature and relative humidity into decisions that reflect absolute humidity and real ventilation conditions.
  • Use local language generation without letting it alter measurements, thresholds or safety boundaries.
  • Keep the service useful during API, model or sensor outages.

03 · Approach

How the work was structured

  1. Built one asynchronous service around sensor messages, local radio data, official warnings and forecasts.
  2. Stored time-series data in InfluxDB and used Grafana for long-term inspection.
  3. Encoded ventilation, humidity and air-quality decisions as deterministic, bilingual rules shared by live and forecast paths.
  4. Passed only an approved categorical result—not raw measurements—to a local 1.5B language model for concise narration.
  5. Rejected generated text containing numbers, advice, health claims or unsupported descriptors and fell back to the deterministic message.

04 · Validation

What can be claimed now

The system has 241 automated tests covering rule behaviour, failure paths and message constraints. It runs continuously under a hardened systemd service with monitored inputs and verified backups.

The working system provides dashboards, warnings, forecasts and command responses through Telegram while preserving a strict boundary between calculation and generated language.

05 · Learning

What the project clarified

  • AI is safer and more useful here as a constrained presentation layer, not the decision engine.
  • A forecast is easier to trust when it uses the same predicate as the live recommendation.
  • Environmental advice needs physical reasoning and explicit failure behaviour, not just threshold alerts.

Next

Planned follow-through

  • Continue calibrating the deterministic rules against seasonal household use.
  • Improve service-level summaries for sensor freshness and degraded modes.
  • Prepare synthetic dashboard captures that reveal no location or household routine.