Thermostat KO sur Jeedom 4.4.2?

Bonjour a tous ,

A priori j’ai deux petits soucis avec le Thermostat sur la version Jeedom 4.4.2

Tout d’abord, quand je crée le Thermostat, il n’apparait pas dans la liste, et quand je rafraichi la page, j’en ai 4 qui apparaissent avec le meme nom ? et sans message d’erreur

Capture d'écran 2024-03-15 103127

Capture d'écran 2024-03-15 103158

Ensuite, je supprime tous sauf un, et je le programme (comme je le fais d’habitude sur un autre Jeedom)

Au final il ne fonctionne pas et j’ai des messages dans les logs (je suis passé en mode DEBUG pour essayer d’avoir le plus d’info)

J’ai désintallé le plugin Thermostat et reinstallé , et meme résultat :frowning:

Merci pour vos retours

Bonjour,
Suite a la mise a jour as tu bien fait un ctrl + f5 ? As tu le meme soucis avec d’autre plugin (type alarme par exemple) ?

Bonjour Loic,

Oui j’ai fait un refresh de la page, surtout quand je n’ai pas vu apparaitre mon thermostat que je venais de créer
Et non, je n’ai pas d’autre souci avec le reste du fonctionnement, mais je n’utilise pas beaucoup de plugins

image

Merci

Je reproduis

image

et pas sur alarme.

Ok je vais creer une issue alors

Je reproduis pas avec plugin thermostat en stable et jeedom en alpha…

plugin en beta ou en stable j’ai le meme problème.

c’est pas de l’affichage, il crée 4 eqLogic

quand on a tapé le nom à la création on voit vite fait un petit glitch comme s’il faisait plusieurs fois qqch… (Firefox pour info, on sait jamais)

Ok sous chrome il y a le meme soucis, je viens de faire 10 tests et a chaque fois j’ai bien que un équipement.

ah il retry !

0002|[Fri Mar 15 11:12:15.913834 2024] [php:error] [pid 1934890] [client 192.168.1.50:43538] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1095\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1095): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1095
0003|[Fri Mar 15 11:12:16.054255 2024] [php:error] [pid 2836837] [client 192.168.1.50:50898] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1095\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1095): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1095
0004|[Fri Mar 15 11:12:16.209791 2024] [php:error] [pid 1270683] [client 192.168.1.50:50914] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1095\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1095): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1095
0005|[Fri Mar 15 11:12:16.365955 2024] [php:error] [pid 2818623] [client 192.168.1.50:50930] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1095\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1095): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1095
0006|[Fri Mar 15 11:48:45.558683 2024] [php:error] [pid 2818623] [client 192.168.1.50:54086] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0007|[Fri Mar 15 11:48:45.717392 2024] [php:error] [pid 2838433] [client 192.168.1.50:40776] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0008|[Fri Mar 15 11:48:45.868620 2024] [php:error] [pid 1685412] [client 192.168.1.50:40790] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0009|[Fri Mar 15 11:48:46.009246 2024] [php:error] [pid 1270683] [client 192.168.1.50:40802] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0010|[Fri Mar 15 11:51:49.994492 2024] [php:error] [pid 1685412] [client 192.168.1.50:46490] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0011|[Fri Mar 15 11:51:50.243752 2024] [php:error] [pid 1934890] [client 192.168.1.50:54524] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0012|[Fri Mar 15 11:51:50.460333 2024] [php:error] [pid 2810265] [client 192.168.1.50:54536] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0013|[Fri Mar 15 11:51:50.867492 2024] [php:error] [pid 2843685] [client 192.168.1.50:54542] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0014|[Fri Mar 15 11:53:44.294771 2024] [php:error] [pid 2843684] [client 192.168.1.50:51468] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0015|[Fri Mar 15 11:53:44.434491 2024] [php:error] [pid 2818623] [client 192.168.1.50:51472] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092
0016|[Fri Mar 15 11:53:44.621611 2024] [php:error] [pid 2844494] [client 192.168.1.50:51484] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1092\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1092): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1092

c’est le problème de byId qui renvoi un integer à la place d’une string comme signalé par @Phpvarious

EDIT : pas exactement après analyse, mais un problème de type quand meme… le changement de ligne j’étais en beta et je suis passé en stable pour le plugin

Hello,

Normalement c’est sur un Deb12 le soucis, en Deb10 ou 11 je n’avait pas constaté de soucis sur le typage.

oui je suis en Version PHP 8.2.7

Il faudrait peut-être utiliser !is_numeric() plutot que is_nan() pour ce cas précis du plugin.

j’ai testé et ça résoud l’erreur à la ligne 1092 mais il y en a une plus loin :

0026|[Fri Mar 15 13:47:05.097621 2024] [php:error] [pid 2860403] [client 192.168.1.50:39150] PHP Fatal error:  Uncaught TypeError: round(): Argument #1 ($num) must be of type int|float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1832\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1832): round()\n#1 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1093): thermostatCmd->execute()\n#2 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#3 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#4 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#5 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1832
0027|[Fri Mar 15 13:47:05.238892 2024] [php:error] [pid 1053] [client 192.168.1.50:42236] PHP Fatal error:  Uncaught TypeError: round(): Argument #1 ($num) must be of type int|float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1832\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1832): round()\n#1 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1093): thermostatCmd->execute()\n#2 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#3 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#4 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#5 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1832
0028|[Fri Mar 15 13:47:05.382085 2024] [php:error] [pid 1270683] [client 192.168.1.50:42250] PHP Fatal error:  Uncaught TypeError: round(): Argument #1 ($num) must be of type int|float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1832\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1832): round()\n#1 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1093): thermostatCmd->execute()\n#2 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#3 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#4 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#5 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1832
0029|[Fri Mar 15 13:47:05.530454 2024] [php:error] [pid 2860404] [client 192.168.1.50:42262] PHP Fatal error:  Uncaught TypeError: round(): Argument #1 ($num) must be of type int|float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1832\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1832): round()\n#1 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1093): thermostatCmd->execute()\n#2 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#3 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#4 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#5 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1832

peut-etre mettre une valeur par défaut ici…

puisque c’est à la création même de l’eqLogic donc encore aucune configuration

j’ai mis 0 et ça passe

mais on se retrouve ligne 1125 maintenant…

0030|[Fri Mar 15 13:50:11.131141 2024] [php:error] [pid 2860403] [client 192.168.1.50:36938] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1125\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1125): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1125
0031|[Fri Mar 15 13:50:11.274002 2024] [php:error] [pid 1685412] [client 192.168.1.50:46412] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1125\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1125): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1125
0032|[Fri Mar 15 13:50:11.426099 2024] [php:error] [pid 2860405] [client 192.168.1.50:46426] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1125\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1125): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1125
0033|[Fri Mar 15 13:50:11.566023 2024] [php:error] [pid 2838433] [client 192.168.1.50:46442] PHP Fatal error:  Uncaught TypeError: is_nan(): Argument #1 ($num) must be of type float, string given in /var/www/html/plugins/thermostat/core/class/thermostat.class.php:1125\nStack trace:\n#0 /var/www/html/plugins/thermostat/core/class/thermostat.class.php(1125): is_nan()\n#1 /var/www/html/core/class/DB.class.php(232): thermostat->postSave()\n#2 /var/www/html/core/class/eqLogic.class.php(1056): DB::save()\n#3 /var/www/html/core/ajax/eqLogic.ajax.php(493): eqLogic->save()\n#4 {main}\n  thrown in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 1125

Je pense que tu as pas fini :rofl:, c’est tout les typages qui vont poser problème.

un petit !is_numeric à la place de nan et maintenant la création passe !

peut-etre que dans le core, un execCmd sur une commande de type numeric devrait renvoyer un numeric …

je l’avais déjà signalé à l’époque avec homebridge, je me retrouvais avec des '' dans des numériques…

A mais c’est php8… C’est pour ca que je reproduis pas ok ben la avec les lignes d’erreur je vais pouvoir corriger.

Le soucis de ca c’est si la commande a pas de valeur…