device date derniere modification

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 <\>.
pierrotori
Messages : 821
Inscription : 29 févr. 2016, 12:11

device date derniere modification

Message par pierrotori »

bonjour
j’utilise un script de type device et utilise la fonction lastupdate sauf que quand la device se declenche lastupdate me retourne la derniere date active donc celle du declenchement et je souhaiterais avoir celle d’avant le déclenchement
y a-t-il une fonction que j’ai loupe ou il faut gérer via la data persistente ?
pierre
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: device date derniere modification

Message par lost »

Il doit y avoir un pb de double déclenchement: Ca ne servirait pas à grand chose de donner... le déclenchement courant dans une table alors qu'il suffit de lire l'heure présente!
Je suis un gros utilisateur des tables otherdevices_lastupdate et uservariables_lastupdate en pur Lua et aucun pb.
pierrotori
Messages : 821
Inscription : 29 févr. 2016, 12:11

Re: device date derniere modification

Message par pierrotori »

peut-etre parce que j’utilise l’index de la device au lieu de récupérer le last update de la device qui a ete déclenché
pierrotori
Messages : 821
Inscription : 29 févr. 2016, 12:11

Re: device date derniere modification

Message par pierrotori »

j'ai essayé de récupérer lastUpdate d'une device qui se déclenche et ca correspond à la date de la mise à jour pas celle avant, la je ne comprend pas

Code : Tout sélectionner

return {
	active = true,
	on = {
		devices = { 'test' }
	},
    logging = {
        -- level = domoticz.LOG_INFO,   -- Seulement un niveau peut être actif; commenter les autres
        -- level = domoticz.LOG_ERROR,
        level = domoticz.LOG_DEBUG,
        -- level = domoticz.LOG_MODULE_EXEC_INFO,
        marker = scriptName..' v'..scriptVersion
    },

execute = function(dz, item) 
-- PROGRAM STARTS

    dz.log('============== TEST ==================', dz.LOG_INFO)
	if item.isDevice then
		dz.log('date TEST:'..dz.devices('test').lastUpdate.dDate , dz.LOG_DEBUG)	
		dz.log("date TEST avant: "..item.lastUpdate.dDate,dz.LOG_DEBUG) 	
	end
	
end -- execute
} -- return
avec dump(), j'ai la dernière date d'appui et 2 fois ,la même clé lastUpdate: 2024-05-07 08:21:56

Code : Tout sélectionner

