demande de fonction "x-1"

Message
Auteur
moriss
Messages : 167
Inscription : ven. nov. 11, 2011 9:19 pm

demande de fonction "x-1"

#1 Message par moriss » lun. mai 13, 2013 8:59 pm

Bonjour
Je ne savais pas trop comment appelle cette fonction, je vais essayer d'expliquer un peu mieux

J'aimerai dans un soucis de statistiques avoir facilement accès aux donnés des jours, mois précédents

Les fonctions temps permettent de donner une période en minute pour définir une période (1440min pour 1jour)

Donc ma question : est il faisable de modifier cette fonction temps pour lui donner un intervalle entre 2 points

Exemple du wiki
( ( SumRomID( C0A8011E004TI;43200 ) * 0,1106 ) + ( SumRomID( C0A8011E005TI;43200 ) * 0,0673 ) ) / 1000
43200 : nombre de minutes en un mois
C0A8011E004TI : compteur heures pleines
C0A8011E005TI : compteur heures creuses
0,1106 : tarif KW/h Heures pleines
0,0673 : tarif KW/h Heures creuses

et du coup on pourrait avoir
( ( SumRomID( C0A8011E004TI;(X*43200)-(Y*43200) ) * 0,1106 ) + ( SumRomID( C0A8011E005TI;(X*43200)-(Y*43200) ) * 0,0673 ) ) / 1000

je m'explique
(X*43200)-(Y*43200)
les 2 parties permettent de choisir le mois à traiter
X=3 Y=2 je peux obtenir les stats du moins n-2

j'espere avoir été clair :shock: :roll:

a moins que ça soit déjà possible mais dans ce cas, j'ai rien pigé :lol:

Avatar de l’utilisateur
Serge67
Beta-Testeur
Messages : 153
Inscription : mar. janv. 18, 2011 5:38 pm
Localisation : Alsace, 35Km de Strasbourg
Contact :

Re: demande de fonction "x-1"

#2 Message par Serge67 » mer. mai 15, 2013 7:43 pm

Bonjour Moriss,

Il me semble que cela est déjà faisable avec les formules dispo, si j'ai bien compris ce que tu veux faire ;) .

Fait un essai avec cette formule: (((ValueRomID(C0A8006A003TI; (43200*2);1))-(ValueRomID(C0A8006A003TI; (43200*3);1)))*0.1106)+(((ValueRomID(C0A8006A004TI; (43200*2);1))-(ValueRomID(C0A8006A004TI; (43200*3);1)))*0.0673)

(43200*3) correspond à ton(X*43200)
(43200*2) correspond à ton(Y*43200)
Avec le temps en minute cela va te donner " les stats du mois n-2" avec un glissement des valeurs, en fonction de la date actuel.
Si tu souhaites par contre, le mois n-2 sans le glissement, cela risque de devenir plus compliqué mais à mon avis faisable également :)


Bonne soirée à tous

Serge

moriss
Messages : 167
Inscription : ven. nov. 11, 2011 9:19 pm

Re: demande de fonction "x-1"

#3 Message par moriss » mer. mai 15, 2013 10:06 pm

Salut
Merci de ta réponse.
Effectivement je n'avais pas pensé faire une simple soustraction

Je vais essayer, merci

moriss
Messages : 167
Inscription : ven. nov. 11, 2011 9:19 pm

Re: demande de fonction "x-1"

#4 Message par moriss » jeu. mai 16, 2013 9:59 am

Alors voici mon test :

en fait pour ne pas avoir des durées glissantes j'ai utilisé le même principe mais en utilisant le currentYear

en gros, je cherche la valeurs au mois x et mois x+1
je soustrais

et hop

Exemple pour Avril

Code : Tout sélectionner

(ValueRomID(C0A80062004TI;(CurrentYear(5));2) - ValueRomID(C0A80062004TI;(CurrentYear(4));2)) + (ValueRomID(C0A80062005TI;(CurrentYear(5));2)-ValueRomID(C0A80062005TI;(CurrentYear(4));2))

Avatar de l’utilisateur
Remy
Administrateur du site/Developpeur
Messages : 319
Inscription : lun. janv. 17, 2011 6:10 pm
Localisation : 40km est de Lyon
Contact :

