Aller au contenu
couillerot

questions de newbie !

Recommended Posts

salut à tous,

 

je bute sur ce morceau de code et je n'en comprends pas la cause...

 

 

    if (fibaro.getGlobalVariable("Etat_Consigne_HC") == "ACTIVE") and 
(
  (tonumber(fibaro.getValue(idTemp, "value")) >= tonumber(fibaro.getGlobalVariable("Consigne_HC") - 1)
and tonumber(fibaro.getValue(idTemp, "value")) <= tonumber(fibaro.getGlobalVariable("Consigne_HC"))
   )
)

[19.04.2021] [17:38:00] [ERROR] [QUICKAPP690]: main.lua:77: bad argument #2 to 'tonumber' (base out of range)

 

et ça m'énerve de ne pas pouvoir me débrouiller seul car ça doit être un truc tout c.n !!!

 

Stef

 

 

Modifié par couillerot

Partager ce message


Lien à poster
Partager sur d’autres sites

il doit avoir du mal à interpréter la base (décimal, binaire, hexadécimal, etc).

Essaye de forcer la base décimale :

tonumber(xxx, 10)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

merci Lazer !

 

dans ce style là ?

tonumber(fibaro.getGlobalVariable("Consigne_HC", 10) - 1)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Avec le -1 en dehors du tonumber du coup, car il faut que ta string soit convertie en nombre avant l'opération

tonumber(fibaro.getGlobalVariable("Consigne_HC", 10)) - 1

 

Partager ce message


Lien à poster
Partager sur d’autres sites

marche pas mais c'est ok, j'ai pu contourner le probleme !

 

merci encore Lazer pour ta patience ;)

 

Stef

Partager ce message


Lien à poster
Partager sur d’autres sites

Autre question de newbie :)

 

peut-on créer des "variables énumérées" (ou pseudo-énumérées via une extraction de chaine)  avec le tableau des variables locales ?

merci

 

Stef

Partager ce message


Lien à poster
Partager sur d’autres sites

Non... enfin il va falloir coder ta propre logique, mais rien n'empêcherait un utilisateur de modifier la variable à une valeur non autorisée directement via l'interface Web.

 

Le principe des variables énumérées c'est de limiter les valeur à une liste de choix prédéfinie... du coup la réponse directe à ta question, c'est bien non.

Partager ce message


Lien à poster
Partager sur d’autres sites

ok, merci Lazer pour cette précision :74:

au moins je sais vers quoi je dois me diriger ou plutôt vers quoi je ne dois pas m'orienter une impasse !

 

Stef

Modifié par couillerot

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour compléter, ça sera possible, un jour, quand Fibaro permettra officiellement d'utiliser les listes déroulantes dans l'interface des QuickApps.

Ainsi l'utilisateur pourra facilement choisir une valeur dans la liste déroulante, limitée aux choix proposés.

En attendant, tu peux faire plusieurs boutons, chaque bouton permettant de porter la valeur qui t'intéresse.

Bon si par contre tu as une liste de choix parmi 10....20... 50 valeurs, créer autant de boutons ne va pas être une bonne solution.

Partager ce message


Lien à poster
Partager sur d’autres sites

Autre question qui n'a rien à voir...

 

voilà, je souhaite réaliser un petit QA basé sur l'api de weatherbit qui s'orienterait plutôt vers les prévisions de précipitations pour mon arrosage auto.

j'arrive bien à extraire les datas mais je coince sur le comment récupérer toutes les variables "precip"... du data ??? et je n'y connais absolument rien en table s'il s'agit de cela... je sais bien que cela est très basique comme demande mais je ne souhaite qu'apprendre et pouvoir bricoler deux ou trois trucs :)

 

merci

 

Stef

 

voici un extrait du data :

 

weatherbit.thumb.jpg.c7abbdb953acfc6d835a949814aa3947.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce sont des données au format JSON, donc un début de réponse c'est d'utiliser json.decode() pour transformer son contenu en un beau tableau exploitable en LUA.

 

Exemple ici :

 

Partager ce message


Lien à poster
Partager sur d’autres sites

merci Lazer, je l'avais déjà repérer depuis un bon moment ;)

 

Stef

Partager ce message


Lien à poster
Partager sur d’autres sites

zut... :2:

 

{"status_code":429,"status_message":"Your request count (872) is over the allowed limit of 500 per day - Upgrade your key, or retry after 513.63333333333 minutes"}

Partager ce message


Lien à poster
Partager sur d’autres sites

LOL, ben tu n'as plus qu'à attendre 513.63333333333 minutes, attention c'est précis :D

 

Partager ce message


Lien à poster
Partager sur d’autres sites

finalement, sur le debug j'arrive obtenir quelquechose :

debug.jpg.26db77603c7f500892283a3537a3d0e6.jpg

 

cependant, je souhaite aller justement dans la table data / table 

 

dans le tableau des variables, j'arrive bien à récupérer quelques donnée mais la table data est vide...

 

debug.thumb.jpg.01d60b8aefeca28d92e4e94eea1fb499.jpg

 

une piste, peut-être... je sèche !

 

voici le morceau de code :

 

self.http:request("http://api.weatherbit.io/v2.0/forecast/daily?city_id=3027642&lang=fr&key=e1fc285d7350412c80504c0670faba05", {
   	    success = function(response)
        if response.status == 200 then
            if response.data and response.data ~= "" then
              
     		    local jsonTable = json.decode(response.data)
               	local k, v
				for k, v in pairs(jsonTable) do
                	print("key = " .. k .. " - type(v) = " .. type(v))
                    self:setVariable(k,v)
                end

 

Stef

 

Modifié par couillerot

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans ce cas il faut que tu parcoures la table jsonTable.data

Partager ce message


Lien à poster
Partager sur d’autres sites
{"status_code":429,"status_message":"Your request count (513) is over the allowed limit of 500 per day - Upgrade your key, or retry after 477.41666666667 minutes"}

 

rebelotte ! :2:

 

Stef

Modifié par couillerot
  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

question : pourquoi sous data il me marque des object Object... ?

 

données pas encore décodées ?

 

Stef

Partager ce message


Lien à poster
Partager sur d’autres sites

Euh... je ne sais pas

 

Mais il semble y avoir beaucoup de données, et plusieurs tableaux imbriquées, donc il faut que tu trouves le bon "chemin" pour accéder aux données dont tu as besoin.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Lazer pour ton aide car j'ai bientôt fini mon QA WeatherBit avec gestion auto de l'arrosage :74:

 

il me reste encore à fignoler quelques bricoles et surtout l'intégrer en tant que fibaro.weather

 

Stef

 

 

 

eee40" comme valeur à "data"

weatherbit_wall.jpg

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

au fait, existe t-il un moyen de décaler du texte ?

j'ai bien essayé avec string.gsub, \t, \b ...mais rien à faire !

 

merci

 

Stef

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaie l'espace forcé en HTML :  &nbsp;

 

Tu peux en mettre plusieurs à la suite

Partager ce message


Lien à poster
Partager sur d’autres sites

×