Skip to content

Latest commit

 

History

History
325 lines (237 loc) · 8.02 KB

File metadata and controls

325 lines (237 loc) · 8.02 KB

🎉 APS2MQTT v2.1.0 - Résumé des Nouvelles Fonctionnalités

📋 Votre Configuration

ECU Détecté : ECU-R-Pro ECU ID : 216200063835 Compatibilité Contrôle : ✅ OUI (ECU-R-Pro 2162)

Configuration actuelle :

  • IP ECU : 192.168.1.42
  • MQTT Broker : 192.168.1.50:1883
  • WiFi SSID : ECU
  • WiFi Password : 88888888
  • Topic Prefix : aps2mqtt

🎛️ Fonctionnalités de Contrôle Ajoutées

1. Switch ON/OFF Onduleurs (Tous ensemble)

Entité Home Assistant : switch.ecu_216200063835_inverters_control

Commandes MQTT :

# Allumer tous les onduleurs
mosquitto_pub -h 192.168.105.46 -u king -P qtnh70hy \
  -t "aps2mqtt/aps/216200063835/inverters_control/set" -m "ON"

# Éteindre tous les onduleurs
mosquitto_pub -h 192.168.105.46 -u king -P qtnh70hy \
  -t "aps2mqtt/aps/216200063835/inverters_control/set" -m "OFF"

Automatisation Home Assistant :

# Éteindre la nuit
automation:
  - alias: "Arrêt onduleurs 21h"
    trigger:
      - platform: time
        at: "21:00:00"
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.ecu_216200063835_inverters_control

2. Bouton Reboot ECU

Entité Home Assistant : button.ecu_216200063835_ecu_reboot

Commande MQTT :

# Redémarrer l'ECU
mosquitto_pub -h 192.168.105.46 -u king -P qtnh70hy \
  -t "aps2mqtt/aps/216200063835/ecu_reboot/set" -m "PRESS"

Automatisation Home Assistant :

# Reboot si ECU offline > 10 min
automation:
  - alias: "Reboot ECU si offline"
    trigger:
      - platform: state
        entity_id: sensor.ecu_216200063835_online
        to: 'off'
        for: '00:10:00'
    action:
      - service: button.press
        target:
          entity_id: button.ecu_216200063835_ecu_reboot

🚨 Système d'Alertes

Types d'Alertes Automatiques

Type Seuil Sévérité Action
Onduleur Offline > 5 min ⚠️ Warning Vérifier connexion
Onduleur Offline > 10 occurrences 🔴 Critical Intervention
Température Haute > 65°C ⚠️ Warning Surveiller
Température Haute > 70°C 🔴 Critical Vérifier ventilation
Production Faible < 70% moyenne ⚠️ Warning Vérifier panneaux

Configuration des Seuils

Dans docker-compose.yml :

environment:
  - ALERT_OFFLINE_THRESHOLD_MINUTES=5
  - ALERT_LOW_PRODUCTION_PERCENT=30
  - ALERT_HIGH_TEMPERATURE_C=65

Consulter les Alertes

# Voir les logs d'alertes
docker logs aps2mqtt | grep "Alert\|WARNING\|CRITICAL"

# Résumé des alertes actives
docker logs aps2mqtt | grep "alert_summary"

📦 Modules Créés

  1. aps2mqtt/control.py (145 lignes)

    • Classe ECUControl pour commandes HTTP vers ECU
    • Méthodes : inverters_on(), inverters_off(), reboot_ecu()
    • Détection compatibilité ECU automatique
  2. aps2mqtt/alerts.py (233 lignes)

    • Classe AlertManager pour surveillance intelligente
    • Détection : offline, température, production faible
    • Historique des alertes (1h de rétention)
    • Statistiques par type et sévérité
  3. test_control_alerts.py (171 lignes)

    • 7 tests automatisés ✅
    • Couverture : contrôle ECU, alertes, filtrage
  4. CONTROL_FEATURES.md (350+ lignes)

    • Documentation complète
    • Exemples MQTT et Home Assistant
    • Automatisations prêtes à l'emploi
    • Guide de dépannage

🔧 Modifications des Modules Existants

aps2mqtt/mqtt_handler.py

  • Ajout callback command_callback pour recevoir commandes
  • Méthode on_message() pour traiter messages MQTT
  • Méthode _subscribe_control_topics() pour souscription
  • Méthode _generate_control_entities() pour HA Discovery
  • Gestion automatique switch + button

aps2mqtt/main.py

  • Initialisation ECUControl au démarrage
  • Callback handle_control_command() pour exécution
  • Gestion erreurs commandes
  • Logs détaillés des actions

