Re: LUA : Horoscope du jour pour un signe donné
Publié : 01 avr. 2017, 19:28
Idem pour moi sur un SynoLSBdu68 a écrit :Salut Papoo
Ton nouveau script me bloque le PI !!
Reprenez le contrôle de votre domotique
https://easydomoticz.com/forum/
Idem pour moi sur un SynoLSBdu68 a écrit :Salut Papoo
Ton nouveau script me bloque le PI !!
j'ai édité le code pour éviter cette erreurlocal fname ="/tmp/horoscope.xml"
--local fname ="/media/Freebox/Trend/horoscope.xml"
Dans index.html, tu as au debut la déclaration des javascript que tu utilises, nous c'est frontpage.js et pas frontpage.min.js (version optimisée) que tu commentes par.<!-- Tu as dû faire une erreur...Doudy a écrit :Lorsque je fais ça, je n'ai plus d'image fond d'écran (fond d'écran noir)Jeff a écrit : Sinon il faut aussi penser à changer ceci dans index.htmlCode : Tout sélectionner
<script src="js/frontpage.js"></script> <!--<script src="js/frontpage.min.js"></script>-->
Moi à la ligne 585 j'ai ceci :Et rajouter la condition du "S" dans frontpage.js ligne 585Code : Tout sélectionner
if ($.PageArray[ii][0] === item.idx || $.PageArray[ii][0] === item.Name|| $.PageArray[ii][0] === "S")Je suppose que ce n'est pas là que je mets cette condition !Code : Tout sélectionner
var vdesc= $.PageArray[ii][3]; // description
Mais où ? J'ai ceci :Code : Tout sélectionner
function fct() { if ($.PageArray[ii][0] === item.idx || $.PageArray[ii][0] === item.Name) { // Domoticz idx number or device name var vtype= $.PageArray[ii][1]; // Domotitcz type (like Temp, Humidity) var vlabel= $.PageArray[ii][2]; // cell number from HTML layout var vdesc= $.PageArray[ii][3]; // description var lastseen= $.PageArray[ii][4]; // display lastseen or noT var vplusmin= $.PageArray[ii][5]; // minplus buttons var vattr= $.PageArray[ii][6]; // extra css attributes var valarm= $.PageArray[ii][7]; // alarm value to turn text to red var vdata= item[vtype]; // current value var vstatus= item.Status; var vls= item.LastUpdate; // ´Last Seen´ var vdimmercurrent= item.LevelInt; // What is the dim level //console.log(item.Name+' : '+vdata); if(vtype === 'Euro'){ vdata=item.Data; } etc....
Code : Tout sélectionner
function fct() {
if ($.PageArray[ii][0] === item.idx || $.PageArray[ii][0] === item.Name) { // Domoticz idx number or device nameCode : Tout sélectionner
if ($.PageArray[ii][0] === item.idx || $.PageArray[ii][0] === item.Name|| $.PageArray[ii][0] === "S")Code : Tout sélectionner
--[[
name : script_time_horoscope.lua
auteur : papoo
Mise à jour : 01/04/2017 Changement de site + troncage de texte
date : 26/06/2016
Principe :
Ce script a pour but de remonter les informations du site https://astro.rtl.fr/horoscope-jour-gratuit/ dans un device texte
sur domoticz pour un signe donné et de nous alerter le cas écheant selon le niveau de notification choisi
Fil de discussion : https://easydomoticz.com/forum/viewtopic.php?f=17&t=2176&p=34662#p34662
]]--
-- ========================================================================
-- Variables à éditer
-- ========================================================================
local nom_script = "Horoscope"
local version = "1.15"
local signe = "lion" --[[ renseigner le signe choisi en minuscule sans accent : belier, taureau, gemeaux, cancer, lion, vierge,
balance, scorpion, sagittaire, capricorne, verseau, poissons ]]--
local horoscope_device = 418 -- renseigner l'id du device texte associé (dummy - text)
local horoscope_variable = nil -- renseigner le nom de la variable associée ou nil
local send_notification = 0 -- 0: notifications désactivées, 1: notifications actives
local debugging = true -- 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 TronquerTexte(texte, nb) --texte à tronquer, nb limite de caractère à afficher
local sep ="[;!?.]"
local DernierIndex = nil
texte = string.sub(texte, 1, nb)
local p = string.find(texte, sep, 1)
DernierIndex = p
while p do
p = string.find(texte, sep, p + 1)
if p then
DernierIndex = p
end
end
return(string.sub(texte, 1, DernierIndex))
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% 5 == 0 then
voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
local fname ="/tmp/horoscope.xml"
voir_les_logs('--- --- --- debut recuperation du fichier horoscope.xml --- --- ---',debugging);
os.execute("wget -q -O " .. fname .. " https://astro.rtl.fr/horoscope-jour-gratuit/"..signe)
voir_les_logs("Fichier local : " ..fname,debugging)
local f = io.open(fname, "r")
if f == nil then
voir_les_logs("Error opening file '" .. fname .. "'.",debugging)
os.exit(1)
end
local testhtml = f:read("*all")
f:close()
voir_les_logs('--- --- --- fin recuperation du fichier horoscope.xml --- --- ---',debugging);
for instance in testhtml:gmatch("<body>(.-)</body>") do
voir_les_logs('--- --- --- boucle for --- --- --',debugging);
div, horoscope=instance:match('<h2>En résumé</h2>(.-)<p class="text">(.-)</p>')
end
horoscope = TronquerTexte(horoscope, 240)
if horoscope ~= nil and signe ~= nil then
voir_les_logs("--- --- --- ".. signe .." : ".. horoscope,debugging)
if horoscope_device ~= nil then
commandArray[indexArray] = {['UpdateDevice'] = horoscope_device..'|0|'.. horoscope}
indexArray=indexArray+1
end
if horoscope_variable ~= nil then
commandArray[indexArray] = {['Variable:'.. horoscope_variable] = tostring(horoscope)}
indexArray=indexArray+1
end
if send_notification > 0 then
commandArray[indexArray] = {['SendNotification'] = 'horoscope pour le signe du '.. signe ..'#'.. horoscope}
indexArray=indexArray+1
end
end
voir_les_logs("========= Fin ".. nom_script .." (v".. version ..") =========",debugging)
end -- if time
return commandArrayCode : Tout sélectionner
sudo chmod +x /home/pi/domoticz/scripts/lua/script_time_horoscope.luaCode : Tout sélectionner
sudo chmod +x /home/pi/domoticz/scripts/lua/script_time_horoscope.lua
Code : Tout sélectionner
------------ Variables à éditer ------------
--------------------------------------------
local debugging = false -- 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 send_notification = 0 -- 0: notifications désactivées, 1: notifications actives
local les_horoscopes = {} --[[ renseigner le signe choisi en minuscule sans accent : belier, taureau, gemeaux, cancer, lion, vierge,
balance, scorpion, sagittaire, capricorne, verseau, poissons ]]--
les_horoscopes[#les_horoscopes+1] = {device = 'Horoscope 1', signe = 'lion'}
les_horoscopes[#les_horoscopes+1] = {device = 'Horoscope 2', signe = 'balance'}
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = 'Horoscope'
local version = '1.25'
local horoscope = ''
local device = ''
local signe = ''
--------------------------------------------
Code : Tout sélectionner
2019-07-10 14:45:00.450 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_horoscope.lua: /home/pi/domoticz/scripts/lua/script_time_horoscope.lua:33: module 'fonctions_perso' not found:
2019-07-10 14:45:00.450 no field package.preload['fonctions_perso']
2019-07-10 14:45:00.450 no file '/usr/local/share/lua/5.2/fonctions_perso.lua'
2019-07-10 14:45:00.450 no file '/usr/local/share/lua/5.2/fonctions_perso/init.lua'
2019-07-10 14:45:00.450 no file '/usr/local/lib/lua/5.2/fonctions_perso.lua'
2019-07-10 14:45:00.450 no file '/usr/local/lib/lua/5.2/fonctions_perso/init.lua'
2019-07-10 14:45:00.450 no file './fonctions_perso.lua'
2019-07-10 14:45:00.450 no file '/home/pi/domoticz/scripts/lua/fonctions/fonctions_perso.lua'
2019-07-10 14:45:00.450 no file '/usr/local/lib/lua/5.2/fonctions_perso.so'
2019-07-10 14:45:00.450 no file '/usr/local/lib/lua/5.2/loadall.so'
2019-07-10 14:45:00.450 no file './fonctions_perso.so'