Zum Hauptinhalt springen

Crafty Controller Smart-Home-Integration, kostenlos und Open Source

Crafty Controller-Integration für Gladys Assistant

Deine Minecraft-Server in Crafty: Status, Spieler, CPU, starten, stoppen, sichern.

Verfolge und steuere deine Minecraft-Server, die Crafty Controller verwaltet, aus Gladys: ob jeder läuft, wie viele Spieler darauf sind und wer, seine CPU und sein Arbeitsspeicher, seine Version. Gladys kann reagieren, wenn ein Spieler kommt oder geht, wenn ein Server leer oder voll wird, unerwartet stoppt oder neu startet — und einen Server aus einer Szene oder vom Dashboard starten, stoppen, neu starten oder sichern.

Die Integration spricht mit der REST-API von Crafty 4 in deinem Netzwerk, mit einem API-Token. Auf den Servern ist nichts zu installieren. Die Integration ist weder mit Crafty Controller noch mit Mojang verbunden.

Ohne Crafty liest die Integration Spieleserver (GameDig) (gladys-gamedig) einen Minecraft-Server (und 300 weitere Spiele) wie die Serverliste des Spiels, und Minecraft Server liest ihn über RCON.

Getestet mit einem echten Crafty Controller 4.11 (ein Paper-1.21.4-Server, echte verbundene Spieler, ein Absturz und ein sauberer Stopp), aber noch nicht in einem echten Gladys: Rückmeldungen sind willkommen. Wenn etwas nicht wie beschrieben funktioniert, sag es im Gladys-Forum oder in den Issues.

Was du brauchst​

  • Gladys Assistant 5.1.0 oder neuer.
  • Crafty Controller 4 (geprüft mit 4.11), von Gladys aus erreichbar: standardmäßig https://<Adresse von Crafty>:8443.
  • Ein API-Token von Crafty:
    1. öffne in Crafty Panel-Konfiguration → Benutzer, bearbeite deinen Benutzer (oder einen für Gladys angelegten), dann den Reiter API-Schlüssel;
    2. erstelle einen Schlüssel: ein Name (gladys) und Vollzugriff (oder, für einen auf einige Rechte beschränkten Schlüssel: Befehle zum Starten, Stoppen, Neustarten und Sichern, Logs, um einen Absturz von einem sauberen Stopp zu unterscheiden);
    3. klicke auf Schlüssel erhalten und kopiere den langen Text.

Das Token handelt mit den Rechten seines Benutzers: Ein Benutzer, der nur einige Server sieht, gibt ein Token, das nur diese sieht.

Einrichtung​

  1. Installiere die Integration: Integrationen → Von GitHub installieren, Adresse https://github.com/guim31/gladys-crafty.
  2. In ihrer Konfiguration:
    • Crafty-Adresse: die Adresse, mit der du Crafty öffnest, z. B. https://192.168.1.10:8443. Eine reine IP-Adresse erhält https:// und Port 8443.
    • API-Token: das oben kopierte Token.
    • Selbstsignierte Zertifikate akzeptieren: standardmäßig aktiviert, da Crafty sein HTTPS mit eigenem Zertifikat liefert. Deaktiviere es nur, wenn deines vertrauenswürdig ist.
    • Stoppen und Neustarten erlauben: standardmäßig aus. Einen Server zu stoppen oder neu zu starten wirft seine Spieler raus: Aktiviere es, um beides aus Szenen und dem Widget zu erlauben.
    • Aktualisierungsintervall: standardmäßig 30 Sekunden (Crafty misst seine Server selbst alle 30 Sekunden).
    • Sprache der Namen: der Funktionen (beim Hinzufügen eines Geräts festgelegt) und der Texte, die die Integration schreibt.
  3. Klicke auf Verbindung testen: Das listet die Server auf, die Crafty liefert.
  4. Füge unter Entdecken die gewünschten Server als Geräte hinzu.

Das Gerät jedes Servers​

Ein Gerät pro Server von Crafty, benannt wie er, auch nach einer Umbenennung behalten:

