@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