@pierre-gilles
Je vais t’embêter une nouvelle fois car je rencontre depuis la MAJ un problème sur des scripts qui utilisent des méthodes peu orthodoxes.
Voici un exemple de script :
var now1 = new Date();
gladys.param.setValue({ name: “DernDetSDB”, value: now1 });setTimeout(function(){
gladys.deviceType.getById({ id: 70}).then((doucheEnCours) => {
var now = new Date();
var Det = gladys.param.getValue(“DernDetSDB”);
var DD = Det.value();
var eteindreApres = new Date(DD.getFullYear(), DD.getMonth(), DD.getDate(), DD.getHours(), DD.getMinutes(), DD.getSeconds()+55);
if (eteindreApres < now && doucheEnCours.lastValue === 0) gladys.script.exec({id: 44});
});
}, 6000);
C’est un script modifié pour le débug, qui allume un devicetype et l’éteint au bout de 60 secondes, sauf si il est lancé à nouveau entre temps.
Je rencontre un problème depuis la MAJ de gladys sur les lignes suivantes
var Det = gladys.param.getValue("DernDetSDB"); var DD = Det.value();
L’erreur obtenue est
Summary
0|gladys | Unhandled rejection TypeError: cannot get fulfillment value of a non-fulfilled promise
0|gladys | See http://goo.gl/MqrFmX
0|gladys | at PromiseInspection.value (/home/pi/gladys/node_modules/bluebird/js/release/synchronous_inspection.js:22:15)
0|gladys | at Promise.value (/home/pi/gladys/node_modules/bluebird/js/release/synchronous_inspection.js:84:18)
0|gladys | at gladys.deviceType.getById.then (evalmachine.:13:21)
0|gladys | at tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys | at Promise._settlePromiseFromHandler (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:512:31)
0|gladys | at Promise._settlePromise (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:569:18)
0|gladys | at Promise._settlePromise0 (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:614:10)
0|gladys | at Promise._settlePromises (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:693:18)
0|gladys | at Async._drainQueue (/home/pi/gladys/node_modules/bluebird/js/release/async.js:133:16)
0|gladys | at Async._drainQueues (/home/pi/gladys/node_modules/bluebird/js/release/async.js:143:10)
0|gladys | at Immediate.Async.drainQueues (/home/pi/gladys/node_modules/bluebird/js/release/async.js:17:14)
0|gladys | at Immediate.args.(anonymous function) (/usr/lib/node_modules/pm2/node_modules/event-loop-inspector/index.js:138:29)
0|gladys | at runCallback (timers.js:810:20)
0|gladys | at tryOnImmediate (timers.js:768:5)
0|gladys | at processImmediate [as _immediateCallback] (timers.js:745:5)
Y a t il eu des modifications qui bloquent l’utilisation que je fais ici ?
J’ai remarqué que si je supprime les () pour avoir seulement var DD = Det.value;
je n’ai plus cette erreur. En revanche, impossible d’utiliser mes scripts, je n’arrive pas a relire mes variables “globales maison” car une fois les guillemets supprimés, quand je fais
var Det = gladys.param.getValue(“DernDetSDB”);
var DD = Det.value;
console.log(DD);
J’ai dans la console[Function]
et pas mon objet date
Il me semble que Gladys a aussi planté et donc redémarré plusieurs fois quand j’ai causé ces erreurs a la chaine, quand j’étais devant un detecteur.
Merci d’avance