Gestion du lastseen
Re: Gestion du lastseen
Pour aller plus en détail:
Le lastseen est mis à jour par le plugin, mais cela sans déclancher une mise-à-jour du lastupdate (qui lui n'est visible que de Domoticz en runtime).
Le lastseen est mis-à-jour lors des echanges entre le device/zigate/plugin. Par contre si cela ne modifie pas le statut de la widget dans Domoticz, seul le lastseen et mis-à-jour. Pourquoi ? Pour éviter de declancher trop d'événements coté Domoticz
Le lastseen est mis à jour par le plugin, mais cela sans déclancher une mise-à-jour du lastupdate (qui lui n'est visible que de Domoticz en runtime).
Le lastseen est mis-à-jour lors des echanges entre le device/zigate/plugin. Par contre si cela ne modifie pas le statut de la widget dans Domoticz, seul le lastseen et mis-à-jour. Pourquoi ? Pour éviter de declancher trop d'événements coté Domoticz
Re: Gestion du lastseen
Et on ne peut pas récupérer cette valeur ? Car dans la console c'est bien ce paramètre qui est analysé pour la santé des devices ?pipiche a écrit :Pour aller plus en détail:
Le lastseen est mis à jour par le plugin, mais cela sans déclancher une mise-à-jour du lastupdate (qui lui n'est visible que de Domoticz en runtime).
Le lastseen est mis-à-jour lors des echanges entre le device/zigate/plugin. Par contre si cela ne modifie pas le statut de la widget dans Domoticz, seul le lastseen et mis-à-jour. Pourquoi ? Pour éviter de declancher trop d'événements coté Domoticz
Envoyé de mon Mi A1 en utilisant Tapatalk
Re: Gestion du lastseen
Regarde le post que j'ai mis en référence. Je crois que @benp a fournie le script qui va bienWolfen38 a écrit : 26 août 2019, 15:33Et on ne peut pas récupérer cette valeur ? Car dans la console c'est bien ce paramètre qui est analysé pour la santé des devices ?pipiche a écrit :Pour aller plus en détail:
Le lastseen est mis à jour par le plugin, mais cela sans déclancher une mise-à-jour du lastupdate (qui lui n'est visible que de Domoticz en runtime).
Le lastseen est mis-à-jour lors des echanges entre le device/zigate/plugin. Par contre si cela ne modifie pas le statut de la widget dans Domoticz, seul le lastseen et mis-à-jour. Pourquoi ? Pour éviter de declancher trop d'événements coté Domoticz
Envoyé de mon Mi A1 en utilisant Tapatalk
Re: Gestion du lastseen
J'ai essayé, mais j'ai des erreurs tout de suite, que je ne comprends pas, il me dit qu'il manque une } alors qu'elle y est....
Re: Gestion du lastseen
pose la question sur le post en question, peut-etre que @benp y répondraWolfen38 a écrit : 26 août 2019, 15:51 J'ai essayé, mais j'ai des erreurs tout de suite, que je ne comprends pas, il me dit qu'il manque une } alors qu'elle y est....
Re: Gestion du lastseen
Bonjour,
Voici un petit script dzvents, que j'ai créé à partir du script de Benp,
viewtopic.php?f=28&t=8251&start=80#p69239
pour surveiller le last seen de mes capteurs.
Je le partage au cas où, il pourrait servir à quelqu'un.
Voici un petit script dzvents, que j'ai créé à partir du script de Benp,
viewtopic.php?f=28&t=8251&start=80#p69239
pour surveiller le last seen de mes capteurs.
Je le partage au cas où, il pourrait servir à quelqu'un.
Code : Tout sélectionner
local devicesToCheck = {
{ ['name'] = 'Door Sensor ENOCEAN', ['DeviceIdx'] = 5 }, -- add you device list here. First line is an example from my Domoticz.
{ ['name'] = 'Device name 2', ['DeviceIdx'] = Idx2 }, -- find you devices IDx in Domoticz/Setup/Devices
{ ['name'] = 'Device name 3', ['DeviceIdx'] = Idx3 },
{ ['name'] = 'Device name 4', ['DeviceIdx'] = Idx4 },
{ ['name'] = 'Device name 5', ['DeviceIdx'] = Idx5 },
{ ['name'] = 'Device name 6', ['DeviceIdx'] = Idx6 } -- last line does not have a "," ;)
}
return
{
on = {
timer = {'at 11:50'}, -- choose how often you want to check if devices are alive. I check it once a day at 11:50
httpResponses = {'lastUP' }
},
execute = function(domoticz, item)
print('trigger:' .. tostring(item.isTimer) .. '/' .. tostring(item.isHTTPResponse))
for i, deviceToCheck in pairs(devicesToCheck) do
local name = deviceToCheck['name']
local DeviceIdx = deviceToCheck['DeviceIdx']
if (item.isTimer) then
domoticz.openURL({
url = 'http://127.0.0.1:8080/json.htm?type=devices&rid='..DeviceIdx..'',
method = 'GET',
callback = 'lastUP'
})
end
end
if (item.isHTTPResponse and item.ok) then
local Time = require('Time')
local results = item.json.result
for i, node in pairs(results) do
-- convert the time stamp in the raw data into a
-- dzVents Time object
local lastUpdate = Time(node.LastUpdate)
print(node.Name)
print('Hours ago: ' .. lastUpdate.hoursAgo)
if(lastUpdate.hoursAgo > 4) then -- Set the threshold to consider the device timed-out, adn choose what you want to do if the device is timed-out.
local message = "" -- I sent a SMS to my phone using free-mobile SMS notifications feature.
message = message .. 'Device ' .. node.Name .. ' seems to be timed-out. Last seen: ' .. lastUpdate.hoursAgo ..' hours ago.'
domoticz.openURL('https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXXX&pass=xxxxxxxxxxxxxx&msg= ' .. message .. ' ')
end
end
end
end
}
Re: Gestion du lastseen
A tout hasard, je partage mon script qui est sur le wiki :
https://github.com/pipiche38/Domoticz-Z ... evices.lua
C'est un vieux post, Wolfen38 l'utilise depuis.
https://github.com/pipiche38/Domoticz-Z ... evices.lua
C'est un vieux post, Wolfen38 l'utilise depuis.
Re: Gestion du lastseen
super sympa, merci
Tu peux aussi le mettre en Contrib ici: https://github.com/pipiche38/Domoticz-Z ... er/Contrib
Tu peux aussi le mettre en Contrib ici: https://github.com/pipiche38/Domoticz-Z ... er/Contrib
Re: Gestion du lastseen
Oui il va nickel, ça évite les mauvaises surprises ou de devoir checker régulièrement l'état des devices.
Envoyé de mon Mi 9T Pro en utilisant Tapatalk
Envoyé de mon Mi 9T Pro en utilisant Tapatalk
Re: Gestion du lastseen
Bonjour,
Dsl pour la réponse tardive. J'étais absent pendant quelques jours.
@Pipiche:
Ok je vais le mettre dans Contrib.
@Deufo:
Si c’est ok pour toi, je vais mettre dans les commentaires le lien vers ton script, car il est bien plus complet que le mien.
Juste pour éviter la confusion d'avoir deux scripts qui font la même chose dans Contrib.
@Pipiche:
J'ai un autre bout de code pour déclencher une action en cas de batterie faible.
C'est un script très simple mais ça pourrait peut-être servir à quelqu’un.
Si c'est ok pour toi je peux le mettre aussi dans Contrib.
Dsl pour la réponse tardive. J'étais absent pendant quelques jours.
@Pipiche:
Ok je vais le mettre dans Contrib.
@Deufo:
Si c’est ok pour toi, je vais mettre dans les commentaires le lien vers ton script, car il est bien plus complet que le mien.
Juste pour éviter la confusion d'avoir deux scripts qui font la même chose dans Contrib.
@Pipiche:
J'ai un autre bout de code pour déclencher une action en cas de batterie faible.
C'est un script très simple mais ça pourrait peut-être servir à quelqu’un.
Si c'est ok pour toi je peux le mettre aussi dans Contrib.
Code : Tout sélectionner
-- This dzvents script is intended to trigger an action in case of low battery device.
local devicesToCheck = {
{ ['name'] = 'Device_name_1', ['threshold'] = 15 }, -- add you device list here, and the battery level to trigger a warning.
{ ['name'] = 'Device_name_2', ['threshold'] = 15 },
{ ['name'] = 'Device_name_3', ['threshold'] = 15 },
{ ['name'] = 'Device_name_4', ['threshold'] = 15 },
{ ['name'] = 'Device_name_5', ['threshold'] = 15 },
{ ['name'] = 'Device_name_6', ['threshold'] = 15 }
}
return {
active = true,
on = {
['timer'] = {
'at 12:15 on sun' -- Choose how often you want to check device's battery level. I check it once a week at 12:15
}
},
execute = function(domoticz)
local message = ""
for i, deviceToCheck in pairs(devicesToCheck) do
local name = deviceToCheck['name']
local threshold = deviceToCheck['threshold']
local bat_level = domoticz.devices(name).batteryLevel
print('Device: ' .. name .. ' Battery Level: ' ..bat_level)
if ( bat_level < threshold) then
message = message .. 'Device ' .. name .. ' is low battery. Battery level is ' .. bat_level .. ' %. '
end
end
if (message ~= "") then -- Write here what you want to do if a device has a battery level below threshold.
local urlmsg = "" -- I send a SMS to my phone using free-mobile SMS notifications feature.
urlmsg = 'https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXXX&pass=xxxxxxxxxxxxxx&msg= ' .. message .. ' '
domoticz.log('Low battery devices found: ' .. message, domoticz.LOG_ERROR)
domoticz.openURL(urlmsg)
end
end
}