[comment]: # attributes: notoc

[comment]: # ({ee75c9cc-2e2a1a06})
# 8 Fonctions prédictives

Toutes les fonctions répertoriées ici sont prises en charge dans :

-   [Expressions de déclencheur](/manual/config/triggers/expression)
-   [Éléments calculés](/manual/config/items/itemtypes/calculated)
-   [Macros d'expression](/manual/config/macros/expression_macros)

Les fonctions sont répertoriées sans information supplémentaire. Cliquez sur la fonction pour voir les détails complets.

|Function|Description|
|--|--------|
|[forecast](#forecast)|La valeur future, le maximum, le minimum, le delta ou la moyenne de l'élément.|
|[timeleft](#timeleft)|Le temps, en secondes, nécessaire à un élément pour atteindre le seuil spécifié.|

[comment]: # ({/ee75c9cc-2e2a1a06})

[comment]: # ({645b8a56-4d343eb8})
##### Paramètres communs

-   `/host/key` est un premier paramètre obligatoire commun pour les fonctions
    faisant référence à l'historique de l'élément de l'hôte
-   `(sec|#num)<:time shift>` est un deuxième paramètre commun pour les
    fonctions faisant référence à l'historique de l'élément de l'hôte, où :
    -   **sec** - période maximale d'[évaluation](/manual/config/triggers#evaluation-period) en secondes
        (des [suffixes](/manual/appendix/suffixes) de temps peuvent être utilisés), ou
    -   **#num** - plage maximale d'[évaluation](/manual/config/triggers#evaluation-period) dans les dernières
        valeurs collectées (si précédé d'un dièse)
    -   **time shift** (facultatif) permet de déplacer le point d'évaluation
        dans le passé. Voir [plus de
        détails](/manual/config/triggers/expression#time-shift) sur la
        spécification du décalage temporel.

[comment]: # ({/645b8a56-4d343eb8})

[comment]: # ({c645f0e4-f3b63bc1})
### Détails des fonctions

Quelques remarques générales sur les paramètres des fonctions :

-   Les paramètres des fonctions sont séparés par une virgule
-   Les paramètres de fonction facultatifs (ou parties de paramètres) sont indiqués par
    `<` `>`
-   Les paramètres spécifiques à chaque fonction sont décrits avec chaque fonction
-   Les paramètres `/host/key` et `(sec|#num)<:time shift>` ne doivent jamais être
    entre guillemets

[comment]: # ({/c645f0e4-f3b63bc1})

[comment]: # ({8a873b31-e4452b37})
##### forecast(/host/key,(sec|#num)<:time shift>,time,<fit>,<mode>) {#forecast}

La valeur future, maximale, minimale, delta ou moyenne de l’élément.<br>
Types de valeurs pris en charge : *Float*, *Integer*.

Paramètres : 

-   Voir [paramètres communs](#common-parameters);<br>
-   **time** - l’horizon de prévision en secondes (les suffixes temporels peuvent être utilisés) ; les valeurs négatives sont prises en charge ;<br>
-   **fit** (facultatif ; doit être entre guillemets doubles) - la fonction utilisée pour ajuster les données historiques. Ajustements pris en charge :<br>*linear* - fonction linéaire (par défaut)<br>*polynomialN* - polynôme de degré N (1 <= N <= 6)<br>*exponential* - fonction exponentielle<br>*logarithmic* - fonction logarithmique<br>*power* - fonction puissance<br>Notez que *polynomial1* est équivalent à *linear* ;
-   **mode** (facultatif ; doit être entre guillemets doubles) - la sortie demandée. Modes pris en charge :<br>*value* - valeur (par défaut)<br>*max* - maximum<br>*min* - minimum<br>*delta* - *max*-*min*<br>*avg* - moyenne<br>Notez que *value* estime la valeur de l’élément à l’instant `now` + `time` ; *max*, *min*, *delta* et *avg* examinent l’estimation de la valeur de l’élément sur l’intervalle entre `now` et `now` + `time`.

Commentaires :

-   Si la valeur à renvoyer est supérieure à 1.7976931348623158E+308 ou inférieure à -1.7976931348623158E+308, la valeur de retour est ramenée respectivement à 1.7976931348623158E+308 ou -1.7976931348623158E+308 ;
-   Devient non pris en charge uniquement s’il est mal utilisé dans l’expression (mauvais type d’élément, paramètres invalides), sinon renvoie -1 en cas d’erreurs ;
-   Voir également des informations supplémentaires sur les [fonctions prédictives de déclencheur](/manual/config/triggers/prediction).

Exemples :

    forecast(/host/key,#10,1h) #prévoit la valeur de l’élément dans une heure sur la base des 10 dernières valeurs
    forecast(/host/key,1h,30m) #prévoit la valeur de l’élément dans 30 minutes sur la base des données de la dernière heure
    forecast(/host/key,1h:now-1d,12h) #prévoit la valeur de l’élément dans 12 heures sur la base d’une heure de données datant d’il y a un jour
    forecast(/host/key,1h,10m,"exponential") #prévoit la valeur de l’élément dans 10 minutes sur la base des données de la dernière heure et d’une fonction exponentielle
    forecast(/host/key,1h,2h,"polynomial3","max") #prévoit la valeur maximale que l’élément peut atteindre dans les deux prochaines heures sur la base des données de la dernière heure et d’un polynôme cubique (de troisième degré)
    forecast(/host/key,#2,-20m) #estime la valeur de l’élément il y a 20 minutes sur la base des deux dernières valeurs (cela peut être plus précis que l’utilisation de last(), en particulier si l’élément est mis à jour rarement, par exemple une fois par heure)

[comment]: # ({/8a873b31-e4452b37})

[comment]: # ({834aceba-9b065620})
##### timeleft(/host/key,(sec|#num)<:time shift>,threshold,<fit>) {#timeleft}

Le temps en secondes nécessaire pour qu’un élément de données atteigne le seuil spécifié.<br>
Types de valeurs pris en charge : *Float*, *Integer*.

Paramètres : 

-   Voir les [paramètres communs](#common-parameters) ;<br>
-   **threshold** - la valeur à atteindre (les [suffixes d’unité](/manual/appendix/suffixes) peuvent être utilisés) ;
-   **fit** (facultatif ; doit être entre guillemets doubles) - voir [forecast()](#forecast).

Commentaires :

-   Si la valeur à renvoyer est supérieure à 1.7976931348623158E+308, la valeur renvoyée est ramenée à 1.7976931348623158E+308 ;
-   Renvoie 1.7976931348623158E+308 si le seuil ne peut pas être atteint ;
-   Devient non pris en charge uniquement en cas d’utilisation incorrecte dans l’expression (type d’élément de données incorrect, paramètres invalides), sinon renvoie -1 en cas d’erreurs ;
-   Voir également les informations supplémentaires sur les [fonctions de déclencheur prédictives](/manual/config/triggers/prediction).

Exemples :

    timeleft(/host/key,#10,0) #le temps jusqu’à ce que la valeur de l’élément de données atteigne zéro sur la base des 10 dernières valeurs
    timeleft(/host/key,1h,100) #le temps jusqu’à ce que la valeur de l’élément de données atteigne 100 sur la base des données de la dernière heure
    timeleft(/host/key,1h:now-1d,100) #le temps jusqu’à ce que la valeur de l’élément de données atteigne 100 sur la base d’une heure de données il y a un jour
    timeleft(/host/key,1h,200,"polynomial2") #le temps jusqu’à ce que la valeur de l’élément de données atteigne 200 sur la base des données de la dernière heure et de l’hypothèse que l’élément se comporte comme un polynôme quadratique (du second degré)

[comment]: # ({/834aceba-9b065620})

[comment]: # ({ba59dd3a-9958c480})
Voir [toutes les fonctions prises en charge](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-9958c480})

