Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Etat a bascule en LUA ?
#1
Brick 
Salut Smile
Vous allez bien ?

Donc voila je me lance pour réalisé ''Une sélection a bascule ''


Regle etat a bascule
Code dans condition :
Code:
-- Selection utilisateur
---------------------------------------------------
local RDC = calaos:getInputValue("intern_1")
local garage_atelier = calaos:getInputValue("intern_2")
local API = calaos:getInputValue("intern_3")
local Mfort = calaos:getInputValue("intern_4")
local AHS = calaos:getInputValue("intern_5")
---------------------------------------------------


if RDC == true  then       -- Si activation alarme zone rez-de-chaussée activé alors désactiver les autres zones
calaos:setOutputValue("intern_2", false)
calaos:setOutputValue("intern_4", false)
calaos:setOutputValue("intern_5", false)

elseif garage_atelier == true then -- Si activation alarme zone garage activé alors désactiver les autres zones
calaos:setOutputValue("intern_1", false)
calaos:setOutputValue("intern_4", false)
calaos:setOutputValue("intern_5", false)

elseif Mfort == true then -- Si activation alarme mode total  activé alors désactiver les autres zones
calaos:setOutputValue("intern_2", false)
calaos:setOutputValue("intern_1", false)
calaos:setOutputValue("intern_5", false)


else                       -- Si rien de sectionné alarme désactiver
calaos:setOutputValue("intern_5", true)

end  
return true


Regle Retour information

Code:
-- etat alarme
---------------------------------------------------
local RDC = calaos:getInputValue("intern_1")
local garage_atelier = calaos:getInputValue("intern_2")
local API = calaos:getInputValue("intern_3")
local Mfort = calaos:getInputValue("intern_4")
local AHS = calaos:getInputValue("intern_5")
---------------------------------------------------



-- Tableau des états de la centrale intrusion
etat_intrusion = {["Alarme mode : Total"]=Mfort, ["Alarme mode : Partiel RDC"]=RDC,["Alarme mode : Partiel Garage"]=garage_atelier, ["Alarme mode : Hors_service"]=AHS}


for k,v in pairs(etat_intrusion)  -- k = key (Total) ; v = value (true, false)
do
    if v == true then
        calaos:setOutputValue("intern_0", k)
        print (k)
    return false
    end
end

Résultat :

calaos mobile se déconnecte avec les message d'erreur ''connection failed, please check your credential'' .
Calaos WEB fonctionne parfaitement .

Une autre solution peut être ?

Joint mon fichier réaliser avec CALAOS installer V3

ps : si je note des bug ou autres j'ajoute en reponse Smile


Attached Files
.zip   demo etat a bascule .zip (Size: 1.62 KB / Downloads: 1)
Reply
#2
Bug ??? Quand on veut créer une variable interne Boolèen avec la valeur (activé par défaut) cela n'est pas pris en compte par calaos Serveur ( V3 RPI )
Reply
#3
Salut,

Quelle version de calaos-os tu utilises?
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
#4
Hello

je fait actuelement des testes sur la version 3 alpha 6 pour Raspberry pi 2

(calaos-os-raspberrypi2-v3.0-alpha6-0-g16abcae-2017-09-22.tar)

Pour l'application c'est l'app Iphone sur iphone SE 64g
Reply
#5
Pour ton soucis, c'est assez simple apres examen de la config.

Ta 2eme regle "Alarme mode select" boucle sur elle meme et finit par planter calaos-server. Ce qui est normal.

Tu as configuré comme declencheur de cette regle les IO:
  • RDC
  • Garage_atelier
  • MFort
  • AHS
Ca veut donc dire que cette regle va etre evalué des lors que l'un de ces IO sont modifiés.

Dans le script de cette regle, tu modifies un de ces IO la. Donc des que la regle est terminé, le moteur de calaos relance la meme regle... et ca boule a l'infinie jusqu'au crash.

Je n'est pas vraiment compris ce que tu essayes de faire, mais si tu expliques je pourrais te montrer une maniere de faire...
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
#6
En fait ce que j'essaie de faire c'est assez simple :


Visuel dans Calaos mobile ou WEB  :
J'ai créé trois mode pour l'alarme + un état :

Mode forteresse (variable interne Boolèen) (io = MFort)  (note : Protection total Garage+ateleier et RDC )
Garage & atelier (variable interne Boolèen) (io= Garage_atelier) (note : Partiel mode Garage+Atelier )
Rez-de-chaussé (variable interne Boolèen) (io= RDC) (note : Partiel mode RDC)
-----------------
AHS = état alarme sert à déterminer si l'alarme est active pour les détecteurs de mouvements ( non visible WEB app ou IOS APP
-----------------
J'ai 2 option partiel et une total  

exemple 1
Garage & atelier = actif  donc les variable Rez-de-chaussé ou Mode forteresse = inactif
exemple 2
Rez-de-chaussé= actif  donc les variable Garage & atelier  ou Mode forteresse = inactif
exemple 3
Mode forteresse = actif  donc les variable Garage & atelier  ou Rez-de-chaussé = inactif  

et si aucun n'est actif alors la variable  Alarme=inactif


Utilisation du script :
Pour ne pas que plusieurs modes soit actif en même temps ( bascule entre les différents  état ) .

ps la ou je ne comprend pas c'est que sur WEB OS SA FONCTIONNE  et pas sur l'app IOS ?
Reply
#7
up

dit moi le matériel le mieux supporter par calaos c'est quoi ?

https://www.ldlc.com/fiche/PB00193728.ht...gLqIPD_BwE ?
Reply
#8
J'ai pas trop compris comment c'est censé marcher ton systeme avec tes etats...

Sur la webapp ca ne marche pas non plus. C'est un effet de bords parce que tu ne vois pas la deconnection du au crash de calaos_server. Dans tous les cas il ne faut absolument pas faire de boucle comme ca:

Si ma_variable == true then variable = true

Ca va faire que boucler en continue jusqu'au crash.

Pour le PC oui le NUC est ok.
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
#9
Comment expliquer ?

je voudrais faire des conditions pour que 1 seul etat soit en marche :


un groupe de bouton :

Alarme mode 1
Alarme mode 2
Alarme mode 3

et que dans se groupe 1 seul soit actif

exemple :


Alarme mode 1 ( cocher )
Alarme mode 2 ( si je coche ici sa décoche alarme mode 1 )
Alarme mode 3


ex 2


Alarme mode 1
Alarme mode 2 ( si je coche ici sa décoche alarme mode 3 )
Alarme mode 3 ( cocher )

ex 3

Alarme mode 1 ( si je coche ici sa décoche alarme mode 2 )
Alarme mode 2 ( cocher )
Alarme mode 3

-----------------------------------------------------
et autre chose que je n'arrive pas faire fonctionner :

-J'ai fait un montage a base de Wemos D1 mini et esay ESP ( la sonde de temperature fonctionne Smile en json )
-Pour mon relais il fonctionne avec les GPIO pour les activer ou pas : http://adresseIP/control?cmd=GPIO,4,0 et
http://adresseIP/control?cmd=GPIO,4,1

Pour récupérer l’état du relais ou la température : http://adresseIP/json

pour l'instant je veux juste contrôler ON et OFF

j'ai donc écrit un script :

local switch= calaos:getInputValue("intern1")

if switch == true then
calaos:requestUrl(“http://adresseIP/control?cmd=GPIO,4,0”)

else
calaos:requestUrl(“http://adresseIP/control?cmd=GPIO,4,1”)
end

return true


Mais sa me crée une erreur aussi Oo :/

version 3 sur Raspberry pi .
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)