aps2mqtt/models.py

  • Ajout dataclass ControlCommand
  • Support des commandes paramétrées

models.csv

  • Ajout inverters_control (switch)
  • Ajout ecu_reboot (button)

🎯 Prochaines Étapes

1. Rebuild Docker Image

cd /app/homeassistant/aps2mqtt
docker build -t aps2mqtt:2.1.0 .

2. Mettre à Jour docker-compose.yml

services:
  aps2mqtt:
    image: aps2mqtt:2.1.0  # Changer de aps2mqtt-mat à 2.1.0
    restart: always
    environment:
      - TZ=Europe/Paris
      - DEBUG=True
      - APS_ECU_IP=192.168.105.161
      - APS_ECU_AUTO_RESTART=True
      - APS_ECU_WIFI_SSID=ECU
      - APS_ECU_WIFI_PASSWD=88888888
      - MQTT_BROKER_HOST=192.168.105.46
      - MQTT_BROKER_PORT=1883
      - MQTT_BROKER_USER=king
      - MQTT_BROKER_PASSWD=qtnh70hy
      - MQTT_TOPIC_PREFIX=aps2mqtt
      # Nouvelles variables (optionnel)
      - ALERT_OFFLINE_THRESHOLD_MINUTES=5
      - ALERT_LOW_PRODUCTION_PERCENT=30
      - ALERT_HIGH_TEMPERATURE_C=65

3. Redémarrer le Container

docker compose down
docker compose up -d
docker logs -f aps2mqtt

4. Vérifier dans Home Assistant

  • Aller dans Configuration > Entités
  • Rechercher 216200063835
  • Vérifier présence de :
    • switch.ecu_216200063835_inverters_control
    • button.ecu_216200063835_ecu_reboot

5. Tester les Commandes

# Test switch ON
mosquitto_pub -h 192.168.105.46 -u king -P qtnh70hy \
  -t "aps2mqtt/aps/216200063835/inverters_control/set" -m "ON"

# Attendre 5 secondes

# Test switch OFF
mosquitto_pub -h 192.168.105.46 -u king -P qtnh70hy \
  -t "aps2mqtt/aps/216200063835/inverters_control/set" -m "OFF"

# Vérifier les logs
docker logs aps2mqtt | tail -20

📊 Statistiques du Projet

Version : 2.1.0 Commits : 11 (2 nouveaux pour v2.1.0) Fichiers créés : 3 nouveaux modules Fichiers modifiés : 4 modules existants Lignes de code ajoutées : ~1050 lignes Tests : 7/7 ✅ Documentation : 350+ lignes


🛡️ Sécurité

⚠️ Important

  • Les commandes ECU utilisent HTTP non sécurisé (limitation APSystems)
  • L'ECU n'a pas d'authentification sur son interface web
  • Protégez votre réseau : ECU sur VLAN isolé recommandé
  • Utilisez MQTT sécurisé (TLS) pour le broker

Recommandations

  1. ✅ Isoler l'ECU sur un VLAN dédié avec firewall
  2. ✅ Activer TLS sur le broker MQTT
  3. ✅ Utiliser des mots de passe forts pour MQTT
  4. ✅ Ne PAS exposer l'ECU sur Internet
  5. ✅ Surveiller les logs d'accès

🐛 Dépannage

Le switch ne fonctionne pas

# Test manuel direct vers l'ECU
curl -X POST http://ECU_IP/index.php/configuration/set_switch_all_on \
  -H "X-Requested-With: XMLHttpRequest"

# Si ça marche, le problème vient de MQTT
# Vérifier les logs
docker logs aps2mqtt | grep "inverters"

Le bouton reboot ne répond pas

  • Vérifier que l'ECU est bien un 2162 : echo "216200063835" | cut -c1-4
  • Attendre 90 secondes pour le redémarrage complet
  • Vérifier les credentials WiFi dans docker-compose.yml

Les alertes ne s'affichent pas dans HA

  • Pour l'instant, les alertes sont dans les logs uniquement
  • Roadmap v2.2 : entités binary_sensor pour les alertes dans HA
  • Consulter : docker logs aps2mqtt | grep "Alert"

📖 Documentation Complète


🚀 Roadmap v2.2.0

  • Entités binary_sensor pour alertes dans HA
  • Limitation de puissance par panneau
  • Support voltage L2/L3 (triphasé)
  • Webhook pour notifications externes
  • Dashboard Grafana intégré

Créé le : 11 janvier 2026 Version : 2.1.0 Tests : 7/7 passés ✅ Compatible : ECU-R-Pro (2162), ECU-C (215) Votre ECU : 216200063835 ✅