Aller au contenu
jojo

Détermination De La Version Du Firmware

Recommended Posts

Bonjour,

 

J'utilise ce petit bout de code pour déterminer la version du firmware, et adapter le code pour V4.X ou v3.X.

Il a toujours très bien fonctionné, jusqu'il y a peu. 

Quelqu'un aurait une idée ?

Code :

-- détermination de la version du firmware
HC2 = Net.FHttp("127.0.0.1",11111)
version = ""
payload = "/api/settings/info"
response, status, errorCode = HC2:GET(payload)
if tonumber(status) == 200 
  then
	jsonTable = json.decode(response)
	if tonumber(jsonTable.softVersion) >= 4 
      then
		version = "4.x"
     else
		version = "3.x"
	end
  else
    fibaro:log("--- ERROR --- code : " ..errorCode)
	fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'</span>')
end
fibaro:debug('version = ' ..version)

Debug :

[DEBUG] 17:00:29: status=, errorCode=2, payload=/api/settings/info, response=
[DEBUG] 17:00:29: version =
[DEBUG] 17:00:32: status=, errorCode=2, payload=/api/settings/info, response=
[DEBUG] 17:00:32: version =
[DEBUG] 17:00:35: status=, errorCode=2, payload=/api/settings/info, response=
[DEBUG] 17:00:35: version =
[DEBUG] 17:00:38: status=, errorCode=2, payload=/api/settings/info, response=
[DEBUG] 17:00:38: version =

Mais quand je fais un save du VD (SANS avoir fait AUCUNE modif) tout redevient ok.

[DEBUG] 17:07:08: version = 3.x
[DEBUG] 17:07:08: Aucune lumière allumée
[DEBUG] 17:07:11: version = 3.x
[DEBUG] 17:07:11: Aucune lumière allumée

??????

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui moi... Nan je blague... C'était juste pour vous faire un coucou

Partager ce message


Lien à poster
Partager sur d’autres sites

Coucou Latoupie :) Alors, tu t'éclates avec ton eedumus ?

 

Jojo : si tu as mis ce code dans une mainloop avec le sleep par défaut de 3s, je ne suis pas surpris que la fonction net.http finisse par déconner au bout de quelques heures.... rappelles toi, elle est buggée et on le dit partout ;)

Quand tu enregistres le VD, il le redémarre complètement, donc il n'y a plus de souci.... temporairement.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Lazer, c'est l eclate, J en découvre encore tous les jours ðŸ˜

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Lazer,

C'est ce que je pensais hier soir, et j'ai mis tout le brol dans un bouton qui est appelé par la main loop, et ça marche.

Mais il me semblait que la mainloop foirait pour les téméraires en v4.x, pas pour les sages restés en v3.600  :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Non au contraire, c'est en v3 que la main loop pose problème.

Sinon tu regardes la main loop de mon module virtuel Syno Surveillance Station, elle est ultra stable, même en v3 avec de nombreux appels àNet.fhttp et JSON.décode.

Partager ce message


Lien à poster
Partager sur d’autres sites

×