Ich weiß, dass dieser Thread schon ein paar Jahre auf dem Buckel hat, da ich selbst aber schon mehrfach beim Recherchieren über diese Seite gestolpert bin, poste ich ein kleines Update:
Der MiniSafe2 hat eine Api, die ganz bequem über HTTP abgefragt und gesteuert werden kann.
Ich habe dazu aber keine offiziellen Dokumentationen gefunden und auch sonst gibt es keine auffindbaren Ressourcen im Internet. Daher musste den Traffic der Eltako GFA5-App mitschneiden.
Da ich selbst Homebridge verwende, habe ich ein Plugin geschrieben, das die im MiniSafe2 angelegten Geräte in HomeKit einbindet. Dort ist auch zu sehen, welche Api-Calls ich verwende und welche Unzulänglichkeiten es gibt (z.B. müssen periodisch alle Zustände aller Geräte abgerufen und abgeglichen werden, da es keine Webhooks und keine Möglichkeit gibt, einzelne Geräte abzufragen).
Die vollständige URL ist immer die IP-Adresse des MiniSafe2, die untenstehende Route plus entweder das Gerätepasswort mit &XC_PASS=...
oder ein AccessToken mit &at=...
, also z.B.
http://192.168.178.123/cmd?XC_FNC=GetStates&XC_PASS=MeinKillerPasswort
Route | Funktion |
---|---|
/cmd?XC_FNC=GetStates |
Alle Zustände aller Geräte |
/cmd?XC_FNC=GetSI |
Schwer zuordenbare Systemdaten + eingestellter Standort und Wetterdaten |
/info |
Informationen zum MiniSafe2 |
/file/config/iqpro/systems.json |
Alle Geräte die als Konfiguration auf dem MiniSafe2 gespeichert wurden |
/file/config/iqpro/config.json |
Bei mir leer ... |
/file/config/iqpro/macros.json |
Bei mir leer ... vermutlich Szenen? |
Die Datei- und Ordnerstruktur unter /file
lässt sich übrigens durchsuchen, indem man die Pfade kürzt. In dieser Struktur finden sich bei mir z.B. im obersten Ordner mp3-Dateien.
Steuern kann man Geräte via POST
an den /cmd
-Endpunkt mit einem json-Body wie diesem:
{
"XC_FNC": "SendGenericCmd",
"id": "GERÄTE-SID-AUS-SYSTEMS.JSON",
"data":
{
"cmd": `KOMMANDO`,
},
};
Bei Schaltern sendet die GFA5-App z.B. immer toggle
als Kommando. Es funktionieren aber auch on
und off
um definierte Zustände zu senden. Für Rollläden/Jalousien sendet man das Kommando moveToXXX
wobei XXX für die Sollposition (0-100) steht.
Da dieses Wissen komplett aus Reverse-Engineering entspringt, kann ich nur die Informationen liefern, die mein Setup liefert. Daher sind weder die API-Endpunkte noch die Parameter vollständig. Bitte lasst es mich wissen, wenn ihr offizielle Ressourcen findet oder Antworten von Eltako bekommt. Es wäre zudem sehr hilfreich, wenn ihr mir Daten zu euern Setups liefert (anonymisiert natürlich, Achtung bei Zugangsdaten in den URLs). Diese könnte ich dann in die Sammlung der URLs und entsprechenden API-Antworten in meinem GitHub-Repository sammeln.