Vider le log d'un dispositif TEXT

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
e111111
Messages : 225
Inscription : 11 déc. 2018, 19:44

Vider le log d'un dispositif TEXT

Message par e111111 »

Bonjour,
j'ai un dispositif TEXT qui enregistre des strings suivant les situations entre toutes les 5mn et tous les 1/4 d'heure.
Ce dispositif génère donc une énorme quantité de logs, qui ne me sont pas utiles passé un certain temps.
Comment vider les logs de ce dispositif et uniquement celui là automatiquement à l'aide d'un script ?

Merci d'avance pour votre aide.
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
e111111
Messages : 225
Inscription : 11 déc. 2018, 19:44

Re: Vider le log d'un dispositif TEXT

Message par e111111 »

Bon,
après pas mal de galères j'ai fini par trouver, reste plus qu'à exécuter le script tous les X jours ...

Je mets le script ici, si ça peut servir à quelqu'un :

Code : Tout sélectionner

commandArray = {}

curl = '/usr/bin/curl ' 
json = (loadfile "/volume1/@appstore/domoticz/var/scripts/lua/JSON.lua")()

domoticzIP = '192.168.1.44'
domoticzPORT = '8084'
domoticzURL = 'http://'..domoticzIP..':'..domoticzPORT

-- Delete datas of device log

-- >> OK en ligne d'adresse navigateur >> http://192.168.1.44:8084/json.htm?type=command&param=clearlightlog&idx=48

os.execute(curl ..'"'.. domoticzURL ..'/json.htm?type=command&param=clearlightlog&idx=48" ') 

print(' ***** Delete des logs du device text XXXXXXXXXX ***** ')

return commandArray     
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Vider le log d'un dispositif TEXT

Message par vil1driver »

Salut,

Merci je prends ;)
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
e111111
Messages : 225
Inscription : 11 déc. 2018, 19:44

Re: Vider le log d'un dispositif TEXT

Message par e111111 »

Salut Vil1driver,
Je pioche dans tes scripts sur ce forum depuis mes débuts en domotique, et je suis très honoré
que ma modeste contribution puisse t'intéresser ;)

Par contre, tu vas peut-être pouvoir m'aider, je coince pour le déclencher tous les X jours,
je suis parti d'un dispositif calendrier et ça marche,
mais j'aurais préféré que cela soit direct dans le code LUA.
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Vider le log d'un dispositif TEXT

Message par thier »

Merci, je prends aussi.
Transformé en fonction

Code : Tout sélectionner

function deleteLogtext(device)
os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command&param=clearlightlog&idx='..otherdevices_idx[device]..'" &')

log('Effacement de tous les logs du device text '..device,debug)
end
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Vider le log d'un dispositif TEXT

Message par denis_brasseur »

e111111 a écrit : 29 déc. 2018, 19:37 Salut Vil1driver,
Je pioche dans tes scripts sur ce forum depuis mes débuts en domotique, et je suis très honoré
que ma modeste contribution puisse t'intéresser ;)

Par contre, tu vas peut-être pouvoir m'aider, je coince pour le déclencher tous les X jours,
je suis parti d'un dispositif calendrier et ça marche,
mais j'aurais préféré que cela soit direct dans le code LUA.
Tu peux faire quelque chose comme cela, c'et la méthode que j'utilise pour rebooter mon modem tous les X jours.
C'est complètement inspiré des codes de Vil1driver ;)

Code : Tout sélectionner

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir

local my_variable = "my_variable" --nom de la variable

t1 = os.time()
-- Get time/date of last update 

s = uservariables[my_variable]

year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)

t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
-- Difference between current time and last update on my_variable
difference = (os.difftime (t1, t2)) --resultat en secondes

commandArray = {}

--lancement tous les 3 jours
--1 jour = 86 400 s

if (time.min==10) then --toutes les heures, à xxh10
    if(uservariables[my_variable] == nil) then -- Création de la variable  car elle n'existe pas
	voir_les_logs("--- --- --- La Variable " .. my_variable .." n'existe pas --- --- --- ",debugging)
	voir_les_logs("--- --- --- Création de la Variable " .. my_variable .." manquante --- --- --- ",debugging)
	creaVar(my_variable, os.date("%Y-%m-%d %H:%M:%S"),2)
    elseif (difference >= 259200) then --3 jours = 259 200 s
        --on exécute le code voulu
	--commandArray[#commandArray + 1]={le code a éxécuter}
        updateVar(my_variable,os.date("%Y-%m-%d %H:%M:%S"))   
    end 
    
end

return commandArray

-------FIN 
------------------------------------------------------------------------
Pour résumer, j'utilise :
- dofile('/home/pi/domoticz/scripts/lua/modules.lua') => fonctions de Vil1driver
- je créé une variable si elle n'existe pas (my_variable)
- toutes les 10 mn de chaques heures, je teste la valeur de ma variable my_variable
- si my_variable est supérieurs à 259200 s (soit 3 jours), j’exécute ce que je veux, et je réinitialise ensuite la variable.
J'ai résumé la fonction que j'utilise pour l'adapter a ta situation, a toi d'adapter pour obtenir le résultat voulu.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
e111111
Messages : 225
Inscription : 11 déc. 2018, 19:44

Re: Vider le log d'un dispositif TEXT

Message par e111111 »

Super !

Merci, j'avais vu les codes de Vil1driver avec le "fourre-tout" à fonctions, mais je n'avais pas eu le temps de
me plonger la dedans, là ça va être l'occase de le faire, d'autant qu'il m'avait semblé voir que ça pouvait pas mal accélérer
certains traitements ...

Du boulot en perspective :)

PS: j'aurais besoin de petites précisions cependant :

- quel doit être le formalisme du nom du script ? toujours script_time ?
- A quoi sert la ligne :

Code : Tout sélectionner

--commandArray[#commandArray + 1]={le code a éxécuter}
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Vider le log d'un dispositif TEXT

Message par vil1driver »

Autrement tu sais que les logs se vident d'eux même après le delai défini dans les paramètres ?
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
e111111
Messages : 225
Inscription : 11 déc. 2018, 19:44

Re: Vider le log d'un dispositif TEXT

Message par e111111 »

oui, mais tous les logs, là je ne veux vider que celui-ci, qui génère énormément de pages de logs, à chaque déplacement de mon tel.
Les autres logs ne prennent pas autant de place, et j'hésite à manipuler des fonctions de Domoticz que je ne comprends pas, je n'ai pas envie de perdre mes relevés de température ... qui ont l'ai gérés comme les logs ...
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
e111111
Messages : 225
Inscription : 11 déc. 2018, 19:44

Re: Vider le log d'un dispositif TEXT

Message par e111111 »

Bon,

j'ai commencé à tester le code pour démarrer le script tous les x jours,
mais j'ai un retour d'erreur sur la ligne :

Code : Tout sélectionner

t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
log :

Code : Tout sélectionner

lua:31: field 'day' missing in date table
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
Répondre