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]
fredandrick65
Messages : 116
Enregistré le : 23 avr. 2016, 20:45

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

Message par fredandrick65 » 01 avr. 2017, 19:28

LSBdu68 a écrit :Salut Papoo

Ton nouveau script me bloque le PI !!
Idem pour moi sur un Syno
Domoticz V3.8153 sur Synology DS3615xs DSM 5.2-5967 Update 3
RFLink_v1.1_r46 (433.92 & 433.42 Mhz)
Sonde Oregon THGR810-Prise Everspring-OWL CM180
Humidité du sol Opus XT300-Sondes Oregon pour les nuls V2

Les non-dit font les pires malentendus ! ;)

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.


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 » 01 avr. 2017, 19:38

j'ai un partage sur ma freebox pour le fichier temporaire, avez vous personnalisé le script pour votre propre usage?
local fname ="/tmp/horoscope.xml"
--local fname ="/media/Freebox/Trend/horoscope.xml"
j'ai édité le code pour éviter cette erreur
si vous utilisez la variable pensez à la créer auparavant
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Jeff
Messages : 711
Enregistré le : 17 nov. 2016, 20:54
Localisation : Rennes (35)

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

Message par Jeff » 01 avr. 2017, 20:55

Doudy a écrit :
Jeff a écrit : Sinon il faut aussi penser à changer ceci dans index.html

Code : Tout sélectionner

<script src="js/frontpage.js"></script>
<!--<script src="js/frontpage.min.js"></script>-->
Lorsque je fais ça, je n'ai plus d'image fond d'écran (fond d'écran noir)
Et rajouter la condition du "S" dans frontpage.js ligne 585

Code : Tout sélectionner

if ($.PageArray[ii][0] === item.idx || $.PageArray[ii][0] === item.Name|| $.PageArray[ii][0] === "S")
Moi à la ligne 585 j'ai ceci :

Code : Tout sélectionner

var vdesc=      $.PageArray[ii][3];                     // description
Je suppose que ce n'est pas là que je mets cette condition !
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....										
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...

Après pour la ligne 585, fais preuve d'adaptation tu vois bien que tu dois trouver la condition comme la mienne c'est-à-dire ici pour toi

Code : Tout sélectionner

function fct() {
	if ($.PageArray[ii][0] === item.idx || $.PageArray[ii][0] === item.Name) {	// Domoticz idx number or device name
Rajoutes la condition

Code : Tout sélectionner

if ($.PageArray[ii][0] === item.idx || $.PageArray[ii][0] === item.Name|| $.PageArray[ii][0] === "S")
Regarde le code utilise la fonction recherche : ctrl + f et tu vas y arriver.
Version: 4.9700; RFXCOM Rfxtrx433e ext/1007 ; Zwave (Z-stick GEN5, Fibaro...), Zigbee2MQTT.

LSBdu68
Messages : 165
Enregistré le : 17 janv. 2015, 23:45
Localisation : Alsace

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

Message par LSBdu68 » 01 avr. 2017, 22:15

Papoo,

J'ai rien compris à ta réponse .... :oops:
J'ai uniquement personnalisé l'IDX ...

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.


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 » 01 avr. 2017, 23:32

copie de nouveau le script j'ai supprimer ma personnalisation, ça devrait fonctionner pour toi maintenant
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

LSBdu68
Messages : 165
Enregistré le : 17 janv. 2015, 23:45
Localisation : Alsace

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

Message par LSBdu68 » 01 avr. 2017, 23:51

Papoo,

Impec, merci à toi, maintenant je vais essayer de mettre ça dans la custom page .... :?:

ardiced
Messages : 3
Enregistré le : 18 sept. 2018, 18:17

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

Message par ardiced » 20 mai 2019, 21:10

Bonjour à tous,

J'ai un petit soucis avec l'horoscope de @Nemesis24,
Il me remonte un defaut dans la console.
Console.jpg
Console.jpg (196.27 Kio) Vu 876 fois
Je vois bien qu'il ne comprend pas quel signe je veux, mais après plusieurs essais, je suis dans l'impasse.

Merci,

PS: il s'agit d'un excelent travail et le résultat est formidable

Paldor
Messages : 34
Enregistré le : 06 mai 2019, 16:54

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

Message par Paldor » 08 juil. 2019, 23:15

Bonjour Papoo, j'ai un message d'erreur que je ne comprend pas dans le script_time_horoscope.lua.

Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_horoscope.lua: /home/pi/domoticz/scripts/lua/script_time_horoscope.lua:38: bad argument #1 to 'sub' (string expected, got nil)

Je ne connais rien en Lua je vient de découvrir la domotique et surtout Domoticz et bien entendu Monitor

ma config :

Raspberry Pi 3+
RFXtrx433XL ProXL1
OWL Micro+ CM180
9 prise DI-O + télécommande
Plusieurs Modul éclairage DI-O & Modul prise DI-O
Z-Wave USB Dongle ZU1401


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 commandArray

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 » 09 juil. 2019, 21:31

ce n'est pas la dernière version du script, tu trouveras la version 1.25 sur mon github
https://github.com/papo-o/domoticz_scri ... oscope.lua

as tu fait un

Code : Tout sélectionner

sudo chmod +x  /home/pi/domoticz/scripts/lua/script_time_horoscope.lua
?
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Paldor
Messages : 34
Enregistré le : 06 mai 2019, 16:54

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

Message par Paldor » 10 juil. 2019, 15:00

Bonjour papoo, j'ai lancer télécharger la dernière version et lancer la commande

Code : Tout sélectionner

sudo chmod +x  /home/pi/domoticz/scripts/lua/script_time_horoscope.lua
tu peux m'expliquer ce que fait cette commande.

J'ai juste changer les signes et renomer mes devices texte en Horoscope 1, et Horoscope 2

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 = ''
--------------------------------------------
Mais j'ai un message d'erreur que je ne sais pas exploiter, y a t'il quelle que chose que je ne fait pas correctement, faut il mettre mes Idx qu'elle que part, merci pour ton aide cela fait un mois que je suis dessus ne connaissant pas Lua je galère un peux beaucoup à 62 ans c'est un peut dur pour moi

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' 

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