prévision de température

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
jppacaut
Messages : 20
Inscription : 20 janv. 2017, 09:13

prévision de température

Message par jppacaut »

bonjour,
j'ai repris un script en lua de prévision de givre et l'ai modifié car seul la prévision de température à 05h le lendemain matin m'intéresse.
tout va bien sauf que je veux m'envoyer un mail avec la valeur de la température prévue. j'arrive à envoyer le mail mais pas la valeur de température.
Qui peut m'aider
merci
JPP
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: prévision de température

Message par boum »

Le fichier zip à l'air d'être vide.
Sans le script d'origine, je tente une réponse à l'aveugle…

Pour avoir la température dans le message, il suffit de faire :

Code : Tout sélectionner

local temp = 25 -- remplacer par la fonction qui renvoie la prévision
local msgTemp = 'La température sera de ' .. temp ..  '°C'
et utiliser msgTemp pour la notification.
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
jppacaut
Messages : 20
Inscription : 20 janv. 2017, 09:13

Re: prévision de température

Message par jppacaut »

merci pour ta réponse
avant d'aller plus loin j'essaie de t'envoyer le script
merci
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: prévision de température

Message par denis_brasseur »

Peut être comme ceci :

Code : Tout sélectionner

commandArray['SendEmail']='temperature#temperature demain :'..temp..'#tonadressemail@gmail.com'

***** ATTENTION, tu affiche ton adresse mail en clair, et ton API, modifie ton message initial !! *****

Je tenterais ceci, sauf que je ne sais pas a quoi correspond temp_alert[19] :

Code : Tout sélectionner

--Principe :--a une heure donnée, va chercher les previsions de temperature pour dans 12h 
  
--------------------------------------------
------------ Variables à éditer ------------
-------------------------------------------- 
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local temp_alert_idx =19
local heure =17 ---heure de declenchement
local minute =00 -- minute de declenchement
local api ="xxxxxxxx"
local lat =999999999
local long =888888888
   
--------------------------------------------
----------- Fin variables à éditer ---------
-------------------------------------------- 
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- for PI
 
commandArray = {}
 
now=os.date("*t")
if (now.min == minute and now.hour == heure) then
--if now.min % 1 == 0 then -- toutes les minutes
	config=assert(io.popen('/usr/bin/curl https://api.forecast.io/forecast/'..api..'/'..lat..','..long..'?units=ca&exclude=currently,minutely,daily,alerts,flags'))
	blocjson = config:read('*all')
	config:close()
	jsonValeur = json:decode(blocjson)
	temp = jsonValeur.hourly.data[12].apparentTemperature
	-- dew = jsonValeur.hourly.data[12].dewPoint
	-- print('temper: '..temp..' dew: '..dew) 
	print("temper: "..temp)

	--commandArray[2] = {['UpdateDevice'] = temp_alert_idx .. "|0|" ..temp} -- Mise à jour température prévue
	commandArray[#commandArray+1]={['UpdateDevice'] = temp_alert_idx .. "|0|" ..temp}
	--commandArray['SendEmail']='temperature#(temperature demain:{{temp_alert[19]}})#xxxxx@gmail.com'
	commandArray[#commandArray+1] = {'temperature#temperature demain :'..temp..'#tonadressemail@gmail.com'}
end

Dernière modification par denis_brasseur le 17 août 2019, 08:45, modifié 3 fois.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: prévision de température

Message par papoo »

pour info, le script original est la
viewtopic.php?f=10&t=3295
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
jppacaut
Messages : 20
Inscription : 20 janv. 2017, 09:13

Re: prévision de température

Message par jppacaut »

merci à Denis pour ton aide
j'ai tenté ton script et je reçois le message suivant dans les logs de domoticz:
2019-08-17 11:25:58.753 Error: EventSystem: commandArray in script /home/pi/domoticz/scripts/lua/script_device_temperature.lua should only return ['string']='actionstring' or [integer]={['string']='actionstring'}

????

je suis débutant en programmation
JP
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: prévision de température

Message par denis_brasseur »

Chez moi, le script fonctionne, et me retourne la valeur de la température.
2019-08-17 13:36:03.033 Status: LUA: temper: 23.31
Script implémenté depuis l'interface domoticz, Réglages, Plus d'options, Événements, type Trigger : Time.

Ton device est bien de type : Custom Sensor ?
Active la ligne :

Code : Tout sélectionner

print("temper: "..temp)
Et désactive la mise a jour du Device, afin de voir le résultat

Code : Tout sélectionner

--commandArray[#commandArray+1]={['UpdateDevice'] = temp_alert_idx .. "|0|" ..temp}
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
jppacaut
Messages : 20
Inscription : 20 janv. 2017, 09:13

Re: prévision de température

Message par jppacaut »

je me suis mal fait comprendre
le premier script que j'ai publié me retourne bien la valeur de la température dans les log de domoticz et sur une custom page mais je n'arrive pas à m'envoyer la valeur de la température par mail
je reçois le message temp et non la température chiffrée.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: prévision de température

Message par papoo »

je dirais

Code : Tout sélectionner

commandArray['SendEmail']='temperature#temperature dans 12 heures : '..temp..'#jppacaut@gmail.com'
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: prévision de température

Message par denis_brasseur »

papoo à raison.
@ jppacaut
Mais lis les messages jusqu'au bout.
Dans mon premier message, j'ai écrit ceci :
denis_brasseur a écrit : 16 août 2019, 21:33 Peut être comme ceci :

Code : Tout sélectionner

commandArray['SendEmail']='temperature#temperature demain :'..temp..'#tonadressemail@gmail.com'
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Répondre