LUA : Horoscope du jour pour un signe donné

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Répondre
papoo
Messages : 1893
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

LUA : Horoscope du jour pour un signe donné

Message par papoo » 26 juin 2016, 15:53

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 échéant selon le niveau de notification choisi

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 = 719	-- 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	

-- ======================================================================== 
-- 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://mon.astrocenter.fr/horoscope/quotidien/"..signe) 
				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()
--print_r(testHtml)
for instance in testHtml:gmatch("<body>(.-)</body>") do
div, horoscope=instance:match('horoscope du jour(.-)<p>(.-)</p>')
end	

	if horoscope ~= nil  and signe ~= nil then
		voir_les_logs("--- --- --- Horoscope pour le signe du ".. div,debugging)	
		voir_les_logs("--- --- --- ".. signe .." : ".. horoscope,debugging)
		
	commandArray[indexArray] = {['UpdateDevice'] = dz_horoscope_text..'|0|'.. horoscope}
	indexArray=indexArray+1
					if send_notification > 0 then
	commandArray[indexArray] = {['SendNotification'] = 'horoscope pour le signe du '.. signe ..'#'.. horoscope}
	indexArray=indexArray+1
					end
	end
	
end -- if time
return commandArray
Ce script a pour but de remonter les informations du site http://www.horoscope-gratuit.org/ dans un device texte
sur domoticz pour un signe donné et de nous alerter le cas échéant selon le niveau de notification choisi

Code : Tout sélectionner

--[[
name : script_time_horoscope.lua
auteur : papoo
version : 1.00
date : 26/06/2016
Principe :
 Ce script a pour but de remonter les informations du site http://www.horoscope-gratuit.org/ 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 = 719	-- 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	

-- ======================================================================== 
-- 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://www.horoscope-gratuit.org/horoscope-" ..signe..".php") 
				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
div, horoscope=instance:match('<strong>Horoscope(.-)</strong><br /><br />(.-)</div>')
end
	if horoscope ~= nil  and signe ~= nil then
		voir_les_logs("--- --- --- Horoscope pour le signe du ".. div,debugging)	
		voir_les_logs("--- --- --- ".. signe .." : ".. horoscope,debugging)
		
	commandArray[indexArray] = {['UpdateDevice'] = dz_horoscope_text..'|0|'.. horoscope}
	indexArray=indexArray+1
					if send_notification > 0 then
	commandArray[indexArray] = {['SendNotification'] = 'horoscope pour le signe du '.. signe ..'#'.. horoscope}
	indexArray=indexArray+1
					end
	end
	
end -- if time
return commandArray
Modifié en dernier par papoo le 29 juin 2016, 21:26, modifié 2 fois.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Chris54220
Messages : 121
Enregistré le : 20 mars 2016, 20:54
Localisation : Nancy

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

Message par Chris54220 » 26 juin 2016, 23:48

j'aurais une petit questions

a quoi sert

local indexArray=0
indexArray=indexArray+1

dans tes scripts je vois pas le but peux tu m'expliqué

je suis pas un pro donc j'essaye de comprendre tout les scripts que je trouve

Merci d'avance
Christopher

papoo
Messages : 1893
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

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

Message par papoo » 27 juin 2016, 13:16

chaque script Lua contient un commandArray = tableau de commande, d'où les apostrophes commandArray = {}
ce tableau de commande est exécuté en fin de script (return commandArray)
si les entrées de ce tableau de commande sont identique, seule la dernière commande est exécutée.
il existe plusieurs façons de différencier les entrées de commande, j'ai personnellement fais le choix d'une variable indexArray (que je déclare à zéro avant la première commande) que j'incrémente à chaque occurrence d'un commandArray afin d'etre sûr de l’exécution de l'ensemble des commandes, sans risque de doublon. (chaque nouvelle commande ayant un indexArray augmenté de 1 )
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Chris54220
Messages : 121
Enregistré le : 20 mars 2016, 20:54
Localisation : Nancy

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

Message par Chris54220 » 27 juin 2016, 13:20

oki merci pour cette info
Christopher

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


totof60
Messages : 321
Enregistré le : 29 avr. 2016, 09:31

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

Message par totof60 » 28 juin 2016, 08:57

Merci pour le script

Juste un petit detail ; les caractères accentués sont mal affichés dans Domoticz.

Ca viens de chez moi ou du site horoscope ?
Domoticz V4.9788
sous raspbian-Stretch, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY

Chrominator
Messages : 418
Enregistré le : 19 déc. 2015, 07:29

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

Message par Chrominator » 28 juin 2016, 19:02

Ca vient du site ; il utilise le jeu de caractères iso-8859-1 et il nous faut de l'utf-8. :ugeek:

papoo
Messages : 1893
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

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

Message par papoo » 28 juin 2016, 21:13

Chrominator a écrit :Ca vient du site ; il utilise le jeu de caractères iso-8859-1 et il nous faut de l'utf-8. :ugeek:
c'est exact et je n'ai pas encore trouvé comment changer cela
si vous connaissez un site fournissant un horoscope un peu plus clean que celui la je suis preneur
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

papoo
Messages : 1893
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

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

Message par papoo » 28 juin 2016, 22:08

Oublions le site précédent truffé de fautes
nouveau script avec le site http://mon.astrocenter.fr/

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 = 719	-- 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	

-- ======================================================================== 
-- 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://mon.astrocenter.fr/horoscope/quotidien/"..signe) 
				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()
--print_r(testHtml)
for instance in testHtml:gmatch("<body>(.-)</body>") do
div, horoscope=instance:match('horoscope du jour(.-)<p>(.-)</p>')
end	

	if horoscope ~= nil  and signe ~= nil then
		voir_les_logs("--- --- --- Horoscope pour le signe du ".. div,debugging)	
		voir_les_logs("--- --- --- ".. signe .." : ".. horoscope,debugging)
		
	commandArray[indexArray] = {['UpdateDevice'] = dz_horoscope_text..'|0|'.. horoscope}
	indexArray=indexArray+1
					if send_notification > 0 then
	commandArray[indexArray] = {['SendNotification'] = 'horoscope pour le signe du '.. signe ..'#'.. horoscope}
	indexArray=indexArray+1
					end
	end
	
end -- if time
return commandArray
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Doudy
Messages : 194
Enregistré le : 07 mai 2016, 17:23

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

Message par Doudy » 04 sept. 2016, 10:23

Bonjour,
Pour info
J'ai une errreur GCM lorsque je mets "local send_notification = 1"

Image

;)
PI 3 = RFXCOM
PI 3 + Touchscreen 7" affichage Domoticz
RFXCOM 433
Domoticz Version: 4.10717 - Python Version: 3.5.3

papoo
Messages : 1893
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

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

Message par papoo » 04 sept. 2016, 11:08

Est -ce que tu utilise l'application Android Domoticz?
voila la seule chose que je trouve à propos de cette erreur GCM
https://www.domoticz.com/forum/viewtopic.php?t=10505
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre