Aller au contenu

Messages recommandés

Posté(e)

J'essaie dans mon module virtuel pour l'ouverture du portail, d'avoir l'état sous forme d'icônes actif (comme si j'avais

 

deux boutons Ouvre et Ferme avec 2 icônes qui change l'état). J'utilise une sortie de mon IPX 800 pour l'impulsion

 

et un FGBS-001 pour le retour de la position (2 contacts reed ouvert et fermé).

 

Merci.

 

                                          post-43-0-96914800-1389222974_thumb.jpg

Posté(e)

Pour changer l’icône tu peux utiliser cela

fibaro:call(ID_VD, "setProperty", "currentIcon", ID_ICON)

Pour le reste du code ouverture/fermeture c'est bon ou pas ?

Posté(e)

Bonjour,

Non, j'ai essayé d'enlever l'espace juste avant, aussi id d'autre icônes mais toujours le cube.

 

Pour le script, peut-on réunir les 2 scènes qui proviennent de blocs convertis en Lua?


local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(65, "value")) > 0 )
or
startSource["type"] == "other"
)
then
        fibaro:call(118, "setProperty", "currentIcon", "1014")
end

------et-------

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(66, "value")) > 0 )
or
startSource["type"] == "other"
)
then
    fibaro:call(118, "setProperty", "currentIcon", "1013")
end

ou peut être n'utiliser qu'un seul contact pour l'état Fermé (et faire if contact différent de fermé).

 

Je n'ai pas trouver comment mettre mes scripts sur un cadre avec numérotation des lignes pour la présentation sur le site.

 

Merci.

Posté(e)

ou peut être n'utiliser qu'un seul contact pour l'état Fermé (et faire if contact différent de fermé).

 

Si c'est le cas, tu peux utiliser cette solution

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(65, "value")) > 0 )
or
startSource["type"] == "other"
)
then
fibaro:call(118,"setProperty","currentIcon",1014)
else
fibaro:call(118,"setProperty","currentIcon",1013)
end

Pour "mettre mes scripts sur un cadre avec numérotation des lignes pour la présentation sur le site" :

- sélectionner l'ensemble des lignes concernées

- cliquer sur le symbole "insérer un extrait de code" suivant : <>

 

Et pour ce qui me concerne je ne mets pas l'identifiant de l'icone entre guillemets  :(... et bien vérifier le numéro de cet ID, car il n'y aura pas de message d'erreur dans le debug    ;)

Posté(e)

Personnellement je ne mets pas non plus de guillemets, c’était juste au cas ou :)

Posté(e)

J'ai compris le problème...

@Did utilise un numéro d'ID d'icone de scène et qui n'existe pas pour ses modules virtuels

J'avais remarqué que nous n'avons pas la même liste d'images entre scènes et modules virtuels

J'en déduis que deux listes d'icones sont gérées indépendamment

Posté(e)

Ah bah moi j'ai ai mis et ça marche aussi... l'avantage du LUA c'est que c'est moins sensible au format (int, boolean, string...) que le C/C++. Dans la doc fibaro ils mettent des guillemets ou pas ?

Posté(e)

Quelle doc :D ? Non il me semble que les deux sont tolérés...

LUA n'est pas un langage fortement Typé comme tous les langages de script, il n'accepte que les types: nombre, chaine, tableau, booléen, fonction. L’interpréteur utilise le typage automatique. C'est vrai que s'est pratique mais moi j'aime pas ça !

Posté(e)

J'ai créer deux touches provisoires dans le VD pour insérer mes icônes ouvert et fermé et effectivement,

 

ces deux icônes ont un nouveau numéro d'id rangés dans un dossier nommé n_vicons mais malheureusement, ça

 

ne fonctionne toujours pas. Le fait que ce soit une icône "fabrication maison" me rajoute un User devant le numéro (User1050.png).

 

Je voulais essayer une autre icône d'origine mais dans les modules virtuels, seul ce cube est dispo après déballage du HC2.

 

Visiblement, pas besoin de guillemets.

 

Merci pour le tuyau sur la présentation des scripts.

Posté(e)

Pour intégrer les icônes des modules virtuels ou des scènes, il faut utiliser la procédure de Fibaro : Changer l'icone / ajouter icone / choisissez un fichier, etc

