NEWS
[gelöst] javascript-Adapter Speicherort
-
Ich habe 2 Fragen:
werden die Skripte des javascript-Adapters irgendwo als Datei gespeichert ?
Dann könnte man diese doch mit einem externen Editor bearbeiten.
Wenn nein, kann ich in einem Skript eigene js-Dateien "includen"?
Danke
Sepp
-
@sepp68:werden die Skripte des javascript-Adapters irgendwo als Datei gespeichert ? `
Nein, sie werden zusammen mit allen anderen Objekten in der Datei /opt/iobroker/iobroker-data/objects.json gespeichert.
@sepp68:kann ich in einem Skript eigene js-Dateien "includen"? `
Nein. Häufig benutzte eigene Funktionen kann man in Skripten in der Gruppe "global" deklarieren. Diese Funktionen stehen dann in allen nicht globalen Skripten zur Verfügung. -
Du kannst Dir aber mal den Adapter "Javascript to file" ansehen.
Da gibst Du ein Zielverzeichnis an und der Adapter synchronisiert jedes Script dorthin (inkl. Ordner, usw.) - und jedes Script in eine eigene Datei.
Du könntest sogar in der Datei was ändern und der Adapter sync. es wieder in ioBroker zurück.
Bitte unbedingt die ReadMe lesen ==> https://github.com/soef/iobroker.js2fs/ … /README.md
Gruß,
Eric
-
Js2fs klappt richtig gut. Nehme ich nur noch.
-
Danke, werde ich mir angucken !
-
Genau das habe ich gesucht !!!
Super Danke !
-
Möchte ein Skript aus einem iobroker komplett- Backup wiederherstellen. Habe nun die objects.json geöffnet und nach dem Skriptnamen gesucht und auch gefunden. Wie kann kann ich nun den Inhalt importieren? Es handelt sich um ein BLockly Skript. Ich kann kein Muster erkennen:
! "script.js.common.Deckenhaube":{"common":{"name":"
! Deckenhaube","expert":true,"engineType":"Blockly","engine":"system.adapter.javascript.0","source":"on({id: 'mihome.0.devices.switch_158d0001e89049.click', change:
! "ne"}, function (obj) {\n var value = obj.state.val;\n var oldValue = obj.oldState.val;\n getState("hm-rpc.0.OEQ1359645.1.STATE", function (err, state) {\n
! setStateDelayed("hm-rpc.0.OEQ1359645.1.STATE"/HM-LC-Sw1-Pl-DN-R1 OEQ1359645:1.STATE/, state ? !state.val : true, 1000, false);\n });\n
! console.log(getState("hm-rpc.0.OEQ1359645.1.STATE").val);\n});\n\n//JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJ
! TIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyNiU1RUF1a3V4JTIzYjklM0J6IWlKU3F4VlQlMjIlMjB4JTNEJTIyNjMlMjIlMjB5JTNEJTIyMzglMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyMSUyMiUz
! RSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSU
! zQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjIlN0JsdEgxWiU3RFk4JTdCQ3I5JTNBUyUzRGslNURPKSUyMiUzRSUzQ2ZpZWxkJTIwbm
! FtZSUzRCUyMm9pZCUyMiUzRW1paG9tZS4wLmRldmljZXMuc3dpdGNoXzE1OGQwMDAxZTg5MDQ5LmNsaWNrJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM
! 0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0b2dnbGUlMjIlMjBpZCUzRCUyMiU2MGF2OGxxJTJCKTBDQSU1QmtxTUpKamtoJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRy
! dWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4wLk9FUTEzNTk2NDUuMS5TVEFURSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUx
! BWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMTAwMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1zJTNDJTJGZmllbGQlM0
! UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyOGVYfiUzRCUyQ1dSYXpaa
! CUyNXJRJTVCTzZ2UyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNldmVyaXR5JTIyJTNFbG9nJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRl
! eHQlMjIlMjBpZCUzRCUyMng2S3BCYzN4dVk5SUIzKVhObFhVJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRWNsaWNrJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0Q
! lMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlotcilReiU1QlpOJTdEMFpYelU1WlFwMCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk
! 9JRCUyMiUzRWhtLXJwYy4wLk9FUTEzNTk2NDUuMS5TVEFURSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc
! 3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=","debug":false,"verbose":false,"enabled":true},"type":"script","from":"system.adapter.admin.0","ts":1545587655249,"
! _id":"script.js.common.Deckenhaube","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"javascript.0.scriptEnabled.common.Dec
! kenhaube":{"_id":"javascript.0.scriptEnabled.common.Deckenhaube","common":{"name":"scriptEnabled.common.Deckenhaube","desc":"controls script
! activity","type":"boolean","write":true,"read":true,"role":"switch.active","expert":true},"native":{"script":"script.js.common.Deckenhaube"},"type":"state","from":"sys
! tem.adapter.javascript.0","ts":1545586071729,"acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
Bin mir nicht sicher ob ich nicht zu viel kopiert habe… -
Ich habe gerade diesen Thread gefunden - mir scheint der Adapter "Js2fs" etwas "verwaist" zu sein viele "deprecated" Warnungen beim Installieren...
Beim Installieren...
martin@iobroker-test-sicher:~$ cd /opt/iobroker/ martin@iobroker-test-sicher:/opt/iobroker$ npm install iobroker.js2fs [sudo] password for martin: npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated chokidar@1.7.0: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. added 165 packages in 20s 79 packages are looking for funding run `npm fund` for details martin@iobroker-test-sicher:/opt/iobroker$
Ist der Adapter überhaupt noch nutzbar?
-
Beim ersten Start sieht es auch nicht besser aus ...
In einer Endlosschleife dies hier:
host.iobroker-test-sicher 2023-12-07 15:56:35.293 info Restart adapter system.adapter.js2fs.0 because enabled host.iobroker-test-sicher 2023-12-07 15:56:35.292 error instance system.adapter.js2fs.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker-test-sicher 2023-12-07 15:56:35.292 error Caught by controller[0]: Node.js v18.19.0 host.iobroker-test-sicher 2023-12-07 15:56:35.292 error Caught by controller[0]: at node:internal/main/run_main_module:28:49 host.iobroker-test-sicher 2023-12-07 15:56:35.292 error Caught by controller[0]: at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) host.iobroker-test-sicher 2023-12-07 15:56:35.292 error Caught by controller[0]: at Module._load (node:internal/modules/cjs/loader:1013:12) host.iobroker-test-sicher 2023-12-07 15:56:35.292 error Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:1197:32) host.iobroker-test-sicher 2023-12-07 15:56:35.292 error Caught by controller[0]: at Module._extensions..js (node:internal/modules/cjs/loader:1414:10) host.iobroker-test-sicher 2023-12-07 15:56:35.291 error Caught by controller[0]: at Module._compile (node:internal/modules/cjs/loader:1356:14) host.iobroker-test-sicher 2023-12-07 15:56:35.291 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.js2fs/js2fs.js:79:20) host.iobroker-test-sicher 2023-12-07 15:56:35.291 error Caught by controller[0]: at exports.Adapter (/opt/iobroker/node_modules/soef/soef.js:1383:23) host.iobroker-test-sicher 2023-12-07 15:56:35.291 error Caught by controller[0]: TypeError: fns.adapter is not a function host.iobroker-test-sicher 2023-12-07 15:56:35.291 error Caught by controller[0]: ^ host.iobroker-test-sicher 2023-12-07 15:56:35.291 error Caught by controller[0]: fns.adapter = fns.adapter(options); host.iobroker-test-sicher 2023-12-07 15:56:35.290 error Caught by controller[0]: /opt/iobroker/node_modules/soef/soef.js:1383 host.iobroker-test-sicher 2023-12-07 15:56:34.621 info instance system.adapter.js2fs.0 started with pid 43098
-
/opt/iobroker/node_modules/soef/soef.js
Das ganze Zeug von soef läuft nicht mehr mit aktuellen Systemen, soweit ich weiß. Was haste denn da am Wickel?
-
@martinp sagte in [gelöst] javascript-Adapter Speicherort:
Ich habe gerade diesen Thread gefunden -
nach 5 Jahren?
-
Gibt es neueres zum Adapter?
https://github.com/soef/iobroker.js2fs/blob/master/README.md
-
@martinp sagte in [gelöst] javascript-Adapter Speicherort:
Gibt es neueres zum Adapter?
https://github.com/soef/iobroker.js2fs/blob/master/README.md
welcher Adapter?
nur weil das Internet nichts vergisst?
der letzte Handschlag war da vor 6 Jahren gemacht worden.in der Adapterliste
ist er nicht mehr
-
Antworte mal selber...
Der ist aber auch "ein bisschen neuer"
https://github.com/iobroker-community-adapters/ioBroker.js2fs-communityEnthält aber immerhin die Anmerkung "Deprecated: This feature is now part of javascript adapter." - leider ohne jede Erklärung ...
Wobei ich da keinen Punkt gefunden habe, wirklich *.js Dateien zu exportieren...
Nun ist zumindest ein Riegel vorgeschoben, dass niemand dies hier liest, und auch auf die falsche Spur gerät, wie ich
Die in diesem Thread benannte Lösung ist inzwischen veraltet ...
-
@martinp sagte in [gelöst] javascript-Adapter Speicherort:
js Dateien zu exportieren.
per Spiegelverzeichnis!?
-
@homoran Genau, habe aber inzwischen selber gefunden, wo mein Knoten lag...
Kannte diesen Punkt hier ("Alle Skripte exportieren"), hatte mir aber den Output nie genau angeschaut...
Habe ich jetzt nachgeholt - die Dateiendung der im generierten Zip-File gepackten Dateien ist zwar json, aber es sind mehr oder weniger die gewünschten Javascript Dateien ...