Rapidité execution scène

Programmation de la Vera

Rapidité execution scène

Messagede Sebetdelphine » 03 Avr 2016, 11:09

Bonjour,

Je tente d’exécuter une scène via un compteur écrit dans un variable container.
En fonction du numéro de ce compteur, une autre scène est exécutée (en clair, je gère mes VR sous forme de grafcet pour les initiés :D )
Le tout est contrôlé via un code luup ...

SID_Container = "urn:upnp-org:serviceId:VContainer1"
local lul_Compteur = luup.variable_get(SID_Container,"Variable3", 49)

if lul_Compteur == "1" then
luup.variable_set(SID_Container, "Variable3", "2", 49)
luup.sleep (1000)
luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "67"}, 0)
end
if lul_Compteur == "2" then
luup.variable_set(SID_Container, "Variable3", "3", 49)
luup.sleep (1000)
luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "85"}, 0)
end
if lul_Compteur == "3" then
luup.variable_set(SID_Container, "Variable3", "1", 49)
luup.sleep (1000)
luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "86"}, 0)
end

Cette scène est exécutée via un trigger (bouton poussoir).
Le "hic" est que je suis obligé d'attendre 2/3 secondes pour appuyer de nouveau sur le BP afin d'avoir la possibilité d'éxecuter l'étape suivante de mon grafcet.

Donc ma question est de savoir il y a la possibilité de supprimer ce temps d'attente de 2/3 secondes ou alors existe-t-il une autre façon de faire la gestion ?

Merci Ă  tous
-- Sebetdelphine --
ContrĂ´leurs : Micasaverde VeraLite 1.7.760
Rfxcom Rfxtrx433 (Beta 3 Firmware 194)
DĂ©tecteur de Mouvement : FIBARO FGMS-001 (X2)
Détecteurs de Fumée : EVERYSPRING SF812 (X3) - FIBARO FGSD-002 (X1)
Actionneurs volets : Fibaro FGR-221 (X5)
Actionneurs volets : Fibaro FGRM-222 (X2)
ContrĂ´le Ă©clairage : CHACON DIO (X3)
Contrôleur de Scènes : Aeon Labs AEO_DSA22
Sebetdelphine
Membre Actif
 
Messages: 28
Inscription: 30 Oct 2012, 15:50

Re: Rapidité execution scène

Messagede Pitt13 » 03 Avr 2016, 13:45

Salut,
Je ne suis pas expert en luup mais il me semble que les 3 secondes sont dĂ» au luup.sleep qui arrĂŞtent 3 fois le luup non ?
Vera3 + VeraPlus + Jeedom smart zwave+
Fibaro FDG221 - Fibaro FDG212 - Fibaro FGR221 - Fibaro Wall Plug - Fibaro FGMS-001 - Fibaro FGRGB-101 - Fibaro Smoke Sensor FGSD-002 - FIBARO - DĂ©tecteur d'ouverture FGK-101-ZW5 - FIBARO - DĂ©tecteur Universel FGBS-001
AeonLabs Multicapteur 4in1
Nodon software remonte - Nodon prise intelligente
Qubino commutateur relais ZMNHAD1
Kira128 - Karotz - S.A.R.A.H sur Intel Compute Stick
Tablette Galaxy Tab 3 10.1"
Testé Raspberry + Razberry + OpenRemote + MyVera + Wes v2+carte relais
Amazon Ă©cho + Google home
Pitt13
Dieu de domotique
 
Messages: 744
Inscription: 21 Oct 2013, 12:27

Re: Rapidité execution scène

Messagede Sebetdelphine » 03 Avr 2016, 13:52

Salut,

J'ai mis les "sleep" a une seconde car je voulais tricher en attendant l'écriture de variable 3 avant l'éxecution de ma scène.
Mais les luup.Sleep ne changent rien à mon problème.
Dommage ....
-- Sebetdelphine --
ContrĂ´leurs : Micasaverde VeraLite 1.7.760
Rfxcom Rfxtrx433 (Beta 3 Firmware 194)
DĂ©tecteur de Mouvement : FIBARO FGMS-001 (X2)
Détecteurs de Fumée : EVERYSPRING SF812 (X3) - FIBARO FGSD-002 (X1)
Actionneurs volets : Fibaro FGR-221 (X5)
Actionneurs volets : Fibaro FGRM-222 (X2)
ContrĂ´le Ă©clairage : CHACON DIO (X3)
Contrôleur de Scènes : Aeon Labs AEO_DSA22
Sebetdelphine
Membre Actif
 
