Back to Projects

Probably Weather

Full-stack IoT weather monitoring for solar installations

Probably Weather is a full-stack IoT weather monitoring platform purpose-built for solar installation sites. Raspberry Pi field stations equipped with industrial-grade Seven Sensor compact weather stations collect 30-second readings of solar irradiance, temperature, humidity, air pressure, rainfall, and wind data via Modbus RTU over RS-485.

The data flows through an event-driven pipeline: MQTT over TLS to an EMQX broker, bridged into Apache Kafka on Kubernetes, consumed and written to InfluxDB for time-series storage, and served through a Django REST API to a Next.js frontend with real-time dashboards, historical charts, and map views.

The platform includes zero-touch device provisioning via custom boot stock images, fleet management through Ansible-as-a-Service, and a self-hosted status page with Telegram alerting. It spans 10 repositories and 17 ArgoCD-managed applications on GKE.

Probably Weather screenshot
10
Repositories
17
ArgoCD Apps
30s
Read Interval
v1.52
Frontend Version

Screenshots

A closer look at the application

Public live weather view with current conditions, sensor readings, and map

Public live weather view with current conditions, sensor readings, and map

B2B dashboard with active sites, fleet health, devices, and quick actions

B2B dashboard with active sites, fleet health, devices, and quick actions

Weather sites list with live temperature, conditions, and sensor data

Weather sites list with live temperature, conditions, and sensor data

Site drilldown with 12 live sensor metrics updated every 30 seconds

Site drilldown with 12 live sensor metrics updated every 30 seconds

Historical weather data with wind speed chart and wind direction rose diagram

Historical weather data with wind speed chart and wind direction rose diagram

Fleet device management with CPU, memory, disk, temperature, and connectivity status

Fleet device management with CPU, memory, disk, temperature, and connectivity status

Device drilldown with network info, software versions, MQTT commands, and command history

Device drilldown with network info, software versions, MQTT commands, and command history

Device resource usage charts with CPU, memory, and disk over time

Device resource usage charts with CPU, memory, and disk over time

Ansible playbook job with execution output and stats

Ansible playbook job with execution output and stats

B2B billing with subscription plan, API usage stats, and invoice history

B2B billing with subscription plan, API usage stats, and invoice history

Consumer dashboard with saved weather sites and current conditions

Consumer dashboard with saved weather sites and current conditions

Consumer site detail with weather conditions and tiered feature access

Consumer site detail with weather conditions and tiered feature access

Consumer subscription plans with Free, Basic, Plus, and Premium tiers

Consumer subscription plans with Free, Basic, Plus, and Premium tiers

The Challenge

Solar companies need continuous weather monitoring across remote sites. Off-the-shelf solutions lack industrial sensor support, fleet management, and tie operators to vendor-locked platforms.

Industrial Modbus RTU support
Zero-touch deployment
Offline buffering with zero data loss
Remote fleet management
Multi-tenant SaaS isolation

System Architecture

How the system is structured from edge to interface

Edge Devices
Raspberry Pi
Modbus RTU
SQLite Queue
MQTT over TLS
Message Broker
EMQX
Kafka Bridge
Stream Processing
Apache Kafka
Processor
CloudEvents
Data Storage
InfluxDB
PostgreSQL
ORM + Time-Series Queries
Application
Django REST API
Celery
Redis
REST API
Frontend
Next.js
ECharts
Leaflet
Platform
GKE
ArgoCD
cert-manager
external-dns
Cloudflare
NetBird VPN

Zero-Touch Provisioning

Custom boot images with cloud-init and automatic Ansible provisioning for plug-and-play field station deployment.

17 ArgoCD Applications

App-of-Apps pattern on GKE with automated sync, health checks, and rollback across 10 repositories.

Fleet Management via VPN

Ansible-as-a-Service with Celery workers for remote device management over NetBird VPN mesh network.

Engineering Decisions

Why we chose specific technologies and patterns

Tech Stack

Technologies and tools powering this project

Frontend
Next.js
TypeScript
Tailwind CSS
ECharts
Leaflet
Backend
Django
Django REST Framework
Celery
Data
PostgreSQL
InfluxDB
Apache Kafka
EMQX
Infrastructure
Kubernetes
ArgoCD
Cloudflare
Edge
Raspberry Pi
Modbus RTU
MQTT

Interested in a project like this?

We build custom platforms tailored to your business needs. Let us know how we can help.