Aller au contenu
Steven

Scénario Permettant De Contrôler Les Ids

Recommended Posts

Peux-tu tester un truc pour moi stp ?

 

Chercher le code ci-dessous

    if (firstonly) then
      for device in string.gmatch(header, "(%d+)") do

et le remplacer par 

    if (firstonly) then
      for device in string.gmatch(header, "[ ](%d+)") do

Il y a juste un [ ] de plus.

 

Merci d'avance.

Partager ce message


Lien à poster
Partager sur d’autres sites

super, ça marche pour les Variables qui comportent des chiffres en entête  ;)

 

reste plus que cette dernière qui est faite par le Swipe, je l'ai supprimé et recréé, pareil.

je ne sais pas d'ou vient ce "4"


[DEBUG] 17:00:56: checking scene : [917] lumière Salon 
[DEBUG] 17:00:56: --> contient une référence erronée dans l'entête : ID 4

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est quoi le contenu de ton scénario 917 ? 

Partager ce message


Lien à poster
Partager sur d’autres sites
--[[
%% properties
%% globals
%% events
978 CentralSceneEvent 4 Pressed
--]]

local sourceTrigger = fibaro:getSourceTrigger()
if (
( true )
or
sourceTrigger["type"] == "other"
)
then
local deviceValue = tonumber(fibaro:getValue(72, 'value'))
if (deviceValue > 0) then
  fibaro:call(72, 'turnOff')
else
  fibaro:call(72, 'turnOn')
end
end

c'est une scène auto, voici le code par le biais du toolkit.

 

c'est plus le même Id car je l'ai supprimé et recréé

Partager ce message


Lien à poster
Partager sur d’autres sites

ce qui est curieux, c'est que les 3 premières scène on 978 CentralSceneEvent  1,2 et 3 et elles ressortent pas en erreur

Partager ce message


Lien à poster
Partager sur d’autres sites

Par ce qu'il existe bel et bien un ID 1, 2 et 3  :(

 

Pourrais-tu tester cette méthode à  la place de l'ancienne :

function checkheader(scene)
  local problem = false
  local firstonly = true
  for header in string.gmatch(scene.lua, "%-%-%[%[(.-)%-%-%]%]") do
    if (firstonly) then
      for w, device in string.gmatch(header, "(%a+) (%d+)") do
        if (w ~= "CentralSceneEvent") then
          if (not(exist(device, "      --> contient une référence erronée dans l'entête : ID " .. device))) then
            problem = true
          end
        end
      end
      firstonly = false
    end
  end
  return problem
end

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon ben, je sens que la version 3.6 n'est pas loin  ;)

 

Merci pour les tests

  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Nouvelle version 3.6 (merci @Fredric)

 

  • 3.6 -> Ne confond plus les variables contenant caractères et chiffres (Windows5, Radiateur_4) avec des IDs de module
  • 3.6 -> Ne confond plus le numéro du CentralSceneEvent avec un ID de module
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

YEs @master, mise à  jour faite, panipwo ;-) ENCORE un grand MERCI

 

La question du noob habituelle

 

Qu'est-ce que toolbox ? comme d'hab, pour ma culture ;-)

Ta nouvelle facon de coder toolbox.log...

Partager ce message


Lien à poster
Partager sur d’autres sites

J'en avais marre de coder tout le temps la même chose. J'intègre donc dorénavant une petite boîte à  outils dans mes scripts.

 

Elle est ici : https://gea.piccand.me/doku.php/minifier

 

Tu peux y voir le code en clair ainsi que les exemples.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ne me remercie pas @Steven, c'est plutot àmoi de te remercier.

Vraiment dommage que j'avais pas ce script il y a plus de six mois, avec tous les ID fantôme que j'avais partout et qui me crée des problèmes...

mais maintenant je l'ai et il fonctionne !

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui je comprends..

timeout, pas pu aller voir encore ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

encore un grand merci pour cette nouvelle mise à  jour  ;)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui je comprends..

timeout, pas pu aller voir encore ;-)

 

P'tit soucis de connexion à  la maison. Ca mouline dans le vide. Je redémarre cela dès que possible.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

pas de souci.

si j'arrive a faire comme toi..pour les scripts trop bien !!

quoique j'en ecris tres tres peu lol

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut@Steven,

Je pense que j'ai un nouveau petit souci avec le script, j'ai dû supprimer deux modules, dé-inclus, re-inclus et du coup, les ID 28 et 779 N'existe plus.

Par contre, le scripte ne me signale rien, Ces ID sont dans plusieurs scènes dont GEA et pour le scripte il y a pas de soucis.

Qu'en penses-tu ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Il est quasiment impossible de contrôler les ID dans GEA. Si l'ID n'est pas dans l'entête, ce script ne verra rien. Je souhaitais faire en sorte que GEA vérifie lui les ID qu'il utilise mais cela demande un certain temps que je n'ai jamais eu  :(

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

ce sont effectivement des ID qui ne sont pas en entête.

mais elles n'étaient pas que dans GEA.

 

en tous cas, merci pour ce que tu crées et merci de répondre, tu n'as pas de temps mais tu en prends quand même pour nous répondre  :60:

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

oula j'arrive sur le tard en découvrant ce bon script (merci Steven), qui vient de me faire découvrir une tonne d'erreur, reste plus qu'a décortiquer :D

A première vue ce sont des lignes désactivés dans GEA.

 

A seconde vue, toutes mes erreurs proviennent de lignes passés en commentaire.

 

Steven, il y a t'il moyen que le script ne check pas les lignes en commentaire ?

Modifié par Domodial
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Je me cite : 

 

Citation

Oui, en effet, attention, pour moi, un code en commentaire n'est pas un code mort, c'est un code temporairement désactivé. C'est un code qu'il faut aussi maintenir avec attention.

 

Mais même si je voulais, cela ne serait pas simple du tout.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

Cela faisait un moment que je n'avais pas regarder les logs de la scene CheckAll (version 3.6) que j'ai maintenant une erreur que je ne sais pas expliquer.

Sauriez vous m'aider ?

J'ai regardé la scene juste avant cette ligne, rien à signaler comme script en erreur.

J'ai regardé line 91 de checkAll, mais je ne vois pas ce qui pourrait générer cette erreur.

 

Voici l'erreur

[DEBUG] 10:13:53: line 91: Unclosed elements present

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

×