Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tuto Script LUA
#11
Salut,
Quand je tente de récupérer la valeur d'une sonde (sonde1=calaos:getInputValue("id2masonde")) j'ai ca qui s'affiche "7.0623774870736e-304"...
Y a une conversion à faire? j'ai essayé la fonction "tonumber" mais même résultat...

++
Cyridle
Calaos user
Calaos V2 Advantech 212D | Wago 750-849 | DALI | DMX RGBW | Sondes NTC sur 750-464 | Ecran tactile ELO | LMS/Squeezelite | NAS Synology 1515+

Reply
#12
Je remonte ce post car je suis en train de faire un nouveau script et je n'y arrive pas...

J'ai un détecteur de présence dans mon entrée qui permet d'allumer certaines lumières lorsqu'on ne fait que passer. Lorsque quelqu'un sonne a la porte d'entrée on allume les lumières avec un BP... mais le détecteur lui allume et éteint suivant si on bouge ou pas.

Je souhaite donc ajouter une variable qui détermine si mon BP a été activé en la passant à 1 pour bloquer les actions du détecteur de mouvements, puis le remettre en service lorsque j'éteins les lumière du BP en repassant ma variable à 0.

Voila le script que j'ai écris, mais il y a une erreur et je ne la trouve pas...


Code:
local Variable_Activation_Inter = calaos:getInputValue("intern_7")

if Variable_Activation_Inter = "0" then
  Variable_Activation_Inter = "1"
  calaos:setOutputValue("output_78", true)
  calaos:setOutputValue("output_54", true)
  calaos:setOutputValue("output_14", true)

else if Variable_Activation_Inter = "1" then
  calaos:setOutputValue("output_78", false)
  calaos:setOutputValue("output_54", false)
  calaos:setOutputValue("output_14", false)
  Variable_Activation_Inter = "0"

end
return true
CALAOS V3 | WAGO 750-849 | NUC NUC5PPYH | Ecran tactile ELO 1537L avec Ampli VGA et adaptateur USB/RS232 Grillé Angry  |
Sondes PT1000 | DMX RGBW pour Rubans Leds 24v | Caméras POE Weisky
Reply
#13
Comme ca:

Code:
local Variable_Activation_Inter = calaos:getInputValue("intern_7")

if Variable_Activation_Inter == "0" then
   Variable_Activation_Inter = "1"
   calaos:setOutputValue("output_78", true)
   calaos:setOutputValue("output_54", true)
   calaos:setOutputValue("output_14", true)
elseif Variable_Activation_Inter == "1" then
   calaos:setOutputValue("output_78", false)
   calaos:setOutputValue("output_54", false)
   calaos:setOutputValue("output_14", false)
   Variable_Activation_Inter = "0"
end
return true
Raoul,
Calaos Core Dev.
Calaos git sur NUC NUC5PPYH | Wago 750-849 | DALI RGB | Sondes NTC sur 750-464 | Sondes 1Wire DS18B20 avec adaptateur USB DS9490R | Nodes MySensors avec gateway USB | Ecran tactile ELO avec adaptateur USB/RS232 | Squeezebox Duet et Radio | Logitech Harmony Ultimate | Ampli Pioneer VSX921
Reply
#14
arfff j'tais pas loin... Merci Raoulh.

Je viens de tester ca marche pas je pense que j'ai mal configuré ma variable : j'ai fait une variable bool, sans mettre de valeur... maintenant je peux pas lui donner de 0 par défaut...
T'en penses quoi ?
CALAOS V3 | WAGO 750-849 | NUC NUC5PPYH | Ecran tactile ELO 1537L avec Ampli VGA et adaptateur USB/RS232 Grillé Angry  |
Sondes PT1000 | DMX RGBW pour Rubans Leds 24v | Caméras POE Weisky
Reply
#15
J'avance sur ce script...

J'ai coché dans ma variable :
save + rw + visible + enable

J'ai modifié le script comme ca :


Code:
local Variable_Activation_Inter = calaos:getInputValue("intern_7")

if Variable_Activation_Inter == false then
  Variable_Activation_Inter = true
  calaos:setOutputValue("output_78", true)
  calaos:setOutputValue("output_54", true)
  calaos:setOutputValue("output_14", true)

elseif Variable_Activation_Inter == true then
  calaos:setOutputValue("output_78", false)
  calaos:setOutputValue("output_54", false)
  calaos:setOutputValue("output_14", false)
  Variable_Activation_Inter = false

end
return true


J'ai ajouté ma variable dans mes condition d'allumage et d'éteinte lumière avec le Détecteur mouvement.

Lorsque j'appui sur le BP les lumières s'allument, mais si je rappui ca ne s'éteint pas. En fait en faisant des test je pense que la variable reste a False...

Comment arriver a modifier son état ?
CALAOS V3 | WAGO 750-849 | NUC NUC5PPYH | Ecran tactile ELO 1537L avec Ampli VGA et adaptateur USB/RS232 Grillé Angry  |
Sondes PT1000 | DMX RGBW pour Rubans Leds 24v | Caméras POE Weisky
Reply
#16
Le script me semble bon, mais tu ne modifie que la variable locale "Variable_Activation_Inter", tu ne modifies pas la valeur de "intern_7"
Je pense qu'en changeat la valeur de "intern_7" ca devrait fonctionner comme tu souhaites :
essaye avec ce script :



