[DzVents] Tempo - récupérer la couleur du lendemain

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Datawolf
Messages : 273
Inscription : 03 avr. 2018, 13:51

[DzVents] Tempo - récupérer la couleur du lendemain

Message par Datawolf »

Salut,

J'ai été longtemps bloqué par l'API d'EDF. D'abord pas des "Access denied" puis par mon incompréhension de JSON.

C'est terminé, et je vous propose donc humblement ce script dzVents. Si comme mi vous préférez tout avoir dans l'interface Domoticz plutôt qu'externaliser certaines parties (comme des scripts shell).

Code : Tout sélectionner

--[[
Tous les après-midi, 
Récupère la couleur Tempo du lendemain, met à jour le selecteur et envoie un mail
--]]

return {
	on = { timer = { 'at 16:32' }
	     },
	execute = function(domoticz, timer)
	    

--    import des fontions pour lire le JSON
      json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
      
      local today=tostring(os.date("%Y-%m-%d"))
      local edf_url = "https://particulier.edf.fr/bin/edf_rc/servlets/ejptemponew?Date_a_remonter="..today.."&TypeAlerte=TEMPO"


--    specify the user Agent to avoid the "Access Denied" issue
      command = "curl -A 'Wget/1.20.3 (linux-gnu)' " .. '"' .. edf_url .. '"'
      
      config=assert(io.popen(command))
      blocjson = config:read('*all')
      config:close()
      jsonValeur = json:decode(blocjson)
      
      couleurDemain = jsonValeur.JourJ1.Tempo
      if couleurDemain     == 'TEMPO_BLEU'  then domoticz.devices(40).switchSelector(10)
      elseif couleurDemain == 'TEMPO_BLANC' then domoticz.devices(40).switchSelector(20)
      elseif couleurDemain == 'TEMPO_ROUGE' then domoticz.devices(40).switchSelector(30)
      else                                       domoticz.devices(40).switchSelector(0) -- ND
      end
        
      info = 'Tempo demain = '..string.sub(couleurDemain,7) -- get rid of the TEMPO_ prefix
          
      domoticz.email('Notif Domoticz', info, 'youraddress@yourserver.com)

end -- execute function
}
@+
The Datawolf

PS: pour la couleur du jour remplacez JourJ1 par JourJ
Répondre