FunktionWert
Läuft1, solange der Server in Crafty läuft, 0, wenn er gestoppt ist
Spieler onlineverbundene Spieler (0, wenn der Server gestoppt ist)
Spielerplätzemaximale Spielerzahl, sobald der Server sie geliefert hat
Spielerwer spielt, z. B. Alice, Bob; „Niemand“; „Server gestoppt“
CPUCPU-Auslastung des Serverprozesses, in %
Arbeitsspeichervom Serverprozess belegter Arbeitsspeicher, in MB
Versionz. B. Paper 1.21.4, sobald der Server sie geliefert hat

Die Spieler-Funktionen gibt es nur für die Server, deren Spieler Crafty zählt (Minecraft Java und Bedrock). Minecraft liefert höchstens 12 Namen: Darüber fügt der Text „und N weitere“ hinzu.

Dashboard​

Das Widget Crafty-Server zeigt eine Kachel pro Server (Spieler online / Plätze oder sein Zustand: gestoppt, abgestürzt, startet), eine Liste mit Zustand, Version und wer spielt, und Schaltflächen, jede zuerst bestätigt:

  • Starten für einen gestoppten Server;
  • Neustarten und Stoppen, nur wenn in der Konfiguration erlaubt;
  • Backup, wenn das Widget einen Server zeigt;
  • Aktualisieren.

Standardmäßig alle Server (höchstens drei) oder der in den Widget-Einstellungen gewählte: Ein einzelner Server zeigt auch CPU und Arbeitsspeicher.

Szenen​

Auslöser​

  • Ein Spieler ist dem Minecraft-Server beigetreten — mit Namen, wenn Minecraft alle Namen liefert. Filter: Server, Spielername.
  • Ein Spieler hat den Minecraft-Server verlassen — mit den gespielten Minuten. Nicht ausgelöst, wenn der Server stoppt.
  • Der Minecraft-Server ist leer — der letzte Spieler ist gegangen, der Server läuft noch.
  • Der Minecraft-Server ist voll — alle Plätze sind belegt.
  • Ein Server wurde unerwartet beendet — ein Stopp, der weder von Gladys noch von Crafty angefordert wurde: kein sauberes Herunterfahren im Log des Servers (der Schlüssel braucht das Recht Logs) oder die Absturzerkennung von Crafty.
  • Ein Server wurde neu gestartet — läuft wieder nach einem Neustart (aus Gladys oder Crafty) oder einem unerwarteten Stopp (Variable „Nach einem unerwarteten Stopp“).

Ein in Crafty gesehener Stopp oder Start ist auch die Funktion Läuft des Geräts: Eine Szene kann sie direkt nutzen („Läuft“ wird 0).

Aktionen​

  • Einen Minecraft-Server starten — nichts wird gesendet, wenn er bereits läuft.
  • Einen Minecraft-Server stoppen und Einen Minecraft-Server neu starten — nur wenn in der Konfiguration erlaubt, sonst endet die Szene mit einem Fehler.
  • Einen Minecraft-Server sichern — startet das Standard-Backup des Servers in Crafty, mit dessen Einstellungen (ein Backup, das den Server stoppt, stoppt ihn).
  • Einen Minecraft-Server lesen — liest ihn jetzt; sein Zustand (läuft, Spieler, CPU, Arbeitsspeicher, Version) geht an die nächsten Schritte: eine Nachricht oder „Nur fortfahren, wenn“ auf läuft.

Die vier Befehle liefern „Befehl gesendet“ (falsch, wenn nichts zu tun war).

Szenen-Ideen​

  • An Schultagen um 23 Uhr, wenn der Server der Kinder noch läuft: eine Nachricht, dann Einen Minecraft-Server stoppen.
  • Der Minecraft-Server ist leer → Einen Minecraft-Server sichern.
  • Ein Server wurde unerwartet beendet → eine Benachrichtigung, dann Einen Minecraft-Server starten.
  • Ein Spieler ist dem Minecraft-Server beigetreten (Spieler „Alice“) → „Alice ist auf {{server}}“.

