Les informations disponibles : Nom de la phase, Visibilité, Distance Lune Terre, l'age de la lune, prochaine éclipse lunaire,
Trajectoire, Constellation, Prochain périgée lunaire, Prochain apogée lunaire, Prochain noeud lunaire
Code : Tout sélectionner
--[[
name : script_time_phase_lunaire.lua
auteur : papoo
version : 1.13
Mise à jour : 23/01/2017
date : 26/06/2016
Principe :
Ce script a pour but de remonter toutes ou partie des informations du site http://www.calendrier-lunaire.net/ sur domoticz
Les informations disponibles : Nom de la phase, Visibilité, Distance Lune Terre, l'age de la lune, prochaine éclipse lunaire,
Trajectoire, Constellation, Prochain périgée lunaire, Prochain apogée lunaire, Prochain noeud lunaire
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local debugging = false -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local dz_phase = 720 -- renseigner l'id du device (texte) phase lunaire associé si souhaité, sinon nil
local dz_visibilite = 721 -- renseigner l'id du device(pourcentage) Visibilité associé si souhaité, sinon nil
local dz_distance = nil -- renseigner l'id du device (texte) distance Lune - Terre associé si souhaité, sinon nil
local dz_age = nil -- renseigner l'id du device (texte) Age de la Lune associé si souhaité, sinon nil
local dz_eclipse = nil -- renseigner l'id du device (texte) prochaine éclipse lunaire associé si souhaité, sinon nil
local dz_trajectoire = nil -- renseigner l'id du device (texte) Trajectoire associé si souhaité, sinon nil
local dz_constellation = nil -- renseigner l'id du device (texte) Constellation associé si souhaité, sinon nil
local dz_perigee = nil -- renseigner l'id du device (texte) Prochain périgée lunaire associé si souhaité, sinon nil
local dz_apogee = nil -- renseigner l'id du device (texte) Prochain apogée lunaire associé si souhaité, sinon nil
local dz_noeud = nil -- renseigner l'id du device (texte) Prochain noeud lunaire associé si souhaité, sinon nil
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local indexArray=0
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
function voir_les_logs (s, debugging)
if (debugging) then
if s ~= nil then
print ("<font color='#f3031d'>".. s .."</font>")
else
print ("<font color='#f3031d'>aucune valeur affichable</font>")
end
end
end
--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------
commandArray = {}
time = os.date("*t")
--if (time.hour == 00 and time.min == 20) then -- tout les matins à 00h20
if (time.min == 20 and ((time.hour == 7) or (time.hour == 13) or (time.hour == 18))) then -- 3 éxecutions du script par jour à 7H20, 13h20 et 18H20
-- if time.hour%2 == 0 then -- toutes les deux heures
-- if (time.hour%1 == 0 and time.min == 10) then -- Toutes les heures et 10 minutes
--if time.min%2 == 0 then -- Toutes les 2 minutes
print('script_time_phase_lunaire.lua')
local fname ="horoscope.xml"
os.execute("wget -q -O " .. fname .. " http://www.calendrier-lunaire.net/")
local f = io.open(fname, "r")
if f == nil then
print("Error opening file '" .. fname .. "'.")
os.exit(1)
end
local testHtml = f:read("*all")
f:close()
for instance in testHtml:gmatch("<body>(.-)</body>") do
local phase=instance:match('<strong>Nom de la phase : </strong>(.-)</li>')
local visibilite=instance:match('<strong>Visibilité : </strong>(.-)</li>')
local distance=instance:match('Terre : </strong>(.-)</li>')
local age=instance:match('<strong>Age de la Lune : </strong> (.-)</li>')
local eclipse=instance:match('lunaire : </strong> (.-)</a></li>')
local trajectoire=instance:match('Trajectoire : </strong>(.-)<img')
local constellation=instance:match('</span>Constellation : </strong>(.-)<img')
local perigee=instance:match('Prochain périgée lunaire : </strong>(.-)<img')
local apogee=instance:match('Prochain apogée lunaire : </strong>(.-)<img')
local noeud=instance:match('Prochain noeud lunaire : </strong>(.-)<img')
voir_les_logs("--- --- --- Nom de la phase : "..phase,debugging)
if dz_phase ~= nil and phase ~= nil then -- Mise à jour du devise phase si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_phase..'|0|'.. phase}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Visibilité : "..visibilite,debugging)
if dz_visibilite ~= nil and visibilite ~= nil then -- Mise à jour du devise visibilité si il existe
visibilite = string.gsub (visibilite, " %%", "") -- supprime le caractere % afin de ne recuperer que la valeur
commandArray[indexArray] = {['UpdateDevice'] = dz_visibilite..'|0|'.. visibilite}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Distance Lune - Terre : "..distance,debugging)
if dz_distance ~= nil and distance ~= nil then -- Mise à jour du devise distance si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_distance..'|0|'.. distance}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Age de la Lune : "..age,debugging)
if dz_age ~= nil and age ~= nil then -- Mise à jour du devise age si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_age..'|0|'.. age}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Prochaine eclipse lunaire : "..eclipse,debugging)
if dz_eclipse ~= nil and eclipse ~= nil then -- Mise à jour du devise eclipse si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_eclipse..'|0|'.. eclipse}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Trajectoire : "..trajectoire,debugging)
if dz_trajectoire ~= nil and trajectoire ~= nil then -- Mise à jour du devise trajectoire si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_trajectoire..'|0|'.. trajectoire}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Constellation : "..constellation,debugging)
if dz_constellation ~= nil and constellation ~= nil then -- Mise à jour du devise constellation si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_constellation..'|0|'.. constellation}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Prochain périgée lunaire : "..perigee,debugging)
if dz_perigee ~= nil and perigee ~= nil then -- Mise à jour du devise perigee si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_perigee..'|0|'.. perigee}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Prochain apogée lunaire : "..apogee,debugging)
if dz_apogee ~= nil and apogee ~= nil then -- Mise à jour du devise apogee si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_apogee..'|0|'.. apogee}
indexArray=indexArray+1
end
voir_les_logs("--- --- --- Prochain noeud lunaire : "..noeud,debugging)
if dz_noeud ~= nil and noeud ~= nil then -- Mise à jour du devise noeud si il existe
commandArray[indexArray] = {['UpdateDevice'] = dz_noeud..'|0|'.. noeud}
indexArray=indexArray+1
end
end
end -- if time
return commandArray