Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Ordner und Skripte verschwunden

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    121

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Ordner und Skripte verschwunden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
12 Beiträge 3 Kommentatoren 1.5k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F fastfoot

    @2afs hast du evtl. bei der Umstellung zu Redis nicht migriert? Schau mal in iobroker-data ob du nicht noch ne alte objects.json Datei finden kannst. Dort gibt es auch einen folder backup-objects mit evtl. alten Daten

    2afs2 Offline
    2afs2 Offline
    2afs
    schrieb am zuletzt editiert von
    #3

    Hi @fastfoot Super, vielen Dank für den Tip. Ich schaue gleich morgen früh nach.
    Lieben Gruß

    1 Antwort Letzte Antwort
    0
    • F fastfoot

      @2afs hast du evtl. bei der Umstellung zu Redis nicht migriert? Schau mal in iobroker-data ob du nicht noch ne alte objects.json Datei finden kannst. Dort gibt es auch einen folder backup-objects mit evtl. alten Daten

      2afs2 Offline
      2afs2 Offline
      2afs
      schrieb am zuletzt editiert von 2afs
      #4

      @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?
      d1a425e9-d6ca-448e-b83d-7374d0a1dd2f-image.png

      Im Folder backup-objects sind objects und states Dateien vorhanden, aber wo sind die javascripts?
      820418fe-6346-4826-956c-7861a0325627-image.png

      1 Antwort Letzte Antwort
      0
      • F fastfoot

        @2afs hast du evtl. bei der Umstellung zu Redis nicht migriert? Schau mal in iobroker-data ob du nicht noch ne alte objects.json Datei finden kannst. Dort gibt es auch einen folder backup-objects mit evtl. alten Daten

        2afs2 Offline
        2afs2 Offline
        2afs
        schrieb am zuletzt editiert von 2afs
        #5

        @fastfoot ich bin einen Schritt weiter. Wenn ich in das alte JSON File hineinschaue, dann finde ich dort Skript informationen.
        Würde es reichen:

        1. Ordnerstruktur von Hand wieder anzulegen
        2. den im Codeteil unter "script.js.*"/"source" string als neues Skript einzufügen?
        3. 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.

        39c67e4f-9d6c-4cd0-9247-6827270e4202-image.png

        "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????

        F 1 Antwort Letzte Antwort
        0
        • 2afs2 2afs

          @fastfoot ich bin einen Schritt weiter. Wenn ich in das alte JSON File hineinschaue, dann finde ich dort Skript informationen.
          Würde es reichen:

          1. Ordnerstruktur von Hand wieder anzulegen
          2. den im Codeteil unter "script.js.*"/"source" string als neues Skript einzufügen?
          3. 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.

          39c67e4f-9d6c-4cd0-9247-6827270e4202-image.png

          "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????

          F Offline
          F Offline
          fastfoot
          schrieb am zuletzt editiert von
          #6

          @2afs ich hatte hier vor einiger Zeit ein Skript gepostet welches aus einer objects.json die Skripte extrahiert. Suche mal danach

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          2afs2 1 Antwort Letzte Antwort
          1
          • F fastfoot

            @2afs ich hatte hier vor einiger Zeit ein Skript gepostet welches aus einer objects.json die Skripte extrahiert. Suche mal danach

            2afs2 Offline
            2afs2 Offline
            2afs
            schrieb am zuletzt editiert von
            #7

            @fastfoot meinst Du den hier?
            https://forum.iobroker.net/topic/51702/scripte-aus-backup-wiederherstellen/5?_=1648740670684

            Sieht nach ganz schöner Arbeit aus, das alles wieder als BLOCKLYs herzustellen.

            Aber vielleicht hast Du ja auch einen anderen Link oder Script gemeint.....

            F 1 Antwort Letzte Antwort
            0
            • 2afs2 2afs

              @fastfoot meinst Du den hier?
              https://forum.iobroker.net/topic/51702/scripte-aus-backup-wiederherstellen/5?_=1648740670684

              Sieht nach ganz schöner Arbeit aus, das alles wieder als BLOCKLYs herzustellen.

              Aber vielleicht hast Du ja auch einen anderen Link oder Script gemeint.....

              F Offline
              F Offline
              fastfoot
              schrieb am zuletzt editiert von fastfoot
              #8

              @2afs da sehe ich keinen Beitrag von mir!
              nimm dieses Skript und beachte die Zeilen 8, 9, 11 + 12

              /**
              * Zweck:   Extract scripts from objects.json
              * Datum:   01.04.2022
              * Autor:   @fastfoot
              */
              const fs = require('fs'),
                 path = require('path'),
                 restoreToSystemDb = false,              // lädt die Daten sofort ins System(ACHTUNG! *** auf eigenes Risiko ***)
                 restoreAsFile = false,                  // Datei ins Filesystem schreiben
                 scriptExt = '',                        // Extension für importierte Skripte
                 pathToRestore = '/opt/iobroker/restore/', // <=== Pfad eintragen mit abschliessendem /
                 fileName = 'objects.json';              // Dateiname der objects.json
              
              main(pathToRestore, fileName)
              
              function main(pathRestore, fileName) {
                 let allObjects = {},
                     script = {},
                     ext = '',
                     data = '',
                     res = {};
              
                 try {
                     allObjects = JSON.parse(fs.readFileSync(pathRestore + fileName, 'utf8'));
                 } catch (e) {
                     log(`Fehler beim Lesen von ${fileName} in ${pathRestore}: ` + e, "error");
                 }
              
                 let i = 0;
                 for (let key in allObjects) {
                     script = allObjects[key];
                     if (script.type == 'script') {
                         if (!existsObject(key) && restoreToSystemDb) {
                             script.common.name += scriptExt;
                             setObject(key, { type: script.type, common: script.common });
                         }
                         if (restoreAsFile) {
                             data = script.common.source;
                             switch (script.common.engineType.toLowerCase()) {
                                 case 'blockly':
                                     ext = '.xml';
                                     if (script.common.source.length)
                                         data = handleBlockly(script.common.source);
                                     else
                                         log('Leeres Skript: ' + script.common.name, 'warn');
                                     break;
                                 case 'javascript/js':
                                     ext = '.js';
                                     break;
                                 case 'typescript/ts':
                                     ext = '.ts';
                                     break;
                                 default:
                                     ext = '.js';
                             }
                             if (data.length) {
                                 fs.writeFile(pathRestore + key.substring(10) + ext, data, e => {
                                     if (e)
                                         log('Fehler beim Schreiben der Datei:' + e.error)
                                 })
                             }
                         }
              
                         res[key.substr(10)] = script.common.engineType;
                     }
                 }
              
                 // sortieren
                 let b = {};
                 let a = Object.keys(res).sort();
                 for (let i = 0; i < a.length; i++) {
                     b[(i + 1) + ' ' + a[i]] = res[a[i]];
                 }
              
                 fs.writeFile(pathRestore + 'GefundeneSkripte.json', JSON.stringify(b, null, 3), e => {
                     if (e)
                         log('Schreibfehler bei Ergebnisdatei');
                 })
              
                 log('done')
              }
              
              function handleBlockly(source) {
                 const pos = source.lastIndexOf('\n');
                 if (pos !== -1) {
                     source = source.substring(pos + 3);
                     if (source.indexOf('JTNDeG1sJTIweG1') > -1) {
                         source = decodeURIComponent(Buffer.from(source, 'base64').toString('utf8'));
                         return prettifyXml(source);
                     }
                 }
              }
              
              //from Stackoverflow
              function prettifyXml(xml) {
                 var reg = /(>)\s*(<)(\/*)/g;
                 xml = xml.replace(/\r|\n/g, ''); //deleting already existing whitespaces
                 xml = xml.replace(reg, '$1\r\n$2$3');
                 return xml;
              }
              

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              2afs2 1 Antwort Letzte Antwort
              2
              • F fastfoot

                @2afs da sehe ich keinen Beitrag von mir!
                nimm dieses Skript und beachte die Zeilen 8, 9, 11 + 12

                /**
                * Zweck:   Extract scripts from objects.json
                * Datum:   01.04.2022
                * Autor:   @fastfoot
                */
                const fs = require('fs'),
                   path = require('path'),
                   restoreToSystemDb = false,              // lädt die Daten sofort ins System(ACHTUNG! *** auf eigenes Risiko ***)
                   restoreAsFile = false,                  // Datei ins Filesystem schreiben
                   scriptExt = '',                        // Extension für importierte Skripte
                   pathToRestore = '/opt/iobroker/restore/', // <=== Pfad eintragen mit abschliessendem /
                   fileName = 'objects.json';              // Dateiname der objects.json
                
                main(pathToRestore, fileName)
                
                function main(pathRestore, fileName) {
                   let allObjects = {},
                       script = {},
                       ext = '',
                       data = '',
                       res = {};
                
                   try {
                       allObjects = JSON.parse(fs.readFileSync(pathRestore + fileName, 'utf8'));
                   } catch (e) {
                       log(`Fehler beim Lesen von ${fileName} in ${pathRestore}: ` + e, "error");
                   }
                
                   let i = 0;
                   for (let key in allObjects) {
                       script = allObjects[key];
                       if (script.type == 'script') {
                           if (!existsObject(key) && restoreToSystemDb) {
                               script.common.name += scriptExt;
                               setObject(key, { type: script.type, common: script.common });
                           }
                           if (restoreAsFile) {
                               data = script.common.source;
                               switch (script.common.engineType.toLowerCase()) {
                                   case 'blockly':
                                       ext = '.xml';
                                       if (script.common.source.length)
                                           data = handleBlockly(script.common.source);
                                       else
                                           log('Leeres Skript: ' + script.common.name, 'warn');
                                       break;
                                   case 'javascript/js':
                                       ext = '.js';
                                       break;
                                   case 'typescript/ts':
                                       ext = '.ts';
                                       break;
                                   default:
                                       ext = '.js';
                               }
                               if (data.length) {
                                   fs.writeFile(pathRestore + key.substring(10) + ext, data, e => {
                                       if (e)
                                           log('Fehler beim Schreiben der Datei:' + e.error)
                                   })
                               }
                           }
                
                           res[key.substr(10)] = script.common.engineType;
                       }
                   }
                
                   // sortieren
                   let b = {};
                   let a = Object.keys(res).sort();
                   for (let i = 0; i < a.length; i++) {
                       b[(i + 1) + ' ' + a[i]] = res[a[i]];
                   }
                
                   fs.writeFile(pathRestore + 'GefundeneSkripte.json', JSON.stringify(b, null, 3), e => {
                       if (e)
                           log('Schreibfehler bei Ergebnisdatei');
                   })
                
                   log('done')
                }
                
                function handleBlockly(source) {
                   const pos = source.lastIndexOf('\n');
                   if (pos !== -1) {
                       source = source.substring(pos + 3);
                       if (source.indexOf('JTNDeG1sJTIweG1') > -1) {
                           source = decodeURIComponent(Buffer.from(source, 'base64').toString('utf8'));
                           return prettifyXml(source);
                       }
                   }
                }
                
                //from Stackoverflow
                function prettifyXml(xml) {
                   var reg = /(>)\s*(<)(\/*)/g;
                   xml = xml.replace(/\r|\n/g, ''); //deleting already existing whitespaces
                   xml = xml.replace(reg, '$1\r\n$2$3');
                   return xml;
                }
                

                2afs2 Offline
                2afs2 Offline
                2afs
                schrieb am zuletzt editiert von
                #9

                @fastfoot Vielen lieben Dank :beers: Es hat super funtioniert. Alle Skripte sind wieder da :flushed:
                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.

                K 1 Antwort Letzte Antwort
                0
                • 2afs2 2afs

                  @fastfoot Vielen lieben Dank :beers: Es hat super funtioniert. Alle Skripte sind wieder da :flushed:
                  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.

                  K Offline
                  K Offline
                  kiste01
                  schrieb am zuletzt editiert von kiste01
                  #10

                  @2afs

                  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

                  F 1 Antwort Letzte Antwort
                  0
                  • K kiste01

                    @2afs

                    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

                    F Offline
                    F Offline
                    fastfoot
                    schrieb am zuletzt editiert von
                    #11

                    @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

                    iobroker läuft unter Docker auf QNAP TS-451+
                    SkriptRecovery: https://forum.iobroker.net/post/930558

                    K 1 Antwort Letzte Antwort
                    1
                    • F fastfoot

                      @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

                      K Offline
                      K Offline
                      kiste01
                      schrieb am zuletzt editiert von
                      #12

                      @fastfoot

                      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.

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      435

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe