[LUA] Horaires de marées

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.
Répondre
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

[LUA] Horaires de marées

Message par Neutrino »

Bonjour,

Je mets à disposition de la communauté ce petit script sans prétention.
Il permet d'afficher dans un capteur text le coefficient de marées ainsi que les horaires de pleine mer et basse mer.

Code : Tout sélectionner

local scriptName = 'maree'
local scriptVersion = '2.0'

--                                        Dummy à créer :
local textDeviceIdx = 133
local port = 122

return {
	active = false,
	logging = {
		level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting
		marker = scriptName..' '..scriptVersion
	},	
	on = {

		timer = {'every 6 hours'},
		httpResponses = {
			scriptName,
		},		
	},

	execute = function(domoticz, item) 

		if item.isTimer then
			local url = "http://horloge.maree.frbateaux.net/ws"..port..".js"
			domoticz.log('Requesting data from maree.fr', domoticz.LOG_DEBUG)
			domoticz.openURL({url = url, method = 'GET', callback = scriptName}).afterSec(7)

		end

		if not item.isHTTPResponse then return end

		local response = item
		if (not response.ok) or (response.trigger ~= scriptName) then
			domoticz.log('Last http response was not what expected. Trigger: '..response.trigger, domoticz.LOG_ERROR)
			domoticz.log(response.data, domoticz.LOG_ERROR)
			return
		end

		if response.trigger == scriptName then
			local horaires = ""
			local coeff = ""
			domoticz.log('maree data has been received', domoticz.LOG_DEBUG)
			local contents = response.data
			--domoticz.log('data : '..contents, domoticz.LOG_DEBUG)
			for _,v in ipairs(response.lines) do
				--domoticz.log(v)
				if (string.find(tostring(v),"Coef")~= nil ) then
					domoticz.log ("coeff : "..v:sub(46):gsub(";",""))
					coeff = v:sub(46):gsub(";","")
				end
				if (string.find(tostring(v),"marégramme")~= nil ) then
					domoticz.log ("horaires : "..v:sub(48,v:find("<div")-1):gsub("<b>",""):gsub("</b>",""):gsub("<br>"," "))
					horaires = v:sub(48,v:find("<div")-1):gsub("<b>",""):gsub("</b>",""):gsub("<br>"," ")
				end
				
			end
			domoticz.devices(textDeviceIdx).updateText('Coeff '..coeff.." "..horaires)

			
		end
		
	end
}

Pour trouver le numéro de votre port favoris, il faut aller sur maree.info, taper le nom du port (ou de la ville) et cliquer dessus.
L'URL de la page ouverte sera de type : http://maree.info/122
Vous avez deviné, 122 est le numéro à mettre après "port ="
Dernière modification par Neutrino le 26 juil. 2016, 19:07, modifié 1 fois.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Horaires de marées

Message par deennoo »

Bah voilà ! Liée a une webcam sur la nord de Bisca, je saurais si j'ai le temps d'aller profité du swell !
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Grincheux

Re: Horaires de marées

Message par Grincheux »

Merci pour le partage, je vais testé.
Je le verrais bien sur la custom page de Vil1driver.
oula85
Messages : 161
Inscription : 29 avr. 2015, 18:09
Localisation : Challans

Re: Horaires de marées

Message par oula85 »

Bien vu voisin !!! Ca peut etre utile effectivement
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: Horaires de marées

Message par Stef17 »

Ce serait sympas effectivement... mais les info s'affiche ou ??? j'ai mis le script dans home/pi/domoticz/script/lua/ sous le nom script_time_marees.lua ... j'ai essayé de le lancer via un interrupteur avec dans action on : script:///home/pi/domoticz/script/lua/script_time_marees.lua comme expliqué pour les débutants sur http://easydomoticz.com/domoticz-et-scripts-les-bases/ mais y a rien qui se passe !
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Horaires de marées

Message par deennoo »

c'est ecrit dans le script :

Code : Tout sélectionner

if (time.hour % 6 ==0 and time.min == 1) then
il s'execute une fois par jour a 6h du matin

est ce que tu as cree un dumy text ? reglages>>materiels>>dummy>>cree un capteur>>text

Ici on parle de scripts en LUA le langague natif dans domoticz donc :

http://easydomoticz.com/?s=lua

Bonne Lecture
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Horaires de marées

Message par Neutrino »

En fait il s'exécute à 00:01, 06:01, 12:01 et 18:01 ;)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: Horaires de marées

Message par Stef17 »

Donc si j'ai bien compris je fait ça dans la partie événement en lua que j'appelle "script_time_marees" je suppose qu'il ajouteras tout seul l'extension... mais cela ne me dis pas comment l'afficher... j'ai bien créer un dumy text qui est maintenant dans "Mesure" que j'ai appelé "Maree" et qui affiche "hello world"... mais comment le script va s'y afficher ???

Eureka... en indiquant dans le script l'idx du dumy text ??? c'est bien cela ???
textDeviceIdx = L'idx du dumy que j'ai créé

Je suis vraiment nul en script et je ne penses pas être le seul ;-) j'avais impimé dans ma tete le numero du port mais quand on débute en prog sur un truc particulier comme domoticz... on ne sait pas ce que c'est l'idx...
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Horaires de marées

Message par Neutrino »

C'est bien ça ! ;)
En fait Domoticz propose 2 manières de stocker les scripts LUA :
- Soit via l'interface Événements, les scripts sont alors stocker dans la BDD.
- soit en mettant des fichiers texte dans le répertoire /domoticz/scripts/lua/ .
Perso, je préfère les fichiers, plus facilement copiables, modifiables, "sauvegardables"...
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: Horaires de marées

Message par Stef17 »

Donc j'aurais pu faire en mettant le script dans /domoticz/scripts/lua/

Moi aussi je préfère en fichier brut... c'est plus dans mon esprit ;-)

Pour les sauvegardes, existe t il une façon simple sur raspberry pour copier ce genre de fichier sur partage réseau (synology) ?
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
Répondre