Page 2 sur 12

Re: RE: Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 10:32
par deennoo
vil1driver a écrit :Curl pour Windows existe !

Souvent mentionné sur ce forum.. et je ne parle même pas de google :oops:

https://curl.haxx.se/download.html
Effectivement j'avais vu cela, mais essayer sur le script givre auto (qui a eu une correction hier)

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 13:08
par le belge
Salut Mr deennoo ,

je pense qu'il y a un souci avec le script sur ton site ...

Le Belge

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 13:17
par papoo
@deennoo
Tu as reçu mes mails?

Re: RE: Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 13:51
par deennoo
papoo a écrit :@deennoo
Tu as reçu mes mails?
Oui c'est corrige normalement

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 16:01
par le belge
Bonjour ,
je n'arrive pas faire fonctionner le script ...
les sondes sont en rouge dans domoticz !! et je n'ai pas de donnée...
quand je regarde les appels sur Dark Sky , il y a eu une demande le 19 et une le 20 , mais rien ne s'affiche ...
je ne trouve pas mon erreur ...

à l'aide
Le Belge

Code : Tout sélectionner

--~/domoticz/scripts/lua/script_device_givreauto.lua
--auteur : papoo&deennoo
--version : on s'en fiche
--MAJ : 18/01/2017
--création : 06/05/2016
--Principe :
--a une heure donnée, va chercher les previsions de temperature pour dans 12h puis va calculer
 --le point de givre
--puis en comparant ensuite le point de givre et la température reçue, création d'une alerte givre.
 
 
 
  
 
 
--------------------------------------------
------------ Variables à éditer ------------
-------------------------------------------- 
local debugging = true                        -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local dew_point_idx =20                -- idx de l'éventuel dummy température point de rosée si vous souhaitez le suivre
local freeze_point_idx =21             -- idx du dummy température point de givre
local freeze_alert_idx =18             -- idx du dummy alert point de givre
local heure =18                               -- heure de declenchement
local minute =30                               -- minute de declenchement
local api ="becfe64f6bbe792d334b383d2e45b85a" -- votre cle api darksky
local lat =49.676701                          -- votre latitude 
local long =5.156064                         -- votre longitude
--------------------------------------------
----------- Fin variables à éditer ---------
-------------------------------------------- 
 
--parser le json forcast io
 
-- decomenter la ligne qui vous concerne et commenter les autres avec des -- au debut
-- json = (loadfile "/root/domoticz/scripts/lua/JSON.lua")()  -- For tunning Linux
-- json = (loadfile "D:\\Domoticz\\scripts\\lua\\json.lua")()  -- For Windows
-- json = (loadfile "/volume1/@appstore/domoticz/var/scripts/lua/JSON.lua")()  -- For Syno
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('temp: '..temp..' dew: '..dew)
 
--------------------------------------------
---------------- Fonctions -----------------
-------------------------------------------- 
function voir_les_logs (s, debbuging)
    if (debugging) then 
      if s ~= nil then
        print ("<font color='#f3031d'>".. s .."</font>");
      else
      print ("<font color='#f3031d'>aucune valeur affichable</font>");
      end
    end
end   
function round(value, digits)
  local precision = 10^digits
  return (value >= 0) and
      (math.floor(value * precision + 0.5) / precision) or
      (math.ceil(value * precision - 0.5) / precision)
end
 
function freezing_point(d, t) 
  if d > t then
    return nil, " La température du point de rosée est supérieure à la température. Puisque la température du point de rosée ne peut être supérieure à la température de l'air , l\'humidité relative a été fixée à nil."
    end
 
T = t + 273.15
Td = d + 273.15
return (Td + (2671.02 /((2954.61/T) + 2.193665 * math.log(T) - 13.3448))-T)-273.15
   
end 
--------------------------------------------
-------------- Fin Fonctions ---------------
-------------------------------------------- 
voir_les_logs("=========== Point de rosée et point de givrage (full auto) ===========",debugging)
voir_les_logs("--- --- --- Température Ext : ".. temp,debugging)
voir_les_logs("--- --- --- Point de Rosée : ".. dew,debugging)
FreezingPoint = round(freezing_point(dew, tonumber(temp)),2)
voir_les_logs("--- --- --- Point de Givrage : ".. FreezingPoint,debugging)
       if dew_point_idx ~= nil then
    commandArray[1] = {['UpdateDevice'] = dew_point_idx .. "|0|" .. dew} -- Mise à jour point de rosée
       end
           if freeze_point_idx ~= nil then
        commandArray[2] = {['UpdateDevice'] = freeze_point_idx .. "|0|" .. FreezingPoint} -- Mise à jour point de givrage
           end
 
               if(tonumber(temp)<=1 and tonumber(FreezingPoint)<=0)then
            voir_les_logs("--- Givre Demain Matin ---",debugging)
                  commandArray[3]={['UpdateDevice'] = freeze_alert_idx..'|4|'..FreezingPoint}
                  commandArray['SendNotification'] = 'Alert#Présence de givre demain matin!'
               elseif(tonumber(Temp)<=3 and tonumber(FreezingPoint)<=0)then
            voir_les_logs("--- Risque de Givre Demain Matin ---",debugging)
                  commandArray[3]={['UpdateDevice'] = freeze_alert_idx..'|2|'..FreezingPoint}
                  commandArray['SendNotification'] = 'Alert#Risque de givre demain matin!'
               else
            voir_les_logs("--- --- --- Aucun risque de Givre --- --- ---",debugging)
                  commandArray[3]={['UpdateDevice'] = freeze_alert_idx..'|1|'..'Pas de givre'}
            voir_les_logs("=========== Fin Point de rosée et point de givrage (v1.0) ===========",debugging)
 
            end 
end
 
return commandArray

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 16:10
par deennoo
Edit ton post et enleve au moins ta clef api darksky...

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 16:11
par deennoo
Essayer de donner les logs stp

Mets une heure et minutes proche

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 16:14
par deennoo
J'ai essayer ta cle api :
https://api.forecast.io/forecast/becfe6 ... erts,flags

Elle est forbiden tu es sur quelle est bonne ?

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 17:08
par le belge
je n'ai pas mis la bonne , je peux te l'envoyer par mp si tu veux ...

par contre pour les logs , c'est les logs complet dans domoticz je suppose ?

Re: Script de Givre full auto ou presque

Publié : 22 janv. 2017, 17:17
par deennoo
Oui decommente (print temp et dew) mets a 17:20 et regarde les logs de domoticz