Test Ă©tat volet avant fermeture et test code lua

Programmation de la Vera

Test Ă©tat volet avant fermeture et test code lua

Messagede Niko » 22 Juin 2018, 15:15

Bonjour Ă  tous,

Un post de plus dans la partie programmation :/
On ne peut pas dire que c'est ici que j’excelle le plus...

Je cherche à optimiser ma scène de fermeture des volets :
Tous les soirs, après le coucher du soleil, les volets de la maison se ferment. C'est beau, ça marche, aucun soucis de ce côté là.
Maintenant ce qui me "gène", c'est quand un ou plusieurs volets sont déjà fermés, j'entends un (ou plusieurs) clic de leurs modules respectifs qui envoient la commande de fermeture.
J'aimerais donc une solution plus propre et faire un code luup qui vérifierait si un volet est fermé ou non avant de lui envoyer la commande.

Ca donnerait donc quelque chose comme :
Code: Tout sélectionner
Etatvolet1 = luup.variable_get ("urn:upnp-org.serviceId:Dimming1", "Status", VOLET1)
if Etatvolet1 =="100"
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "0"}, VOLET1)
end


L'étape suivante serait de faire un Foreach pour qu'il boucle sur tous mes volets. Quelqu'un a une idée de la syntaxe ?

Ca m'amène à la question suivante : Quand je fais des tests en luup sur "Test Luup code(Lua)" dans Develop Apps, je ne sais jamais vraiment quelle valeur je récupère.
Par exemple, je veux être sur que mon status volets renvoie bien 0, 10, 52, 100, etc.. et que je ne me suis pas planté dans une syntaxe.
Comment faites-vous ? Est-il possible d'afficher une variable dans une msgbox par exemple ?
Niko
Box Zwave : Vera Lite UI7 v:1.7.1017
Plugins : VeraConnect WWN, ImperiHome, Virtual ON/OFF Switches, eMail Notification, RGB Controller
EverSpring : HSM02
Fibaro : FGWPE F101, FGD212 (*2), FGS221 (*2), FGS211, FGS213, FGRM221 (*5), FGRM222, FGSD002
Caméras : Hikvision
Thermostat : Nest
Nas : Xpenology sur HP Proliant
Assitant : Google Home
Niko
Guru de domotique
 
Messages: 106
Inscription: 25 Avr 2012, 14:39

Re: Test Ă©tat volet avant fermeture et test code lua

Messagede lmet » 22 Juin 2018, 16:44

Bonjour,

J'avais cela dans le temps pour fermer mes 5 volets du RDC, je l'ai un peu modifié pour tenir compte de ton besoin.
J'ai ajouté une condition que le volet ne soit pas déjà fermé (pas testé donc).

Code: Tout sélectionner
-- On ferme les volets du RDC
local FDIMMER = "urn:upnp-org:serviceId:Dimming1"
local Volets_RDC = {130,149,150,223,255} -- A changer en fonction de tes id de volets.
for i,id in ipairs(Volets_RDC) do
   EtatVolet = luup.variable_get (FDIMMER, "Status", id)
   if EtatVolet ~= "0" then
      luup.call_action(FDIMMER, "SetLoadLevelTarget", {newLoadlevelTarget = "0"}, id)
   end
end

Pour le test du code luup c'est vraiment préhistorique sur la Vera. Le mieux est d'utiliser un plugin de type "Multistring" pour afficher des valeurs.
lmet
Domotique : RPI 3 raspbian stretch, clef Z-wave Aeon Labs, application Domoticz v4.9700
EverSpring : ST814, AN158-6
Fibaro : FGR-221,FGS-221, FGS-211,FGD-211,FGK-103, FGRM-221, FGRM-222, FGMS-001, FGFS-101
iPad Air 2 : Imperihome
Caméras : FosCam FI9805W
Sécurité : Nest Protect
Energie : AEO_HEM2 d'AEON LABS, onduleur APC Back-UPS ES 700
Autres : Pc Windows 10 Pro 64 bits, IPX 800 v3, Netatmo station météo, NAS Synology DS214, TV Sony KDL-50W755c
Avatar de l’utilisateur
lmet
Dieu de domotique
 
Messages: 1005
Inscription: 14 AoĂ» 2011, 18:54
Localisation: Val d'Oise

Test Ă©tat volet avant fermeture et test code lua

Messagede Niko » 22 Juin 2018, 20:26

La grande classe lmet ! Une fois de plus merci !
Je vais tester ça.
Pour le plugin multistring, c'est sur la vera ?

Envoyé de mon SM-G950F en utilisant Tapatalk
Niko
Box Zwave : Vera Lite UI7 v:1.7.1017
Plugins : VeraConnect WWN, ImperiHome, Virtual ON/OFF Switches, eMail Notification, RGB Controller
EverSpring : HSM02
Fibaro : FGWPE F101, FGD212 (*2), FGS221 (*2), FGS211, FGS213, FGRM221 (*5), FGRM222, FGSD002
Caméras : Hikvision
Thermostat : Nest
Nas : Xpenology sur HP Proliant
Assitant : Google Home
Niko
Guru de domotique
 
Messages: 106
Inscription: 25 Avr 2012, 14:39

Re: Test Ă©tat volet avant fermeture et test code lua

Messagede lmet » 22 Juin 2018, 22:18

Niko a Ă©crit:La grande classe lmet ! Une fois de plus merci !
Je vais tester ça.

Pas de quoi, merci de ta confiance, moi j'aurai testé avant ;)

Niko a Ă©crit: Pour le plugin multistring, c'est sur la vera ?

Oui c'est le genre de plugin qui aide à rester sur cet ecosystème. C'est le plugin N°: 8231 après installation on crée des blocs de 5 variables :

