@Mic
funktioniert tadellos, Danke !
Da währe ich mit suchen und probieren nicht drauf gekommen.
Das war mal ne direkte Hilfe ohne Umwege, Perfekt!
Gruß
Stephan
@Mic
funktioniert tadellos, Danke !
Da währe ich mit suchen und probieren nicht drauf gekommen.
Das war mal ne direkte Hilfe ohne Umwege, Perfekt!
Gruß
Stephan
Hallo zusammen, weis jemand, welcher Datenpunkt der Mercedes me Adapters wie verändert werden muss, um das Ladeprogramm des KFZs zu wechseln bzw. anzupassen.
In der App ist das möglich, möchte aber über Adapter steuern.
Bisherige Anfragen waren Erfolglos…..
Grüße Stephan
@dp20eic
Danke für den Hinweis .....
@liv-in-sky
genau das wars, hatte versehentlich ein sript in "Global". Script gelöscht, Iobroker neu gestartet und alles wieder ok, scripts laufen wieder ohne Fehlermeldung.
Super, besten Dank für den Hinweis.
Grüße
Stephan
@sruhsam
Hier das Protokoll:
17:28:01.374	info	javascript.0 (809) Start javascript script.js.common.SONOS.Skript2
17:28:01.384	info	javascript.0 (809) script.js.common.SONOS.Skript2: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
17:28:01.427	warn	javascript.0 (809) script.js.common.SONOS.Skript2: 217 Leeres Skript: Skript Test
17:28:01.443	info	javascript.0 (809) Stop script script.js.common.SONOS.Skript2
im debug
7:29:53.771	info	javascript.0 (809) Stop script script.js.common.SONOS.Skript2
17:29:56.262	info	javascript.0 (809) Start javascript script.js.common.SONOS.Skript2
17:29:56.274	info	javascript.0 (809) script.js.common.SONOS.Skript2: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
17:29:56.328	warn	javascript.0 (809) script.js.common.SONOS.Skript2: 217 Leeres Skript: Skript Test
17:29:56.339	warn	javascript.0 (809) script.js.common.SONOS.Skript2: stopScript(scriptName=script.js.common.SONOS.Skript2) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
17:29:56.340	error	javascript.0 (809) script.js.common.SONOS.Skript2: TypeError: callback is not a function
17:29:56.341	error	javascript.0 (809) at start (script.js.common.SONOS.Skript2:141:4)
Habe das Problem, dass mein Scripts nicht mehr läuft.
Hier als Beispiel ein banales script per Blockly:
on({id: [].concat(['hm-rpc.0.PEQ0197537.5.PRESS_SHORT']), change: "any"}, async function (obj) {
  let value = obj.state.val;
  let oldValue = obj.oldState.val;
  setState("sonos.0.root.192_168_2_138.play"/*Play button*/, true);
  if (getState("sonos.0.root.192_168_2_138.muted").val == true) {
    setState("sonos.0.root.192_168_2_138.muted"/*Player mute*/, false);
  } else if (getState("sonos.0.root.192_168_2_138.muted").val == false) {
    setState("sonos.0.root.192_168_2_138.muted"/*Player mute*/, true);
  } else {
  }
});
liegt nicht am script selber, da immer wieder im Protokoll folgendes angezeigt wird:
javascript.0
2023-08-25 17:19:06.278	info	Stop script script.js.common.SONOS.Skript2
javascript.0
2023-08-25 17:19:06.257	warn	script.js.common.SONOS.Skript2: 217 Leeres Skript: Skript Test
javascript.0
2023-08-25 17:19:06.216	info	script.js.common.SONOS.Skript2: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
javascript.0
2023-08-25 17:19:06.210	info	Start javascript script.js.common.SONOS.Skript2
Der gleiche Fehler 217 kommt auch bei anderen scripts.
Grüße Stephan
@fastfoot
super Teil, war sehr lange auf der Suche ......
Hat super funktioniert, doch nun kommt aber ein Fehler, bestimmt kein großes ding .......
16:19:25.797	info	javascript.0 (22538) Stop script script.js.common.Restore
16:19:27.683	info	javascript.0 (22538) Start javascript script.js.common.Restore
16:19:27.684	error	javascript.0 (22538) script.js.common.Restore compile failed: at script.js.common.Restore:15
javascript.0
2023-08-25 16:27:43.558	error	at processImmediate (node:internal/timers:473:21)
javascript.0
2023-08-25 16:27:43.558	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1628:17)
javascript.0
2023-08-25 16:27:43.558	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2153:17
javascript.0
2023-08-25 16:27:43.557	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2055:37)
javascript.0
2023-08-25 16:27:43.557	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1802:21)
javascript.0
2023-08-25 16:27:43.557	error	at new Script (node:vm:100:7)
javascript.0
2023-08-25 16:27:43.557	error	SyntaxError: Identifier 'dbg' has already been declared
javascript.0
2023-08-25 16:27:43.557	error	^
javascript.0
2023-08-25 16:27:43.557	error	const dbg = false;
javascript.0
2023-08-25 16:27:43.557	error	script.js.common.Restore compile failed: at script.js.common.Restore:15
javascript.0
2023-08-25 16:27:43.556	info	Start javascript script.js.common.Restore
javascript.0
2023-08-25 16:27:36.426	info	Stop script script.js.common.Restore
Grüße Stephan
@fastfoot
Hallo hier mal die komplette Zeile 8
      "source": "on({id: new RegExp('hm-rega\\\\.0\\\\.2718' + \"$|\" + 'hm-rega\\\\.0\\\\.2720' + \"$\"), change: \"ne\", ack: true}, async function (obj) {\n    console.warn('Start Trigger');\n  if (getState(\"hm-rega.0.2718\").val == false && getState(\"hm-rega.0.2720\").val == false) {\n    console.warn('Alle Abwesend');\n    setState(\"0_userdata.0.Alarmanlage.AlleAbwesend\"/*AlleAbwesend*/, true);\n  } else {\n    console.warn('mind. einer Anwesend');\n    setState(\"0_userdata.0.Alarmanlage.AlleAbwesend\"/*AlleAbwesend*/, false);\n  }\n});\n\n//
dann kommen vermutlich die Blockly-Daten und dann
      "debug": false,
      "verbose": false,
      "enabled": false
    },
    "type": "script",
    "from": "system.adapter.admin.0",
    "user": "system.user.admin",
    "ts": 1642853917279,
    "_id": "script.js.Alarmanlage.Alle_Abwesend",
    "acl": {
      "object": 1638,
      "owner": "system.user.admin",
      "ownerGroup": "system.group.administrator"
    },
    "enums": {}
  }
@crunchip
Danke für die konstruktive Antwort.
Ok, Aufruf habe ich dann total falsch gemacht. Habe nun das Script im IoB kopiert. Die BackupDatei "Backup.json" in den Pfad /opt/iobroker/restore.
Mir ist aufgefallen, dass das Wort "unescape" auf einmal durchgestrichen ist.

Das Script bringt beim starten aber einen Fehler und die Javascript instance wird deaktiviert ???

Hier das Protokoll:

könnt Ihr mir helfen, sehe den Wald vor lauter Bäume nicht mehr.
Ich habe ein Javascript-Backup mit Backitup erstellt, welche ich mir automatisch erstellen lasse. Nun möchte ich aus diesem Backup namens "script6.json" ein Script wiederherstellen. Ordner und Name ist bekannt.
Hier mal ein Auszug der Datei, damit Ihr wisst von was ich rede:
{
  "script.js.Alarmanlage.Alle_Abwesend": {
    "common": {
      "name": "Alle Abwesend",
      "expert": true,
      "engineType": "Blockly",
      "engine": "system.adapter.javascript.0",
      "source": "on({id: new RegExp('hm-rega\\\\.0\\\\.2718' + \"$|\" + 'hm-rega\\\\.0\\\\.2720' + \"$\"), change: \"ne\", ack: true}, async function (obj) {\n    console.warn('Start Trigger');\n  if (getState(\"hm-rega.0.2718\").val == false && getState(\"hm-rega.0.2720\").val == false) {\n    console.warn('Alle Abwesend');\n    setState(\"0_userdata.0.Alarmanlage.AlleAbwesend\"/*AlleAbwesend*/, true);\n  } else {\n    console.warn('mind. einer Anwesend');\n    setState(\"0_userdata.0.Alarmanlage.AlleAbwesend\"/*AlleAbwesend*/, false);\n  }\n});\n\n//JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMiFxOSU3RFMlN0RpVDB4JTJDJTI1JTJCJTQwJTI0JTJGSmclMjUlM0QlMjIlMjB4JTNEJTIyMjg1JTIyJTIweSUzRCUyMi03NDIlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBpdGVtcyUzRCUyMjIlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRW5lJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFdHJ1ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMkpyOSUyMzElMjU0JTYwJTJCJTVEJTJDNSU1RSU1QjYlNDBTJTNCfkUlMjIlM0UlM0NmaWVsZCUyMG5
Jetzt habe ich gelesen, dass es ein anderes Script gibt, welches das erledigen kann. Ich habe mir also den Code komplett heraus kopiert und ein neue Datei namens "RestoreScript" angelegt. Dieses Script habe im Pfad "/opt/iobroker/restore" abgelegt, ebenso die oben beschrieben Datei "script 6.json". In der Datei "RestoreScript" habe ich nun folgendes eingetragen:
const name_of_script = "Alarmanlage.Alle Abwesend";
 
var fs = require('fs');
var filename = '/opt/iobroker/restore/script6.json';
fs.readFile(filename, 'utf8', function(err, data) {
  if (!err) {
    var objects = JSON.parse(data).objects;
    var index = objects.findIndex(x => x.id ==="script.js." + name_of_script);
    var source = objects[index];
    var script_text = unescape(source.value.common.source);
    fs.writeFile("/opt/iobroker/restore/the_script.js", script_text, function(err) {
    if(err) {
        return console.log(err);
    }
    log("Script was extracted");
    });
  } else log("backup.json konnte nicht gelesen werden");
});
 
Wenn ich nun die Datei "RestoreScript" mit dem Konsolenbefehl starte bekomme ich folgende Meldung.
root@ioBroker:/opt/iobroker/restore# bash RestoreScript
RestoreScript: Zeile 1: /bin: Ist ein Verzeichnis
RestoreScript: Zeile 2: https://forum.iobroker.net/topic/34161/source-code-von-script-aus-backup-json-extrahieren: Datei oder Verzeichnis nicht gefunden
RestoreScript: Zeile 3: Script: Kommando nicht gefunden.
RestoreScript: Zeile 4: 1.: Kommando nicht gefunden.
RestoreScript: Zeile 5: 2.: Kommando nicht gefunden.
RestoreScript: Zeile 6: 3.: Kommando nicht gefunden.
RestoreScript: Zeile 7: 3.: Kommando nicht gefunden.
RestoreScript: Zeile 8: 4.: Kommando nicht gefunden.
RestoreScript: Zeile 9: */: Datei oder Verzeichnis nicht gefunden
RestoreScript: Zeile 11: //: Ist ein Verzeichnis
RestoreScript: Zeile 12: //: Ist ein Verzeichnis
RestoreScript: Zeile 14: const: Kommando nicht gefunden.
RestoreScript: Zeile 16: Syntaxfehler beim unerwarteten Symbol »(«
RestoreScript: Zeile 16: `var fs = require('fs');'
root@ioBroker:/opt/iobroker/restore# 
offensichtlich mach ich etwas beim Aufruf der RestoreScript Datei falsch ....
Vielleich kann mir jemand helfen der Ahnung hat, leider gehöre ich nicht zu dem Kreis .....
Grüße Stephan
@tombox
Danke für die Antwort.
In der mercedes me App ist dies natürlich möglich, deshalb versuche ich es ja über den Adapter zu steuern.
im Verzeichnis command stehen ja ganz viele Verzeichnisse, deshalb meine Frage, ob das jemand weis, welcher State hier wie verändert werden muss.
wenn ich diesen auf true setze, wird immer das Standard (default)-Charge-Programm ausgewählt, ich möchte nun aber in das Zuhause (Home) Charge-Program wechseln.
mercedesme.0.W1NKM5GB7PU034353.commands.CHARGE_PROGRAM_CONFIGURE.start
Es geht eigentlich um diesen State:
mercedesme.0.<FIN>.state.chargePrograms.chargeProgramsValue
weis aber wie beschrieben nicht welcher das im Verzeichnis Command ist.
Ich bin mal alle beschreibbaren States durchgegangen, hatte aber leider nichts gefunden und nur probieren möchte ich eigentlich nicht.
Ich dachte hier im Forum Hilfe zu finden.
Vielleicht gibt es auch eine andere Möglichkeit diese State in einem script anzusprechen bzw. zu verändern. bin für jede Hilfe offen.
Grüße
Stephan