Aufruf der lokalen API mit cURL
-
-
So Freunde der Nacht, ich hab mir mal die Konfig-File angeguckt, die man mit dem Smarthome-commander abspeichern kann und was soll ich sagen, das sieht in weiten Teilen wie oben aus 🤟🏻
-
Vielleicht meinen mir beide doch das selbe. 😉
Lass mich mal meine Idee ausführlicher aufzählen:- Save eines Devices als JSON von einer bekannten SHC1, inkl KEY auf USB
- NEUE SHC2 hochfahren,
- ohne Internetverbindung,
- die SHC2 hat noch nie das Device gesehen (somit kein Schlüssel vorhanden)
- Mein USB-Stick mit allen Device-Keys an der NEUEN SHC2 anschließen
- POST des Devices via API an die SHC2
- Ergebnis: TBD
Was könnte das beweisen:
- Import von Devices auf blanken Geräten via API
- Import von Szenen auf blanken Geräten via API
- --> ???BackUp-Möglichkeit ALLER Einstellungen nach 1.3.2024???
So, alles vorbereitet ... und hänge gerade am 4. Punkt: "POST des Devices via API an die SHC2"
Mal davon Abgesehen, dass Locations beim Anlegen von Devices REQUIRED sind (hab ich so nicht in der Reference gelesen, egal) müssen also über GET All Locations diese vorher auch gesichert werden und als erstes eingespielt werden. Alternativ kann einen Dummy-Raum via API erzeugt werden und diese Raum-ID für das Device verwendet werden.
Request:
Code
Alles anzeigenPOST http://192.168.178.108:8080/device/: { "Request Headers": { ... }, "Request Body": " { "id": "cd8e7dd784114656ac5e3dc8498792d0", "tags": { "type": "TFairyLightsId", "typeCategory": "TCLightId" }, "config": { "name": "Lichterkette", "protocolId": "Cosip", "timeOfAcceptance": "2024-02-20T16:12:29+00:00", "timeOfDiscovery": "2024-02-20T16:12:03+00:00" }, "manufacturer": "RWE", "type": "PSSO", "version": "1.0", "desc": "/desc/device/PSSO.RWE/1.0", "class": "", "product": "CosipDevices.RWE", "serialNumber": "914171#####", "location": "/location/55e107583c364c3584a9e58b64d54bf1", "capabilities": [ "/capability/dd13f6097ff44d24b29801eeefe933db" ] } ", "Response Headers": { "access-control-allow-origin": "*", "content-type": "application/json", "content-length": "113" }, ... " }Dann kommt ein ERROR 3000:
JavaScript"Response Body": " { "errorcode": 3000, "description": "The requested entity does not exist", "messages": [ "device is not discovered" ] }"PSSO Gerät ist resettet, USB Stick mit KEY steckt ... Ideen??
-
Schaut mal....ich hab das was gebaut :
Einfach IP-Adresse und Passwort eintragen und auf das Knöpfchen drücken...
dann kommt die Konfig aus der Zentrale.
Jetzt muss ich diese nur noch in zwei Dateien ablegen und dann "nur" noch den umgekehrten Weg abbilden....dann hätten wir doch ein Prima Backup-Restore-Tool oder ?
Gruß Ralph
-
Alles anzeigen
Schaut mal....ich hab das was gebaut :
Einfach IP-Adresse und Passwort eintragen und auf das Knöpfchen drücken...
dann kommt die Konfig aus der Zentrale.
Jetzt muss ich diese nur noch in zwei Dateien ablegen und dann "nur" noch den umgekehrten Weg abbilden....dann hätten wir doch ein Prima Backup-Restore-Tool oder ?
Gruß Ralph

-
Also - mittlerweile hole ich auch die Räume und weitere Daten aus der Konfig ab.
Was ich mittlerweile rausgefunden habe ist, dass man die Räume nicht als ganzes "in einem Rutsch" in einer neuen Zentrale anlegen kann, sondern, dass man diese einzeln an die API schicken muss.
Ich gehe davon aus, dass das mit Szenarien und Geräten ähnlich ist....
Ich schaue mal weiter.....
-
Also bei den Devices scheint es kompliziert zu sein:
1) Zwischen SHC1 und SHC2 unterscheidet sich die JSON-Struktur und deren Inhalt
2) Man kann Devices nur einbinden, wenn das DeviceDiscovery auf der Zentrale läuft....das muss ich momentan noch manuell anstoßen - geht aber bestimmt auch über die API....
3) Das ist das größte Problem: Man kann Geräte nur mit der ID einbinden, die die Zentrale (irgendie selbst) für das Gerät festlegt und nicht mit einer ID aus einer Sicherung einer anderen Zentrale....momentan habe ich noch nicht rausgefunden, ob und wie man die von der Zentrale beim eigenen Discovery festgelegte ID für das Gerät herausbekommt...
-
Alles anzeigen
Also - mittlerweile hole ich auch die Räume und weitere Daten aus der Konfig ab.
Was ich mittlerweile rausgefunden habe ist, dass man die Räume nicht als ganzes "in einem Rutsch" in einer neuen Zentrale anlegen kann, sondern, dass man diese einzeln an die API schicken muss.
Ich gehe davon aus, dass das mit Szenarien und Geräten ähnlich ist....
Ich schaue mal weiter.....
Wie gesagt, ich würde mir mal die Datei von MSagner angucken, da gab es glaub ich 4 Kategorien.... Zu klären bleibt ja auch, wie ein SHC den Geräten sagt, dass er der neue Chef ist .. also sie "kapert" dafür muss es ja auch noch ne Funktion geben ...🤷🏼♀️
-
Das "Kapern" wird über die API denke ich nicht gehen.....es wird schon seinen Grund haben, warum LIVISI das Backup/Restore nicht mehr umgesetzt hat....wenn es so wäre, dass ich das an einem Nachmittag hinbekomme, dann hätten die das wohl auch gemacht

-
Das "Kapern" wird über die API denke ich nicht gehen.....es wird schon seinen Grund haben, warum LIVISI das Backup/Restore nicht mehr umgesetzt hat....wenn es so wäre, dass ich das an einem Nachmittag hinbekomme, dann hätten die das wohl auch gemacht

Ein herkömmliches Backup & Restore klappt tatsächlich nicht.
Man könnte aber ein Programm bauen, welches über die API alle Szenarien, Geräte, Räume und alle Einstellungen als Backup speichert.
Für das Restore könnte man dann sogar verschiedene Geräte in den Szenarien austauschen lassen und man könnte über ein solches Programm theoretisch sogar eine Gerätetauschfunktion für defekte Geräte umsetzen.
Wenn ich Zeit hätte, würde ich das furchtbar gerne machen, aber es haut nicht hin.
-
ok ....dann leg ich das Zeug jetzt mal weg.
Wenn die Id's der Geräte aus dem Backup nicht übernommen werden können, sondern zuerst alle Geräte manuell eingebunden werden müssten dann wird das leider nichts.
In den Szenarien sind ja die betroffenen Ids der Geräte enthalten, dass heißt, es bringt dann überhaupt nichts, die Szenarien wiederherstellen zu wollen.....
Sorry - aber das ist mir dann zu komplex und zu zeitaufwändig....
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!