Hallo Community,
ich habe vor einiger Zeit für meine Loxone-Lichtsteuerung ein Skript gebastelt.
Dieses läuft eigentlich auch, aber manchmal "verrent" es sich und dann ist es ohne Funktion.
Hier dazu die Fehlermeldung im Log:
javascript.0 2020-11-23 20:21:32.702 warn (4564) at processImmediate (timers.js:658:5)
javascript.0 2020-11-23 20:21:32.701 warn (4564) at tryOnImmediate (timers.js:676:5)
javascript.0 2020-11-23 20:21:32.701 warn (4564) at runCallback (timers.js:705:18)
javascript.0 2020-11-23 20:21:32.701 warn (4564) at Immediate.setImmediate (C:\Program Files\iobroker\Smart\node_modules\iobroker.js-controller\lib\adapter.js:5384:37)
javascript.0 2020-11-23 20:21:32.701 warn (4564) at Object.stateChange (C:\Program Files\iobroker\Smart\node_modules\iobroker.javascript\main.js:472:25)
javascript.0 2020-11-23 20:21:32.700 warn (4564) at Object.callback (C:\Program Files\iobroker\Smart\node_modules\iobroker.javascript\lib\sandbox.js:1055:38)
javascript.0 2020-11-23 20:21:32.700 warn (4564) at Object.<anonymous> (script.js.Beleuchtung.Wohnzimmer.Decke_Wechsel:23:5)
javascript.0 2020-11-23 20:21:32.700 warn (4564) at setState (C:\Program Files\iobroker\Smart\node_modules\iobroker.javascript\lib\sandbox.js:1358:20)
javascript.0 2020-11-23 20:21:32.699 warn (4564) You are assigning a string to the state "loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods" which expects a array. Please fix your code to use a array or change the state type to string.
Ich habe das Skript sehr ähnlich noch in drei weiteren Varianten. Auch diese sind dann mit gleichem Ergebnis ohne Funktion. (also zur gleichen Zeit!)
Nun zur temporären Lösung:
Den Loxone-Adapter neu Starten. Dann geht es wieder
Ich habe das Skript in Blocky erstellt, aber zur Ansicht hier als Javascript:
var Liste;
on({id: "loxone.0.161b228d-0221-4deb-ffff374e0faf5b1f.active"/*I2: active*/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
setState("javascript.0.Licht_Wohnzimmer_Wechsel"/*Licht_Wohnzimmer_Wechsel*/, true);
});
on({id: "loxone.0.15f7f8f8-0354-8f27-ffff4473333fa291.active"/*Doppelklick: active*/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
setState("javascript.0.Licht_Wohnzimmer_Wechsel"/*Licht_Wohnzimmer_Wechsel*/, true);
});
on({id: "javascript.0.Licht_Wohnzimmer_Wechsel"/*Licht_Wohnzimmer_Wechsel*/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
Liste = ['Entspannen', 'TV', 'Party', 'Durchgang Abend', 'Durchgang', 'Aus'];
if (getState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods").val == 'Durchgang') {
setState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods"/*Wohnzimmer-Belruchtung: activeMoods*/, (Liste[0]));
} else if (getState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods").val == 'Entspannen') {
setState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods"/*Wohnzimmer-Belruchtung: activeMoods*/, (Liste[1]));
} else if (getState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods").val == 'TV') {
setState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods"/*Wohnzimmer-Belruchtung: activeMoods*/, (Liste[2]));
} else if (getState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods").val == 'Party') {
setState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods"/*Wohnzimmer-Belruchtung: activeMoods*/, (Liste[3]));
} else {
setState("loxone.0.12394f68-03bc-e827-ffff374e0faf5b1f.activeMoods"/*Wohnzimmer-Belruchtung: activeMoods*/, (Liste[4]));
}
setState("javascript.0.Licht_Wohnzimmer_Wechsel"/*Licht_Wohnzimmer_Wechsel*/, false);
});
Nun am ende noch die entscheidende Frage:
Hat jemand eine Idee und am besten auch eine Lösung?