Re: demande de fonction "x-1"

#5 Message par Remy » jeu. mai 16, 2013 12:17 pm

La fonction CurrentYear et autre Current..... permettent d'avoir des valeur cumulée sur la période (Année, mois, jour) en cours calée sur le début de la période (Année, mois, jour) mais qui ne glissent pas.
il te faudrait sur le mois précédant glissant ?
On pourrait se débrouiller comme déjà fait CurrentYear(5), on peut peaufiner avec CurrentYear(MonthOfYear()-1) pour avoir le mois précédant, un problème se posera pour le mois de Janvier.
Je peux faire une fonction du style MonthBefore(X) qui renvoie le nombre de minutes depuis le début du mois, X mois avant la date actuelle, en utilisant une combinaison MonthBefore(1) et MonthBefore(0) on a la période du mois précédant du début à la fin du mois, il me semble que c'est ce qu'il te fallait.
MonthBefore(0) étant équivalent CurrentMonth() ou CurrentYear(MonthOfYear())
mais MonthBefore(1) n'ayant pas d'équivalent d’où l’intérêt de cette fonction dans ton cas.

On peut étendre cette notion à DayBefore et YearBefore ...

J'ai bon ?

Rémy.

Avatar de l’utilisateur
Serge67
Beta-Testeur
Messages : 153
Inscription : mar. janv. 18, 2011 5:38 pm
Localisation : Alsace, 35Km de Strasbourg
Contact :

Re: demande de fonction "x-1"

#6 Message par Serge67 » jeu. mai 16, 2013 7:32 pm

J'avais pensé à faire un essai ce soir en imbriquant les trois fonctions (ValueRomID / CurrentYear /MonthOfYear) , mais je ne savais pas ci cela fonctionne.
Comme Rémy à répondu avant moi et a confirmé mes pensés, ;) cela doit fonctionner, sauf pour le début de l'année à laquelle je n'avais pas réfléchi!

Effectivement cela pourrait être intéressant d'avoir 3 fonctions supplémentaires ( DayBefore(X) / MonthBefore(X) / YearBefore(X)).

Bonne soirée

Serge

moriss
Messages : 167
Inscription : ven. nov. 11, 2011 9:19 pm

Re: demande de fonction "x-1"

#7 Message par moriss » jeu. mai 16, 2013 8:11 pm

En fait je cherche du non-glissant

Par contre j'avais même pas vu la fonction MonthOfYear, je vais essayer

Et effectivement, faut que je trouve pour Janvier

Par contre je vois pas trop le Periodebefore ...

Code : Tout sélectionner

ValueRomID(C0A80062004TI;((MonthOfYear()-1)*43200);20) - ValueRomID(C0A80062004TI;((MonthOfYear()*43200);20)) + ValueRomID(C0A80062005TI;((MonthOfYear()-1)*43200);20)-ValueRomID(C0A80062005TI;((MonthOfYear()*43200);20))
je trouve pas ça plus simple

Avatar de l’utilisateur
Serge67
Beta-Testeur
Messages : 153
Inscription : mar. janv. 18, 2011 5:38 pm
Localisation : Alsace, 35Km de Strasbourg
Contact :

Re: demande de fonction "x-1"

#8 Message par Serge67 » ven. mai 17, 2013 11:57 am

Effectivement cette formule est plus simple, mais pose également le problème en janvier :cry:

Par contre moriss tu m'as donné une idée ;) . Crée un tableau avec la consommation ou la production mois/mois sur une année.

Je me suis donc lancé dans la création de capteurs virtuels, me calculant la consommation d'électricité mois/mois, à l'aide de la formule suivante:
ZeroIfNeg((ValueRomID(C0A8006A003TI;(CurrentYear(7);20)) - (ValueRomID(C0A8006A003TI;(CurrentYear(6);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20)) - (ValueRomID(C0A8006A004TI;(CurrentYear(6);20))))) .

Cela fonctionne très bien jusqu'à la date actuel, mais me donne des résultats que je ne saisi pas à partir du mois de juin!!!!
( en théorie il n'a pas encore de valeurs??? à moins qu'il prenne les valeurs de l'année dernière?)

Le "ZeroIfNeg" je l'ai rajouté pour le mois en cours, car il me donnait une valeur négative!

Calcul conso par mois.png
Je rajoute également le résultat complet des calculs fait par LogisDom.
Rémy a surement l'explication ;) Attention c'est assez long :(

Calcul utilisé pour le mois d'avril

Formule utilisé: ZeroIfNeg((ValueRomID(C0A8006A003TI;(CurrentYear(5);20)) - (ValueRomID(C0A8006A003TI;(CurrentYear(4);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)) - (ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))

Résultat du calcul:

ZeroIfNeg((ValueRomID(C0A8006A003TI;(CurrentYear(5);20)) - (ValueRomID(C0A8006A003TI;(CurrentYear(4);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)) - (ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 5
Resultat fonction = 2.376200e+04
V0 = CurrentYear(5) = 2.376200e+04
Function done : ZeroIfNeg((ValueRomID(C0A8006A003TI;(V0;20))-(ValueRomID(C0A8006A003TI;(CurrentYear(4);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function :
Done : ZeroIfNeg((ValueRomID(C0A8006A003TI;V0;20)-(ValueRomID(C0A8006A003TI;(CurrentYear(4);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A003TI
P1 = V0
P2 = 20
Resultat fonction = 2.796649e+04
V1 = ValueRomID(C0A8006A003TI;V0;20) = 2.796649e+04
Function done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;(CurrentYear(4);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 4
Resultat fonction = 6.696200e+04
V2 = CurrentYear(4) = 6.696200e+04
Function done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;(V2;20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function :
Done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;V2;20)))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A003TI
P1 = V2
P2 = 20
Resultat fonction = 2.684234e+04
V3 = ValueRomID(C0A8006A003TI;V2;20) = 2.684234e+04
Function done : ZeroIfNeg((V1-(V3))+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Done : ZeroIfNeg((V1-V3)+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function :
Substract V1-V3
A = V1
B = V3
Substract done : V4
V4 = 1.124158e+03
Done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;(CurrentYear(5);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 5
Resultat fonction = 2.376200e+04
V5 = CurrentYear(5) = 2.376200e+04
Function done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;(V5;20))-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function :
Done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;V5;20)-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A004TI
P1 = V5
P2 = 20
Resultat fonction = 1.176075e+03
V6 = ValueRomID(C0A8006A004TI;V5;20) = 1.176075e+03
Function done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;(CurrentYear(4);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 4
Resultat fonction = 6.696200e+04
V7 = CurrentYear(4) = 6.696200e+04
Function done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;(V7;20)))))
Try function :
Done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;V7;20))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A004TI
P1 = V7
P2 = 20
Resultat fonction = 1.176075e+03
V8 = ValueRomID(C0A8006A004TI;V7;20) = 1.176075e+03
Function done : ZeroIfNeg(V4+(V6-(V8)))
Done : ZeroIfNeg(V4+(V6-V8))
Substract V6-V8
A = V6
B = V8
Substract done : V9
V9 = 0.000000e+00
Done : ZeroIfNeg(V4+V9)
Try function : ZeroIfNeg
Add V4+V9
A = V4
B = V9
Add done : V10
V10 = 1.124158e+03
Found 1 parameters
P0 = V10
Resultat fonction = 1.124158e+03
V11 = ZeroIfNeg(V10) = 1.124158e+03
Function done : V11
Résultat = 1.124158e+03
Aucune erreur detectée dans la formule
Donnée variables valides
Réslutat consistant
Connected devices :
- C0A8006A003TI Conso. heures normales
- C0A8006A004TI Cons. heures de pointes


Calcul utilisé pour le mois de Mai

Formule utilisé: ZeroIfNeg((ValueRomID(C0A8006A003TI;(CurrentYear(6);20)) - (ValueRomID(C0A8006A003TI;(CurrentYear(5);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)) - (ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))

Résultat du calcul:

ZeroIfNeg((ValueRomID(C0A8006A003TI;(CurrentYear(6);20)) - (ValueRomID(C0A8006A003TI;(CurrentYear(5);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)) - (ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))

Try function : CurrentYear
Found 1 parameters
P0 = 6
Resultat fonction = 5.047320e+05
V0 = CurrentYear(6) = 5.047320e+05
Function done : ZeroIfNeg((ValueRomID(C0A8006A003TI;(V0;20))-(ValueRomID(C0A8006A003TI;(CurrentYear(5);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function :
Done : ZeroIfNeg((ValueRomID(C0A8006A003TI;V0;20)-(ValueRomID(C0A8006A003TI;(CurrentYear(5);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A003TI
P1 = V0
P2 = 20
Resultat fonction = 1.832567e+04
V1 = ValueRomID(C0A8006A003TI;V0;20) = 1.832567e+04
Function done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;(CurrentYear(5);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 5
Resultat fonction = 2.377200e+04
V2 = CurrentYear(5) = 2.377200e+04
Function done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;(V2;20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function :
Done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;V2;20)))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A003TI
P1 = V2
P2 = 20
Resultat fonction = 2.796649e+04
V3 = ValueRomID(C0A8006A003TI;V2;20) = 2.796649e+04
Function done : ZeroIfNeg((V1-(V3))+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Done : ZeroIfNeg((V1-V3)+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function :
Substract V1-V3
A = V1
B = V3
Substract done : V4
V4 = -9.640823e+03
Done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;(CurrentYear(6);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 6
Resultat fonction = 5.047320e+05
V5 = CurrentYear(6) = 5.047320e+05
Function done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;(V5;20))-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function :
Done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;V5;20)-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A004TI
P1 = V5
P2 = 20
Resultat fonction = 7.711060e+02
V6 = ValueRomID(C0A8006A004TI;V5;20) = 7.711060e+02
Function done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;(CurrentYear(5);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 5
Resultat fonction = 2.377200e+04
V7 = CurrentYear(5) = 2.377200e+04
Function done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;(V7;20)))))
Try function :
Done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;V7;20))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A004TI
P1 = V7
P2 = 20
Resultat fonction = 1.176075e+03
V8 = ValueRomID(C0A8006A004TI;V7;20) = 1.176075e+03
Function done : ZeroIfNeg(V4+(V6-(V8)))
Done : ZeroIfNeg(V4+(V6-V8))
Substract V6-V8
A = V6
B = V8
Substract done : V9
V9 = -4.049690e+02
Done : ZeroIfNeg(V4+V9)
Try function : ZeroIfNeg
Add V4+V9
A = V4
B = V9
Add done : V10
V10 = -1.004579e+04
Found 1 parameters
P0 = V10
Resultat fonction = 0.000000e+00
V11 = ZeroIfNeg(V10) = 0.000000e+00
Function done : V11
Résultat = 0.000000e+00
Aucune erreur detectée dans la formule
Donnée variables valides
Réslutat consistant
Connected devices :
- C0A8006A003TI Conso. heures normales
- C0A8006A004TI Cons. heures de pointes



Calcul utilisé pour le mois de Juin

Formule utilisé:ZeroIfNeg((ValueRomID(C0A8006A003TI;(CurrentYear(7);20)) - (ValueRomID(C0A8006A003TI;(CurrentYear(6);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20)) - (ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))

Résultat du calcul:

ZeroIfNeg((ValueRomID(C0A8006A003TI;(CurrentYear(7);20)) - (ValueRomID(C0A8006A003TI;(CurrentYear(6);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20)) - (ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))

Try function : CurrentYear
Found 1 parameters
P0 = 7
Resultat fonction = 4.615340e+05
V0 = CurrentYear(7) = 4.615340e+05
Function done : ZeroIfNeg((ValueRomID(C0A8006A003TI;(V0;20))-(ValueRomID(C0A8006A003TI;(CurrentYear(6);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function :
Done : ZeroIfNeg((ValueRomID(C0A8006A003TI;V0;20)-(ValueRomID(C0A8006A003TI;(CurrentYear(6);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A003TI
P1 = V0
P2 = 20
Resultat fonction = 1.915744e+04
V1 = ValueRomID(C0A8006A003TI;V0;20) = 1.915744e+04
Function done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;(CurrentYear(6);20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 6
Resultat fonction = 5.047340e+05
V2 = CurrentYear(6) = 5.047340e+05
Function done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;(V2;20))))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function :
Done : ZeroIfNeg((V1-(ValueRomID(C0A8006A003TI;V2;20)))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A003TI
P1 = V2
P2 = 20
Resultat fonction = 1.832567e+04
V3 = ValueRomID(C0A8006A003TI;V2;20) = 1.832567e+04
Function done : ZeroIfNeg((V1-(V3))+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Done : ZeroIfNeg((V1-V3)+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function :
Substract V1-V3
A = V1
B = V3
Substract done : V4
V4 = 8.317700e+02
Done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;(CurrentYear(7);20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 7
Resultat fonction = 4.615340e+05
V5 = CurrentYear(7) = 4.615340e+05
Function done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;(V5;20))-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function :
Done : ZeroIfNeg(V4+(ValueRomID(C0A8006A004TI;V5;20)-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A004TI
P1 = V5
P2 = 20
Resultat fonction = 7.711060e+02
V6 = ValueRomID(C0A8006A004TI;V5;20) = 7.711060e+02
Function done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;(CurrentYear(6);20)))))
Try function : CurrentYear
Found 1 parameters
P0 = 6
Resultat fonction = 5.047340e+05
V7 = CurrentYear(6) = 5.047340e+05
Function done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;(V7;20)))))
Try function :
Done : ZeroIfNeg(V4+(V6-(ValueRomID(C0A8006A004TI;V7;20))))
Try function : ValueRomID
Found 3 parameters
P0 = C0A8006A004TI
P1 = V7
P2 = 20
Resultat fonction = 7.711060e+02
V8 = ValueRomID(C0A8006A004TI;V7;20) = 7.711060e+02
Function done : ZeroIfNeg(V4+(V6-(V8)))
Done : ZeroIfNeg(V4+(V6-V8))
Substract V6-V8
A = V6
B = V8
Substract done : V9
V9 = 0.000000e+00
Done : ZeroIfNeg(V4+V9)
Try function : ZeroIfNeg
Add V4+V9
A = V4
B = V9
Add done : V10
V10 = 8.317700e+02
Found 1 parameters
P0 = V10
Resultat fonction = 8.317700e+02
V11 = ZeroIfNeg(V10) = 8.317700e+02
Function done : V11
Résultat = 8.317700e+02
Aucune erreur detectée dans la formule
Donnée variables valides
Réslutat consistant
Connected devices :
- C0A8006A003TI Conso. heures normales
- C0A8006A004TI Cons. heures de pointes

Avatar de l’utilisateur
Remy
Administrateur du site/Developpeur
Messages : 319
Inscription : lun. janv. 17, 2011 6:10 pm
Localisation : 40km est de Lyon
Contact :

Re: demande de fonction "x-1"

#9 Message par Remy » ven. mai 17, 2013 12:45 pm

Ben oui, la fonction CurrentYear(6) renvoi le nombre de secondes pour le moi de juin precedant ... Donc 2012
Dans ton calcul du mois de Mai, tu fait en fait la diferrence entre Juin 2012 moins Mai 2013 donc c'est negatif.

Remy.

moriss
Messages : 167
Inscription : ven. nov. 11, 2011 9:19 pm

Re: demande de fonction "x-1"

#10 Message par moriss » ven. mai 17, 2013 12:59 pm

Bonjour Serge67

le but de mes questions étaient exactement cela
Obtenir les 12 derniers mois de conso elect (et prochainement de production solaire)
idem pour les 7 derniers jours

Actuellement c'est (pardon remy) le coté négatif de logisdom, dure de tirer facilement des stats sur un capteur
On est obligé de créer un capteur virtuel par calcul, exemple, on est obligé de créer 12 capteurs virtuels pour obtenir les conso elect des 12 derniers mois. Je me demande si l'on peut pas simplement créer une valeur texte qui afficherait le résultat d'un capteur du moment que l'on ne souhaite pas de calcul et/ou enregistrement périodique.

je donne un autre exemple : DJU
pour faire le DJU, il me faut :
- un capteur physique : t° ext
- un C virtuel : calcul de DJU par jour
- un C virutel : la somme par mois
- un C virtuel : la somme par an

alors que je voudrais :
- un capteur physique
- un capteur virtuel : DJU / jour
- des affichages de calcul de somme, par an, mois, période de chauffe, ....

Pour revenir au sujet,
je n'ai pas de problème pour le mois d'avril, pas tester pour mai, mais je ne comprends pas que tu es du négatif

ps : evite le vert :s

EDIT 2 : le maitre à répondu sur la période négative

Avatar de l’utilisateur
Serge67
Beta-Testeur
Messages : 153
Inscription : mar. janv. 18, 2011 5:38 pm
Localisation : Alsace, 35Km de Strasbourg
Contact :

Re: demande de fonction "x-1"

#11 Message par Serge67 » sam. mai 18, 2013 2:54 pm

Salut tout le monde,

Remy, c'est dommage que la fonction "CurrentYear()" ne tient pas compte, de l'année en cours seulement. Je pensais que si le mois n'est pas encore passé il renverrait un "0" ou une valeur bien précise. Mais bon je pense que tu l'as programmé de cette façon pour une bonne raison ;).

Morris,

Pour faire des stats il y a, à mon avis plus simple dans LogisDom. Il suffit de crée des tableaux avec des enregistrements selon le temps que tu souhaites et d'y mettre les capteurs souhaités.
Ensuite tu crées une importation automatisé à l'aide d'un tableur (exp, Excel) les fichiers .csv que LogisDom aura crée. A partir de là tu pourras retravailler les données et même faire des graphiques du genre:
Pac_abskWh.jpg
Il est vrai qu'il serait peut-être bien de pouvoir intégrer dans un onglet latéral de LogisDom les tableaux crées (actuellement seulement en visualisation). Peut-être dans une version future ;)
Chez moi, je crée des fichiers .csv, mais je ne les exploites pas, car après chaque plantage il me recrée un nouveau fichier :( Donc ils ne contiennent souvent qu'une ligne pour le mois et quelque lignes pour les enregistrements journalier!

Bon W.E.

Serge

moriss
Messages : 167
Inscription : ven. nov. 11, 2011 9:19 pm

Re: demande de fonction "x-1"

#12 Message par moriss » sam. mai 18, 2013 4:29 pm

Salut Serge, Remy

Justement je souhaiterai créer ce genre de tableau, graphique directement dans logisdom pour tout rendre dispo et consultable

Avatar de l’utilisateur
Remy
Administrateur du site/Developpeur
Messages : 319
Inscription : lun. janv. 17, 2011 6:10 pm
Localisation : 40km est de Lyon
Contact :

Re: demande de fonction "x-1"

#13 Message par Remy » dim. mai 19, 2013 12:49 pm

J'ai programmé "CurrentYear()" pour pouvoir faire des statistiques sur une année courante en temps réel, donc si on demande le mois de Juin alors que l'on est en Mai, c'est le mois de Juin de l'année précédente qui doit être pris en compte. Cette spécificité est en effet voulue. Mais si il y a besoin de faire autrement, pas de soucis, est-ce que les fonctions du type MonthBefore te conviendraient ?

Avatar de l’utilisateur
Remy
Administrateur du site/Developpeur
Messages : 319
Inscription : lun. janv. 17, 2011 6:10 pm
Localisation : 40km est de Lyon
Contact :

Re: demande de fonction "x-1"

#14 Message par Remy » lun. mai 20, 2013 8:52 am

après la remarque de Serge sur les fichier csv, j'ai repris le code des tableaux pour simplifier la gestion des fichier csv, LogisDom ne fait maintenant que du append dans les fichier csv, c'est a dire qu'en cas de plantage, le fichier ne repartira plus a zéro.

Pour la disponibilité des tableaux en ligne, pas de soucis pour le faire, le problème principal est la gestion de la mise en page ... un tableau se rempli au fur et a mesure, dépassant souvent la dimension d'une page ... quelle est la meilleurs stratégie pour que ce soit visualisable correctement ?
Rémy.

moriss
Messages : 167
Inscription : ven. nov. 11, 2011 9:19 pm

Re: demande de fonction "x-1"

#15 Message par moriss » lun. mai 20, 2013 9:52 am

Personnelement je ne saurai trop répondre, je n'utilise pas encore les tableaux

Répondre