Soucis avec #value# == "ON"

Bonjour,
avant hier je me suis aperçu que j’avais une info sur un module Sonoff qui restait toujours a 0.

Cette info est d’origine en type « autre »(ON-OFF), pour la passer en binaire, dans « configuration commande » je met : .#value# == « ON »

Ca fonctionnait tres bien depuis sa creation, jusqu’a ce que je m’en aperçois
Pour que ça refonctionne il a fallut que je la repasse en type " autre" et ensuite en type « binaire ».

Et aujourd’hui J’ai constaté que toutes mes commandes de ce type de mes autres modules c’est la meme chose .
Pouvez vous me dire si c’est normal ?
Sachant que j’ai fait une mise a jour du core dernièrement de 4.2.21 a 4.3.12 et de « JMQTT »

Merci

Bonjour,

Essai sans mettre d’espace peut-être ?

#value#=='ON'

Ok je vais essayer.
Mais ce qui est étrange, c’est que ça a toujours fonctionné comme ça et du jour au lendemain , plus de changement d’état sur aucun module. et que je passe de type « binaire » a « autre » et ensuite « binaire » ça refonctionne. Bizarre :thinking:

Normalement, d’après le code relevé par Bad : Changer le type de données - #9 par Bad

https://github.com/jeedom/core/blob/alpha/core/class/cmd.class.php#L927-L937

} elseif (in_array(strtolower($_value), array('on', 'true', 'high'))) { // Handle common string boolean values
	$binary = true;

Pour ‹ on ›, ‹ true › et ‹ high ›, Tu peux laisser « Formule de calcul » vide. Le core sait faire la transformation en binaire.

Hello,

Es-tu sûr de ce que publié le module ?
C’est pas « online » plutôt que « on » ?

1 « J'aime »

Ce ne sera de toute manière jamais une vrai info/binaire

Oui j’en suis sur .
je met « online » pour LWT
Et j’ai 24 Sonoff qui fonctionne comme ça avec lesquels je n’ais jamais eu de soucis.

1 « J'aime »

Ah bon ? Je peut laisser « Formule de calcul » vide.
Je vais essayer

Ah bah oui. :saluting_face:
Que je mette rien ou #value# == « ON » dans « formule de calcul » ça refonctionne, l’info change bien d’etat.

1 « J'aime »

Je me répète peut etre ,
mais c’est quand méme bizarre que toutes les commandes info de type « autre » que je passait en binaire en mettant #value# == « ON » on fonctionner comme ça depuis leurs creations ( des mois ) , et du jour au lendemain , plus aucun changement d’état. obliger de repasser en « autre » et ensuite « binaire » pour que ça refonctionne.
mais j’ai l’impression (pas sur) que c’est depuis que j’ai fait la mise a jour de jeedom 4.2.21 → 4.3.12
ou de JMQTT.

La réponse à #value# == 'ON' est vrai ou faux, c’est donc bien une vraie info/binaire…

1 « J'aime »

Je ne suis pas expert mais dans ma logique je suis d’accord avec toi. :pensive:

1 « J'aime »

SI vous êtes d’accord c’est :+1: MAIS ceci renverra une info binaire

#value# == 'ON' ? 1 : 0

Pour info, du binaire c’est 0/1 et pas vrai /faux :wink:

1 « J'aime »

Il ne suffit pas de le dire pour que cela soit vrai, il faut aussi argumenter.

Pourquoi, les langages de programmation utilisent-ils les mots true/false ?

Le problème de 0/1 si tu n’indiques pas dans quelle base tu travailles, on ne peut pas savoir si c’est un binaire.

C’est vrai pour des infos/autres.
C’est pour cette raison que sur shelly le /online est en info autre et renvoi du true/false
En passant la commande en VRAI binaire et en rebootant le module ça passe en 0/1.
Ai-je assez argumenté ?

Voici au cas ou vous auriez un doute .

Le terme binaire décrit un système de numération dans lequel seules deux valeurs sont possibles pour chaque chiffre : 0 et 1. Ce terme désigne aussi tout système de codage/décodage numérique dans lequel il n’existe que deux états possibles.

Donc pas de true/false, on/off ou autre. Binaire c’est binaire :wink:

notées par convention 0 et 1, ce qui ne veut pas dire que vrai et faux ou true et false ou tu es beau et tu n’es pas beau ne sont pas des réponses binaires.

@Jeandhom , je vais en rester là pour la paisibilité de community mais sachez que je travaille en hexa et en binaire 12H00 par jours pour le cryptage/décryptage satellite.
Je vais revoir mes cours de convention.

Bonne soirée et bien vite demain à 00H00 :gift: :tada: :balloon: :sparkles: :clock6: :tropical_drink: :champagne: :cake:

1 « J'aime »

Hello
J’ai le même pb pour mes détecteurs Ring. Cela fonctionnait très bien avec la template par défaut (autre de mémoire).
Cela a fonctionné des mois et soudainement le ON OFF n’état plus interprété comme binaire.
Pas d’idée de quand cela est arrivé.

1 « J'aime »

il ne faut pas confondre binaire et booleen.
Bien que ces 2 notions s’entremêlent, par abus de langage on les confond.

Binaire est avant tout une notion mathématique (base de calcul) en 0/1. Les autres bases les plus courantes étant décimale (0,1,2…,9; base10) et hexadécimal (0,1,2…,10,A…F; base16)

Booleen étant un type de variable logique a 2 états (on/off, haut/bas, noir/blanc et le plus souvent vrai/faux)

La frontière est tenue entre les 2 parce qu’en informatique pour calculer, manipuler ces comparaisons logiques on utilise le bit, donc le 0 et le 1 pour représenter les valeurs booléennes logique.
D’où la traduction homme/machine par convention des vrai/faux en 1/0. donc en binaire. du coup c’est logique :yum: non? :rofl:

1 « J'aime »

Je me range à ton avis et effectivement ici je parlais plus de booléen que de binaire, donc on a bien affaire à un faux binaire (si faux binaire veut bien dire quelque chose) mais à un booléen. Jeedom devra revoir le nom de son sous-type. :rofl: :joy: :smiley: :grin: