Aller au contenu

Messages recommandés

Posté(e)

Par exemple un sleep supérieur à40mn ou inférieur à30s a de forte chance de faire planté le mainloop. Pourquoi mystère

Envoyé de mon SM-G900F en utilisant Tapatalk

Posté(e)

C'est l'utilisation de json.decode dans le main loop qui plante. Le bug est connu depuis longtemps mais toujours pas corrigé...

On contourne ca depuis des années avec la méthode du bouton appelé par le main loop.

Posté(e)

@ JossAlf

 

La version que j'ai faite tourne non stop avec le ".decode" dans le Main Loop depuis le 8 avril sans aucun plantage ni message d'erreur sur le debug.

Je suis en V4.040.

 

Par contre le "HC2 = Net.FHttp("127.0.0.1", 11111)" me faisait également planter la boucle lors de la précédente version du code (pb déjà  rencontré il y a 10 mois environ sur un MV du test réseau de toute la maison depuis 10 mois), d'où la nouvelle version que j'ai totalement réécrite en page 5 et fonctionnelle.

 

Maintenant peut-être que l'erreur passe inaperçue, ou qu'une semaine n'est pas un délai assez long pour tester la fiabilité, c'est possible (sleep de 10 secondes + 3 secondes initiales du Main Loop). Rendez-vous dans 1 mois. ;)

Posté(e)

Le plantage arrivait en moins de 24 heures dans mes souvenirs. Suis toujours en V3. Je crois que Maitre Krik et Lazer avaient fait des tests et donné une explication : un T.end qui bloquait tout (je dis ça de mémoire).

Cool si la V4 a corrigé ça. Du coup si ce n'est pas lié au json.decide dans le main loop, le mystère reste entier pour le plantage actuel ...

Envoyé de mon iPhone àl'aide de Tapatalk

Posté(e)

J'ai un module virtuel avec plusieurs Net.Fhttp() et json.decode() dans la main loop qui fonctionne sans souci depuis des mois avec un rafraichissement toutes les 60 secondes.

=> voir dans ma signature : Surveillance Station.

J'avais mis pas mal de temps à  le stabiliser, mais à  priori il fonctionne bien. Pour info je suis en train de l'améliorer afin de rendre le code encore un peu plus robuste (plus de vérifications de variables afin de détecteur au maximum les erreurs donc le plantage du code).

 

Mais le plus simple, ça reste encore le  bouton qui fait tout le travail, et une main loop qui ne fait que 2 choses : clic sur le bouton, puis sleep()

 

Voir aussi cette discussion où Krikroff explique un peu le problème : [Votre avis ?] Virtual Device Et Main Loop

  • Upvote 1
Posté(e)

@trainkill : ca marche super avec la function correspondane !! plus qu'a orendre l'habitude du nommage et le TOP ;-)

 

MERKIIII :60: :60: :60: :60:

  • 4 semaines après...
Posté(e)

messieurs,

 

j'ai installé un inter swiidinter qui pilote une lampe bien sur, comme faire pour l'intégrer dans  ce module ?

Posté(e)

Bonjour tout le monde.

Je n'ai pas eu le courage de lire toute votre littérature  :98: , mais ce VD m'a l'air bien sympa.

Mais vous savez que je suis un irréductible gaulois en 3.600, et j'ai vu au premier post que le module n'était compatible que v4.x.

Donc j'aimerais bien le rendre compatible 3.x et 4.x.

OK ?

Est-ce que le premier post contient la toute dernière version du VD ?

Posté(e)

La toute dernière version écrite pas moi, mais n'incluant pas les dernières propositions des membres.

 

Pour rendre ce module compatible 3.6 il faudrait déjà  modifier le mode de listage des modules. Personnellement, je ne fait jamais de rétro-compatibilité, il vaut mieux bosser à  jour.

Posté(e)

On est encore certains àêtre en 3.600

Sur base de TON idée, je pourrais adapter le module (comme je l'ai déjàpour beaucoup) pour le rendre automatiquement compatible v3.x et v4.x.

Ou je le fais juste pour moi, ou je partage, et alors je proposerais de partir d'une toute dernière version incluant les propositions des autres membres ?

Qu'en penses-tu ?

Posté(e)

Si tu te sent motivé pour ça, je t'encourage à  créer un nouveau module avec son propre thread incluant ta rétro-compatibilité et les ajouts des membres.

 

 

Je suis un codeur beaucoup trop perso pour gérer les contributions des membres, comme tout le monde a du s'en apercevoir.

Posté(e)

messieurs,

 

j'ai installé un inter swiidinter qui pilote une lampe bien sur, comme faire pour l'intégrer dans  ce module ?

 

 

hello, je remets ma question au cas ou quelqu'un saurait comment l'inclure.

 

merci

Posté(e)

@Sakkhho :

 

En prenant les derniers codes de

Gazous (juste 1 copier-coller de la boucle exclusion renommé inclusion et 1 à  modifier, ça prends 1 min pour modifier le code)

moi (recherche très (trop) restrictive pour beaucoup d'utilisateurs  :P mais peut intégrer ta lampe)

ou en attendant la version de JoJo qui va faire une petite compilation de toutes les propositions qui sera adaptée à  tout le monde. ;)

Posté(e)

Top merci !

 

pour ceux que ca intéresse voici le bout de code

 

copier ces lignes

 toInclude = {202}

function shouldInclude(module)
    for k, v in pairs(toInclude) do
    	if string.find(module.name, v) ~= nil or module.id == v then return true end
    end
	return false
end



et rajouter sur cette ligne le 'or shouldInclude(v)'

	if type(v.properties.isLight) == "string" and type(v.properties.value) == "string" or shouldInclude(v) and not shouldExclude(v) then

idem pour le bouton "refresh"

Posté(e)

en fait je suis une grosse fénéasse : si quelqu'un qui a suivit le projet depuis le début pouvait faire une version qui fonctionne en v4.x avec toutes vos propositions, alors je me suis proposé de le rendre compatible avec 3.600. N'ayant pas de v4.x, je ne souhaite pas intégrer toutes ces modifs, car je ne pourrai que TRES difficilement tester.

Une bonne ame pour faire une version complète en v4 ? 

Posté(e)

Moi je suis en 4.042 et voici mon module si ca aide

 

edit ; j'arrive pas à  le joindre, le fichier est Toutes_lumières.vfib.json

mais le fofo me le refuse...

Posté(e)

merci Sakkhho,

As-tu intégré toutes les propositions de modif des 7 dernières pages (je n'ai pas le courage de tout lire ...) ?

pour l'ajouter, tu retires le .json àla fin du nom de fichier (d'où vient cette extension ? tu a fait export virtual device depuis le VD ?)

Posté(e)

je sais pas je fais l'export depuis le VD .... mais meme si j'enlève le .json

 

J'ai pris le dernier code du topic, je ne sais pas si il y a tout.

en tout cas il y a les exclusions et inclusions

Posté(e)

Sakkhho, m'a envoyé en MP le code, qui comprendrait normalement tout.

Il faut "juste" que je m'y mette ...

Posté(e)

voici donc une version 2.0 du module, sur base d'une compil de vos demandes en 4.0 faite par Sakkhho.

Outre la compatibilité automatique 3.x - 4.x, j'ai apporté les modifs/améliorations suivantes :

  • correction d'un bug qui faisait qu'il n'était pas tenu compte des devices entrés dans toExclude
  • affichage du nombre de devices allumés et dans le debug affichage des devices allumés
  • nécessité de faire un double-click pour tout éteindre (on ne risque donc pas de cliquer par erreur)

Si vous avez encore d'autres idées d'évolution ...

 

Toutes_Lumières_v2.0.vfib

 

Edit : PS, le code pourrait être optimisé, mais j'ai voulu clairement faire la distinction en v3.x et v4.x

  • Upvote 1
×
×
  • Créer...