[DzVents] Luminosité théorique extérieure

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.
jml
Messages : 24
Inscription : 08 janv. 2016, 22:18

Re: Luminosité théorique extérieure

Message par jml »

bonjour,

je pense que tu n'en es pas loin. Tu as renommé ton capteur en "luminosité" mais tu utilises encore Lux à la ligne 204.

Ta ligne 204 doit devenir :

Code : Tout sélectionner

      print ("valeur de Lux :"..otherdevices_svalues['luminosite'])

        if tonumber(otherdevices_svalues['luminosite'])+round(weightedLux,0)>0 
Mes scripts: github.com/jmleglise
Mon équipement: RFXTRX433E Volet et portail Somfy RTS, chacon IO, Oregon, PIR PT2262 / KMTronic USB relay/Z-WAVE Chinese Neo CoolCam
Mon dernier projet: ma maison location de vacances à Ouistreham sur la plage
staber
Messages : 79
Inscription : 21 mars 2016, 02:54

Re: Luminosité théorique extérieure

Message par staber »

ça marche c'est juste moi qui suis un boulet!

Originalement ça devait être un problème de majuscule..
staber
Messages : 79
Inscription : 21 mars 2016, 02:54

Re: Luminosité théorique extérieure

Message par staber »

Bon ça marche mais ça marche pas :lol:

Dans le but de faire limiter les erreurs j'ai laissé la station SYNOP du script original soit Trappe! Elle se met à jour toute les heures
http://www.ogimet.com/cgi-bin/gsynres?i ... 22&hora=12

Or moi je suis au Canada et le plus proche est La Baie qui semble se mettre à jour toute les 3 heures :
http://www.ogimet.com/cgi-bin/gsynres?i ... 22&hora=12

A chaque fois le script fait une requete avec le temps UTC je pense que ça se passe ici :

Code : Tout sélectionner

 -- Get  SYNOP  message from  Ogimet web  site
       hourUTCminus1 = os.date("!%H")-1
       if string.len(hourUTCminus1) == 1 then
          hourUTCminus1 = "0" .. hourUTCminus1
       end
       UTC = os.date("%Y%m%d").. hourUTCminus1.."00" -- os.date("!%M")
       if (DEBUG == 1) then
          local WMOID = jsonLocation.current_observation.display_location.wmo
          print("WMOID = "..WMOID)
       end

       cmd='curl "http://www.ogimet.com/cgi-bin/getsynop?block='..WMOID..'&begin='..UTC..'"'
       if( DEBUG == 1) then print(cmd) end
       local ogimet=assert(io.popen(cmd))
       local synop = ogimet:read('*all')
       ogimet:close()
       if( DEBUG == 1) then print('ogimet:'..synop) end

       if string.find(synop,"Status: 500") == nil
       then
          rslt = split(synop,",")
          CodeStation = rslt[1]
          rslt = split(synop, " "..CodeStation.. " ") -- LIGNE 149
          Trame = string.gsub(rslt[2], "=", "")
          Trame = CodeStation .." ".. Trame
          rslt = split(Trame, " ")
          Octa = string.sub(rslt[3], 1, 1)  -- 3rd char is the cloud layer.  0=no cloud , 1-8= cloudy from 1 to 8 max , 9 =Fog , / = no data
          if Octa == "/" then   -- not defined ? take the previous value
             Octa = uservariables['octa']
          elseif Octa == "9" then
             Octa = 8
          end
       else
          Octa = uservariables['octa']
       end
toutes les requêtes qui se font avec un code ..UTC.. inexistant génère une erreur :
2016-04-22 10:35:01.368 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_SolarSensor.lua: /home/pi/domoticz/scripts/lua/script_time_SolarSensor.lua:149: bad argument #1 to 'gsub' (string expected, got nil)
Je ne vois que deux solutions :
faire une update de UTC que toutes les 3 heures
Si la variable ne contient rien alors prendre la dernière valeur

Je ne suis pas super bon en programmation mais je me soigne :lol: Bref comment faire ? Avez-vous une autre idée ?
staber
Messages : 79
Inscription : 21 mars 2016, 02:54

Re: Luminosité théorique extérieure

Message par staber »

Ok j'ai modifié la ligne

Code : Tout sélectionner

hourUTCminus1 = os.date("!%H")-1
par

Code : Tout sélectionner

hourUTCminus1 = os.date("!%H")-3
ça marche maintenant mais je ne suis pas sur de la validité du résultat.
Les requêtes passée à :
http://www.ogimet.com/cgi-bin/getsynop? ... 60422[b]14[/b]00
le code en gras correspond à l'heure et dans le script original il passe heure -1
en allant chercher heure -3 j'ai accès aux valeurs de ma station. Comme si elle avait 3 heures de retard...
étrange!
Chris54220
Messages : 124
Inscription : 20 mars 2016, 20:54
Localisation : Nancy

Re: Luminosité théorique extérieure

Message par Chris54220 »

