Virtuel transformation valeur

Bonjour,

j’ai besoin d’aide pour transformer une valeur que je récupère d’une commande jmqtt mais je reçois la valeur suivant {value: 62} que je ne peux utiliser en numérique dans le plugin virtuel.
Comment transformer la valeur : {value: 62} en 62 ?


bonne journée,

Bonjour,

Il ne manque pas un bout dans la valeur du virtuel ?

Sur l’équipement d’origine, cette info est identique ?

Bonsoir @brucbal, le nombre 62 varie ou il est toujours le même ? Par ce que dans ce cas, il faut dans un scénario affecter la valeur 62 à une variable avec {value: 62} comme trigger. Sinon, faire un bloc code dans un scénario, mais là çà dépasse mes compétences.

je ne pense pas qu’il manque un bout j’arrive a avoir un virtuel de base si je laisse le type d’info sur autre.
virtuel
oui il envoi cette info je veux la retravailler pour mettre un widget avec une jauge.


la Valeur varie de 20 a 100% suivant l’état de charge des batterie solaire.

Merci de ton aide,

Pour moi, votre commande a un problème, il ne devrait pas y avoir le mot value, mais juste 65.

Cela doit ce supprimer avec une petite commande PHP
Je suis sur mon smartphone, mais rechercher avec str_replace()

Merci de ta réponse cependant j’ai du mal avec les scenario code en php peux m’aider ? J’ai commencé avec Ça :

$cmd = cmd::byString("#[Aucun][Venus Gx][xxx:battery:512:Soc]#");
$value = $cmd->execCmd();
$scenario->setData("test_php", $value);

C’est faisable plus simplement directement dans le virtuel.

J’ai pas trouver d’info sur le net qu’elle commande maitre dans le virtuel ?

Je viens de tester, mes connaissances sont très limitées.
Ce que je vous proposait, ne fonctionne pas à cause des {}
C’est la fonction : str_replace('chercher','remplacer',{value:62})

Il n’y aurait pas eu les {}, cela fonctionnait par exemple : str_replace('value:','',value:62)

Je ne sais pas supprimer les {}
@olive : help me !

Bizarre cette valeur quand même… je ne connais pas Jmqtt mais je me demande si c’est bien normal d’obtenir ce genre de retour ? :thinking:

Quoi qu’il en soit, cette fonction devrait permettre de récupérer uniquement la valeur :

str_replace(['{value:', '}'], '', $value);
1 « J'aime »

La valeur 62 doit pouvoir être récupérée dans le plugin-jmqtt.
Essaye d’ajouter {value} à la fin de l’expression dans le champ Topic.

3 « J'aime »

Ou mettre cette commande je fais un scenario code ou dans le virtuel derrière mon équipement ?

@Salvialf ou mètre cette fonction ? je suis novice dans ce domaine.

Testez dans votre virtuel, sous cette forme :
str_replace(['{value:', '}'], '', #[ici][votre][equipement]#)

Mais, peut-être est-il préférable de suivre les indications de @Jeandhom

  • Bien que je n’ai pas non plus compris la réponse :wink:

S’il vous plait, détaillez vos réponses pour qu’elles puissent être comprises par tous.

Je rejoins @Fabrice, la réponse de @Jeandhom doit être plus adaptée car il connait le fonctionnement du plugin Jmqtt.

As-tu essayé ce qu’il te propose ?

Dans le plugin-jmqtt, si le Topic mon/topic donne comme valeur {"value":62} alors le Topic mon/topic{value} devrait donner la valeur 62.

1 « J'aime »

@Jeandhom le champ topic n’est pas accessible :


Quand je clique dessus:

On voit la valeur que j’ai sous la forme :

 {"value": 0}

Voici sous virtuel :


Avec la commande de @Fabrice le résultat et vide :

Il faut installer les deux PR de @naboleo

@Jeandhom dans le topic de la commande j’ai :

N/xxx/system/0/Dc/Pv/Power/topic{value}

J’ai aussi essayé avec ça :

N/xxx/system/0/Dc/Pv/Power{value}

Cela ne change rien a la valeur obtenue je suis tombé sur le forum où j’ai pu voir que cela marchait en V3 Interface Jeedom / Victron Venus via le plugin jMQTT - Page 5 - Forum Communauté Jeedom

Il faut, peut être, attendre que la valeur se mette à jour.