2024-05-07 08:23:13.211 Status: dzVents: device> signalLevel: 12
2024-05-07 08:23:13.212 Status: dzVents: device> baseType: device
2024-05-07 08:23:13.212 Status: dzVents: device> hardwareID: 17
2024-05-07 08:23:13.212 Status: dzVents: device> active: false
2024-05-07 08:23:13.212 Status: dzVents: device> _nValue: 0
2024-05-07 08:23:13.212 Status: dzVents: device> isGroup: false
2024-05-07 08:23:13.212 Status: dzVents: device> isSecurity: false
2024-05-07 08:23:13.212 Status: dzVents: device> timedOut: false
2024-05-07 08:23:13.212 Status: dzVents: device> inActive: true
2024-05-07 08:23:13.212 Status: dzVents: device> isVariable: false
2024-05-07 08:23:13.212 Status: dzVents: device> isDevice: true
2024-05-07 08:23:13.212 Status: dzVents: device> lastUpdate: 2024-05-07 08:21:56
2024-05-07 08:23:13.213 Status: dzVents: device> isScene: false
2024-05-07 08:23:13.213 Status: dzVents: device> customImage: 9
2024-05-07 08:23:13.213 Status: dzVents: device> state: Off
2024-05-07 08:23:13.213 Status: dzVents: device> switchType: On/Off
2024-05-07 08:23:13.213 Status: dzVents: device> deviceType: Light/Switch
2024-05-07 08:23:13.213 Status: dzVents: device> _adapters:
2024-05-07 08:23:13.213 Status: dzVents: device> 1: Switch device adapter
2024-05-07 08:23:13.213 Status: dzVents: device> maxDimLevel: 100
2024-05-07 08:23:13.213 Status: dzVents: device> hardwareType: Dummy (Does nothing, use for virtual switches only)
2024-05-07 08:23:13.213 Status: dzVents: device> isHTTPResponse: false
2024-05-07 08:23:13.213 Status: dzVents: device> Image: Generic
2024-05-07 08:23:13.213 Status: dzVents: device> protected: false
2024-05-07 08:23:13.214 Status: dzVents: device> description:
2024-05-07 08:23:13.214 Status: dzVents: device> hardwareId: 17
2024-05-07 08:23:13.214 Status: dzVents: device> name: test
2024-05-07 08:23:13.214 Status: dzVents: device> icon: lightbulb
2024-05-07 08:23:13.214 Status: dzVents: device> idx: 587
2024-05-07 08:23:13.214 Status: dzVents: device> changed: true
2024-05-07 08:23:13.214 Status: dzVents: device> id: 587
2024-05-07 08:23:13.214 Status: dzVents: device> isTimer: false
2024-05-07 08:23:13.214 Status: dzVents: device> unit: 1
2024-05-07 08:23:13.214 Status: dzVents: device> levelVal: 0
2024-05-07 08:23:13.214 Status: dzVents: device> bState: false
2024-05-07 08:23:13.214 Status: dzVents: device> hardwareName: Réglages
2024-05-07 08:23:13.214 Status: dzVents: device> deviceId: 0001429B
2024-05-07 08:23:13.214 Status: dzVents: device> _state: Off
2024-05-07 08:23:13.215 Status: dzVents: device> deviceSubType: Switch
2024-05-07 08:23:13.215 Status: dzVents: device> hardwareTypeValue: 15
2024-05-07 08:23:13.215 Status: dzVents: device> nValue: 0
2024-05-07 08:23:13.215 Status: dzVents: device> isHardware: false
2024-05-07 08:23:13.215 Status: dzVents: device> usedByCamera: false
2024-05-07 08:23:13.215 Status: dzVents: device> level: 0
2024-05-07 08:23:13.215 Status: dzVents: device> sValue: Off
2024-05-07 08:23:13.215 Status: dzVents: device> _data:
2024-05-07 08:23:13.215 Status: dzVents: device> switchType: On/Off
2024-05-07 08:23:13.215 Status: dzVents: device> signalLevel: 12
2024-05-07 08:23:13.215 Status: dzVents: device> subType: Switch
2024-05-07 08:23:13.215 Status: dzVents: device> data:
2024-05-07 08:23:13.216 Status: dzVents: device> Image: Generic
2024-05-07 08:23:13.216 Status: dzVents: device> _nValue: 0
2024-05-07 08:23:13.216 Status: dzVents: device> unit: 1
2024-05-07 08:23:13.216 Status: dzVents: device> hardwareID: 17
2024-05-07 08:23:13.216 Status: dzVents: device> hardwareTypeValue: 15
2024-05-07 08:23:13.216 Status: dzVents: device> levelVal: 0
2024-05-07 08:23:13.216 Status: dzVents: device> maxDimLevel: 100
2024-05-07 08:23:13.216 Status: dzVents: device> _state: Off
2024-05-07 08:23:13.216 Status: dzVents: device> protected: false
2024-05-07 08:23:13.216 Status: dzVents: device> usedByCamera: false
2024-05-07 08:23:13.216 Status: dzVents: device> icon: lightbulb
2024-05-07 08:23:13.216 Status: dzVents: device> hardwareType: Dummy (Does nothing, use for virtual switches only)
2024-05-07 08:23:13.216 Status: dzVents: device> customImage: 9
2024-05-07 08:23:13.217 Status: dzVents: device> hardwareName: Réglages
2024-05-07 08:23:13.217 Status: dzVents: device> baseType: device
2024-05-07 08:23:13.217 Status: dzVents: device> description:
2024-05-07 08:23:13.217 Status: dzVents: device> lastUpdate: 2024-05-07 08:21:56
2024-05-07 08:23:13.217 Status: dzVents: device> image:
2024-05-07 08:23:13.217 Status: dzVents: device> changed: true
2024-05-07 08:23:13.217 Status: dzVents: device> name: test
2024-05-07 08:23:13.217 Status: dzVents: device> switchTypeValue: 0
2024-05-07 08:23:13.217 Status: dzVents: device> rawData:
2024-05-07 08:23:13.217 Status: dzVents: device> 1: 0
2024-05-07 08:23:13.217 Status: dzVents: device> lastLevel: 0
2024-05-07 08:23:13.217 Status: dzVents: device> deviceID: 0001429B
2024-05-07 08:23:13.217 Status: dzVents: device> protected: false
2024-05-07 08:23:13.218 Status: dzVents: device> batteryLevel: 255
2024-05-07 08:23:13.218 Status: dzVents: device> id: 587
2024-05-07 08:23:13.218 Status: dzVents: device> timedOut: false
2024-05-07 08:23:13.218 Status: dzVents: device> iconNumber: 75
2024-05-07 08:23:13.218 Status: dzVents: device> deviceType: Light/Switch
2024-05-07 08:23:13.218 Status: dzVents: device> rawData:
2024-05-07 08:23:13.218 Status: dzVents: device> 1: 0
2024-05-07 08:23:13.218 Status: dzVents: device> lastLevel: 0
2024-05-07 08:23:13.218 Status: dzVents: device> switchTypeValue: 0
comportement normal dans le wiki c'est bien écrit, donc il faut bien la stocker si on veut la date du lastUpdate dans un déclenchement devices
lastUpdate: Time Object: Time when the device was updated. **Note: The lastUpdate for devices that triggered the script at hand is in fact the previousUpdate time. The real lastUpdate time for these “script triggering” devices is the current time.
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: device date derniere modification

Message par lost »

Après avoir vérifié mes cas d'usage, c'est vrai que je n'utilise jamais le last update sur ce qui a déclenché dans un script device. C'est toujours sur un autre que celui qui déclenche, le plus souvent un virtuel d'ailleurs que je gère à partir des données d'un objet physique (et/ou une variable utilisateur servant à stocker des calculs intermédiaires, ce qui revient au même: On gère soit même).

D'ailleurs, en Lua, la table last update pour un device s'appelle otherdevices_lastupdate (et pour une user var, uservariables_lastupdate mais là pas d'ambiguité, ces dernières étant crées/alimentées par l'utilisateur).

Bref, le "other" du nommage en pur Lua (je n'aime pas la syntaxe de dzVent, personnellement) m'a sans doute intuitivement incité à rester dans le cadre voulu sans même en avoir conscience en fait!
pierrotori
Messages : 821
Inscription : 29 févr. 2016, 12:11

Re: device date derniere modification

Message par pierrotori »

de mon cote je n’avais pas utilisé encore le other device sur le trigger device , du coup j’ai utilise le data persistent pour le stocker, c’est donc une bonne solution on peut utiliser aussi la variable
Répondre