equser — Python Toolkit
equser is the open-source Python package for working with EQ Wave data. It provides tools for loading, analyzing, and visualizing Continuous Point-on-Wave (CPOW) and power monitoring (PMon) data from EQ Wave sensors and gateways running EQ Watch.
How equser fits in
The Energy Quotient platform captures and processes power quality data across several layers:
| Component | Role |
|---|---|
| EQ Wave | Continuous waveform capture at the edge (32 kHz, 24-bit) |
| EQ Watch | Collects, stores, and streams data; hosts EQ Sight; runs EQ Syntropy on AI edge gateways |
| EQ Sight | Human–AI interface for exploration and action |
| EQ Syntropy | Edge analytics and agentic AI framework |
| equser | Python toolkit for direct data access, analysis, and scripting |
equser connects to the platform at three levels:
- Directly to an EQ Wave sensor for live power monitoring acquisition (PMon only)
- Through the EQ Watch API for historical queries, waveform snapshots, and live WebSocket streams
- Through raw Parquet files for offline analysis of CPOW and PMon data with no gateway or API required
EQ Watch data can also be synced to EQ servers for long-term retention and cross-site access (each 1-minute file is typically available within 10 seconds of completion). Contact us for details on remote data access.
This makes equser the right tool when you need programmatic access to your power quality data, whether for custom analysis, automated reporting, integration with other systems, or exploratory work in Jupyter notebooks.
Key capabilities
- Data loading — Read CPOW and PMon Parquet files with automatic scaling and timestamp parsing
- Waveform analysis — Zero-crossing detection, cycle extraction, and per-cycle metrics
- Visualization — Publication-ready matplotlib plots for voltage, current, power, and frequency trends
- EQ Watch API client — REST queries and WebSocket streaming from the gateway
- Live acquisition — Real-time PMon data collection directly from an EQ Wave sensor
- Bundled notebooks — Tutorials and analysis templates for JupyterLab
Quick example
from equser.data import load_cpow_scaled
result = load_cpow_scaled('20250623_075056.parquet')
print(f"Voltage A peak: {result['VA'].max():.1f} V")
print(f"Start time: {result['start_time']}")
Installation
pip install equser # Data loading and analysis
pip install equser[analysis] # Add plotting and API client
pip install equser[jupyter] # Full notebook environment
Resources
- Full documentation — Installation, configuration, and module reference
- Source code on GitHub
- Package on PyPI