bonjour j'ai essai d'intégré sa a ma domotique en prend toute les infos du première poste mais cela ne marche pas pouvais vous m'aidez SVP
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Luminosité théorique extérieure

Message par Neutrino »

Salut,
Evidemment qu'on peut t'aider, mais il nous faut bien plus d'infos !
As-tu suivi le wiki ? http://www.domoticz.com/wiki/Real-time_ ... structions
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Chris54220
Messages : 124
Inscription : 20 mars 2016, 20:54
Localisation : Nancy

Re: Luminosité théorique extérieure

Message par Chris54220 »

ah non je retest avec sa il te donne plus d'info si sa marche pas
Chris54220
Messages : 124
Inscription : 20 mars 2016, 20:54
Localisation : Nancy

Re: Luminosité théorique extérieure

Message par Chris54220 »

j'ai toujours des soucis voila ce qu'il m'affiche dans les logs

2016-04-24 19:20:00.911 LUA: Lat: 48.72444534Long: 6.20777798Alt: 382.00000000

2016-04-24 19:20:00.911 LUA:

2016-04-24 19:20:00.912 LUA: 2016-04-24 19:20:00

2016-04-24 19:20:00.912 LUA: Malzeville, latitude:48.709191, longitude:6.184159

2016-04-24 19:20:00.912 LUA: Home altitude = 27 m

2016-04-24 19:20:00.912 LUA: number Of Day = 115

2016-04-24 19:20:00.912 LUA: 2016 is a leap year !

2016-04-24 19:20:00.912 LUA: Angular Speed = 0.98562628336756 per day

2016-04-24 19:20:00.912 LUA: Declinaison = 13.305178097973�

2016-04-24 19:20:00.912 LUA: Universel Coordinated Time (UTC)17.333333333333 H.dd

2016-04-24 19:20:00.912 LUA: Solar Hour 17.7456106 H.dd

2016-04-24 19:20:00.912 LUA: Altitude of the sun = 12.453941636716�

2016-04-24 19:20:00.912 LUA: Angular hourly = -86.184159�

2016-04-24 19:20:00.912 LUA: Azimuth of the sun = 276.06687061904�

2016-04-24 19:20:00.913 LUA: Duration of the sunstroke of the day = 14.08 H.dd

2016-04-24 19:20:00.913 LUA: Radiation max en atmosphere = 1342.83 W/m�

2016-04-24 19:20:00.913 LUA: Local relative pressure = 1014 hPa

2016-04-24 19:20:00.913 LUA: Absolute pressure in atmosphere = 1010.7 hPa

2016-04-24 19:20:00.913 LUA: Coefficient of mitigation M = 4.5771187478753 M0:4.5622227992875

2016-04-24 19:20:00.913 LUA: curl "http://www.ogimet.com/cgi-bin/getsynop? ... 1604241600"

2016-04-24 19:20:01.122 LUA: ogimet:07145,2016,04,24,16,00,AAXX 24164 07145 21570 73307 10066 20025 39974 40187 53004 72586 878// 333 69925 82825 87640 90710 91114 93100=
07145,2016,04,24,17,00,AAXX 24174 07145 22570 73206 10065 20022 39975 40188 53005 878// 333 60005 81825 85643 85657 90710 91118 93100=


2016-04-24 19:20:01.123 LUA: Station SYNOP = 07145

2016-04-24 19:20:01.123 LUA: 7 Octa

2016-04-24 19:20:01.123 LUA: Kc = 0.52369115797991

2016-04-24 19:20:01.123 LUA: Direct Radiation = 27.95 W/m�

2016-04-24 19:20:01.123 LUA: Scattered Radiation = 70.26 W/m�

2016-04-24 19:20:01.123 LUA: Total radiation = 98.21 W/m�

2016-04-24 19:20:01.124 LUA: Total Radiation in lux = 12431.63 Lux

2016-04-24 19:20:01.124 LUA: and at last, Total weighted lux = 6510.34 Lux

2016-04-24 19:20:01.124 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_SolarSensor.lua: /home/pi/domoticz/scripts/lua/script_time_SolarSensor.lua:203: attempt to perform arithmetic on a nil value

2016-04-24 19:20:01.193 EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_time_SolarSensor.lua
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Luminosité théorique extérieure

Message par Neutrino »

Ouai, je t'invite à relire les 2 dernières pages. staber avait le même problème.
Au passage, ça peut servir aussi à d'autres, les messages d'erreur donnent souvent une bonne piste.

Code : Tout sélectionner

 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_SolarSensor.lua: /home/pi/domoticz/scripts/lua/script_time_SolarSensor.lua:203: attempt to perform arithmetic on a nil value 
203 : c'est la ligne de ton script qui bugue. Si tu ne la postes pas, on a du mal à la deviner...
attempt to perform arithmetic on a nil value : Une valeur de cette ligne n'est pas initialisée.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Chris54220
Messages : 124
Inscription : 20 mars 2016, 20:54
Localisation : Nancy

Re: Luminosité théorique extérieure

Message par Chris54220 »

Oui merci j'ai trouve encore merci pour ce script et cette aide
Répondre