EQ Wave Data Access
Data Streams Overview
The EQ Wave provides two primary data streams via TCP sockets for monitoring:
1. PMon — Port 1535
Purpose: Processed power quality metrics
- Parameters: RMS voltage/current, power, frequency, total harmonic distortion (THD)
- Data Format: IEEE 754 float32 values
- Update Rate: Every 12 cycles at 60 Hz or 10 cycles at 50 Hz (200 ms = 5 Hz update rate)
- Bandwidth: ~1 kbps
Data includes:
- RMS voltage and current per phase (total and fundamental)
- Active power per phase (total and fundamental)
- Fundamental reactive power per phase
- Frequency
- Derived metrics (THD, apparent power, power factor) computed by the gateway
Integration Options:
- Python: Full support for power monitoring data
- Rust: Enhanced performance libraries available under NDA
- Other Languages: TCP socket compatibility
2. Waveform Data (CPOW) - Port 1534
Purpose: High-resolution continuous waveform data
- Sample Rate: 32 kHz per channel
- Channels: 7 channels per sample row
- Channel Order: IA, VA, IB, VB, IC, VC, IN (current-voltage interleaved)
- Data Format: 24-bit signed integers, little-endian
- Update Rate: 2ms packets (500 packets/second)
- Bandwidth: ~6 Mbps continuous (payload plus TCP/IP overhead)
Connection Protocol:
- Connect to IP:1534
- Send
0x01to start streaming - Receive continuous binary data
- Send
0x02to stop streaming
Performance Requirements:
- Compiled Language Required: Due to timing and buffer resource constraints, waveform data access requires compiled languages
- Recommended: Rust (core libraries available under NDA)
- Alternative: C/C++ (possible but less feature-rich)
- Not Suitable: Python or other interpreted languages for real-time waveform processing
Data Format Specifications
Waveform Data Structure
Frame Size: 1344 bytes
- 7 channels × 64 samples × 3 bytes per sample
- 24-bit signed integers, little-endian
- Channel order per sample row: IA, VA, IB, VB, IC, VC, IN
- Sample rate: 32 kHz per channel
Power Monitoring Data Structure
Frame Size: 96 bytes
- 1 × uint32 configuration word + 23 × float32 values
- IEEE 754 float32 format, little-endian
Field order:
- Configuration (uint32): system config (number of phases)
- Frequency (1 float)
- Voltage RMS (VA, VB, VC) — 3 floats
- Current RMS (IA, IB, IC) — 3 floats
- Neutral Current RMS (IN) — 1 float
- Active Power (PA, PB, PC) — 3 floats
- Fundamental Voltage RMS (VA1, VB1, VC1) — 3 floats
- Fundamental Current RMS (IA1, IB1, IC1) — 3 floats
- Fundamental Active Power (PA1, PB1, PC1) — 3 floats
- Fundamental Reactive Power (QA1, QB1, QC1) — 3 floats
Derived metrics such as THD, apparent power, and power factor can be computed from the streamed values. For example, voltage THD for phase A = √((VA² − VA1²) / VA1²). EQ Watch computes and stores these derived metrics automatically.
Integration
Power Monitoring (PMon) — Python
The recommended way to access power monitoring data is through the equser Python package (GitHub · PyPI), which is pre-installed on every gateway.
# Live power monitoring display
equser pmon live --ip 192.168.10.10
# Record PMon data to Parquet files
equser pmon record --ip 192.168.10.10 --directory ./data
The equser package also provides a Python API for programmatic access. Run equser --help on the gateway or see the GitHub README for details.
Waveform Data (CPOW) — Compiled Binaries
Due to the high bandwidth (~6 Mbps continuous) and strict timing requirements of the CPOW stream, waveform data access requires compiled-language clients with careful buffer management. EQ Watch includes pre-built binaries for CPOW acquisition (Debian packages available for multiple platforms). Contact support@eq.systems for integration options.
Other Languages and Environments
Any environment with TCP socket support can connect to the PMon stream on port 1535 (e.g., MATLAB, LabVIEW, Node.js). See the data format specifications above for the 96-byte frame structure. The open-source equser package serves as a reference implementation for parsing and framing.
Platform Integration
For enterprise deployments, EQ Watch provides:
- Long-term waveform and metrics storage
- REST API and WebSocket access for custom applications
EQ Sight provides real-time visualization, event monitoring, and interactive investigation.
See the EQ Watch API Reference for REST and WebSocket endpoint details.
Data Quality Considerations
Network Requirements
- Minimum Bandwidth: ~6 Mbps for full waveform streaming
- Latency: <10ms recommended for real-time applications
- Packet Loss: <0.1% for optimal data quality
- Buffer Management: Implement application-level buffering for network variations
Troubleshooting Data Integration
Connection Issues
- Verify network connectivity to device IP
- Ensure device is powered and LINK and ACT LEDs are solid green
- Try connecting with simple TCP client (telnet, netcat)
Data Quality Issues
- Monitor for missing data packets
- Check network bandwidth and congestion
- Verify data parsing matches protocol specification
- Check for endianness issues in multi-byte values
Performance Issues
- Increase TCP buffer sizes if possible
- Implement application-level buffering
- Use multiple threads for concurrent data streams
- Consider data reduction techniques if bandwidth is limited