NEWS
EIN Skript aus Backup zurückspielen
-
Hallo zusammen!
Leider habe ich EIN Blockly vor Wochen gelöscht (jetzt erst gemerkt) und möchte es aus meinen Datensicherungen (per BackItUp) zurückholen. Soweit ich gelesen habe, geht das gar nicht, sondern nur ALLE auf einmal? Somit würden zwischenzeitliche Änderungen an anderen Skripten verloren gehen
Grüße, Marcus
-
Mit ein bisschen Handarbeit geht das.
Im Backup findest Du eigentlich alle Scripte - auch die Blockly's
Am Ende der Zeile "Source" findest Du den "Kommentar", der sich unter jedem Blockly befindet.JTNDeG1sJTIweG1sbnMlM0QlMjJod ... NrJTNFJTNDJTJGeG1sJTNF
Das ist das Base64-Codierte XML.
Du musst das dann zunächst mit Base64-Decode wieder in eine halbwegs lesbare Form bringen.
https://www.base64decode.org/Das Ganze ist dann noch Url-Encoded.
Auch das lässt sich online wieder zurückverwandeln.
https://www.urldecoder.org/Das Endergebnis sollte gültiges XML sein. Das kannst Du dann importieren.
-
@codierknecht
Danke!!An dem "Wieder-Umwandeln" des aus der JSON kopierten Blockly-Abschnitts in lesbar bin ich gescheitert. Daher habe ich einfach alle Skriptnamen im ioBroker geändert, per BackItUp alle Skripte zurückgespielt und bis auf den einen notwendigen alle wieder gelöscht. Dann halt die "ursprünglichen" wieder umbenannt.
Bei hunderten Skripten sicherlich blöd, aber bei mir ging es.Trotzdem merke ich mir die von Dir beschriebene Methode mal vor.
-
@invidianer lol, ich habe das selbe Problem gestern Abend kurz vor heute gehabt. Bin an einer anderen Beschreibung gescheitert und habe das dann zum Glück von einer Hardcopy Nachprogrammieren können.
Eben hat's im 2. Versuch dann doch funktioniert. Erstaunlich, wie ungültig die URL-formatiert XML aussieht
Von mir auch noch mal ein Danke, hatte schon am Sinn der Sicherung gezweifelt -
@codierknecht man köntne natürlich auch das Skript aus meiner Signatur nehmen
-
@fastfoot
Du weißt doch: Watt man nich selbst macht, taugt auch nix -
@codierknecht Da bin ich ganz bei Dir, das Skript ist dennoch ganz praktisch, suche mal unter 700 Skripten das richtige raus, wenn du den Namen vergessen hast wirds schnell öde
-
@fastfoot
Feedback, aber wirklich gut gemeint. Ich bin dankbar für jede Hilfe, die bereitgestellt wird...Ich hab das gerade einmal versucht zu testen, aber da fällt auf dem Mac bei mir leider nichts raus, habe den Titel meines Skriptes eingetragen (die jsonTable enthält dann auch nur dieses). restoreToFilesystem habe ich auf true gesetzt.
Allerdings finde ich kein zurückgespieltes Skript mit entsprechendem Suffix.
Wo sollte man das finden? Im Java-Script-Bereich oder in den Dateien?Ich weiß, Du bist eigentlich damit durch, aber eine vielleicht wäre eine 'selbstbeschreibende' Variante für den schnellen Einsatz einfacher:
-
statt json-Datenpunkt die im backup gefundenen Skripte durchnummeriert im log ausgeben
-
nochmaliger start mit dieser Nummer stellt das Skript an gleicher stelle wieder her (oder meinetwegen in den Dateien)
In allen anderen Profi-Fällen kann man dann gern konfigurieren (woran ich scheinbar schon gescheitert bin).
Für ein Skript war die Beschreibung hier tatsächlich kürzer und schneller, als sich in Dein Skript einzulesen.Wie gesagt, ist nur ein Vorschlag und gut gemeint. So simpel ist das Skript für jemand aussenstehenden nicht.
-
-
@sammy-r ich habe mir mit der Beschreibung sehr viel Mühe gegeben, lesen muss man sie aber schon. Insbesondere die Zeilen 28, 35 und 62.
-
-
Ich habe mir bei meinem Vorschlag ebenfalls viel Mühe gegeben. Dieser Vorschlag ist einfach ein Vorschlag zu einer Vereinfachung für Leute, die kurz ein Skript wiederherstellen wollen. Dieser Vorschlag kann auch gern unabhängig von der Tatsache gesehen werden, dass ich das Skript nicht habe erfolgreich nutzen können.
-
Ich habe die Anleitung gelesen und ich habe auch die diversen Kommentare im Skript gelesen. Ich bin auch sicher, dass auch das Skript einige Zeit Entwicklung benötigt hat, nicht nur die Doku.
-
Ich habe die Konfigurationen so vorgenommen, wie ich sie als Neuling verstanden habe, ich habe mehrere Versuche gestartet und ich habe sogar begonnen, selbst weiter im Skript zu forschen, was ich dann aber abgebrochen habe.
-
Ich habe die Dinge genannt, die ich geändert habe genannt, die betreffen ziemlich gut die Konstanten, die Du genannt hast. Also habe ich anscheinend etwas falsch verstanden, das mache ich nicht mit Absicht. Und ich versuche sogar freundlich Feedback zu geben.
-
Da ich neu 'im' ioBroker bin, habe ich die DB-Warnung aus Zeile 35 ernst genommen, da ich ja auch eh nur einmal ausprobieren wollte, habe ich extra (wie auch geschrieben) restoreToFilesystem aktiviert und db nicht angefasst.
Am PathOut habe ich zunächst nichts geändert und dann mit Anpassungen Versuche gestartet. Wie beschrieben konnte ich nichts finden, obwohl ich sicher bin, dass etwas hätte gefunden werden müssen (wie ebenfalls genannt).
Da ich nicht finden konnte, habe ich gefragt, wo ich denn suchen müsste. Ich (als Anfänger) sehe in den Skripten eine Art Struktur und mir sind die Dateien aufgefallen. In beiden finde ich nichts. Ich habe mich auch via ssh auf den Server eingewählt, hatte aber keine Idee, wo ich hätte da suchen sollen.
Ergo:
Ich habe versucht, Deine 14 (!) Konfigurationsparameter zu verstehen und die notwenigen anzupassen (Deinen Zeilenangaben nach habe ich ja die richtigen gefunden).
Dann habe ich gefragt, wo ich denn das Ergebnis finden müsste.
Leider war die Antwort dann ein Vorwurf mit Zeilenangaben, auf die ich mich sogar schon bezogen hatte.Ich habe wirklich Interesse an dem Skript, immerhin kann einem das ja mal den Arsch retten.
Ich habe mir nun zum 2. Mal Zeit für Feedback genommen, vielleicht kannst Du Dich ja zu einer hilfreicheren Antwort hinreißen lassen.
Ansonsten lass mich Dir wenigstens versichern, dass ich die Doku schon gut fand (die schreibt nicht jeder), ich würde aber nicht erwarten, dass 14 (+) Parameter und prinzipielles verhalten für jeden Anwender zweifelsfrei zu beschreiben sind.
Deshalb hatte ich ja auch eine 0-1-Parameter-Variante vorgeschlagen, die vielen schon helfen würde.Nochmal: Feedback/Kritik, ich bin ebenfalls Entwickler und bin immer froh, wenn jemand Zeit in Feedback zu meiner Arbeit steckt und mir die Change gibt, etwas zu verbessern und noch zugänglicher zu machen. Ich meine das nur gut.
-
-
@sammy-r nun, was ist an // hier landen die extrahierten Skripte und die Listing-Datei, wird bei Skriptstart geleert und angelegt wenn nicht vorhanden denn falsch zu verstehen? Da du in deinem 1. Post offensichtlich etwas gefunden hast(im Datenpunkt), tippe ich mal dass Du den Pfad nicht richtig angegeben hast. Wie der auf dem MAC lautet kannst nur du wissen, ich habe keinen Mac. Die Voreinstellung sollte aber in den iobrokerordner und dort in scriptOutput sein
Solange du dort keine Listingdatei findest wirst du auch keinen Output(extrahiertes Skript) finden können, wg. falschem Pfad.
Wenn du eh nur eine Datei gefunden hattest kannst du auch restoreToSystemsDB aktivieren, dann wird ein neues Skript erstellt mit der der Endung _rcvr, das sollte unabhängig von einem falschen Ausgabepfad funktionieren und verhindert auch ein Überschreiben im System
Ansonsten ist das Skript eben nicht für gerade mal so... geschrieben, sondern um einem den A... zu retten