Page 1 sur 1

Envoi de SMS en fonction de T° et visibilité de Weather Underground

Publié : 07 déc. 2015, 12:13
par Kippei
Bonjour à tous,

J'ai un petit problème pour terminer mon script lua qui permet de m'envoyer, tous les matins, un SMS en fonction de la T° et de la visibilité qu'il a fait pendant la nuit.

Le script permet, entre 20h et 6h, de vérifier la température de la sonde Weather Underground ainsi que la distance de visibilité (et c'est ce dernier point qui pose soucis pour le moment).

Code : Tout sélectionner

-------------------------------------------
------ script_device_alertemeteo.lua ------
-------------------------------------------
--- Scirpt de gestion des alertes meteo ---
-------------------------------------------

--------------------------------
---- Variables utilisateur -----
--------------------------------
-- Sonde extérieure
local sonde_exterieur = 'Exterieur'
local visibilite_exterieur = 'Exterieur / Visibilite'
-- VARIABLES RETOUR INFORMATION
local Alerte_Meteo = uservariables['Alerte_Meteo']
-- VARIABLES CALCULS
local Heure = 0
local Minutes = 0

commandArray = {}
	if((devicechanged[sonde_exterieur]) or (devicechanged[visibilite_exterieur])) then
		Heures = tonumber(os.date("%H"))
		Minutes = tonumber(os.date("%M"))
		if((Heures >= 20) or (Heures < 6)) then
			local temperature_exterieur = devicechanged[string.format('%s_Temperature', sonde_exterieur)]
			local vision_exterieur = otherdevices_svalues[visibilite_exterieur] -- L'erreur était sur cette ligne, commentaire à supprimer.
			if((Alerte_Meteo == 0) and (temperature_exterieur > 4) and (vision_exterieur <= 5)) then
				commandArray['Variable:Alerte_Meteo'] = tostring(1)
				print('!*!*!*!*!*!*!*! SCRIPT PREVENTION METEO !*!*!*!*!*!*!*!')
				print('Risque de verglas, modification de la variable, visibilité: '..vision_exterieur)
			end
			if((Alerte_Meteo <= 1) and (temperature_exterieur <= 4) and (vision_exterieur > 5)) then
				commandArray['Variable:Alerte_Meteo'] = tostring(2)
				print('!*!*!*!*!*!*!*! SCRIPT PREVENTION METEO !*!*!*!*!*!*!*!')
				print('Risque de neige, modification de la variable, température: '..temperature_exterieur)
			end
			if((Alerte_Meteo <= 2) and (temperature_exterieur <= 4) and (vision_exterieur <= 5)) then
				commandArray['Variable:Alerte_Meteo'] = tostring(3)
				print('!*!*!*!*!*!*!*! SCRIPT PREVENTION METEO !*!*!*!*!*!*!*!')
				print('Risque de brouillard & neige, modification de la variable, visibilité: '..vision_exterieur..', température: '..temperature_exterieur)
			end
			if((Alerte_Meteo <= 3) and (temperature_exterieur < 0) and (vision_exterieur > 5)) then
				commandArray['Variable:Alerte_Meteo'] = tostring(4)
				print('!*!*!*!*!*!*!*! SCRIPT PREVENTION METEO !*!*!*!*!*!*!*!')
				print('Risque de verglas, modification de la variable, température: '..temperature_exterieur)
			end
			if((Alerte_Meteo <= 4) and (temperature_exterieur < 0) and (vision_exterieur <= 5)) then
				commandArray['Variable:Alerte_Meteo'] = tostring(5)
				print('!*!*!*!*!*!*!*! SCRIPT PREVENTION METEO !*!*!*!*!*!*!*!')
				print('Risque de brouillard & verglas, modification de la variable, visibilité: '..vision_exterieur..', température: '..temperature_exterieur)
			end
		end
		if((Heures == 6) and (Minutes >= 5) and (Alerte_Meteo >= 1)) then
			if(Alerte_Meteo == 1) then -- Risque de brouillard
				print("Envoi de SMS, risque de brouillard")
				commandArray['Variable:Alerte_Meteo'] = tostring(0)
			end
			if(Alerte_Meteo == 2) then -- Risque de neige
				print("Envoi de SMS, risque de neige")
				commandArray['Variable:Alerte_Meteo'] = tostring(0)
			end
			if(Alerte_Meteo == 3) then -- Risque de neige et de brouillard
				print("Envoi de SMS, risque de brouillard et de neige")
				commandArray['Variable:Alerte_Meteo'] = tostring(0)
			end
			if(Alerte_Meteo == 4) then -- Risque de verglas
				print("Envoi de SMS, risque de verglas")
				commandArray['Variable:Alerte_Meteo'] = tostring(0)
			end
			if(Alerte_Meteo == 5) then -- Risque de varglas et de brouillard
				print("Envoi de SMS, risque de brouillard et de verglas")
				commandArray['Variable:Alerte_Meteo'] = tostring(0)
			end
		end
	end
return commandArray
L'envoi de SMS se fait par l'intermédiaire de Free Mobile (et de ses notifications SMS, très pratique).

Je souhaites donc savoir si vous aviez des informations au sujet de la récupération des informations de la visibilité pour WU.
Image

Pour ces lignes, je n'arrive donc pas à trouver comment modifier la deuxième afin d'y intégrer la visibilité.
local temperature_exterieur = devicechanged[string.format('%s_Temperature', sonde_exterieur)]
local vision_exterieur = ???


Du coup, si quelqu'un à la solution à ce petit problème, je suis fortement preneur!

Re: Envoi de SMS en fonction de T° et visibilité de Weather Underground

Publié : 11 déc. 2015, 21:15
par patrice
Bonsoir
Si tu fais un print de ta variable que contient elle ?

Re: Envoi de SMS en fonction de T° et visibilité de Weather Underground

Publié : 11 déc. 2015, 22:04
par Neutrino
J’essaierais ça :

Code : Tout sélectionner

local vision_exterieur = otherdevices_svalues[visibilite_exterieur]
Et comme dit patrice, un print pour contrôler tout ça.

Re: Envoi de SMS en fonction de T° et visibilité de Weather Underground

Publié : 12 déc. 2015, 10:02
par Kippei
Bonjour!

Merci pour les réponses. Et la ligne proposée par Neutrino fonctionne à merveille. Pourquoi chercher compliqué quand, avec du simple, cela fonctionne aussi bien!

Mon script est à jour sur mon Domoticz, parfait! J'ai mis à jour le premier post aussi, si ce script peut intéresser quelqu'un.