Code:
local Variable_Activation_Inter = calaos:getInputValue("intern_7")

if Variable_Activation_Inter == false then
  calaos:setOutputValue("output_78", true)
  calaos:setOutputValue("output_54", true)
  calaos:setOutputValue("output_14", true)
  calaos:setOutputValue("intern_7", true)
elseif Variable_Activation_Inter == true then
  calaos:setOutputValue("output_78", false)
  calaos:setOutputValue("output_54", false)
  calaos:setOutputValue("output_14", false)
  calaos:setOutputValue("intern_7", false)
end
return true

Ce script fonctionne, mais a mon sens il est plus simple de réaliser ce genre de comportement avec des regles calaos toute simple. puisque ici tu as une condition et 3 actions.
Mais c'est tout a fait possible de faire ca avec calaos et des scripts lua ;-)
Calaos v2 sur Rpi et MeleA1000 | Eco Device | IPX800 | Karotz | 1Wire | Relais GPIO | Squeezebox
Reply
#17
And the winner is : Captainigloo Wink 

Effectivement c'était bien ça, il faut changer le inter_7 pour que la variable change aussi... ton script marche nikel et je peux vérifier sur l'écran le changement d'état de la variable... c'était trop subtile pour moi là... Confused

Pour répondre à ta remarque, effectivement je pourrai faire une règle simple avec : si bp == 1 alors lumières == toggle et variable == toggle... puis récupérer l'état de la variable pour les règles du détecteur de mouvement...
En fait je le fais en LUA car 1 de ces lumières est une RGBW. Pour simplifier le script je l'ai mise en true, mais en fait je vais programmer une certaine couleur lors de l'allumage par BP et une autre par Détecteur de présence... et ça je pense que je peux le faire que par script LUA en utilisant les code hexadécimaux dont tu m'as parlé dans un autre post... Wink
[Edit 1] après vérif je vois qu'on peut paramétrer une couleur à x%... mais je peux pas faire un mix par ex : vert à 27% + bleu à 32% + rouge à 59%... euh ca donne quoi comme couleur au final ??? Huh Big Grin Big Grin Big Grin Big Grin Big Grin Cool 

Encore un grand merci à toi et Raoulh pour votre aide !!!
Allez hop je vais rajouter le script dans le wiki !
CALAOS V3 | WAGO 750-849 | NUC NUC5PPYH | Ecran tactile ELO 1537L avec Ampli VGA et adaptateur USB/RS232 Grillé Angry  |
Sondes PT1000 | DMX RGBW pour Rubans Leds 24v | Caméras POE Weisky
Reply
#18
Petite question :

Pour la lumière RGB faut-il écrit ça :
Code:
calaos:setOutputValue("output_78", set 0xFFFF00)

ou ça :
Code:
calaos:setOutputValue("output_78", "set 0xFFFF00")
CALAOS V3 | WAGO 750-849 | NUC NUC5PPYH | Ecran tactile ELO 1537L avec Ampli VGA et adaptateur USB/RS232 Grillé Angry  |
Sondes PT1000 | DMX RGBW pour Rubans Leds 24v | Caméras POE Weisky
Reply
#19
Avec les guillemets, car c'est une chaine de caractéres.

Code:
calaos:setOutputValue("output_78", "set 0xFFFF00")

Pour ce qui est des couleurs, c'est tres subtil, un élément de réponse : https://fr.wikipedia.org/wiki/Teinte_sat...mi%C3%A8re

C'est très intéressant, et nous n'avons pas encore trouvé une façon fiable de représenter les couleurs dans Calaos. Nous avons pour le moment la solution #RRGGBB mais nous ne pouvons pas jouer facilement sur la "luminosité" de la couleur. Pour cela il faudrait utiliser hsl ou hsv. Mais le problème c'est de convertir dans les deux sens.
Pour la v3 nous avons améliorer un peu les choses et l'on peux utiliser la notation : set hsl(0, 100, 16) ou set rgb(50, 10, 30) comme c'est le cas sur les pages WEB. Mais dans la v2, il faut utiliser la notation que tu utilises.
Calaos v2 sur Rpi et MeleA1000 | Eco Device | IPX800 | Karotz | 1Wire | Relais GPIO | Squeezebox
Reply
#20
Autre petite question concernant la programmation :
Comment déclencher une action dans un temps défini après une autre action... Confused

Par exemple : je clique sur un BP pour allumer une lumière, une fois la lumière allumée je veux allumer une autre lumière 50s plus tard.
CALAOS V3 | WAGO 750-849 | NUC NUC5PPYH | Ecran tactile ELO 1537L avec Ampli VGA et adaptateur USB/RS232 Grillé Angry  |
Sondes PT1000 | DMX RGBW pour Rubans Leds 24v | Caméras POE Weisky
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)