Covid-19
Publié : 20 mars 2020, 17:51
Bonjour à tous
Je vous propose un petit script pour afficher les données sur cette saloperie de virus.
Ce script est réalisé depuis un script de Papoo que j'ai modifié à l'arrache ! ( j'ai honte !)
Principe :
le script va questionner une API qui recense les données sur les cas de Covid-19
l'API vient du site : https://lab.isaaclin.cn/nCoV/en
dans les LOG on retrouve les données : guéris, cas confirmés, et décédés
D'un naturel optimiste j'ai choisi d'afficher dans Domoticz les Guéris
On peut changer le pays en notant le nom du pays en Anglais.
En premier on créra un device dummy de type custom sensor

Le code à mettre dans l'editeur de domoticz (Lua script time):
Le resultat :

Attention si vous n'avez pas de remontées de l'api ; ça arrive c'est un petit hébergeur qui maintient les données.
Edit: une autre source avec ce script modifié
https://easydomoticz.com/forum/viewtopi ... 833#p79833
Attention pour les puristes il y certainement plein d'erreur dans mon script !!
Gardez le moral ; il y en a qui survivent !!
Pour ceux qui veulent l’icône:
Je vous propose un petit script pour afficher les données sur cette saloperie de virus.
Ce script est réalisé depuis un script de Papoo que j'ai modifié à l'arrache ! ( j'ai honte !)
Principe :
le script va questionner une API qui recense les données sur les cas de Covid-19
l'API vient du site : https://lab.isaaclin.cn/nCoV/en
dans les LOG on retrouve les données : guéris, cas confirmés, et décédés
D'un naturel optimiste j'ai choisi d'afficher dans Domoticz les Guéris
On peut changer le pays en notant le nom du pays en Anglais.
En premier on créra un device dummy de type custom sensor

Le code à mettre dans l'editeur de domoticz (Lua script time):
Code : Tout sélectionner
--[[
/home/pi/domoticz/scripts/lua/script_time_covid.lua
auteur : totof60
date de création : 20/03/2020
Date de mise à jour : 20/03/2020
Ce script est réalisé depuis un script de Papoo que j'ai modifié à l'arrache ! ( j'ai honte !)
Principe :
le script va questionner une API qui recense les données sur les cas de Covid-19
l'API vient du site : https://lab.isaaclin.cn/nCoV/en
dans les LOG on retrouve les données : guéris, cas confirmés, et décédés
D'un naturel optimiste j'ai choisi d'afficher dans Domoticz les Guéris
/!\attention/!\
si vous souhaitez utiliser ce script dans l'éditeur interne, pour indiquer le chemin complet vers le fichier JSON.lua, il vous faudra changer la ligne
json = assert(loadfile(luaDir..'JSON.lua'))()
par
json = assert(loadfile('/le/chemin/vers/le/fichier/lua/JSON.lua'))()
exemple :
json = assert(loadfile('/home/pi/domoticz/scripts/lua/JSON.lua'))()
la reconnaissance automatique du chemin d'exécution de ce script ne fonctionnant pas dans l'éditeur interne
--]]
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local script_actif = true -- active (true) ou désactive (false) ce script simplement
local delai = 59 -- délai d'exécution de ce script en minutes de 1 à 59 (délai entre deux appels à l'API)
local url_info_covid = "https://lab.isaaclin.cn/nCoV/api/area?latest=1&provinceEng=" -- Adresse de l'API
local pays = "France" --pays en Anglais , pour la liste voir le site : https://lab.isaaclin.cn/nCoV/api/provinceName?lang=en
local covid_idx = 192 -- idx du materiel
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
--------------------------------------------
------------- Autres Variables -------------
--------------------------------------------
local nom_script = 'Infos Covid-19'
local version = '0.1'
curl = '/usr/bin/curl -m 5 ' -- ne pas oublier l'espace à la fin
-- chemin vers le dossier lua
if (package.config:sub(1,1) == '/') then
luaDir = debug.getinfo(1).source:match("@?(.*/)")
else
luaDir = string.gsub(debug.getinfo(1).source:match("@?(.*\\)"),'\\','\\\\')
end
json = assert(loadfile('/home/pi/domoticz/scripts/lua/JSON.lua'))() -- chargement du fichier JSON.lua
--------------------------------------------
----------- Fin Autres Variables -----------
--------------------------------------------
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
function voir_les_logs (s, debugging)
if (debugging) then
if s ~= nil then
print (s)
else
print ("aucune valeur affichable")
end
end
end
--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------
commandArray = {}
time = os.date("*t")
if script_actif == true then
if ((time.min-1) % delai) == 0 then -- toutes les xx minutes en commençant par xx:01
voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
--=========== Lecture json ===============--
local config = assert(io.popen(curl..' "'.. url_info_covid ..pays.. '"'))
--end
local blocjson = config:read('*all')
config:close()
local jsonValeur = json:decode(blocjson)
if jsonValeur then
local curedCount = jsonValeur.results[1].curedCount
local confirmedCount = jsonValeur.results[1].confirmedCount
local deadCount = jsonValeur.results[1].deadCount
if curedCount ~= nil then voir_les_logs("--- --- --- Guéris : "..curedCount,debugging) end
if confirmedCount ~= nil then voir_les_logs("--- --- --- Cas confirmés : "..confirmedCount,debugging) end
if deadCount ~= nil then voir_les_logs("--- --- --- Décédés : "..deadCount,debugging) end
if covid_idx ~= nil then commandArray[#commandArray+1] = {['UpdateDevice'] = covid_idx ..'|0|'.. jsonValeur.results[1].curedCount} end
else
voir_les_logs("--- --- --- aucun résultat à décoder",debugging)
end --if jsonValeur
-- ====================================================================================================================
voir_les_logs("======== Fin ".. nom_script .." (v".. version ..") ==========",debugging)
end --if time
end -- if script_actif
--end
return commandArray

Attention si vous n'avez pas de remontées de l'api ; ça arrive c'est un petit hébergeur qui maintient les données.
Edit: une autre source avec ce script modifié
https://easydomoticz.com/forum/viewtopi ... 833#p79833
Attention pour les puristes il y certainement plein d'erreur dans mon script !!
Gardez le moral ; il y en a qui survivent !!
Pour ceux qui veulent l’icône:
