Zum Hauptinhalt springen

API-Übersicht

Jedes NMMiner-Gerät betreibt einen HTTP-Server auf Port 80, der eine vollständige REST-ähnliche API bereitstellt. Dieselbe API wird verwendet von:

  • Der integrierten NM Monitor Browser-Oberfläche.
  • Dem Swarm Aggregator.
  • Jedem — Ihnen, Ihrem Dashboard, einem Grafana-Plugin, einem Python-Skript — der Status lesen oder Einstellungen senden möchte.

✅ Diese Seite dokumentiert den öffentlichen Vertrag: Pfade, Methoden, Request-Bodies, Response-Bodies, Statuscodes. ❌ Sie dokumentiert nicht die Implementierung. Behandeln Sie das Gerät als Blackbox, die über HTTP erreichbar ist.

Basis-URL

http://<miner-ip>/

oder per Hostname (die meisten Heimrouter lösen ihn auf):

http://<miner-hostname>/

Die IP / den Hostnamen finden Sie auf der Miner-Seite des Gerätebildschirms oder im System-Bereich von NM Monitor.

CORS

Jeder Endpunkt antwortet mit:

Access-Control-Allow-Origin: *

Somit können Sie die API von jeder Browserseite ohne Proxy aufrufen.

Authentifizierung

Es gibt derzeit keine Authentifizierung. Die API ist für die Nutzung innerhalb Ihres vertrauenswürdigen LANs vorgesehen. Stellen Sie sie nicht ohne eigenes Gateway dem öffentlichen Internet aus.

Inhaltstyp

  • Request-Bodies verwenden application/json.
  • Response-Bodies sind entweder application/json oder text/plain.
  • Alle Endpunkte akzeptieren und beantworten eine CORS-Preflight-OPTIONS-Anfrage.

Kategorien

KategorieEndpunkte
DiscoveryGET /probe, GET /alive
SystemGET /api/system/info, POST /api/system/restart
NetzwerkeinstellungenGET/POST /api/setting/network
Mining-EinstellungenGET/POST /api/setting/mining
ZeiteinstellungenGET/POST /api/setting/time
PräferenzeinstellungenGET/POST /api/setting/preference
MarkteinstellungenGET/POST /api/setting/market, GET /api/market/pairs
WettereinstellungenGET/POST /api/setting/weather, POST /api/weather/refresh
Swarm FindPOST /api/swarm/find
Bildschirmschoner-UploadGET /api/update/screensaver/preflight, POST /api/update/screensaver
BeispielecURL / Python / JavaScript

Versionierung

Der Vertrag ist stabil über Minor-Firmware-Versionen (z.B. v2.0.x). Breaking Changes werden im GitHub Release Log angekündigt.

Statuscodes

CodeBedeutung
200OK — Response-Body entspricht dem dokumentierten Schema.
204OK — wird für CORS-Preflight verwendet.
400Bad Request — normalerweise ungültiges JSON oder Werte außerhalb des Bereichs.
404Kein solcher Endpunkt.
413Payload zu groß (nur Bildschirmschoner-Upload).
429Rate-limited — derzeit von /api/weather/refresh verwendet.
500Gerätefehler (z.B. Dateisystem-Schreibfehler beim Upload).

Auffindbarkeit

Besuchen Sie http://<miner-ip>/api-doc für eine Live-HTML-Referenz, die vom Miner selbst bereitgestellt wird. Wenn die tatsächliche API von diesem Wiki abweicht, hat die Live-/api-doc des Geräts immer Vorrang.