Aller au contenu

Hc2 Et Hc Lite- V4.100 - Stable - 29/09/2016


Moicphil

Messages recommandés

Le seul PB détecté à  ce jour : le test du retour de la fonction

if (fibaro:getGlobal(VG_Nom) == "") then

( VariableGlobale  inexistante ) qui provoque une erreur bizarre dans le code lua et pas sur la ligne de la fonction

Ce code n'étant pas récent et l'ayant testé je pense que cela fonctionnait avant .

j'ai corrigé en == nill et cela fonctionne correctement.  

Signalé dans http://www.domotique-fibaro.fr/index.php/topic/4439-crée-une-variable-globale-ou-une-variable-globale-predefinie-en-lua/

Lien vers le commentaire
Partager sur d’autres sites

jojo

Dans le descriptif de la fonction ils disent la valeur retournée est None.

Avant le test =="" chaine vide passait et depuis la V4.1 il y'a une 'erreur signalée

j'ai donc testé le retour ==  nil  et cela à  corrigé l'erreur et le code fonctionne.

 

J'ai galèré car l'erreur signalée n'était pas explicite et surtout quelques lignes de code plus bas.

J'ai écrit quelques lignes de code ailleurs et hors du contexte et j'ai trouvé par élimination.

Ont ils corrigé une erreur ou sont t'ils plus strict ... je ne sais pas dire

Lien vers le commentaire
Partager sur d’autres sites

jojo

Dans le descriptif de la fonction ils disent la valeur retournée est None.

Avant le test =="" chaine vide passait et depuis la V4.1 il y'a une 'erreur signalée

j'ai donc testé le retour ==  nil  et cela à  corrigé l'erreur et le code fonctionne.

 

J'ai galèré car l'erreur signalée n'était pas explicite et surtout quelques lignes de code plus bas.

J'ai écrit quelques lignes de code ailleurs et hors du contexte et j'ai trouvé par élimination.

Ont ils corrigé une erreur ou sont t'ils plus strict ... je ne sais pas dire

 

Je suis en 4.090 et le test =="" sur une global inexistante ne plante pas, mais ne fonctionne pas. Et ce depuis fort longtemps.

En 4.100, le code suivant plante ?

local res = fibaro:getGlobal("Coucou")
print(type(res))

if (fibaro:getGlobal("Coucou") == "") then
	print("estVide")
else 
  	print("n'est pas vide")
end

Console

[DEBUG] 13:57:13: nil
[DEBUG] 13:57:13: n'est pas vide
Lien vers le commentaire
Partager sur d’autres sites

Tiens, sur le fofo officiel, on me répond sur le sujet de passer la scène en mode activer lorsque la HC2 redémarre... J'ai jamais fais ça sur GEA. Pour moi pas de lien. Mais cela pourrait être en cause pour les triggers avec timestamp ?

 

Pour toi Séb, peut être qu'en travaillant dessus, lors des multiples sauvegardes, une des instances ne s'est pas terminées correctement ?

Lien vers le commentaire
Partager sur d’autres sites

ca m'étonnerais, gea est en %% autostart normalement.

Chez moi j'ai toujours 1 instance running, donc ça "tourne bien" + d'autres instances pour les -1 qui se lancent.

Sauf que plus rien ne se passais dans le monde réel... zarbi...

Lien vers le commentaire
Partager sur d’autres sites

Steven : 

 

Je suis en 4.090 et le test =="" sur une global inexistante ne plante pas, mais ne fonctionne pas. Et ce depuis fort longtemps.

En 4.100, le code suivant plante ?

 

Non ton code de test ci-dessus ne plante pas. Je ne suis mal exprimé 

Dans le code suivant de mprinfo Création de variable

--Creation de Variable ---
function VG_Creation(VG_Nom, VG_isEnum, VG_Value, VG_enumValues)
    if (fibaro:getGlobal(VG_Nom) == "") then
        --fibaro:debug(VG_Nom.." "..VG_isEnum.." "..VG_Value)
        fibaro:call(id, "setProperty", "ui.Label1.value", "Création  " ..VG_Nom .. " = " ..VG_Value )
        
        newVar = {}
        newVar.name = VG_Nom
        newVar.isEnum = tonumber(VG_isEnum)
        if tonumber(VG_isEnum) == 0 then
	          newVar.value = VG_Value
        end
        HC2 = Net.FHttp("127.0.0.1", 11111)
        HC2:POST("/api/globalVariables", json.encode(newVar))
        --Ajout de x valeurs à  la Variable Gazous et modification avec une des 2 valeurs
        if tonumber(VG_isEnum) == 1 then
            VG_Predefinie = '{"value":"'..VG_Value
            ..'","isEnum":true,"enumValues":'..'["'..VG_Value..'", '..VG_enumValues..']'
            ..'}'
            --fibaro:debug(VG_Predefinie)
            HC2:PUT("/api/globalVariables/"..VG_Nom, VG_Predefinie)         
        end 
        HC2 = nil
    else
        --fibaro:debug(VG_Nom.." Existe est = " ..fibaro:getGlobal(VG_Nom) )
        fibaro:call(id, "setProperty", "ui.Label1.value", "Lecture  " ..VG_Nom .. " = " ..fibaro:getGlobal(VG_Nom) )
    end
end

La variable contenue dans VG_Nom n'existe pas, mais on sort comme si elle existait et lua se plante sur la concaténation du message Label :  ..fibaro:getGlobal(VG_Nom) ( donc nul) 

Comme à  priori ce code existe depuis longtemps et qu'il  ne produisait pas ce message ( j'ai démarré en 4.056 et je suis quasi sà»r de l'avoir testé ), je suppose que la valeur de retour de fibaro:getGlobal() est différente en 4.1 ?

Tu as peut être une explication plus rationnelle ?

 

 

Lien vers le commentaire
Partager sur d’autres sites

Mince, je viens de capter un truc: Dans mes applis android, je n'ai plus aucun affichage des devices type fllod sensor ou smoke sensor... Je ne sais pas de quand ca date, une idée ? Qqun a aussi ça ?

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...