Messages: 28
Inscription: 30 Oct 2012, 15:50

Re: Rapidité execution scène

Messagede chrifabre » 03 Avr 2016, 14:35

Normal car ta scène va aller jusqu'au bout ... de plus si le temps est voisin ou supérieur d'une minute, il y a risque que la Vera reboot.
Utilise plus tôt la fonction call_delay ou call_timer, qui ne fige pas l'exécution de la scène.

Par exemple call_timer qui permet de passer une variable type string
(voit syntaxe http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#function:_call_delay )

Code: Tout sélectionner
SID_Container = "urn:upnp-org:serviceId:VContainer1"
local lul_Compteur = luup.variable_get(SID_Container,"Variable3", 49)

function Appel_Scene(no_scene)
      luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = no_scene}, 0)
end

if lul_Compteur == "1" then
   luup.variable_set(SID_Container, "Variable3", "2", 49)
   luup.call_timer("Appel_Scene",  1,  1, "", "49")   
end
if lul_Compteur == "2" then
   luup.variable_set(SID_Container, "Variable3", "3", 49)
   luup.call_timer("Appel_Scene",  1,  1, "", "67")
end
if lul_Compteur == "3" then
   luup.variable_set(SID_Container, "Variable3", "1", 49)
   luup.call_timer("Appel_Scene",  1,  1, "", "68")
end


Je n'ai pas testé ce code ... à vérifier
VERA_EDGE 1.7.4452 / VERA_PLUS 1.7.4453 / VERALITE - 1.5.672
Everspring ST814(1), SM103(8), SE812(1), SF812(1), SP814(1), UTSE03A(1), HSM02(1), AN145-2(2)
Duwi  064312 (3) , 064459 (1)
Fibaro FGS221 (3), FGS211(1), FGD211(1), Wall Plug (1), FGMS-001(2), RGBW(1), FGRM-222(7), FGK-101(4), FGSD-002(2), FGFS-101(1)
Aeon DSC12104
Remotec ZXT-120, ZRC-90EU
MCO-HOME MH-S412(2), MH-S314(3)
NEO COOLCAM PowerPlug(6), Light Switch EU-2(4), DĂ©tecteur Mouvement PIR(3)
TOPVICO Detecteur Mouvement PIR
Swiid SwiidInter(3)
BENEXT TagReader
RFXCOM LAN + Sondes Température/Humidité THGR122NX, THGR810, THN132ES, THGR328N) + sonde Piscine(THWR800)
Karotz
Google Home / Alexa
Foscam FI8910W, Wanscam HW0025, Seculink SA-IPC2130HB, HIKVISION DS-2CD2420F-IW
3 Tablettes Android AT102K, CT1020 et PIPO + ImperiHome Pro
PC Tout en Un Tactile 22" ASUS + AltUi v2.40.2501
HP Proliant + XPEnology
Lecteur RFID modifié Zwave
Mon site : http://www.e-domotic.fr/blog/
Avatar de l’utilisateur
chrifabre
Dieu de domotique
 
Messages: 672
Inscription: 01 Jan 2012, 12:10
Localisation: SANARY SUR MER

Re: Rapidité execution scène

Messagede chrifabre » 03 Avr 2016, 14:39

Autre piste, utiliser AltUi et la nouvelle fonction Les workflows
VERA_EDGE 1.7.4452 / VERA_PLUS 1.7.4453 / VERALITE - 1.5.672
Everspring ST814(1), SM103(8), SE812(1), SF812(1), SP814(1), UTSE03A(1), HSM02(1), AN145-2(2)
Duwi  064312 (3) , 064459 (1)
Fibaro FGS221 (3), FGS211(1), FGD211(1), Wall Plug (1), FGMS-001(2), RGBW(1), FGRM-222(7), FGK-101(4), FGSD-002(2), FGFS-101(1)
Aeon DSC12104
Remotec ZXT-120, ZRC-90EU
MCO-HOME MH-S412(2), MH-S314(3)
NEO COOLCAM PowerPlug(6), Light Switch EU-2(4), DĂ©tecteur Mouvement PIR(3)
TOPVICO Detecteur Mouvement PIR
Swiid SwiidInter(3)
BENEXT TagReader
RFXCOM LAN + Sondes Température/Humidité THGR122NX, THGR810, THN132ES, THGR328N) + sonde Piscine(THWR800)
Karotz
Google Home / Alexa
Foscam FI8910W, Wanscam HW0025, Seculink SA-IPC2130HB, HIKVISION DS-2CD2420F-IW
3 Tablettes Android AT102K, CT1020 et PIPO + ImperiHome Pro
PC Tout en Un Tactile 22" ASUS + AltUi v2.40.2501
HP Proliant + XPEnology
Lecteur RFID modifié Zwave
Mon site : http://www.e-domotic.fr/blog/
Avatar de l’utilisateur
chrifabre
Dieu de domotique
 
Messages: 672
Inscription: 01 Jan 2012, 12:10
Localisation: SANARY SUR MER

Re: Rapidité execution scène

Messagede Sebetdelphine » 03 Avr 2016, 15:56

Merci Chrifabre...
Je vais tester tout cela!!
-- Sebetdelphine --
ContrĂ´leurs : Micasaverde VeraLite 1.7.760
Rfxcom Rfxtrx433 (Beta 3 Firmware 194)
DĂ©tecteur de Mouvement : FIBARO FGMS-001 (X2)
Détecteurs de Fumée : EVERYSPRING SF812 (X3) - FIBARO FGSD-002 (X1)
Actionneurs volets : Fibaro FGR-221 (X5)
Actionneurs volets : Fibaro FGRM-222 (X2)
ContrĂ´le Ă©clairage : CHACON DIO (X3)
Contrôleur de Scènes : Aeon Labs AEO_DSA22
Sebetdelphine
Membre Actif
 
Messages: 28
Inscription: 30 Oct 2012, 15:50

Re: Rapidité execution scène

Messagede fatal25 » 04 Avr 2016, 11:33

Salut.
Le sleep est à éviter mais fonctionne très bien si tu n'as pas de longues périodes (reboot de la vera sur timeout de la scène)
Pour 1 sec, ça fonctionne bien.
Pour éviter de faire plusieurs boulches if then l'une derrière les autres, utilise le else if.

Code: Tout sélectionner
SID_Container = "urn:upnp-org:serviceId:VContainer1"
local lul_Compteur = luup.variable_get(SID_Container,"Variable3", 49)

function Appel_Scene(no_scene)
      luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = no_scene}, 0)
end

if lul_Compteur == "1" then
   luup.variable_set(SID_Container, "Variable3", "2", 49)
   luup.call_timer("Appel_Scene",  1,  1, "", "49")   
else if lul_Compteur == "2" then
   luup.variable_set(SID_Container, "Variable3", "3", 49)
   luup.call_timer("Appel_Scene",  1,  1, "", "67")
else if lul_Compteur == "3" then
   luup.variable_set(SID_Container, "Variable3", "1", 49)
   luup.call_timer("Appel_Scene",  1,  1, "", "68")
end


Essaie voir comme ça déjà.
sinon, pour le temps des scènes, je n'y crois pas. C'est le code qui fait le temps ;)
Si tu prends le plugin Volets Roulants IPX800v3 que j'ai fait, tu as plusieurs boucles dedans et quand j'appuie sur le BP qui est câblé sur l'IPX, qui push vers la Vera, la Vera qui décide si elle doit monter/arrêter/descendre le volet, tout ça en moins de 500 ms je pense. Car je peux ré-appuyer dans la foulée pour de nouveau changer l'état du volet.
Créateur du SmartVT (virtual thermostat); Repris et amélioré par Antor.
Créateur du VR dimmable pour IPX800v3 / Veralite.

Si vous aimez le travail fourni pour vous faciliter la vie, faites un don svp.
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2K6F9KCEZYTG6&lc=FR&item_name=fatal25&item_number=domotique&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
fatal25
Dieu de domotique
 
Messages: 1274
Inscription: 12 Mar 2012, 16:08


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Copyright © 2011 - Touteladomotique.com - Tous droits rĂ©servĂ©s
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique