[LUA] Script et accès base SQLite

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 <\>.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

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

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

Message 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
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
i9987popo
Messages : 10
Inscription : 24 oct. 2017, 14:18

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

Message 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.
ogulf
Messages : 445
Inscription : 15 juin 2017, 14:41

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

Message 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.
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