Skip to content

Quick Start

This guide walks you through scanning for devices, reading sensor data, and downloading history.

CLI Demo

First, find Aranet sensors nearby:

Terminal window
aranet scan --timeout 10

Example output:

Scanning for Aranet devices (timeout: 10s)...
Found 2 devices:
Aranet4 17C3C AA:BB:CC:DD:EE:FF RSSI: -45 dBm
AranetRn+ 306B8 11:22:33:44:55:66 RSSI: -52 dBm

Read the current sensor measurements:

Terminal window
# Using device address
aranet read --device AA:BB:CC:DD:EE:FF
# Or using an alias
aranet read -d living-room
# Or let the interactive picker find devices
aranet read

Example output for Aranet4:

Device: Aranet4 17C3C
────────────────────────────────────
CO₂: 847 ppm [GREEN]
Temperature: 22.4°C
Humidity: 45%
Pressure: 1013.2 hPa
Battery: 87%
Last Update: 2m 15s ago
Interval: 5 minutes

Get detailed device information:

Terminal window
aranet info --device AA:BB:CC:DD:EE:FF
Device Information
────────────────────────────────────
Name: Aranet4 17C3C
Model: Aranet4
Serial: 12345678
Firmware: v1.4.19
Hardware: v1.0
Manufacturer: SAF Tehnika

Download historical measurements to a CSV file:

Terminal window
# Download all history
aranet history --device AA:BB:CC:DD:EE:FF --output history.csv
# Filter by date range
aranet history -d living-room --since 2026-01-15 --until 2026-01-16
Downloading history from Aranet4 17C3C...
[==========] 100% Download complete
Retrieved 1,440 records (7 days at 5-minute intervals)
Saved to: history.csv

The CSV file contains timestamped sensor readings:

timestamp,co2,temperature,humidity,pressure
2026-01-16T10:00:00Z,847,22.4,45,1013.2
2026-01-16T10:05:00Z,823,22.5,44,1013.1
...

For programmatic access, use aranet-core in your Rust code:

use aranet_core::{Device, scan};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Scan for devices
let devices = scan::scan_for_devices().await?;
println!("Found {} devices", devices.len());
// Connect to a device
let device = Device::connect("Aranet4 17C3C").await?;
// Read current values
let reading = device.read_current().await?;
println!("CO₂: {} ppm", reading.co2);
println!("Temperature: {:.1}°C", reading.temperature);
println!("Humidity: {}%", reading.humidity);
// Download history
let history = device.download_history().await?;
println!("Downloaded {} records", history.len());
Ok(())
}

Made with ❤️ by Cameron Rye