Alimenter une variable à partir d'un script [Résolu]

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 <\>.
f0emm
Messages : 64
Inscription : 23 déc. 2015, 20:52

Alimenter une variable à partir d'un script [Résolu]

Message par f0emm »

Bonsoir,
Le serveurs de ma Zibase devant fermer fin Mars, j'ai choisi la solution Domoticz + Rflink en remplacement.

Pour l'instant je me débrouille avec Blockly, mais là je pense qu'un script s'impose pour le calcule d'une durée à insérer dans une variable.
Cette durée sera le temps de fonctionnement de ma filtration de piscine soit :

la température de ma sonde de température IDX 19 divisée par 16

Ex : temp = 24°C

La filtration doit tourner 24/2= 12 heures par jour divisé sur 8 périodes soit 90 minutes par période.

Calcul : 24/16*60 = 90

90 étant à insérer dans la variable

Modification de la variable toutes les heures.

Et c'est là ou je bloque n'y connaissant rien en script.

Si une âme charitable passe par là et aurait un peu de son temps à me consacrer ;)
Bien évidement je vais étudier ce premier script afin de comprendre son fonctionnement et essayer de me débrouiller seul par la suite.
Je vous en remercie d'avance.
Bonne soirée.
A+
Fab
Dernière modification par f0emm le 22 janv. 2019, 23:33, modifié 1 fois.
fratton
Messages : 150
Inscription : 19 août 2015, 16:38

Re: Alimenter une variable à partir d'un script

Message par fratton »

En LUA :

Code : Tout sélectionner

commandArray['Variable:Nomdelavariable']=24/16*60
https://www.domoticz.com/wiki/User_variables#Lua
Raspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
f0emm
Messages : 64
Inscription : 23 déc. 2015, 20:52

Re: Alimenter une variable à partir d'un script

Message par f0emm »

Bonsoir,
Merci fratton
Je regarde le lien
24 étant la température
Et script à lancer toutes les heures
Bonne soirée
A+
Fab
f0emm
Messages : 64
Inscription : 23 déc. 2015, 20:52

Re: Alimenter une variable à partir d'un script

Message par f0emm »

:o
J'ai bien tout lu après traduction, je ne vois pas comment récupérer la température de ma sonde et actualiser la variable à intervalle régulier.
Je sèche !
fratton
Messages : 150
Inscription : 19 août 2015, 16:38

Re: Alimenter une variable à partir d'un script

Message par fratton »

pour récupérer la température, le calcul et la stocker dans la variable :

Code : Tout sélectionner

commandArray = {}
local matemperature = tonumber(string.format("%.1f", otherdevices_temperature['masonde']))

local moncalcul = matemperature /16*60

commandArray['Variable:MaVariable']=domoticz.round(moncalcul , 0)

return commandArray
Avec un LUA type time se sera toute les minutes.

Si tu veux toutes les 5 minutes il faut :

Code : Tout sélectionner

commandArray = {}
now=os.date("*t")
if now.min % 5 == 0 then  -- exécution toutes les 5 minutes

.....

end
return commandArray

Dernière modification par fratton le 22 janv. 2019, 22:33, modifié 1 fois.
Raspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
f0emm
Messages : 64
Inscription : 23 déc. 2015, 20:52

Re: Alimenter une variable à partir d'un script

Message par f0emm »

Merci !
En remplacement de 'masonde' et 'mavariable', je mets le nom ou l'IDX ?
Dans le cas ou je choisis l'intervalle d'actualisation, quel type de LUA dois je choisir ?
Merci.
fratton
Messages : 150
Inscription : 19 août 2015, 16:38

Re: Alimenter une variable à partir d'un script

Message par fratton »

1. Le nom de la sonde
2. toujours un type time
Raspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
f0emm
Messages : 64
Inscription : 23 déc. 2015, 20:52

Re: Alimenter une variable à partir d'un script

Message par f0emm »

Ok
Je me retrouve donc avec ça :

Code : Tout sélectionner

commandArray = {}
now=os.date("*t")
if now.min % 1 == 0 then  -- exécution toutes les minutes
    
local matemperature = tonumber(string.format("%.1f", otherdevices_temperature['Temp. local piscine']))

local moncalcul = matemperature /16*60

commandArray['Variable:Filtration']=domoticz.round(moncalcul , 0)

return commandArray
Exécution toutes les minutes pour essai.
La "valeur actuelle" dans la variable doit elle changer systématiquement ?
J'ai mis comme type de variable "Décimal"
Dans tous les cas un grand merci ;)
fratton
Messages : 150
Inscription : 19 août 2015, 16:38

Re: Alimenter une variable à partir d'un script

Message par fratton »

vérifie dans Log si il n'y a pas d'erreur
Raspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
f0emm
Messages : 64
Inscription : 23 déc. 2015, 20:52

Re: Alimenter une variable à partir d'un script

Message par f0emm »

Code : Tout sélectionner

 2019-01-22 22:27:00.413 Error: EventSystem: in Variable filtration: [string "commandArray = {}..."]:11: 'end' expected (to close 'if' at line 3) near <eof>
Effectivement il y a une erreur
Répondre