Aller au contenu principal

API de planification anticipée

astuce

L'API Plan-ahead est destinée à l'envoi de plannings à l'avance. Pour un contrôle en direct, consultez Contrôle MQTT en direct à la place.

Ce dont vous avez besoin

  1. Un nom d'utilisateur et un mot de passe API. Vous pouvez utiliser votre compte Insights pour cela, ou demander un compte API en envoyant un e-mail à support@eniris.be, en mentionnant clairement le numéro de série de votre appareil.
  2. Un environnement de développement Python (ou tout autre client MQTT). Ce guide utilise un exemple de base écrit en Python pour vous aider à démarrer avec MQTT et l'envoi de commandes. Nous vous recommandons d'utiliser Python pour sa facilité d'utilisation, mais tout autre client MQTT est supporté.

Configuration initiale (Point de départ pour les nouveaux utilisateurs)

1. Trouvez les ID des appareils que vous souhaitez contrôler

L'ID de l'appareil (également appelé nodeId) est un identifiant unique pour chaque appareil dans notre système et est utilisé lors de l'envoi de commandes aux appareils.

Pour le moment, la façon la plus simple d'obtenir vos ID est de naviguer vers : http://<CONTROLLER_IP>/debugger

Développez la boîte 'Metadata', et notez chaque nodeId de tous les appareils que vous souhaitez contrôler. Vous aurez besoin de ces ID à une étape ultérieure.

Image 1

2. Ajoutez vos appareils

Connectez-vous à l'interface de mise en service et assurez-vous que les appareils sont ajoutés au SmartgridOne Controller.

3. Ajoutez le signal externe de l'API

Image 1
Image 1
Image 1
Image 1

4. Entrez le token du collecteur

Entrez simplement le numéro de série du SmartgridOne Controller ici, et cliquez sur soumettre.

5. Sélectionnez les appareils à inclure

Sur cette page, vous avez la possibilité d'inclure/exclure des appareils pour le contrôle à distance. Assurez-vous de cocher toutes les cases des appareils que vous souhaitez inclure.

Image 1

6. La source de données a été ajoutée

L'interface de contrôle à distance a maintenant été activée sur le SmartgridOne Controller. Vous pouvez maintenant commencer à envoyer vos commandes aux appareils.

attention

N'oubliez pas de définir un régime de secours sur le SmartgridOne Controller! Un mode de contrôle local doit être configuré en plus des signaux API externes que vous envoyez. Le contrôle local est utilisé comme solution de secours en cas de perte d'internet par le SmartgridOne Controller ou s'il y a d'autres causes qui empêchent le signal API d'atteindre le SmartgridOne Controller.

Envoyer des commandes de contrôle à distance en utilisant Python

Ci-dessous, il y a un extrait de code Python sur comment contrôler les panneaux solaires ou la batterie.

astuce

Consultez le document Guide d'application - Points de consigne à distance pour une explication plus complète avec toutes les politiques.

Package requis : pip install eniris

# %% Imports
from eniris import ApiDriver
from eniris.point import Point
from eniris.point.writer import (PointDuplicateFilter, DirectPointToTelemessageWriter)
from eniris.telemessage.writer import PooledTelemessageWriter
from datetime import datetime, timezone

# %% Constants
COMMAND_UNTIL = '2024-04-16T10:26:00+02:00' # AAAA-MM-JJTHH:MM:SS+00:00
SN = '<REPLACE>'
COMMAND = fields = {'policy': 2, 'powerSetpoint_W': 0.0} # 0: Par défaut (autoconsommation); 2: Suivre le point de consigne


# %% Start curtailment
curtail_until = datetime.fromisoformat(COMMAND_UNTIL).astimezone(timezone.utc)
print(f'Commande en cours jusqu\'à : {curtail_until}')
apiUsername = "<REPLACE>"
apiPassword = "<REPLACE>"

# Créer des drivers API et un écrivain de points avec la fonctionnalité souhaitée
driver = ApiDriver(apiUsername, apiPassword)
writer = PointDuplicateFilter(
DirectPointToTelemessageWriter(
PooledTelemessageWriter(
authorizationHeaderFunction=driver.accesstoken,
params={"u": SN},
)
)
)
namespace = {'database': 'SGC', 'retentionPolicy': 'rp_one_s'}
tags = {
"serialNr": SN,
"nodeId": '<REPLACE>',
}

writer.writePoints([Point(namespace, 'remoteControlSignals', curtail_until, tags, fields)])
writer.flush()
print('Envoyé')

Faites attention particulière à :

  • Le 'COMMAND_UNTIL' : Il s'agit d'un timestamp sensible au fuseau horaire qui indique l'heure de fin de votre commande.
  • Le 'COMMAND' : Cela doit être changé en fonction de la commande que vous souhaitez exécuter.
    • Par exemple : pour les batteries, la politique 2 avec powerSetpoint_W à 1000 chargera la batterie à 1 kW.
    • Pour le solaire, la politique 2 avec powerSetpoint_W à 0 désactivera la production solaire.
    • Après la fin de votre commande, elle reviendra automatiquement au contrôle par défaut (tel que configuré dans le SmartgridOne Controller).
    • (des politiques plus avancées sont prises en charge, mais pas encore ajoutées à ce guide)
  • La variable 'tags' : Cela doit être changé en fonction du SN du SmartgridOne Controller, où nodeId doit être défini sur l'ID de l'appareil qui a été extrait à une étape précédente de ce tutoriel.
astuce

Consultez le document Guide d'application - Points de consigne à distance pour une explication plus complète avec toutes les politiques.