Fehlerbehebung​

  • „Crafty nicht erreichbar“: Prüfe Adresse und Port (standardmäßig 8443) und dass Gladys den Rechner von Crafty erreicht.
  • „Zertifikat abgelehnt“: Aktiviere „Selbstsignierte Zertifikate akzeptieren“.
  • „Diese Adresse ist nicht die Crafty-API“: meist http:// auf dem HTTPS-Port: Nutze https://.
  • „API-Token von Crafty abgelehnt“: Der Schlüssel wurde gelöscht oder das Token nur teilweise kopiert: Erstelle ein neues Token mit Schlüssel erhalten.
  • „Fehlende Berechtigung für dieses Token in Crafty“: Gib dem Schlüssel (oder seinem Benutzer) das Recht auf den Server: Befehle für die Aktionen.
  • „Crafty antwortet, aber dieses Token sieht keinen Server“: Der Benutzer des Schlüssels hat keinen Server, oder der Schlüssel hat kein Recht darauf.
  • Kein Absturz erkannt: Ohne das Recht Logs kann die Integration einen Absturz nicht von einem sauberen Stopp unterscheiden; aktiviere die Absturzerkennung in Crafty oder gib dem Schlüssel das Recht Logs.
  • Ausführlichere Logs der Integration: LOG_LEVEL=debug.

Grenzen​

  • Getestet mit einem echten Crafty Controller 4.11, noch nicht in einem echten Gladys.
  • Crafty misst seine Server alle 30 Sekunden: Eine Änderung erscheint nach 30 bis 60 Sekunden, ein Spieler, der kürzer bleibt, kann übersehen werden.
  • Minecraft liefert höchstens 12 Spielernamen: Darüber haben Ankünfte und Abgänge keinen Namen.
  • Ein Neustart, schneller als zwei Abfragen, wird nur an seiner neuen Startzeit erkannt.
  • Andere Server von Crafty (Steam, Hytale) erhalten den Zustand läuft, CPU, Arbeitsspeicher und die Befehle, ohne Spieler.
  • Ein Crafty pro Integration, unter seiner eigenen Adresse: Ein Crafty hinter einem Reverse-Proxy in einem Unterpfad (/crafty) wird nicht unterstützt.

Konfigurationseinstellungen​

Diese Einstellungen fragt Crafty Controller in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Dein Crafty ControllersectionNeinÖffne in Crafty Panel-Konfiguration, Benutzer, bearbeite deinen Benutzer, API-Schlüssel: Erstelle einen Schlüssel mit Vollzugriff, dann Schlüssel erhalten. Füge es unten mit der Adresse von Crafty ein und klicke auf Verbindung testen.
Crafty-AdressestringNeinDie Adresse, mit der du Crafty öffnest. Eine reine IP-Adresse erhält https:// und Port 8443.
API-TokensecretNeinEines API-Schlüssels von Crafty. Es handelt mit den Rechten seines Benutzers und des Schlüssels.
Selbstsignierte Zertifikate akzeptierenbooleanNeinCrafty liefert HTTPS standardmäßig mit eigenem Zertifikat: Lass es aktiviert, außer deines ist vertrauenswürdig.
BefehlesectionNeinStarten und Sichern sind immer erlaubt. Stoppen und Neustarten werfen die Spieler raus und bleiben aus, bis du sie erlaubst.
Stoppen und Neustarten erlaubenbooleanNeinAus Szenen und dem Widget (im Widget immer mit Bestätigung).
OptionensectionNein
AktualisierungsintervallselectNeinWie oft Crafty gelesen wird. Crafty misst seine Server selbst alle 30 Sekunden.
Sprache der NamenselectNeinDer Gerätefunktionen (beim Hinzufügen festgelegt) und der Texte, die die Integration schreibt.

So installierst du Crafty Controller in Gladys​

  1. Öffne in Gladys Integrationen: Crafty Controller erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-crafty:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-crafty.

Crafty Controller benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Crafty Controller ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