Bien démarrer avec l'automatisation
Cette page explique comment activer le serveur d'automatisation et envoyer une première commande.
Activer le serveur
- Ouvre MyHUD.
- Va dans Intégrations > Automatisation locale.
- Coche Activer le serveur d'automatisation local.
Le panneau affiche deux adresses :
| Adresse | |
|---|---|
| WebSocket | ws://127.0.0.1:44555 |
| HTTP | http://127.0.0.1:44555 |
Par défaut, seuls les programmes de ce PC peuvent se connecter. Ils n'ont besoin ni de mot de passe ni de jeton. Pour piloter MyHUD depuis un autre appareil, lis Piloter depuis un autre appareil.
Exemples de code
Les exemples de ces pages sont en curl, PowerShell, Python et TypeScript. Clique sur un onglet pour choisir le langage.
- Python : Python 3.9 ou plus récent. Installe le paquet
requests:pip install requests. - TypeScript : Node.js 22 ou plus récent, sans paquet à installer. Enregistre le fichier avec l'extension
.mtset lance-le avecnpx tsx script.mts.
Envoyer une première commande
Ouvre l'overlay du HUD, puis envoie toggle_scoreboard. Le tableau des scores s'ouvre ou se ferme, comme avec la touche F9.
curl -X POST http://127.0.0.1:44555/api/actions/toggle_scoreboardInvoke-RestMethod -Method Post http://127.0.0.1:44555/api/actions/toggle_scoreboardimport requests
res = requests.post("http://127.0.0.1:44555/api/actions/toggle_scoreboard")
print(res.json())const res = await fetch('http://127.0.0.1:44555/api/actions/toggle_scoreboard', { method: 'POST' });
console.log(await res.json());MyHUD répond en JSON :
{ "ok": true, "state": { "revision": 12, "scoreboardVisible": true } }Envoyer une commande avec des données
Certaines commandes ont besoin de données (le payload). Envoie-les dans un corps JSON. Cet exemple définit les deux équipes :
curl -X POST http://127.0.0.1:44555/api/actions/set_teams \
-H 'Content-Type: application/json' \
-d '{"teamA":{"name":"Vitality"},"teamB":{"name":"NAVI"}}'$body = @{
teamA = @{ name = 'Vitality' }
teamB = @{ name = 'NAVI' }
} | ConvertTo-Json
Invoke-RestMethod -Method Post http://127.0.0.1:44555/api/actions/set_teams `
-ContentType 'application/json' -Body $bodyimport requests
res = requests.post(
"http://127.0.0.1:44555/api/actions/set_teams",
json={"teamA": {"name": "Vitality"}, "teamB": {"name": "NAVI"}},
)
print(res.json())const res = await fetch('http://127.0.0.1:44555/api/actions/set_teams', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ teamA: { name: 'Vitality' }, teamB: { name: 'NAVI' } }),
});
console.log(await res.json());Une fonction utilitaire pour tes scripts
La plupart des scripts envoient plusieurs commandes. Cette petite fonction envoie une commande, lève une erreur en cas d'échec et renvoie le result. Les exemples plus longs de ces pages l'utilisent.
import requests
BASE = "http://127.0.0.1:44555"
def myhud(action, payload=None):
res = requests.post(f"{BASE}/api/actions/{action}", json=payload or {}, timeout=40)
body = res.json()
if not body["ok"]:
raise RuntimeError(f"{action} failed ({res.status_code} {body['error']}): {body['message']}")
return body.get("result")
myhud("set_event_name", {"name": "Spring Cup"})const BASE = 'http://127.0.0.1:44555';
async function myhud<T = unknown>(action: string, payload: object = {}): Promise<T> {
const res = await fetch(`${BASE}/api/actions/${action}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload),
});
const body = await res.json();
if (!body.ok) throw new Error(`${action} failed (${res.status} ${body.error}): ${body.message}`);
return body.result as T;
}
await myhud('set_event_name', { name: 'Spring Cup' });L'import d'un veto peut prendre jusqu'à 20 secondes. Si tu définis un délai d'attente, garde-le au-dessus de 30 secondes.
Toggle ou show/hide ?
toggle_scoreboard inverse l'état actuel. C'est ce qu'il faut pour un bouton de Stream Deck.
Dans un script, utilise plutôt show_scoreboard et hide_scoreboard. Ils donnent toujours le même résultat, même si tu les envoies deux fois. Les mêmes paires existent pour le veto, les stats et la fenêtre overlay. Voir Commandes.
Garder la fenêtre MyHUD ouverte
Beaucoup de commandes (veto, équipes, scores, overlays des scènes) ont besoin que la fenêtre principale de MyHUD soit ouverte et connectée à ton compte. Si elle est fermée, elles échouent avec 503 unavailable. La liste des commandes indique lesquelles en ont besoin.
Voir ce que MyHUD a reçu
La liste Requêtes récentes du panneau affiche chaque requête, son résultat et l'adresse IP de l'expéditeur. Utilise-la quand une commande ne fait pas ce que tu attends.
Tu peux aussi demander à MyHUD la liste de toutes ses commandes :
curl http://127.0.0.1:44555/api/actions