Valeurs antérieures de Variables

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Cywin
Messages : 8
Inscription : 21 févr. 2019, 06:22

Valeurs antérieures de Variables

Message par Cywin »

Bonjour à tous,

J'aimerai savoir s'il est possible de récupérer (lire) les anciennes valeurs d'une variable dans domoticz (variable anterieure ou -2, -3...).
J'ai parfois l'impression de bricoler en creant des variables supplementaires pour comparer l'evolution d'une variable pour lancer une alerte...

J'ai par exemple une alerte envoyée sur mon bot telegram si le device texte MeteoFrance Vigilance change d'état. Ou une alerte lorsque mon ip change (merci Papoo) etc... Mais tout cela en passant par des variables intermediaires.
L'idée serait de pouvoir exploiter ces infos, si cela est possible (quantifier une donnée sur 24 heure, par exemple la luminosité Mi Flora etc...)

J'espère que cette question n'a pas déjà été posée.. J'ai cherché en vain!

Merci au moins pour la lecture, et bon scriptage à tous!!!

Stéphane.

Envoyé de mon Redmi Note 3 en utilisant Tapatalk

Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: Valeurs antérieures de Variables

Message par Chrominator »

Valeurs antérieures je ne sais pas.
Mais variable qui change, je sais.

Tu peux initialiser un script LUA nommé "script_variable_xxx.lua" qui sera déclenché à chaque fois qu'une variable change.
Dedans tu pourras tester si la variable qui t'intéresse a changé avec quelque chose du genre

Code : Tout sélectionner

if uservariablechanged["xxxx"] then ...
Peut-être que ceci t'aidera.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Cywin
Messages : 8
Inscription : 21 févr. 2019, 06:22

Re: Valeurs antérieures de Variables

Message par Cywin »

Merci beaucoup je vais creuser. Actuellement, quand une variable est mise à jour mais identique, elle est considérée comme changeante. D'ou la comparaison avec une valeur historique en passant par une seconde variable. Mais peut etre que la fonction que tu m'indique résoudra ce probleme, je ne devais pas utiliser la bonnne, je vais reviser mes fonctions!

Sinon, pour la moyenne sur une plage de donnée d'une variable, j'ai trouvé ça:

-- humidité moyenne function humMoy(device) local monthLog = assert(io.popen(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?range=month&sensor=temp&type=graph&idx='..otherdevices_idx[device]..'"')) local list = monthLog:read('*all') monthLog:close() local data = ReverseTable(json:decode(list).result) return(round(data[1].hu)) end

Donc on est capable a priori de revenir sur des valeurs historiques, mais en json. Jusque là je ne me suis attaqué qu'à du Lua... Doucement mais sûrement.. À suivre...

Envoyé de mon Redmi Note 3 en utilisant Tapatalk

ogulf
Messages : 445
Inscription : 15 juin 2017, 14:41

Re: Valeurs antérieures de Variables

Message par ogulf »

Pour voir comment fonctionne le JSON, essaye directement l'url dans un navigateur et tu verras !

Le principe est de récupérer une valeur retournée (.hu)

Sinon pour stocker l'ancienne "vraie" valeur d'une variable, tu peux utiliser le modules.lua de vil1driver (cf sa signature) et utiliser la fonction "devicechanged".
Domoticz Stable sur RPi3 + RFPlayer + ZWave+ + RFLink R48 :
- 11 x RF660P
- 1 x FGSD-002
- 10 x F007TH
- 5 x Emcoluxr EV1527 + 4 x NAS-DS01Z
- 4 x NAS-PD02Z
- 1 x Shelly 1PM
Tonio16
Messages : 349
Inscription : 13 oct. 2017, 17:00

Re: Valeurs antérieures de Variables

Message par Tonio16 »

ogulf a écrit : 06 mars 2019, 08:39 Sinon pour stocker l'ancienne "vraie" valeur d'une variable, tu peux utiliser le modules.lua de vil1driver (cf sa signature) et utiliser la fonction "devicechanged".
Et dans le cas d'un script python ? Est-ce qu'une variable interne au script est remise à "zéro" à la fin du script ?

Je vais bientôt me lancer dans un script modbus pour écrire depuis Domoticz vers ma VMC.
Autant la lecture me semble assez simple, autant l'écriture, je ne vois pas trop comment faire pour gérer proprement la chose.

Antoine
Domoticz V2020.2 sous raspbian-Buster
Raspberry Pi B+ avec Clé Zigate 3.1d Plugin 4.11.011
ogulf
Messages : 445
Inscription : 15 juin 2017, 14:41

Re: Valeurs antérieures de Variables

Message par ogulf »

Si tu veux gérer des variables qui perdurent au delà du script (que ce soit du Pyton, du shell ou autres), tu peux utiliser soit les variables d'environnement, soit les écrire dans un fichier de paramétrage (qu'il te faudra lire donc).
Domoticz Stable sur RPi3 + RFPlayer + ZWave+ + RFLink R48 :
- 11 x RF660P
- 1 x FGSD-002
- 10 x F007TH
- 5 x Emcoluxr EV1527 + 4 x NAS-DS01Z
- 4 x NAS-PD02Z
- 1 x Shelly 1PM
Répondre