Image
Dans ton code tu ajoutes juste :
Code: Tout sélectionner
Local VCONTAINER = "urn:upnp-org:serviceId:VContainer1"
luup.variable_set (VCONTAINER,"Variable1", MaValeur , id)

Tout comme l'exemple précédent avec FDIMMER le mieux est de déclarer des variables globales dans le Startup Lua
Ainsi en déclarant FDIMMER = "urn:upnp-org:serviceId:Dimming1" on évite d'avoir à taper "urn:upnp-org:serviceId:Dimming1" partout où c'est nécessaire.

Si "MaValeur" est de type numérique ne pas oublier de faire un tostring (MaValeur)
lmet
Domotique : RPI 3 raspbian stretch, clef Z-wave Aeon Labs, application Domoticz v4.9700
EverSpring : ST814, AN158-6
Fibaro : FGR-221,FGS-221, FGS-211,FGD-211,FGK-103, FGRM-221, FGRM-222, FGMS-001, FGFS-101
iPad Air 2 : Imperihome
Caméras : FosCam FI9805W
Sécurité : Nest Protect
Energie : AEO_HEM2 d'AEON LABS, onduleur APC Back-UPS ES 700
Autres : Pc Windows 10 Pro 64 bits, IPX 800 v3, Netatmo station météo, NAS Synology DS214, TV Sony KDL-50W755c
Avatar de l’utilisateur
lmet
Dieu de domotique
 
Messages: 1005
Inscription: 14 AoĂ» 2011, 18:54
Localisation: Val d'Oise

Re: Test Ă©tat volet avant fermeture et test code lua

Messagede Niko » 23 Juin 2018, 07:20

lmet a Ă©crit:
Niko a Ă©crit:La grande classe lmet ! Une fois de plus merci !
Je vais tester ça.

Pas de quoi, merci de ta confiance, moi j'aurai testé avant ;)


J'ai testé cette nuit. Tout fonctionne parfaitement ! :)

lmet a Ă©crit:
Niko a Ă©crit: Pour le plugin multistring, c'est sur la vera ?

Oui c'est le genre de plugin qui aide à rester sur cet ecosystème. C'est le plugin N°: 8231 après installation on crée des blocs de 5 variables :

Image


L'image ne s'affiche pas :(

lmet a Ă©crit:Dans ton code tu ajoutes juste :
Code: Tout sélectionner
Local VCONTAINER = "urn:upnp-org:serviceId:VContainer1"
luup.variable_set (VCONTAINER,"Variable1", MaValeur , id)

Tout comme l'exemple précédent avec FDIMMER le mieux est de déclarer des variables globales dans le Startup Lua
Ainsi en déclarant FDIMMER = "urn:upnp-org:serviceId:Dimming1" on évite d'avoir à taper "urn:upnp-org:serviceId:Dimming1" partout où c'est nécessaire.

Si "MaValeur" est de type numérique ne pas oublier de faire un tostring (MaValeur)


J'avoue que j'ai du mal à saisir l'utilité de ce plugin.:(
On peut trouver un manuel quelque part ?
Niko
Box Zwave : Vera Lite UI7 v:1.7.1017
Plugins : VeraConnect WWN, ImperiHome, Virtual ON/OFF Switches, eMail Notification, RGB Controller
EverSpring : HSM02
Fibaro : FGWPE F101, FGD212 (*2), FGS221 (*2), FGS211, FGS213, FGRM221 (*5), FGRM222, FGSD002
Caméras : Hikvision
Thermostat : Nest
Nas : Xpenology sur HP Proliant
Assitant : Google Home
Niko
Guru de domotique
 
Messages: 106
Inscription: 25 Avr 2012, 14:39

Re: Test Ă©tat volet avant fermeture et test code lua

Messagede lmet » 23 Juin 2018, 11:14

Bonjour,

Content que cela fonctionne :D Oups, voici l'image
img_005.jpg
img_005.jpg (24.77 Kio) Vu 250 fois
Niko a Ă©crit:Comment faites-vous ? Est-il possible d'afficher une variable dans une msgbox par exemple ?

Quand on debug du code on a souvent besoin de connaitre l'état de certaines valeurs intermédiaires.
Le MultiString peut alors servir de lieu de stockage de ces valeurs comme on le ferait avec un simple "print" ou un MsgBox.

Par exemple :
Code: Tout sélectionner
local FDIMMER = "urn:upnp-org:serviceId:Dimming1"
Local VCONTAINER = "urn:upnp-org:serviceId:VContainer1"
EtatVolet = luup.variable_get (FDIMMER, "Status", id)
luup.variable_set (VCONTAINER,"Variable1", "Etat du volet : " .. EtatVolet , id)

Il doit y avoir plus simple mais c'est tout ce que j'ai trouvé à l'époque.
lmet
Domotique : RPI 3 raspbian stretch, clef Z-wave Aeon Labs, application Domoticz v4.9700
EverSpring : ST814, AN158-6
Fibaro : FGR-221,FGS-221, FGS-211,FGD-211,FGK-103, FGRM-221, FGRM-222, FGMS-001, FGFS-101
iPad Air 2 : Imperihome
Caméras : FosCam FI9805W
Sécurité : Nest Protect
Energie : AEO_HEM2 d'AEON LABS, onduleur APC Back-UPS ES 700
Autres : Pc Windows 10 Pro 64 bits, IPX 800 v3, Netatmo station météo, NAS Synology DS214, TV Sony KDL-50W755c
Avatar de l’utilisateur
lmet
Dieu de domotique
 
Messages: 1005
Inscription: 14 AoĂ» 2011, 18:54
Localisation: Val d'Oise


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

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


cron