Problème dans le scénario conversion ceil():

Bonjour à tous,

Après quelques recherche, je n’ai pas trouvé de solution, donc je tente ma chance ici.

J’ai passé mon environnement Jeedom de mon Raspberry à une VM.

Voici ma config actuelle (je suis passé sur Débian 12 et PHP 8).

Et dans mes scénario, j’ai maintenant cette erreur: ceil(): Argument #1 ($num) must be of type int|float, string given

J’ai tenté plusieurs chose: (float) devant ma variable , floatval(), … mais je n’arrive pas à trouver une solution. Avez-vous la solution ?

D’avance merci,

Bonne journée,

Guillaume

Bonjour,

Avec les quelques lignes de codes de ton scénario on aurait plus de chances de voir ce que tu as fait.

Dans l’idée, en principe, forcer le type de la variable devrait marcher oui …

....
$b = (int) 1+$a;
$c = ceil($b);
...

Salut

D’où vient la valeur utilisée par le scénario ? C’est là qu’il faudrait résoudre le souci.

Antoine

Effectivement, désolé pour l’oubli, voici un cas d’usage:

Et voici l’erreur:
*****Exécution du sous-élément de type [condition] : in (float)((float)strtotime(date("Y-m-d H*s", mktime(7, 00, 0, #mois#, #jour#, #annee#)))- (float)#timestamp#) /60 [2025-04-14 06:48:26][SCENARIO] Evaluation de la condition : [(float)((float)1744606800- (float)1744606106) /60] = (float)((float)1744606800- (float)1744606106) /60 [2025-04-14 06:48:26][SCENARIO] ceil(): Argument #1 ($num) must be of type int|float, string given******

Salut,

Alors désolé je ne sais pas résoudre ton souci.
Mais pourquoi ce calcul aussi capilotracté ? Pourquoi en pas utiliser un bloc A plutot qu’un bloc DANS ? :neutral_face:

3 « J'aime »

Hahha Bien vu Aurel, effectivement la solution du bloc A m’évite de perdre des cheveux ! Merci beaucoup!
Par contre ca ne résous pas le problème de transformation d’un string en int/float

Le problème c’est que ton calcul arrivait à un nombre qui n’est pas entier. Il faut donc l’arrondir (avec round par exemple).

Le second problème c’est que Jeedom ne s’en sort pas bien quand on lui demande trop de chose sur une ligne et ça peut conduire à un résultat farfelu, il faut donc décomposer un peu.

un tag a pour le calcul qui arrive à un nombre non entier
un tag b pour arrondir ce nombre à virgule afin qu’il soit entier
et on fourni finalement ce dernier à la fonction Dans

1 « J'aime »

Ok Merci beaucoup pour ton retour ! Je comprends mieux comment fonctionne Jeedom.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.