Skip to content

Bien démarrer avec l'automatisation ​

Cette page explique comment activer le serveur d'automatisation et envoyer une première commande.

Activer le serveur ​

  1. Ouvre MyHUD.
  2. Va dans Intégrations > Automatisation locale.
  3. Coche Activer le serveur d'automatisation local.

Le panneau affiche deux adresses :

Adresse
WebSocketws://127.0.0.1:44555
HTTPhttp://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 .mts et lance-le avec npx 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.

bash
curl -X POST http://127.0.0.1:44555/api/actions/toggle_scoreboard
powershell
Invoke-RestMethod -Method Post http://127.0.0.1:44555/api/actions/toggle_scoreboard
python
import requests

res = requests.post("http://127.0.0.1:44555/api/actions/toggle_scoreboard")
print(res.json())
ts
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 :

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 :

bash
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"}}'
powershell
$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 $body
python
import requests

res = requests.post(
    "http://127.0.0.1:44555/api/actions/set_teams",
    json={"teamA": {"name": "Vitality"}, "teamB": {"name": "NAVI"}},
)
print(res.json())
ts
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.

python
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"})
ts
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 :

bash
curl http://127.0.0.1:44555/api/actions

Étapes suivantes ​