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
Valeurs antérieures de Variables
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Valeurs antérieures de Variables
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
Peut-être que ceci t'aidera.
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 ...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
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
Re: Valeurs antérieures de Variables
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
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
Re: Valeurs antérieures de Variables
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".
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
- 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
Re: Valeurs antérieures de Variables
Et dans le cas d'un script python ? Est-ce qu'une variable interne au script est remise à "zéro" à la fin du script ?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".
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
Raspberry Pi B+ avec Clé Zigate 3.1d Plugin 4.11.011
Re: Valeurs antérieures de Variables
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
- 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