Thermostat KO sur Jeedom 4.4.2?

alors il faut renvoyer null et tester null partout plutot que is_nan

Ou vérifier avant si pas de valeur en 1er :

if ($temperature->execCmd() == '' || is_nan($temperature->execCmd())) {

is_nan c’est pour les divisions par zero ou les résultats mathématiques impossibles, donc pas indiqué ici

NAN est retourné par les opérations mathématiques qui ne sont pas définies, par exemple lors du passage de paramètres en dehors du domaine d’entrée de la fonction. La racine carrée (sqrt()) n’est définie que pour les nombres positifs, le passage d’un nombre négatif résultera en un NAN. D’autres exemples d’opérations renvoyant NAN sont la division de INF par INF et toute opération impliquant une valeur NAN existante.

il faut le remplacer comme @Phpvarious le disait par !is_numeric qui a plus de sens, et dans tous les plugins !!! j’ai 12 occurences code sur le github de jeedom !

Effectivement is_nan ne semble pas adapté, j’ai pensé a tort quelle ce comportait comme la fonction js.

plutot comme Number.isNaN() en javascript

dans le plugin docker2 par exemple, elle a du sens !

image

1 « J'aime »

j’ai fixé le plugin thermostat en beta + openvpn en beta.

@loic je fais le tour du core ou tu t’en charges ?

Je peux me faire mais pas sur d’avoir tout compris, si je resume :

  • forcer le typage de tous les getId en int
  • si commande de type numérique renvoyer soit null soit la valeur en int lors du execCmd ?

non juste revoir les is_nan en !is_numeric, je suis en train de faire un PR

pour les getId c’est un autre problème, car il faudrait aussi mettre à jour toutes les foreign keys…
le second c’est breaking change dans certain cas, donc faut voir…

voilà

Top merci c’est corrigé. Pour les getId faut je vois l’impact mais pour moi il devrait pas etre aussi gros que ca, car en vrai ya pas de typage dans une requete sql sur les int donc ca devrait pas poser de soucis.

Autre soucis que j’ai remarqué (je suis sur un thermostat vierge)

Erreur sur thermostat::pull() : Unsupported operand types: string - int

Il n’y a pas de défaut sur getCache()

Je viens de pousser la correction ca sera bon dans la beta de demain, merci pour le retour.

1 « J'aime »

Idem ici :

$consigne renvoi une chaine vide donc
Erreur sur thermostat::pull() : Unsupported operand types: string - int

Ca c’est plus compliqué car c’est un changement dans le core a faire, sauf que la on est en freeze donc je pourrais pas faire passer un changement aussi lourd. Il va falloir attendre le 19 avril de mémoire pour que je puisse corriger.

Ah donc y’a une date pour la 4.4 :slight_smile:

3 « J'aime »

Une fenêtre en tout cas pour le moment mais rien de sûr ça va dépendre du retour sur les tests en cours

Il faut que je passe en BETA du coup ?

Merci en tout cas. Super interactifs l’equipe ! :slight_smile:

Les modifications sont disponible sur le plugin en version béta, mais attention c’est pas pour autant que tu n’auras pas d’autres erreurs.

Techniquement, la version en prérequis pour le core V4.4 est Debian 11 “Bullseye”

1 « J'aime »