Covid-19

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 <\>.
Maxou
Messages : 33
Inscription : 22 déc. 2016, 19:14
Contact :

Re: Covid-19

Message par Maxou »

Bonjour totof60, merci, ça fonctionne parfaitement.
manu663
Messages : 103
Inscription : 06 août 2016, 14:35

Re: Covid-19

Message par manu663 »

Idem, tout fonctionne nickel !
Maxou
Messages : 33
Inscription : 22 déc. 2016, 19:14
Contact :

Re: Covid-19

Message par Maxou »

Bonjour,

je suis maintenant les données utilisées par l'état, les journaux TV, ... mais depuis vendredi, les données EHPAD sont à 'NaN'.
Voici ma solution avec :
- 3 Custom Sensor : somme des données Hôpital et Ehpad
- 5 UserVariables : Sauvegarde des données précédentes (vous pouvez aussi suivre le nombre d'hospitalisations)

Adresse de l'API

Code : Tout sélectionner

local url_info_covid = 	"https://www.data.gouv.fr/api/1/datasets/5eb55e49899a159c2e0053c2/resources/e13851d0-0228-4252-91b9-cf091a0452a4/"
Stockage et lecture des données individuelles sauvegardées
Si certaines données ne sont pas correctes (c'est la cas en ce moment avec les données EHPAD), cela permet de calculer avec les données précédentes ;)

Code : Tout sélectionner

--Données sauvegardées pour Covid 19 si données Gouvernementales incorrectes (NaN)
local casConfirmes = uservariables['casConfirmes'] 
local deces = uservariables['deces']
local decesEhpad = uservariables['decesEhpad']
local casConfirmesEhpad = uservariables['casConfirmesEhpad']
local gueris = uservariables['gueris']  
local domoticz_url = '192.168.0.251:8080'  
local urljson1 = '/json.htm?type=command&param=updateuservariable&vname='
local urljson2 = '&vtype=0&vvalue=' 
Lecture des données JSON
La lecture se fait en 2 temps puisque le lien des données changent tous les jours
url_info_covid est le lien de base
Le paramétre 'url' en retour JSON est le lien des données finales JSON
Il faut additionner les données de Cas confirmés et Décès des hôpitaux et Ehpad

Code : Tout sélectionner

		local config = assert(io.popen(curl..' "'.. url_info_covid ..'"'))
		local blocjson = config:read('*all')
		config:close()
		local jsonValeur = json:decode(blocjson)
		if jsonValeur then
			local urlcovid = jsonValeur.url
			--exemple de retour url = "https://static.data.gouv.fr/resources/indicateurs-covid-19/20200517-194046/fra-latest.json"
			local config = assert(io.popen(curl..' "'.. urlcovid ..'"'))
			local blocjson = config:read('*all')
			config:close()
			local jsonValeur2 = json:decode(blocjson)
			if jsonValeur2 then
		
				local gueristot = jsonValeur2.gueris
				if gueris ~= nil and gueristot == "NaN" then 
					gueristot = gueris
				else
					commandArray[#commandArray+1]={['OpenURL']=domoticz_url .. urljson1 .. 'gueris' .. urljson2 .. gueristot}
				end
				local confirmed = jsonValeur2.casConfirmes
				if casConfirmes ~= nil and confirmed == "NaN" then 
					confirmed = casConfirmes 
				else
					commandArray[#commandArray+1]={['OpenURL']=domoticz_url .. urljson1 .. 'casConfirmes' .. urljson2 .. confirmed}
				end
				local confirmedehpad = jsonValeur2.casConfirmesEhpad
				if casConfirmesEhpad ~= nil and confirmedehpad == "NaN" then 
					confirmedehpad = casConfirmesEhpad 
				else
					commandArray[#commandArray+1]={['OpenURL']=domoticz_url .. urljson1 .. 'casConfirmes' .. urljson2 .. confirmedehpad}
				end
				local confirmes = confirmed + confirmedehpad
				local deaths = jsonValeur2.deces
				if deces ~= nil and deaths == "NaN" then 
					deaths = deces 
				else
					commandArray[#commandArray+1]={['OpenURL']=domoticz_url .. urljson1 .. 'deces' .. urljson2 .. deaths}
				end
				local deathsehpad = jsonValeur2.decesEhpad
				if decesEhpad ~= nil and deathsehpad == "NaN" then 
					deathsehpad = decesEhpad 
				else
					commandArray[#commandArray+1]={['OpenURL']=domoticz_url .. urljson1 .. 'decesEhpad' .. urljson2 .. deathsehpad}
				end
				local decestot = deaths + deathsehpad
				--if recovered ~= nil then voir_les_logs("--- --- --- Guéris : "..recovered,debugging) end
				--if confirmed ~= nil then voir_les_logs("--- --- --- Cas confirmés : "..confirmed,debugging) end
				--if deaths ~= nil then voir_les_logs("--- --- --- Décédés : "..deaths,debugging) end
				if covid_deces ~= nil then commandArray[#commandArray+1] = {['UpdateDevice'] = covid_deces ..'|0|'.. decestot} end
				if covid_infected ~= nil then commandArray[#commandArray+1] = {['UpdateDevice'] = covid_infected ..'|0|'.. confirmes} end
				if covid_gueri ~= nil then commandArray[#commandArray+1] = {['UpdateDevice'] = covid_gueri ..'|0|'.. gueristot} end
			end
		end
Dernière modification par Maxou le 25 mai 2020, 08:31, modifié 1 fois.
Maxou
Messages : 33
Inscription : 22 déc. 2016, 19:14
Contact :

Re: Covid-19

Message par Maxou »

Informations complémentaire au 24/05/2020 pour initialiser les données Ehpad actuellement à 'NaN'
Valeurs EHPAD
casConfirmesEhpad : 36853
decesEhpad : 10345

Détails des UserVariables, données et Sensor
Les graphiques représentent l'évolution journalière (écart)
Le graphique du haut avec les données de https://wuhan-coronavirus-api.laeyoung. ... tries=true
Le graphique du bas avec les données de https://www.data.gouv.fr/api/1/datasets ... c2e0053c2/
Pièces jointes
Uservariable_covid-19.jpg
Uservariable_covid-19.jpg (26.89 Kio) Consulté 3917 fois
sensor_covid-19.jpg
sensor_covid-19.jpg (29.1 Kio) Consulté 3917 fois
graph_covid-19.jpg
graph_covid-19.jpg (52.92 Kio) Consulté 3917 fois
JFCP43
Messages : 3
Inscription : 17 févr. 2021, 11:12
Localisation : Haute-Loire

Re: Covid-19

Message par JFCP43 »

Bonjour,
Est-ce que ce script marche toujours ?

Perso (mais bon, je suis débutant aussi...), je n'arrive à rien, et il semble que les infos fournies par gouv.fr aient changées de format, n'offrant plus que des fichiers .csv...

Après, je suis parti du script v0.2... qui ne donne rien sur le 1er site "aucun résultat à décoder", puis j'ai essayé de comprendre comment le modifier pour accéder aux infos du gouvernement... mais... ben je n'arrive à aucun résultat, juste une erreur ligne 105 me disant que la variable urlcovid ne menait à rien...

Merci !
totof60
Messages : 373
Inscription : 29 avr. 2016, 09:31

Re: Covid-19

Message par totof60 »

Bonjour

je dois m'y re-pencher dessus

De mon coté aussi plus de remontées des différents sites de l’époque.
Domoticz V2022.2
sous Buster, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
pachti
Messages : 34
Inscription : 01 mai 2020, 16:12

Re: Covid-19

Message par pachti »

peut-etre une piste
https://covidtracking.com/data/api

je ne m'y connais pas assez en Lua pour régler la chose mais il y a l'air d'avoir tout ce qu'on veut
Répondre