recemment j'ai ajouté un code d'horoscope, trouvable ci dessous :
Code : Tout sélectionner
--[[
name : script_time_horoscope.lua
auteur : papoo
version : 1.10
Mise à jour : 27/06/2016 Changement de site
date : 26/06/2016
Principe :
Ce script a pour but de remonter les informations du site http://mon.astrocenter.fr/ dans un device texte
sur domoticz pour un signe donné et de nous alerter le cas écheant selon le niveau de notification choisi
]]--
-- ========================================================================
-- Variables à éditer
-- ========================================================================
local signe = "cancer" --[[ renseigner le signe choisi en minuscule sans accent : belier, taureau, gemeaux, cancer, lion, vierge,
balance, scorpion, sagittaire, capricorne, verseau, poissons ]]--
local dz_horoscope_text = 178 -- renseigner l'id du device texte associé (dummy - text)
local send_notification = 0 -- 0: notifications désactivées, 1: notifications actives
local debugging = false -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
-- ========================================================================
-- Fin Variables à éditer
-- ========================================================================
local indexArray=0
-- ========================================================================
-- Fonctions
-- ========================================================================
function voir_les_logs (s)
if (debugging) then
print ("<font color='#f3031d'>".. s .."</font>");
end
end
function string:split( inSplitPattern, outResults )
if not outResults then
outResults = { }
end
local theStart = 1
local theSplitStart, theSplitEnd = string.find( self, inSplitPattern, theStart )
while theSplitStart do
table.insert( outResults, string.sub( self, theStart, theSplitStart-1 ) )
theStart = theSplitEnd + 1
theSplitStart, theSplitEnd = string.find( self, inSplitPattern, theStart )
end
table.insert( outResults, string.sub( self, theStart ) )
return outResults
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
print('script_time_horoscope.lua')
local fname ="horoscope.xml"
os.execute("wget -q -O " .. fname .. " http://astro.idf1.fr/horoscope/horoscope-du-jour/horoscope-cancer/horoscope.html")
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
horoscope=instance:match('<p>(.-)</p>')
horoscope=string.gsub(horoscope, "%'", " ")
horoscope=string.gsub(horoscope, "é", "e")
horoscope=string.gsub(horoscope, "ê", "e")
horoscope=string.gsub(horoscope, "à", "a")
horoscope=string.gsub(horoscope, " ", " ")
horoscope=string.gsub(horoscope, ",", " ")
end
if horoscope ~= nil and signe ~= nil then
voir_les_logs("--- --- --- ".. signe .." : ".. horoscope,debugging)
commandArray[indexArray] = {['UpdateDevice'] = dz_horoscope_text..'|0|'..'mouarffe'..horoscope}
indexArray=indexArray+1
end
--end -- if time
return commandArrayet je la retrouve bien dans domoticz
Code : Tout sélectionner
{
"ActTime" : 1487468507,
"ServerTime" : "2017-02-19 02:41:47",
"Sunrise" : "07:51",
"Sunset" : "18:16",
"result" : [
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 255,
"CustomImage" : 0,
"Data" : "mouarffeVous auriez interet a examiner une proposition sous toutes ses coutures a etablir un programme d actions precises et a vous structurer globalement davantage.",
"Description" : "",
"Favorite" : 0,
"HardwareID" : 5,
"HardwareName" : "DD-WMDS",
"HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
"HardwareTypeVal" : 15,
"HaveTimeout" : false,
"ID" : "00082178",
"LastUpdate" : "2017-02-19 02:41:10",
"Name" : "Horoscope",
"Notifications" : "false",
"PlanID" : "0",
"PlanIDs" : [ 0 ],
"Protected" : false,
"ShowNotifications" : false,
"SignalLevel" : "-",
"SubType" : "Text",
"Timers" : "false",
"Type" : "General",
"TypeImg" : "text",
"Unit" : 1,
"Used" : 1,
"XOffset" : "0",
"YOffset" : "0",
"idx" : "178"
}
],
"status" : "OK",
"title" : "Devices"
}Dans le doute j'ai essayé sur d'autre cellule, pareil, puis essayé une autre valeur data sur cette cellule, elle s'affiche.Donc j'ai supposé que le probleme etait dans le code.
Dans le doute j'ai fait mon barbare et j'ai ajouté un texte supplementaire dans l'update data 'mouarf"
on passe donc de
Code : Tout sélectionner
commandArray[indexArray] = {['UpdateDevice'] = dz_horoscope_text..'|0|'..horoscope}Code : Tout sélectionner
commandArray[indexArray] = {['UpdateDevice'] = dz_horoscope_text..'|0|'..'mouarffe'..horoscope}valeur rentrée dans le JS :
['178','Data', 'cell4_3', '','','','',''],
resultat :
[edit] image supprimée [/edit]
P.S : on notera l'ironie du message de l'horoscopie qui me provoque quand meme la ;p
'Vous auriez intérêt à examiner une proposition sous toutes ses coutures, à établir un programme d actions précises et à vous structurer globalement davantage'