Un contrôle du format est effectué et rejette ce qui n'est pas dans les normes... je ne comprends donc pas ce que tu obtiens ?

Sur le forum, il y a déjà  un choix intéressant d'icônes au bon format

Une fois les icônes ajoutés pour les modules virtuels, tu les gères avec la fonction évoquée dans ce post

 

Ajout important : pour trouver les numéros d'ID tu utilises le Toolkit de @Krikroff ?????

Je te le conseilles vraiment !

Posté(e)

Ok, je vois comment tu récupères l'info "userxxxx.png"

Ne t'en préoccupes pas et ne retiens que le nombre xxxx

Et récupères à  l'occasion le toolkit de @Krikroff  ;)

Posté(e)

Mes icônes maison fonctionnent puisqu'il s'affichent dans mon VD (et ailleurs aussi), quand elles ne sont pas au format,

 

elles ne s'affichent pas à  l'écran de sélection (message d'erreur). Ce que j'obtiens, c'est qu'au changement d'état du FGBS,

 

l'icône change bien mais systématiquement c'est le cube bleu qui s'affiche et pas les icônes sélectionnés par le numéro d'id

 

à  la fin du script.

 

Je viens d'installer le Toolkit de @Krikroff mais dans les appareils virtuels, il n'y a pas les id d'icône (numéros différents

 

suivant l'utilisation dans modules virtuels ou scènes). Autrement, je fait un clic droit sur l'icône puis information sur l'image

 

(ou afficher l'image).

Posté(e)

Concernant le toolkit de @Krikroff :

Pour découvrir l'ID des icônes des modules, click droit / obtenir les données brutes et j'obtiens par exemple ceci :

 
"id": 82,
  "name": "Chauffage chambre",
  "roomID": 4,
  "type": "virtual_device",
  "properties": {
    "deviceIcon": 1014,
    "ip": "",
    "port": 80,

    "currentIcon": "1012",

 

Sinon, j'avais deviné ta méthode et pour mon exemple on obtient alors : User1014 ou User1012

 

A noter que, comme la gestion des icônes des modules et des scènes est séparée, un même numéro d'ID peut donner deux icônes différents

 

Par contre je ne vois pas d'où vient ton problème

Posté(e)

Je te conseille cette méthode :

- tu intègres une nouvelle icône dans ton module virtuel

- tu l'actives pour qu'elle devienne l'icône courant

- tu lances le toolkit de Krikroff, tu recharges les données, tu vas voir les données brut du module virtuel et tu relèves le numéro à  4 chiffres du currentIcon

Tu modifies ton script en conséquence... et çà  doit marcher, avec 

fibaro:call(118,"setProperty","currentIcon",xxxx)

Pour aller plus vite ensuite, tu pourras récupérer les numéros d'ID de tes icones selon ta méthode : ne prendre que les 4 chiffres

Posté(e)

Bon, j'ai inclus un autre module universel en montage volant parce bonjour les manoeuvres. Merci pour l'astuce du toolkit de Krikroff.

 

je viens de m'apercevoir que quand je mémorise cette scène et que je fais démarrer juste en dessous (ou exécuter dans général),

 

immédiatement, l'icône s'affiche bien mais ne change plus après malgré le changement d'état du FGBS. De même qu'en inversant

 

les numéros 1049 & 1050 dans le script, là  j'ai bien l'icône opposée qui s'affiche mais ne change plus.

--[[
%% properties
65 value
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(149, "value")) > 0 )
or
startSource["type"] == "other"
)
then
    fibaro:call(118,"setProperty","currentIcon",1049)
else
    fibaro:call(118,"setProperty","currentIcon",1050)
end

J'en déduis donc que l'affichage des icônes est O.K. Précision aussi: Je n'ai rien dans la main loop du VD.

 

Ne serait-ce pas dans la boucle que le problème se trouve? On est partit sur l'utilisation du contact 'portail fermé' mais j'ai aussi le

 

contact 'portail ouvert' si c'est plus simple au niveau du script.

 

Encore merci à  tous pour votre patience.

Posté(e)

Ok, le problème d'affichage d'icône semble bien réglé

Pour le script, je te propose d'ajouter deux lignes (que tu pourras facilement supprimer ensuite) pour pister les valeurs retournées :

--[[
%% properties
65 value
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
valeur = tonumber(fibaro:getValue(19, "value"))
fibaro:debug(valeur)
if (
 ( tonumber(fibaro:getValue(149, "value")) > 0 )
or
startSource["type"] == "other"
)
then
    fibaro:call(118,"setProperty","currentIcon",1049)
else
    fibaro:call(118,"setProperty","currentIcon",1050)
end
Posté(e)

Précision aussi: Je n'ai rien dans la main loop du VD.

 

Personnellement, je n'ai jamais mis ce type de script (trigger) dans un main loop (à  plus forte raison dans un bouton virtuel)... et çà  ne passe pas dans mes essais

 

@Krikroff nous en dira peut-être plus  ;)

 

Pour ce qui me concerne, je mettrais ce script dans une scène pour une procédure automatique.

Le module virtuel serait vide de code et il ne servirait que pour afficher l'icône adéquat, sauf à  l'utiliser pour d'autres fonctions

Posté(e)

Normal que sa marche pas :D, et c'est le bordel ta scène.

Si je dis pas de connerie ton FGBS a l'id 65 donc en mettant le minimum sa donne

--[[
%% properties
65 value
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
portail = 65;
if (startSource['type']=='property' or startSource["type"] == "other") then
  if ( (tonumber(fibaro:getValue(portail, "value")) > 0 or startSource["type"] == "other") then
    fibaro:call(118,"setProperty","currentIcon",1049);
  else
    fibaro:call(118,"setProperty","currentIcon",1050);
  end
end
Posté(e)

Ca y est, j'ai trouvé en relisant mon script que dans la ligne 4, l'Id n'était pas celui du périphérique interrogé.

 

Donc tout est réglé.

 

 

Récapitulatif:

 

Il faut créer un module virtuel avec juste une touche à  laquelle on attribue la commande (pas en Lua):

GET /preset.htm?set2=1 HTTP/1.10x0D0x0A0x0D0x0A 

dans mon cas pour générer une impulsion sur le relais 2 de mon IPX800.

 

Ensuite une scène qui interroge un contact collé quand le portail est fermé.

--[[
%% properties
149 value
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(149, "value")) > 0 )
or
startSource["type"] == "other"
)
then
    fibaro:call(118,"setProperty","currentIcon",1049)
else
    fibaro:call(118,"setProperty","currentIcon",1050)
end

En fonction de l'état, elle renverra le numéro Id d'une icône (attention à  bien sélectionner ces icônes dans le module virtuel).

 

Ne pas récupérer le numéro d'Id d'une icône issu d'un module ou d'une scène, seulement d'un module virtuel (elles ne sont

 

pas rangées dans le même dossier et n'ont pas le même numéro d'Id). Je n'ai pas réussi à  insérer de photos mais elles sont

 

à  voir dans la galerie.

  

Voilà  pour la commande du portail et merci à  Krikroff, Benjynet et I-magin pour leur précieuses et nombreuses contributions.

 

.

Posté(e)

@Shad... donc, j'ai proposé une scène bordélique... sympa comme appréciation

Sinon, de manière plus constructive tu peux être pédagogue et expliquer pourquoi ?

 

Pour info les 2 lignes suivantes étaient uniquement pour le deboggage et facilement supprimable

valeur = tonumber(fibaro:getValue(19, "value"))
fibaro:debug(valeur)
Posté(e)

Ca y est, j'ai trouvé en relisant mon script que dans la ligne 4, l'Id n'était pas celui du périphérique interrogé.

 

Donc tout est réglé.

Ouf, tu me rassures  :)

 

Mais il est vrai que je n'avais pas vu que tu avais mis l'ID 65 en entête du code, donc en incohérence avec la fonction getValue

Il fallait donc comme tu l'as fait mettre la même valeur d'ID (149) lignes 4 et 10

Posté(e)

C'est ce que Shad avait repérer mais j'étais dans la rédaction de ma réponse et l'ajout de photos dans la galerie.

 

Le tout, c'est de s'y retrouver dans ce "bordel".

 

Merci.

×
×
  • Créer...