NEWS
[Erledigt] Java(skript) ist eine Insel...
-
Ich bekomme diese Fehlermeldung:
2022-04-29 20:31:26.263 - info: javascript.0 (1154) script.js.common.telefon_klingelt: Telefongespräch beendet - Erhöhe auf vorherige Lautstärke undefined 2022-04-29 20:31:26.265 - warn: javascript.0 (1154) You are assigning a undefined to the state "alexa2.0.Echo-Devices.0026485aaf2447eb99c27f9e19e6909d.Player.volume" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions. 2022-04-29 20:31:26.547 - warn: javascript.0 (1154) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1530:20) 2022-04-29 20:31:26.548 - warn: javascript.0 (1154) at Object.<anonymous> (script.js.common.telefon_klingelt:19:3) 2022-04-29 20:31:26.548 - warn: javascript.0 (1154) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1167:38) 2022-04-29 20:31:26.549 - warn: javascript.0 (1154) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:586:29) 2022-04-29 20:31:26.549 - warn: javascript.0 (1154) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56) 2022-04-29 20:31:26.549 - warn: javascript.0 (1154) at processImmediate (node:internal/timers:466:21) 2022-04-29 20:31:41.848 - info: javascript.0 (1154) script.js.common.telefon_klingelt: Telefongespräch startet - Speichere die aktuelle Lautstärke 40 2022-04-29 20:31:51.253 - info: javascript.0 (1154) script.js.common.telefon_klingelt: Telefongespräch beendet - Erhöhe auf vorherige Lautstärke 40
zu diesem Blockly:
var lautstaerke_ueberall, timeout; on({id: new RegExp('tr-064\\.0\\.callmonitor\\.ringing' + "$|" + 'tr-064\\.0\\.callmonitor\\.outbound\\.timestamp' + "$"), change: "gt"}, async function (obj) { if (!timeout) { lautstaerke_ueberall = getState("alexa2.0.Echo-Devices.G2A0QU0574340BU1.Player.volume").val; console.log(('Telefongespräch startet - Speichere die aktuelle Lautstärke ' + String(lautstaerke_ueberall))); setState("alias.0.alexa_ueberall_gruppe.volume"/*volume*/, 10); timeout = setTimeout(async function () { timeout = null; }, 120000); } }); on({id: 'tr-064.0.calllists.all.count', change: "gt"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log(('Telefongespräch beendet - Erhöhe auf vorherige Lautstärke ' + String(lautstaerke_ueberall))); timeout = null; setState("alexa2.0.Echo-Devices.0026485aaf2447eb99c27f9e19e6909d.Player.volume"/*volume*/, lautstaerke_ueberall); });
Wo muss denn der Typ angepasst werden? Meine Schatzkarte für die Java-Piraten-Insel ist da etwas löchrig...
-
@thomas-braun sagte in Java ist eine Insel...:
script.js.common.telefon_klingelt:19:3
wenn ich das tichtig sehe ist das
@thomas-braun sagte in Java ist eine Insel...:
setState("alexa2.0.Echo-Devices.0026485aaf2447eb99c27f9e19e6909d.Player.volume"/volume/, lautstaerke_ueberall)
dann ist lautstärke überall nicht initialisiert
was hatte denn der debug ausgeworfen?
-
@homoran sagte in Java ist eine Insel...:
was hatte denn der debug ausgeworfen?
? Das Log ist vollständig, inkl. Debug-Meldungen.
-
@thomas-braun sagte in Java ist eine Insel...:
@homoran sagte in Java ist eine Insel...:
was hatte denn der debug ausgeworfen?
? Das Log ist vollständig, inkl. Debug-Meldungen.
hast du das Skript gestartet als du am telefonieten warst?
und dann das Telefonat beendet?dann konnte das Skript die bisherige Lautstärke nicht kennen. weil die noch nicht definiert war = undefined
mach mal oberhalb dercTrigger einenen setze lautstaerke-ueberall auf 40 block
-
@homoran
Das skript lungert die ganze Zeit rum. Was skripte halt so tun.
Ich hab das Gespräch beendet. -
@thomas-braun hab editiert
-
Hat sich erledigt. Hab die Datenpunkte aus dem tr-064 Adapter nochmal neueingelesen. Hat wohl nach einem Update der FritzLabor-Firmware irgendwie geklemmt.