Page 2 sur 2

Re: [LUA] Script et accès base SQLite

Publié : 24 oct. 2017, 20:28
par vil1driver
lost a écrit : On s'est mal compris en fait: Je parlais d'une déclaration d'un type de variable statique (au sens de ce qui existe pour une fonction écrite en C), déclarée ainsi dans le source Lua qui l'utilise et sans dépendance à une une déclaration externe dans le clicodrome de Domoticz... avec ses limites (devoir la déclarer en dehors de son source, limité à du texte...).
Désolé, j'ai peur de ne pas mieux comprendre :|

Ce genre ?

Code : Tout sélectionner

local var = 2

Re: [LUA] Script et accès base SQLite

Publié : 24 oct. 2017, 20:55
par Chrominator
Sans vouloir faire trop de sémantique, l'équivalent d'une variable statique en C serait plutôt une variable globale en LUA.

Code : Tout sélectionner

var = 2

Re: [LUA] Script et accès base SQLite

Publié : 30 oct. 2017, 20:53
par i9987popo
Ah merci beaucoup cela devrait peut-être m'aider.
A tout hasard, je suis sinon a la recherche d'un script de régulation temporelle en Php éventuellement. Cela me permettra de piloter mon poele a granules.
Merci.

Re: [LUA] Script et accès base SQLite

Publié : 03 nov. 2017, 17:39
par ogulf
Pour accéder à l'historique des températures, tu peux faire comme cela :
- créer une fonction qui récupère l'historique d'un thermomètre en paramètre
- appeler la fonction avec ton device
- exploiter le résultat

Code : Tout sélectionner

function jsonHistory(device)
        local idx = assert(io.popen(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=graph&sensor=temp&idx='..otherdevices_idx[device]..'&range=day"'))
        local list = idx:read('*all')
        idx:close()
        return json:decode(list).result
end
puis plus bas dans ton script

Code : Tout sélectionner

local history = jsonHistory(MonDeviceTemp)
et enfin tester les valeurs que tu souhaites cibler :

Code : Tout sélectionner

history[#history].te = le dernier
history[#history-1].te = le dernier - 5 minutes
history[#history-2].te = le dernier - 10 minutes
etc.