Bonjour,
J’ai une machine virtuelle D12 +J4.5 vers laquelle j’ai fait une sauvegarde et qui n’a jamais reçu de clé zwave.
J’utilise cette info dans un virtuel :
qui provoque une erreur de type string / int
Je suis étonné du int mais surtout la puissance ressort comme une chaine alors qu’elle est déclarée comme numérique
Si j’édite ce virtuel avec ce code, la sauvegarde ne se fait pas. Donc il y a un contrôle quelque part mais sans dire pourquoi.
la solution est donc :
J’ai bien lu auparavant le post cité.
Ce que je relève est différent.
Le virtuel utilise une données provenant du plugin zwavejs cette donnée est indiquée « numérique »
quand on met une sauvegarde en provenance de 4.4 cette donnée est traitée comme un string.
le seul moyen est de convertir cette donnée en float.
La donnée d’origine, le core sait que c’est du numérique et j’imagine ne devrait pas traiter comme du string dans le virtuel sachant qu’il n’y aucun traitement utilisateur entre les 2.
Pour info en 4.5 si la valeur est vide en numerique ca renverra 0 et en binaire false, a voir si ca reste car vide n’est pas 0 et false n’est pas vide non plus…
Je n’ai pas de conseil à donner je n’en ai pas les compétences, je relève juste le souci.
Cependant, pour ne pas avoir le souci, il faut mettre floatval(), ce qui est en train de se généraliser sur les posts qui traitent des scénarios/virtuel php8.
Mais effectivement si c’est utilisé pour une division ça n’arrange pas.
4.5 semble vérifier le virtuel qui provoque une erreur php8 puisqu’il n’y a pas de sauvegarde lors de l’édition (je ne peux plus sauvegarder en enlevant le floatval()) peut être faire une passe et prévenir lors du passage 4.4 debian11 → 4.5 debian 12 ?
C’est juste une suggestion.