En lua avec la fonction print, on peut écrire des choses dans le log de Domoticz, mais ce dernier tourne vite. Si on veut une trace plus longue de ce qu'on fait nos script, ce n'est pas top.
La fonctione logMessage ci-dessous va écrire dans un fichier mylog.txt situé dans le répertoire de Domoticz (/home/pi/domoticz sur mon poste).
Vous pourrez par la suite faire un tail -f dessus au besoin.
function logMessage (TheMessage)
year = tonumber(os.date("%Y"));
month = tonumber(os.date("%m"));
day = tonumber(os.date("%d"));
hour = tonumber(os.date("%H"));
minutes = tonumber(os.date("%M"));
seconds = tonumber(os.date("%S"));
if (string.len(month) == 1) then month = "0" .. month end
if (string.len(day) == 1) then day = "0" .. day end
if (string.len(hour) == 1) then hour = "0" .. hour end
if (string.len(minutes) == 1) then minutes = "0" .. minutes end
if (string.len(seconds) == 1) then seconds = "0" .. seconds end
logtime = year .. month .. day .. " " .. hour .. minutes .. seconds
file = io.open("mylog.txt", "a")
file:write(logtime .. " " .. TheMessage.."\n")
file:close()
end
Lien vers le fichier : cliquez ici
Pour voir les évolutions du fichier de log sur un raspberry avec domoticz installé dans le user pi, taper
tail -f /home/pi/domoticz/mylog.txt
Lien vers le fichier : cliquez ici
Voici un exemple de son contenu. Vous y mettez ce que vous voulez
Voici un exemple complet
commandArray = {}
--Fonction trouvée sur http://easydomoticz.com/forum/viewtopic.php?f=10&t=7147
function getDevNameByIdx(devIdx)
for i, v in pairs(otherdevices_idx) do
if v == devIdx then
return i
end
end
return 0
end
function logMessage (TheMessage)
year = tonumber(os.date("%Y"));
month = tonumber(os.date("%m"));
day = tonumber(os.date("%d"));
hour = tonumber(os.date("%H"));
minutes = tonumber(os.date("%M"));
seconds = tonumber(os.date("%S"));
if (string.len(month) == 1) then month = "0" .. month end
if (string.len(day) == 1) then day = "0" .. day end
if (string.len(hour) == 1) then hour = "0" .. hour end
if (string.len(minutes) == 1) then minutes = "0" .. minutes end
if (string.len(seconds) == 1) then seconds = "0" .. seconds end
--logtime = year .. " " .. month .. " " .. day .. " " .. hour .. " " .. minutes .. " " .. seconds
logtime = year .. month .. day .. " " .. hour .. minutes .. seconds
file = io.open("mylog.txt", "a")
file:write(logtime .. " " .. TheMessage.."\n")
file:close()
end
varDetecteurChambre = getDevNameByIdx(188)
varIDXChauffageChambre = getDevNameByIdx(174)
if (devicechanged[varIDXChauffageChambre] == 'On' ) then
logMessage("Allumage du chauffage de la chambre")
if otherdevices[varDetecteurChambre] == 'Open' then
logMessage("Allumage du chauffage de la chambre alors que la fenêtre était ouverte. On éteint")
commandArray[varIDXChauffageChambre]='Off'
end
end
return commandArray
Lien vers le fichier : cliquez ici
Article(s) en relation(s)