Projet dérivé de fligneul/aps2mqtt - Version internalisée avec améliorations spécifiques
🌟 v2.1.0 - Modern architecture, comprehensive monitoring, ECU CONTROL, auto-discovery!
Access your APsystems Energy Communication Unit (ECU) data via MQTT. This bridge queries the ECU directly, parses data, and publishes it over MQTT with automatic Home Assistant integration.
✨ New in 2.1.0 (January 2026):
- 🎛️ ECU Control for ECU-R-Pro (2162) & ECU-C (215)
- 🔌 Switch ON/OFF all inverters remotely
- 🔄 Reboot ECU button
- 🚨 Intelligent alerts (offline, temperature, low production)
- 📊 57+ entities for complete monitoring (1 ECU + 2 inverters)
- 🏠 Auto-discovery for Home Assistant
- 🔋 Per-panel monitoring (DC voltage, temperature, frequency)
- 📈 Aggregate statistics (average temp, frequency)
ℹ️ Currently supports one ECU with unlimited inverters.
- 🚀 Installation Guide - Complete installation instructions (Docker, Docker Compose, Python)
- 🎛️ Control Features - ECU control & alerts (ECU-R-Pro/ECU-C)
- 📊 Entities Documentation - Complete list of all 57+ entities with examples
- 🔧 Refactoring Guide - Architecture and migration guide for developers
# Download example configuration
wget https://raw.githubusercontent.com/fligneul/aps2mqtt/main/docker-compose.yml.example
# Edit with your settings
cp docker-compose.yml.example docker-compose.yml
nano docker-compose.yml
# Start container
docker-compose up -ddocker run -d \
--name aps2mqtt \
--restart unless-stopped \
-e APS_ECU_IP=192.168.1.42 \
-e MQTT_BROKER_HOST=192.168.1.50 \
-e MQTT_BROKER_USER=mqtt_user \
-e MQTT_BROKER_PASSWD=mqtt_password \
fligneul/aps2mqtt:latestAutomatic Discovery - All entities are automatically created in Home Assistant!
Enable MQTT discovery in Home Assistant:
# configuration.yaml
mqtt:
discovery: trueWhat you get:
- ✅ 15 ECU entities (power, energy, firmware, statistics)
- ✅ 9 entities per inverter (temperature, voltage, frequency, power)
- ✅ 6 entities per panel (DC voltage, temperature, AC frequency, power)
- ✅ Proper device classes and units
- ✅ Beautiful icons and grouping
See ENTITIES.md for the complete list.
This work is based on the awesome homeassistant-apsystems_ecur (v1.2.30). This couldn't have been done without their hardwork.
-
ECU Models:
- ECU-B
- ECU-R (all versions, ID 2160xxx or 2162xxx)
- ECU-C
-
Inverter Models:
- YC1000 / QT2 (4 channels)
- YC600 / DS3 / DS3-H / DS3-L / DS3D (2 channels)
- QS1 / QS1A (4 channels)
- ECU with fixed IP address on your network
- ECU configured via EMA Manager
- MQTT broker (Mosquitto, HiveMQ, etc.)
- Open port 8899 on ECU
📖 Full details: See Installation Guide
Verify ECU accessibility before installation:
# Test connection (replace with your ECU IP)
nc -v 192.168.1.42 8899Expected response:
192.168.1.42 (192.168.1.42:8899) openSend test command:
APS1100160001ENDIf you receive an APS response, you're ready! ✅
📖 Troubleshooting: See Installation Guide
📖 Complete Installation Guide: INSTALL.md
Docker Compose (Recommended):
wget https://raw.githubusercontent.com/fligneul/aps2mqtt/main/docker-compose.yml.example
cp docker-compose.yml.example docker-compose.yml
# Edit docker-compose.yml with your settings
docker-compose up -dDocker:
docker run -d \
--name aps2mqtt \
-e APS_ECU_IP=192.168.1.42 \
-e MQTT_BROKER_HOST=192.168.1.50 \
fligneul/aps2mqtt:latestPython Package:
pip3 install aps2mqtt
python3 -m aps2mqtt -c config.yaml- docker-compose.yml.example - Complete Docker Compose example
- INSTALL.md - Step-by-step installation guide
- config.yaml example - Python configuration
📖 Complete Configuration Guide: INSTALL.md#configuration
| Parameter | Description | Example |
|---|---|---|
APS_ECU_IP |
ECU IP address | 192.168.1.42 |
MQTT_BROKER_HOST |
MQTT broker address | 192.168.1.50 |
| Parameter | Description | Default |
|---|---|---|
APS_ECU_STOP_AT_NIGHT |
Stop querying at night | False |
APS_ECU_AUTO_RESTART |
Auto-restart ECU on error | False |
MQTT_BROKER_PORT |
MQTT port | 1883 |
MQTT_TOPIC_PREFIX |
Topic prefix | "" |
TZ |
Timezone | Europe/Paris |
See INSTALL.md for all 20+ parameters
📖 Complete Entity List: ENTITIES.md
For a typical installation (1 ECU + 2 YC600 inverters):
- 57 MQTT topics published
- 15 ECU entities (power, energy, stats, firmware)
- 21 entities per inverter (9 inverter + 12 panel metrics)
{prefix}/aps/{ECU_ID}/... # ECU level
{prefix}/aps/{ECU_ID}/{INVERTER_ID}/... # Inverter level
{prefix}/aps/{ECU_ID}/{INVERTER_ID}/{PANEL}/... # Panel level
ECU Topics:
aps/216200063835/power → 630 (W)
aps/216200063835/energy_today → 25.8 (kWh)
aps/216200063835/firmware → ECU_R_2.1.5
aps/216200063835/average_temperature → 46.5 (°C)
Inverter Topics:
aps/216200063835/123456789ABC/online → on
aps/216200063835/123456789ABC/version → INV_1.2.3
aps/216200063835/123456789ABC/temperature → 45 (°C)
aps/216200063835/123456789ABC/power → 310 (W)
Panel Topics (per channel):
aps/216200063835/123456789ABC/1/power → 150 (W)
aps/216200063835/123456789ABC/1/dc_voltage → 38.5 (V)
aps/216200063835/123456789ABC/1/dc_temperature → 42.5 (°C)
aps/216200063835/123456789ABC/2/current_power → 159.2 (W)
See ENTITIES.md for the complete reference
MIT License
Ce projet est basé sur le travail original de fligneul/aps2mqtt.
Merci également à :
- @checking12 et @HAEdwin (Home Assistant forum) - Analyse du protocole APSystems
- @12christiaan et @ViperRNMC - Solutions de redémarrage automatique ECU
- Communauté Tweakers.net - Reverse engineering du protocole