NEWS
Ordner und Skripte verschwunden
-
Hi @fastfoot Super, vielen Dank für den Tip. Ich schaue gleich morgen früh nach.
Lieben Gruß -
@fastfoot Ich habe ein älteres Image (erstellt mit dd) gefunden, welches vor der REDIS Installation erstellt wurde. Ich habe es eingebunden und kann auf die Files zugreifen. Frage: Wo würde ich denn die erstellten Skripts finden?
Im Folder backup-objects sind objects und states Dateien vorhanden, aber wo sind die javascripts?
-
@fastfoot ich bin einen Schritt weiter. Wenn ich in das alte JSON File hineinschaue, dann finde ich dort Skript informationen.
Würde es reichen:- Ordnerstruktur von Hand wieder anzulegen
- den im Codeteil unter "script.js.*"/"source" string als neues Skript einzufügen?
- was ist mit den "javascript.0.scriptEnabled.*" Einträgen? Erstellen die sich wieder von alleine?
Ich möchte wirklich nur die Skripte wieder zurück haben und kein ganzes Backup zurückspielen, da sich zu viel am System geändert hat.
Generell ist es aber immer noch die gleiche Installation, daher denke ich, dass die IDs bislang auch unverändert sind."script.js.common.DEV.Lampe_wenn_Tür_auf": { "common": { "name": "Lampe wenn Tür auf", "expert": true, "engineType": "Blockly", "engine": "system.adapter.javascript.0", "source": "on({id: \"deconz.0.Sensors.9.vibration\"/*Vibration 9 vibration*/, val: true}, async function (obj) {\n var value = obj.state.val;\n var oldValue = obj.oldState.val;\n setState(\"deconz.0.Lights.4.on\"/*Dimmable light HUE 01 on*/, true);\n setState(\"deconz.0.Lights.4.level\"/*Dimmable light HUE 01 level*/, 10);\n});\non({id: \"deconz.0.Sensors.9.vibration\"/*Vibration 9 vibration*/, val: false}, async function (obj) {\n var value = obj.state.val;\n var oldValue = obj.oldState.val;\n setState(\"deconz.0.Lights.4.on\"/*Dimmable light HUE 01 on*/, false);\n});\n\n//JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIySm90JTYwcmhNQ2glN0NKQyUyMyFwYU5YWXIlMjIlMjB4JTNEJTIyMjYyJTIyJTIweSUzRCUyMjIxMiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWRlY29uei4wLlNlbnNvcnMuOS52aWJyYXRpb24lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRXRydWUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJ6JTJCMyU1RHAlMkMlN0MlNDBTJTVCQWolNUQlMkM5NClRdiU1RSUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWRlY29uei4wLkxpZ2h0cy40Lm9uJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyJTJDMVBuJTNEZCU1RFZwRiolNUQlM0IlNDBzVyU2MGxhcCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMllVeCU3QiU3Q3VpZ3RTZiUyQ1FiNlElMjMxSi4lMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZWNvbnouMC5MaWdodHMuNC5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJHVDklN0QlN0IlM0RhbSlWeURhcDclNjBBU0FtJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIyU3dXSk5IX3BHZHU0NUliVWlOJTYwKSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWRlY29uei4wLlNlbnNvcnMuOS52aWJyYXRpb24lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWZhbHNlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyaUh5NkFqcUdjZyUyRmw2bmouZSU1RVNIJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZGVjb256LjAuTGlnaHRzLjQub24lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjIlM0JITTglMkIlNDBGJTdDbCFHYyUzRmElN0RoayU0MFUlNUQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF", "debug": false, "verbose": false, "enabled": true }, "type": "script", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1639472362998, "_id": "script.js.common.DEV.Lampe_wenn_Tür_auf", "acl": { "object": 1636, "owner": "system.user.andre", "ownerGroup": "system.group.administrator" } }, "javascript.0.scriptEnabled.common.DEV.Lampe_wenn_Tür_auf": { "_id": "javascript.0.scriptEnabled.common.DEV.Lampe_wenn_Tür_auf", "common": { "name": "scriptEnabled.common.DEV.Lampe_wenn_Tür_auf", "desc": "controls script activity", "type": "boolean", "write": true, "read": true, "role": "switch.active" }, "native": { "script": "script.js.common.DEV.Lampe_wenn_Tür_auf" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1620638641593, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }, "javascript.0.scriptProblem.common.DEV.Lampe_wenn_Tür_auf": { "_id": "javascript.0.scriptProblem.common.DEV.Lampe_wenn_Tür_auf", "common": { "name": "scriptProblem.common.DEV.Lampe_wenn_Tür_auf", "desc": "is the script has a problem", "type": "boolean", "expert": true, "write": false, "read": true, "role": "indicator.error" }, "native": { "script": "script.js.common.DEV.Lampe_wenn_Tür_auf" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1620638641656, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }
Wobei sich dann immer noch die Frage stellt, wie ein "engineType": "Blockly" als Skript einzufügen wäre????
-
@2afs ich hatte hier vor einiger Zeit ein Skript gepostet welches aus einer objects.json die Skripte extrahiert. Suche mal danach
-
@fastfoot meinst Du den hier?
https://forum.iobroker.net/topic/51702/scripte-aus-backup-wiederherstellen/5?_=1648740670684Sieht nach ganz schöner Arbeit aus, das alles wieder als BLOCKLYs herzustellen.
Aber vielleicht hast Du ja auch einen anderen Link oder Script gemeint.....
-
@2afs da sehe ich keinen Beitrag von mir!
nimm dieses Skript und beachte die Zeilen 8, 9, 11 + 12
-
@fastfoot Vielen lieben Dank Es hat super funtioniert. Alle Skripte sind wieder da
Ich musste nur noch ein paar kleinere Korrekturen vornehmen, da das JSON file im Image schon etwas älter war. Große Klasse.
Jetzt schreibe ich auch javascript mirror files. Damit bin ich zukünftig flexibler.
Warum alles verschwunden war ist zwar immer noch unklar aber ist jetzt auch nicht mehr so wichtig. -
Hi,
ich habe in einem anderen Thread einen Fehler, dass zwei Blockly Skripte nicht mehr editierbar bzw. der Inhalt sichtbar sind. Deswegen kam dieser Hinweis zur richtigen Zeit. Es mit gelungen, dass aus einer alten objects.json alle Skripte wieder einzeln im extra angelegten Ordner Restore sichtbar sind.Frage: Wie bekomme ich den Inhalt einer einzelnen Datei wieder als Blockly importiert. Als Import geht geht es bei mir nicht. Was ist der Trick?
Und was sind mirror files bzw. wie machst du das?
Grüße
Torsten -
@kiste01 sagte in Ordner und Skripte verschwunden:
Frage: Wie bekomme ich den Inhalt einer einzelnen Datei wieder als Blockly importiert. Als Import geht geht es bei mir nicht. Was ist der Trick?
Das Skript erzeugt für Blocklies XML-Dateien, deren Inhalt du dann im Js-Editor importieren kannst
-
Ich habe (meinen) Fehler jetzt gefunden.
Ich hatte in zwei Skripten einen deaktivierten whatsapp sendto Block drin. Den whatsapp Adapter hatte ich irgendwann gelöscht. Wahrscheinlich wurde durch ein update iob auf 4.0.21 und node.js auf 14.19.1 die fehlende Verbindung "bemerkt".
Wie bin ich drauf gekommen? Beim Import des skript aus dem Restore kam eine Fehlermeldung zum fehlerhaften whatsapp Block. Nachdem ich den whatsapp Adapter wieder installiert hatte, war das ursprüngliche Skript und das importierte Skript wieder sichtbar und editierbar.