Documentation API – Régulation de Puissance sur Centrale
Introduction
Cette fonctionnalité est basée sur l'API commande ALEMCA (doc de l’API commande ALEMCA).
Elle permet de déclencher une régulation de puissance sur une centrale via la tâche préconfigurée regulation_centrale (identifiant de la commande : 6cdc1f68-5f44-4ec7-91ad-952d58df6023).
Informations de base
L'ensemble des appels pour utiliser cette fonctionnalité sont à faire sur l’endpoint suivant :
URL complète : https://api.alemca.io/v3/commands/tasks/6cdc1f68-5f44-4ec7-91ad-952d58df6023
Vue d'ensemble du processus
- Authentification
- Variables
- Créer une commande de régulation unitaire
- Créer une commande de régulation groupée
- Lire le statut d’une commande de régulation
- Voir l’historique des commandes
- Annuler une régulation
- Commande de test
1. Authentification
On s’authentifie par API-key. Un utilisateur dédié doit être créé.
Il appartient à l’utilisateur de définir une durée de validité de l’API-key cohérente avec son utilisation.
doc api-keys
En-têtes à ajouter dans toutes les requêtes http
2. Variables
| Champ | Description | Type | Détails |
|---|---|---|---|
entity_ident |
ID unique de l'équipement | <UUID\|String> |
identifiants d'équipements |
end_timestamp |
Timestamp Unix de fin de régulation | Integer |
Unix timestamp (secondes). |
regulation_mode |
Mode de régulation | String |
default: cycleon: force ONoff: force OFFcycle: OFF, repasse en ON après le end_timestamp. |
regulation_type |
Type de régulation | String |
default: nonepercent: %power: en kWnone: utilise les valeurs de la configuration |
regulation_value |
Valeur de régulation | Integer |
à ajouter uniquement si regulation_type est différent de "none" default: 0Si percent: 0–100 (%)Si power: puissance en W (≥ 0). |
target |
Cible de la régulation | String |
default: allall: tous les connectors Modbus <connector>: Connecteur Modbus spécifique |
comment |
Commentaire visible pour le job | String |
— |
group_name |
Nom du groupe pour les jobs groupés | String |
— |
ident_list |
Liste d'équipements ciblés | Array<UUID\|String> |
Liste d'identifiants d'équipements. |
tag |
Tag d'équipements pour exécution groupée | String |
— |
scheduled_time |
Timestamp Unix de début de régulation | Integer |
Unix timestamp (secondes). |
| --------------------------------------------------------------------------- |
3. Créer une commande de régulation unitaire
entity_ident: identifiant de l’entité ALEMCA que l’on souhaite régulerscheduled_time: début de la régulation, Timestamp Unix (en son absence, la régulation commence immédiatement)end_timestamp: fin de la régulation, Timestamp Unix (en son absence la durée est infinie)regulation_mode: Mode de régulation (on, off, cycle) default: cycleregulation_type: Type de régulation (percent, power, none) default: noneregulation_value: Valeur de régulation (pour percent, c'est un pourcentage; pour power, c'est une puissance) default: 0target: Cible de la régulation (all, or a specific target) default: allcomment: champ libre pour assurer la traçabilité d’une commande (facultatif)
Endpoint
Corps de requête
{
"entity_ident": "<ENTITY_IDENT>",
"variables": {
"end_timestamp": 1742200955,
"regulation_mode": "cycle",
"regulation_type": "none",
"regulation_value": 0,
"target": "all"
},
"comment": "Régulation temporaire de la centrale",
"scheduled_time": 1742200455
}
Réponse attendue
Le
<JOB_IDENT>sert à suivre le statut de la commande sur l'entité associée.
4. Créer une commande groupée
Si vous utilisez jobs/list ou jobs/tags avec un champ group_name, un groupe logique est automatiquement créé.
4.1 En fournissant une liste d’entity_ident
group_name: nom logique pour l’envoi groupé (ex : "regulation_batch_1")ident_list: liste des identifiants des entités ALEMCA à régulerscheduled_time: début de la régulation, Timestamp Unix (en son absence, la régulation commence immédiatement)end_timestamp: fin de la régulation, Timestamp Unix (en son absence la durée est infinie)regulation_mode: mode de régulation (on, off, cycle) default: cycleregulation_type: Type de régulation (percent, power, none) default: noneregulation_value: Valeur de régulation (pour percent, c'est un pourcentage; pour power, c'est une puissance) default: 0target: Cible de la régulation (all, or a specific target) default: allcomment: champ libre (facultatif)
Endpoint
Corps de requête
{
"variables": {
"end_timestamp": 1742200955,
"regulation_mode": "cycle",
"regulation_type": "none",
"regulation_value": 0,
"target": "all"
},
"comment": "Régulation pour plusieurs centrales",
"group_name": "regulation_batch_1",
"ident_list": [
"<ENTITY_IDENT>",
"<ENTITY_IDENT>"
],
"scheduled_time": 1742200455
}
Réponse attendue
[
{
"ident": "<JOB_IDENT>",
"status": "pending",
"response": "command sent",
"group": {
"ident": "<GROUP_IDENT>",
"name": "regulation_batch_1"
}
}
]
Le
<JOB_IDENT>permet de suivre l’état de la commande pour chaque entité.
Le<GROUP_IDENT>permet de suivre l’état global de l’ensemble des commandes du groupe.
4.2 En ciblant un tag
tag: tag d’équipements ALEMCA à régulerident_list: liste des identifiants des entités ALEMCA à régulerscheduled_time: début de la régulation, Timestamp Unix (en son absence, la régulation commence immédiatement)end_timestamp: fin de la régulation, Timestamp Unix (en son absence la durée est infinie)regulation_mode: mode de régulation (on, off, cycle) default: cycleregulation_type: Type de régulation (percent, power, none) default: noneregulation_value: Valeur de régulation (pour percent, c'est un pourcentage; pour power, c'est une puissance) default: 0target: Cible de la régulation (all, or a specific target) default: allcomment: champ libre (facultatif)
Endpoint
Corps de requête
{
"variables": {
"end_timestamp": 1742200955,
"regulation_mode": "cycle",
"regulation_type": "none",
"regulation_value": 0,
"target": "all"
},
"comment": "Régulation pour plusieurs centrales",
"group_name": "regulation_batch_1",
"tag": "centrales_ext",
"scheduled_time": 1742200455
}
Réponse attendue
[
{
"ident": "<JOB_IDENT>",
"status": "pending",
"response": "command sent",
"group": {
"ident": "<GROUP_IDENT>",
"name": "regulation_batch_1"
}
}
]
Le
<JOB_IDENT>permet de suivre l’état de la commande pour chaque entité.
Le<GROUP_IDENT>permet de suivre l’état global de l’ensemble des commandes du groupe.
5. Lire le statut d’une commande de régulation
5.1 Statut d'une commande unitaire
Le
Endpoint
Exemple de réponse
{
"ident": "<JOB_IDENT>",
"status": "pending",
"response": "command sent",
"group": {
"ident": "<GROUP_IDENT>",
"name": "regulation_batch_1"
}
}
5.2 Statut d’un envoi groupé
Le
Endpoint
Exemple de réponse
{
"page": 1,
"per_page": 500,
"total_pages": 1,
"total_items": 1,
"items": [
{
"ident": "<JOB_IDENT>",
"status": "pending",
"response": "command sent",
"group": {
"ident": "<GROUP_IDENT>",
"name": "regulation_batch_1"
}
}
]
}
6. Voir l’historique d’une commande de régulation
Le
Endpoint
Exemple de réponse
{
"page": 1,
"per_page": 500,
"total_pages": 1,
"total_items": 2,
"items": [
{
"status": "initial",
"created_at": 1742200955,
"response": ""
},
{
"status": "transmited",
"created_at": 1742200955,
"response": ""
}
]
}
7. Annuler une régulation
Si une régulation de centrale est encore en attente ou planifiée, vous pouvez l’annuler à tout moment via :
Requête
Réponse attendue
Une fois le job commencé, l’annulation n’est plus garantie une fois le job commencé.
8. Commande de test
Commande qui permet de tester la trame de communication entre le server ALEMCA et la centrale à réguler
⚠️ Warning :
Cette action n'est disponible que pour les agent ALEMCA en version supérieure à 2.4.12
Si cette commande est exécutée avec une version antérieure à 2.4.12 la commande ne sera pas un test mais une vraie régulation
Endpoint
Corps de requête
Réponse attendue
{
"global": true
"server": {
"global": true,
"info": {},
"errors": {}
},
"edge": {
"global": true,
"info": {},
"errors": {}
}
}
serverinfra/config coté ALEMCAedgeagent/config/modbus coté centraleglobalpermet de savoir si le test c'est bien passé, une valeur à true montre que tout est ok, false montre qu'il y a une erreur et que la commande ne passera pasinfopermet d'avoir des infos sur les tests effectués si besoinerrorspermet de voir si il y à des problèmes
Pour aller plus loin
Consultez la documentation Swagger pour explorer l’API command dans son ensemble.
Pour toute information supplémentaire, contactez le support à l’adresse suivante : support@alemca.com