La ligne qui pose problème est assez claire (ligne #11 ou #12 dans les stacktraces):
cmd::byId($cmdId)->event($data);
D’ailleurs, j’ai toujours la stacktrace dans mes logs si je ne garde que cette ligne dans le try-catch et si je met directement le floatval dans l’appel (ou intval d’ailleurs).
try {
cmd::byId($cmdId)->event(floatval($data));
} catch (TypeError $te) {
$scenario->setLog("Error saving data: $te");
}
Par contre, je crois que j’ai trouvé mon problème. En regardant de plus près les stacktraces, je vois apparaître virtual.class.php. Quand je désactive les objects virtuels qui dépendent des valeurs mises à jour, je n’ai plus de problème. Moi qui pensait que les objets virtuels n’étaient mis à jour que sur base d’une expression cron, il semble que je me sois trompé.