[LUA] Horoscope du jour pour un signe donné

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.
Paldor
Messages : 64
Inscription : 06 mai 2019, 16:54

Re: [LUA] Horoscope du jour pour un signe donné

Message par Paldor »

Bonjour, voici l'erreur dans les logs, oui les dispositifs qui ne sont plus mis à jour ?

2021-07-26 07:20:02.862 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_horoscope.lua: /home/pi/domoticz/scripts/lua/fonctions/fonctions_perso.lua:503: bad argument #1 to 'sub' (string expected, got nil)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] Horoscope du jour pour un signe donné

Message par Keros »

En remontant le fil, je vois que tu as déjà eu cette erreur. Tu as fait une mise à jour, un changement ?

Tu peux nous remettre les deux scripts ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Paldor
Messages : 64
Inscription : 06 mai 2019, 16:54

Re: [LUA] Horoscope du jour pour un signe donné

Message par Paldor »

Bonjour Keros, non je n'ai rien changer , et j'ai 2 rasberry qui tourne 1 pour faire les essais et idem

Image


mon code erreur

Code : Tout sélectionner

2021-07-27 13:20:03.097 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_horoscope.lua: /home/pi/domoticz/scripts/lua/fonctions/fonctions_perso.lua:503: bad argument #1 to 'sub' (string expected, got nil)

mon code

Code : Tout sélectionner

--[[												
name : script_time_horoscope.lua
auteur : papoo
Mise à jour : 10/05/2018
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 échéant selon le niveau de notification choisi
 Fil de discussion : https://easydomoticz.com/forum/viewtopic.php?f=17&t=2176&p=34662#p34662
]]--

-- chargement des modules (http://easydomoticz.com/forum/viewtopic.php?f=17&t=3940)
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

local debug = true  -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir


--------------------------------------------
------------ 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 Balance', signe = 'balance'} 	-- Idx 496
les_horoscopes[#les_horoscopes+1] = {device = 'Horoscope Lion', signe = 'lion'} 		-- Idx 418
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = 'Horoscope'
local version = '1.25'
local horoscope = ''
local device = ''
local signe = ''
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
package.path = package.path..";/home/pi/domoticz/scripts/lua/fonctions/?.lua"
require('fonctions_perso')
--https://github.com/papo-o/domoticz_scripts/blob/master/Lua/fonctions/fonctions_perso.lua

--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------

commandArray = {}
time = os.date("*t")
if script_actif == true then
    -- 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 exécutions 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 

        voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
        for k,v in pairs(les_horoscopes) do  -- On parcourt chaque horoscope
            device = v.device
            if device ~= nil and device ~= '' and otherdevices_idx[device] ~= nil then voir_les_logs('--- --- --- traitement '..device..'  --- --- --',debugging) 
                signe = v.signe
                if signe ~= '' then voir_les_logs('--- --- --- signe astrologique : '..signe..'  --- --- --',debugging) end            
                local rid = assert(io.popen("/usr/bin/curl -m5 https://astro.rtl.fr/horoscope-jour-gratuit/".. signe))
                local testhtml = rid:read('*all')
                rid:close()
                for instance in testhtml:gmatch("<body>(.-)</body>") do
                    div, horoscope=instance:match('<h2>En résumé</h2>(.-)<p class="text">(.-)</p>')
                end	
                horoscope = TronquerTexte(unescape(horoscope), 240)
                if horoscope ~= nil  and signe ~= nil then
                    voir_les_logs("--- --- --- ".. signe .." : ".. horoscope,debugging)
                    if device ~= nil and device ~= '' then
                        commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[device]..'|0|'.. horoscope}
                    end
                    if send_notification > 0 then
                        commandArray[#commandArray+1] = {['SendNotification'] = 'horoscope pour le signe du '.. signe ..'#'.. horoscope}
                    end
                end
            else
                voir_les_logs('--- --- --- Le device '.. device ..' n\'existe pas dans domoticz  --- --- --',debugging)
            end
        end
        voir_les_logs("========= Fin ".. nom_script .." (v".. version ..") =========",debugging)
    end -- if time
end
return commandArray
Pièces jointes
donnée.png
donnée.png (33.23 Kio) Consulté 5176 fois
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: [LUA] Horoscope du jour pour un signe donné

Message par boum »

La page d'où est extraite l'information a probablement changé à cette date. Et il faudrait adapter le script. Je ne sais pas si papoo continue de maintenir ses scripts (pasqu'on dirait qu'il est passé à home-assistant d'après son github)
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] Horoscope du jour pour un signe donné

Message par Keros »

Oui, la page a dû changer : il n'y a plus le <h2>En résumé</h2>.

Je pense qu'il est possible de retrouver comment fonctionne le script de Papoo, mais cela demande du temps. L'idéal aussi serait d'avoir une ancienne page pour comparer :roll:

Le boulot serait d'arriver à extraire la partie intéressante à partie du card__body__header__resume

Code : Tout sélectionner

<div class="col card__body__header__resume">
                                                    <p>Vous avez jusqu&#039;à jeudi, 3e décan, pour aborder une explication avec l&#039;un de vos proches. Elle risque d&#039;être un peu houleuse étant donné que Mercure (la parole) est conjointe à Mars (l&#039;agressivité). Si vous parvenez à dire ce que vous avez à dire sans mal parler à votre interlocuteur, cela devrait bien se passer et, en plus, vous serez content de vous. 1e décan, le Soleil est avec vous jusqu&#039;à dimanche inclus, votre potentiel de séduction semble être décuplé. Mais ne cherchez pas à conclure tout de suite. 2e décan, surveillez une tendance à la distraction.</p>
                                                    </div>
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Paldor
Messages : 64
Inscription : 06 mai 2019, 16:54

Re: [LUA] Horoscope du jour pour un signe donné

Message par Paldor »

Bonsoir Keros, mais la c'est du charabiat pour moi ? je ne connait pas le lua :(
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] Horoscope du jour pour un signe donné

Message par Keros »

Malheureusement Papoo n'est pas venu sur le forum depuis plusieurs mois et comme là fait remarquer boum, il poste beaucoup de script pour Home Assistant sur son site. Et je viens de voir que son dernier post traite justement de l'horoscope avec Home Assistant. Il y a de fortes chances qu'il n'utilises plus celui pour DomoticZ :?

J'ai essayé de donner une piste en essayant d'analyser la problématique, mais désolé, je ne peux pas aller plus loin.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
jeje
Messages : 32
Inscription : 13 août 2021, 01:17
Localisation : nord

Re: [LUA] Horoscope du jour pour un signe donné

Message par jeje »

Bonjour ou bonsoir,je pense avoir trouver si çà intéresse quelqu'un encore il faut juste remplacer le :<h2>En résumé</h2>
par :<article> pour moi ça fonctionne .
J'ai aussi changer la valeur de :
TronquerTexte(unescape(horoscope)
et j'ai mis
800
a la place de 240 pour avoir tout le texte .
domoticz sur VM sur freebox delta
Répondre