Aide fonction lastChangeStateDuration

Bonjour,

Je souhaite connaître la durée depuis le dernier lancement de mon aspirateur robot (xiaomi S50 pilotée via le plugin Xiaomi Home), j’ai donc historisé la commande Statut (type info string) du robot et j’aimerais utiliser la fonction lastChangeStateDuration que j’ai écrite comme ça :

lastChangeStateDuration(#[Salon][Aspirateur][Statut]#,'En nettoyage') mais celle-ci me renvoi toujours -1

Par contre si j’utilise :stateDuration(#[Salon][Aspirateur][Statut]#) celle-ci me renvoi bien la valeur en seconde (j’ai donc le temps depuis le dernier changement de statut, en temps normal le dernier changement de statut étant le retour à la base avec le statut En charge) mais c’est donc pas tout à fait la valeur que je cherche à obtenir.

Ma question est donc est-ce une erreur de syntaxe de ma part ou est-ce que cette commande ne fonctionne pas avec une info de type string ?
Je précise que j’ai essayé avec des " ou des ’ et le résultat est le même

Merci d’avance

Salut,

L’historisation ne concerne que les commandes info binaires ou numériques.

Ça ne peut donc pas fonctionner avec une commande info/autre

C’est d’ailleurs bizarre que tu ai un retour avec stateDuration

Merci pour ton retour,

En effet c’est bizarre car sur la commande info j’ai bien trouvé l’option pour historiser et quand je clique dessus sur le dashboard je vois bien les différentes heures de lancement et retour en charge et le stateDuration fonctionne très bien…

Sinon que pourrai-tu me conseiller comme méthode plus classique pour récupérer le temps depuis le dernier lancement ?

Salut,

Oui la case historiser apparaît même sur les commandes info/autre.

Si tu cliques sur cette commande historisée il y a un graphe qui s’affiche? Avec quelles valeurs?

Je me demande si le retour d’état n’est pas numérique et convertit en texte par le plugin?!

Voilà le graph je l’ai lancé a peine 30 secondes hier (pas relancé depuis) juste pour avoir le changement d’état et faire les tests :

Tiens va falloir que je fasse des tests sur l’historisation des commandes info/autre :wink:

On voit bien que ça ne ressemble pas à un graphe habituel avec les crêtes et tout.

La comme ça j’ai pas trop d’idée je vais y réfléchir

Oui en effet pas trés parlant comme graphique :joy:

Je pourrais peut-être me baser sur le % de batterie à la limite mais pas top comme solution et ça m’obligerait certainement à passer par un virtuel alors qu’avec les fonctions tout se fait directement dans le scénario ce que je trouve pratique pour ne pas surcharger le système.

Bonjour,

Une solution serait de créer un scénario, avec comme déclencheur le statut, qui écrit une valeur numérique donnée dans une commande de virtuel selon la valeur du statut. Commande à historiser bien sûr :wink:
Une sorte de fonction de conversion si tu préfères de info vers numérique.

Merci, oui en effet ça pourrait fonctionner mais un peu compliqué au final pour un truc qui semble facile…
Je vais garder le stateduration qui fonctionne bien pour le coup même si c’est pas tout a fait l’info recherchée mais ça me convient