Tient je vais vous exposer un cas. Sur une box passée en PHP8
A savoir que PHP8 n’accepte plus les String+Int ou String+Float
Donc « 123 »+456 → Provoque une erreur PHP.
Avec la mise à jour ZigbeeLinker d’hier, une erreur qui remonte et le client mqtt ne plante plus :
[2025-12-02 20:32:41][ERROR] [En test][Client MQTT Local] : ERROR dans MQTT_message,
topic=z2mMaison/Prise, payload={"child_lock":"UNLOCK","current":0.14,"device":{"applicationVersion":160,"dateCode":"20210625","friendlyName":"Prise","hardwareVersion":3,"ieeeAddr":"0x70b3d52b600143c5","manufactu,
message=Unsupported operand types: float + string,
trace=#0 /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php(90): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#1 /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php(90): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#2 /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php(90): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#3 /var/www/html/vendor/symfony/expression-language/ExpressionLanguage.php(81): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#4 /var/www/html/core/php/utils.inc.php(1172): Symfony\Component\ExpressionLanguage\ExpressionLanguage->evaluate()
#5 /var/www/html/core/class/jeedom.class.php(1413): evaluate()
#6 /var/www/html/plugins/virtual/core/class/virtual.class.php(553): jeedom::evaluateExpression()
#7 /var/www/html/core/class/cmd.class.php(1933): virtualCmd->execute()
#8 /var/www/html/plugins/zigbee2mqtt/core/class/zigbee2mqtt.class.php(2117): cmd->event()
#9 /var/www/html/plugins/zigbee2mqtt/core/class/zigbee2mqtt.class.php(2168): zigbee2mqtt->ZL_checkAndUpdateCmd()
#10 /var/www/html/plugins/zigbee2mqtt/core/class/zigbee2mqtt.class.php(2071): zigbee2mqtt->MQTT_ReceiveValues()
#11 /var/www/html/plugins/zigbee2mqtt/core/class/zigbee2mqtt.class.php(1805): zigbee2mqtt->MQTT_message()
#12 [internal function]: zigbee2mqtt::{closure:zigbee2mqtt::deamon_client():1803}()
#13 /var/www/html/plugins/zigbee2mqtt/core/class/zigbee2mqtt.class.php(1930): Mosquitto\Client->loop()
#14 /var/www/html/core/php/jeeCron.php(85): zigbee2mqtt::deamon_client()
#15 {main}
On voit l’erreur PHP : Unsupported operand types: float + string,
Ce qui est intéressant, c’est la ligne 7 : virtualCmd->execute()
Dans un virtuel, il était additionné la puissance de cet équipement « Prise » et la puissance d’un autre équipement qui était à rien, c’est à dire une chaine vide « »
Donc en gros, lors du changement de la puissance de la prise, cela provoque le recalcul de la commande info du virtuel, et bim, ça plante avec une erreur PHP.
Ce n’est pas forcément l’équipement ZigbeeLinker qui pose problème, mais le calcul associé à une commande de l’équipement ZigbeeLinker.
J’ai eu le même cas pour un équipement zwavejs et un scenario :
[03-Dec-2025 11:44:14 Europe/Brussels] PHP Fatal error: Uncaught TypeError: Unsupported operand types: int + string in /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php:142
Stack trace:
#0 /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php(90): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#1 /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php(90): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#2 /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php(90): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#3 /var/www/html/vendor/symfony/expression-language/ExpressionLanguage.php(81): Symfony\Component\ExpressionLanguage\Node\BinaryNode->evaluate()
#4 /var/www/html/core/php/utils.inc.php(1172): Symfony\Component\ExpressionLanguage\ExpressionLanguage->evaluate()
#5 /var/www/html/core/ajax/scenario.ajax.php(94): evaluate()
#6 {main}
thrown in /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php on line 142