ソース情報
- リポジトリ
- JohnNuwan/EVA_CORE
- ソースの最終更新活動
- 2026年7月18日 08:30
- 検出された SKILL.md の言語
- フランス語
- スター
- 0
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill digital-twinsコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Concevoir et maintenir un watchdog auto-correcteur pour services HTTP — checks de santé, auto-restart, état persistant, rapports et pièges bash.
Serveur de messagerie sécurisé auto-hébergé (Signal-like) avec Flask + WebSocket + AES-256-GCM + pont EVA
ADAM-SENTINEL — Veilleur technologique 24h/24h. Scanne 10 domaines, cree des rapports, met a jour les skills, alerte sur les CVE et breaking changes.
SOC 職業分類に基づく
SKILL.md を表示中
| name | digital-twins |
| description | Modéliser des jumeaux numériques et des AAS. |
| version | 1.0.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["digital-twin","aas","asset-administration-shell","websockets","fastapi","api","industrial-automation"],"related_skills":["industrial-uns","predictive-maintenance","industrial-edge","opc-ua-scanner"]}} |
Un jumeau numérique (Digital Twin) est la réplique virtuelle d'un actif physique (une machine, un moteur, un outil de production complet). Le jumeau numérique agrège toutes les données de l'actif (modèles 3D, documentation technique, historique des pannes, et flux de mesures en temps réel).
Dans l'Industrie 4.0, l'Asset Administration Shell (AAS) est le standard d'échange de données visant à donner une structure numérique unifiée à n'importe quel équipement industriel. La synchronisation dynamique se fait via des APIs REST et des WebSockets pour le flux continu.
Cette compétence guide l'agent EVA pour modéliser des jumeaux numériques et concevoir des services de synchronisation temps réel.
À utiliser lorsque l'utilisateur demande :
Ne pas utiliser pour :
Un AAS se compose de sous-modèles (Submodels) décrivant des facettes de l'équipement (Identification, Paramètres techniques, Données temps réel).
# Exemple de structure de données représentant un AAS de machine
class AssetAdministrationShell:
def __init__(self, id_short: str, global_id: str):
self.id_short = id_short
self.global_id = global_id
self.submodels = {}
def add_submodel(self, submodel_id: str, submodel_data: dict):
self.submodels[submodel_id] = submodel_data
# Création du jumeau numérique d'une Pompe Industrielle
pump_twin = AssetAdministrationShell(
id_short="Pump_Line1",
global_id="urn:EVA:paris:assets:pump_line1"
)
# Sous-modèle de caractéristiques techniques (Statique)
pump_twin.add_submodel("TechnicalProperties", {
"manufacturer": "Grundfos",
"max_flow_rate": {
"value": 150.0,
"unit": "m3/h"
},
"max_pressure": {
"value": 10.0,
"unit": "bar"
}
})
# Sous-modèle d'état opérationnel (Dynamique)
pump_twin.add_submodel("OperationalData", {
"current_flow": 124.5,
"temperature": 38.6,
"vibration_level": "NORMAL"
})
Pour mettre à jour instantanément les représentations virtuelles 3D (ex: Unity, Unreal Engine ou dashboards web) sans surcharger le serveur de requêtes HTTP répétitives, les WebSockets sont privilégiés.
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from typing import List
app = FastAPI()
class ConnectionManager:
"""Gère les connexions WebSockets des clients du jumeau numérique (interfaces IHM/3D)."""
def __init__(self):
self.active_connections: List[WebSocket] = []
async def connect(self, websocket: WebSocket):
await websocket.accept()
self.active_connections.append(websocket)
def disconnect(self, websocket: WebSocket):
self.active_connections.remove(websocket)
async def broadcast(self, message: dict):
"""Envoie la mise à jour à toutes les interfaces connectées."""
for connection in self.active_connections:
await connection.send_json(message)
manager = ConnectionManager()
@app.websocket("/ws/digital-twin")
async def websocket_endpoint(websocket: WebSocket):
await manager.connect(websocket)
try:
while True:
# Attente de messages éventuels des clients (ex: commandes de forçage)
data = websocket.receive_json()
WebSocketDisconnect:
manager.disconnect(websocket)
Désynchronisation de temps réel (Lag) :
Absence d'historique dans le Jumeau Numérique :
WebSocketDisconnect) pour éviter les fuites de mémoire.Pydantic dans FastAPI).