Aller au contenu

Variable Globale Et Module Virtuel


tomcat59890

Messages recommandés

bonsoir, 

j'ai beau chercher je ne vois pas comment avec une HCL, affecter une valeur à  une variable globale ?

  1. j'ai déclaré ma variable (je la vois et je peux la sélectionner dans mes scénes)
  2. j'ai crée un module virtuel avec 2 boutons (2 valeurs pour ma variable)
  3. et c'est la que ca merde.......comment affecter une variable à  l'aide de mes boutons du module virtuel ?

et je reprécise, j'ai une HCL pas une HC2......

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Tu as une HCL, donc àpriori, tu es limité au scène par bloc. Ben normalement, soit c'est une simple variable, tu définies la future valeur dans la rubrique verte, soit tu sélectionnes une valeur si c'est une variable prédéfinie (toujours dans la zone verte)

Lien vers le commentaire
Partager sur d’autres sites

il y a deux solutions:

 

- utilises les scenes

- utilises l' api du HCLite pour passer une valeur a la variable globale... Enfin si ton HClite accepte d' envoyer des requêtes sur l' API car nous ne sommes pas tous égaux à  ce niveau !

 

edit: dsl, croisement de posts avec Lionel57 ;)

Lien vers le commentaire
Partager sur d’autres sites

merci a vous 2, vous battez pas !  :D

mais comme je suis loin d'avoir votre expertise, je n'ai réussi aucune de vos methode.

 

si je passe pas une scène, je peux tester la variable, mais pas lui affecter une valeur.

si je passe par une requête http, encore faut-il avoir la syntaxe et ca c'est pas gagné  :wub:

Lien vers le commentaire
Partager sur d’autres sites

courage tomcat, voici ce qui marche chez moi avec aussi une HCL.

SI j'ai bien compris ton besoin, tu as défini une virtual device avec deux boutons, un par valeur possible de la variable.

Et ainsi tu pourras modifier la valeur de ta variable via ton tél Android, ce qui n'est pas possible autrement.

 

Facile en HCL  :D

 

1) variable "VAR" avec deux status "Oui" et "Non"

2) scène VAR_Oui (non active !) si at any time alors variable VAR = Oui (repère l'ID de la scène sur le panneaux general)

3) scène VAR_Non (non active !) si at any time alors variable VAR = Non (repère l'ID de la scène sur le panneaux general)

4) dans ta device virtuelle, complète les champs IP Adresse et TCP port avec l'IP et le port (80) de ton HCL

5) pour chaque bouton de ta virtual device, rentre

 

GET<space>/api/sceneControl?id=##&action=start<space>HTTP/1.10x0D0x0AHost:<IP><space>0x0D0x0AAuthorization:<space>Basic<space><user:pwd inBase64><space>0x0D0x0A0x0D0x0A

 

où ## est ID de la scène modifiant la valeur de la variable

où <user:pwd inBase64> est ton user:password en Base64 : https://www.base64encode.org/

 

ça DOIT marcher :15:

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

salut Jojo

 

super les explications !

Merci mais j'ai encore un petit souci.

 

Les variables se mettent bien à  jour par les scènes, ca c top  :)

Mais je n'arrive pas à  le mettre à  jour par les boutons du module virtuel.

 

j'ai bien sur chaque bouton 

GET<space>/api/sceneControl?id=12&action=start<space>HTTP/1.10x0D0x0AHost:<IP><space>0x0D0x0AAuthorization:<space>Basic<space><xxxxxxxxxxxxxx><space>0x0D0x0A0x0D0x0A (12 l'ID de la scène, et xxxxxxxxxxxxxx le psw de ma HCL).

 

J'ai loupé un truc ? 

Lien vers le commentaire
Partager sur d’autres sites

tomcat,

 

  • Tu ne dois pas mettre dans le code le ( ) à  la fin, mais uniquement :

 

GET<space>/api/sceneControl?id=12&action=start<space>HTTP/1.10x0D0x0AHost:<IP><space>0x0D0x0AAuthorization:<space>Basic<space><xxxxxxxxxxxxxx><space>0x0D0x0A0x0D0x0A

  • ​dans le code tu remplace <space> par un espace (TRES important). Comme les espaces sont difficiles à  identifier dans un texte, j'ai écrit <space>
  • le <xxxx> c'est bien le user:pwd (user & pwd) converti en base64 (pas en clair) . Si ton user est admin et pwd est admin => admin:admin encodé en base64 = YWRtaW46YWRtaW4= (tu ne dois pas mettre les crochets
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

alors Jojo, c top.

je suis vraiment une truffe, car en plus de laisser <space>, j'avais également laissé <IP> :15: 

 

en fait, en bon informaticien, j'ai un copier/coller..........en changeant ce que tu m'avais indiqué (enfin presque tout) :13: 

 

Bref, là  ça fonctionne top.

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Tant mieux, content pour toi => tu peux abuser de cela, et tu verras tu feras des choses WAF (que même ta femme va apprécier).

 

J'avais un ancien collègue qui disait : "Il n"y a pas de mystère, il n'y a que des conneries" c'est à  dire, qu'il y a une explication pour tout, et que c'est souvent une bêtise qui est la cause du problème. Il faut sortir la tête du guidon.

Lien vers le commentaire
Partager sur d’autres sites

alors Jojo, c top.

je suis vraiment une truffe, car en plus de laisser <space>, j'avais également laissé <IP> :15:

 

en fait, en bon informaticien, j'ai un copier/coller..........en changeant ce que tu m'avais indiqué (enfin presque tout) :13:

 

Bref, là  ça fonctionne top.

Merci.

Hello,

Afin d'aider les autres "nouveaux" membres, pourrait tu poster un screen de tes scènes et un c/c du script de tes boutons des virtual device.

Ca pourrait être d'une grande aide.

Merci et bon amusement  :P

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à  tous, 

 

Alors voilà  le résultat de mon travail.

Ne cherchez pas une quelconque finalité, c'est juste un proto pour préparer le futur avec mon HCL.

 

Je voulais avoir la possibilité de tester dans mes scripts / blocs (HCL oblige) une variable genre, COUCHER, REVEILLER, etc......

 

  1. j'ai donc créé une variable globale DODO (voir screenshot)
  2. créé 2 scènes DODO et PAS DODO (voir screenshot) 
  3. créé un module virtuel avec ces 2 boutons COUCHER (activation variable DODO=OUI), REVEILLER (activation variable DODO = NON) (voir screenshots)
  4. chaque bouton avec 1 commande du type :
    • GET /api/sceneControl?id=12&action=start HTTP/1.10x0D0x0AHost:192.168.0.34 0x0D0x0AAuthorization: Basic XXXXXXXXXXX 0x0D0x0A0x0D0x0A
    • dans mon exemple
      • 12 = n° id de la scène déclenchée par le bouton
      • 192.168.0.34 = IP de ma HCL
      • XXXXXXXXXXX = code d'accés:psw pour ma HCL en base 64 (voir post de DID au dessus)

Résultat: 

  • quand je clique sur COUCHER j'active la variable globale à  la valeur OUI
  • quand je clique sur REVEILLER j'active la variable globale à  la valeur NON

 

et je peux tester ainsi cette variable dans mes scénarios blocs.

 

J'espère avoir été complet.

 

post-1567-0-24906200-1416507862_thumb.png

post-1567-0-80229800-1416516690_thumb.png

post-1567-0-20243400-1416516930_thumb.png

post-1567-0-55625500-1416517094_thumb.png

post-1567-0-57378200-1416517262_thumb.png

post-1567-0-60015500-1416517466_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

 

  1. dans mon exemple
    • XXXXXXXXXXX = code d'accés:psw pour ma HCL en base 64 (voir post de DID au dessus)
    • 192.168.0.34 = IP de ma HCL
    • 12 = n° id de la scène déclenchée par le bouton

 

"voir post de DID au dessus" ??? Je ne vois pas ...

Ne confonds-tu pas Did et Jojo pour le coup ?

Moi perso je suis honoré que tu me prennes pour Did, mais lui, qui dira-t-il ?

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonsoir

J'ai fait tout comme jojo et tomcat mais cela ne marche pas chez moi ...
J'ai aussi fait attention de ne pas commettre les mêmes petites erreur
Est ce un pb de config ou de code ?

 

Problème résolu / Merci à  jojo

Modifié par nafnaf
Lien vers le commentaire
Partager sur d’autres sites

Merci jojo de ta réponse rapide

Je suis bien embêté car avant de mettre ce post sur le forum j'ai vraiment tout checké y compris les espaces

J'ai bien indiqué aussi l'IP et le port 80 de mon HCL

Je suis sec ...

Tu indiques plus haut que les deux scènes doivent être 'non active' > j'ai bien décoché mais pour ma culture personnelle, quel impact cela a t'il ?

Encore merci d'aider les petits nouveaux

Lien vers le commentaire
Partager sur d’autres sites

j'ai aussi été nouveau en aoà»t ... tu deviendras donc vite expert en cherchant à  aider les autres ...

 

Si la scène est cochée active, cela veux dire qu'elle fonctionne, et que si les conditions de départ sont remplies, ce qui se trouve après le "alors" s'exécutera.

Ici, ce qu'on veut c'est qu'elle ne démarre que quand on appuie sur le bouton de la virtual device. Dans ce cas là , la scène passe directement à  après les "alors", et donc, on met ce qu'on veut comme condition de départ (car c'est obligatoire), et la scène ne doit pas être active (il ne faut pas qu'elle risque de démarrer toute seule, dès que les conditions de départ seraient remplies).

Il y a aussi une 2° case, juste en dessous : "Start when HC starts" : cette case DOIT être cochée si une des conditions de départ est une condition temporelle.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir àtous

Me voilàrevenu dans ma Normandie.

Après plusieurs essais, ça ne marche toujours pas

Vous trouverez ci dessous le code du bouton 1 de mon virtual device

Adresse IP 192.168.1.12

Scene ID 13

GET /api/sceneControl?id=13&action=start HTTP/1.10x0D0x0AHost:192.168.1.12 0x0D0x0AAuthorization: Basic YWRtaW46b2traTI0MTE= 0x0D0x0A0x0D0x0A

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...