Script avec condition ou - Printable Version +- Calaos, Home Automation Forum (https://calaos.fr/forum) +-- Forum: Utilisation - Installation - Configuration (https://calaos.fr/forum/forumdisplay.php?fid=4) +--- Forum: Calaos Installer (https://calaos.fr/forum/forumdisplay.php?fid=6) +--- Thread: Script avec condition ou (/showthread.php?tid=386) Pages:
1
2
|
Script avec condition ou - tom - 12-22-2014 Je souhaiterai effectuer un script avec fonction ou (afin d'éviter de creer 50 regles dans Calaos installer) Je souhaiterai me programmer un état "fenêtre ouverte à l'étage" L'état == true si une fenêtre ouverte à l'étage. voici mon script (je precise que c'est mon premier script alors soyez indulgent !!! Code: Print("Fenêtre étage ouverte") RE: Script avec condition ou - raoulh - 12-22-2014 Plusieurs choses: Etant donné que LUA est un language de programmation, il faut respecter certain points. - Il faut déclarer les variables utilisées dan LUA avec le mot clé local: Code: local fanetre_ouverte - Ensuite un nom de variable ne peut pas contenir d'espace ou de caractere spéciaux (les accents par ex) - Pour les OU tu peux faire ca: Code: local FenetreBureau = calaos:getInputValue("input_117") Ensuite pour le script, je te conseille de le mettre dans une condition script et ensuite d'ajouter des "trigger", il s'agit de la liste d'entrée qui vont lancer l'execution du script. La il faut que tu donnes tous tes capteurs des fenetres. Dans mon dernier exemple, je retourne true si au moins une fenetre est ouverte, et false sinon. Ca te permet dans la regle de mettre ton action directement, quand tu retournes false dans le script, les actions ne seront pas executés. RE: Script avec condition ou - tom - 12-22-2014 ok je m"en doutais un peu concernant les caractères spéciaux Si je comprend bien mon script complet devrait ressembler à ca ... Code: Print("Fenêtre étage ouverte") Je ne comprend pas forcement le "else" et le "done" aurrais tu une table concernant ces point RE: Script avec condition ou - raoulh - 12-22-2014 En fait c'est une structure de controle. En gros ca veut dire: SI fentreX est ouverte OU fenetreY est ouverte faire: return true sinon return false fin du bloc IF/THEN/ELSE Je te conseille de lire cette page: http://openclassrooms.com/courses/programmez-sur-votre-ds-avec-microlua/les-bases-de-la-programmation-avec-lua RE: Script avec condition ou - tom - 12-23-2014 Bon finalement j'ai fait ça Code: print("Fenêtre étage ouverte") J'agis donc sur une variable interne nommée "fenêtre étage ouverte" et j'envoie quand même "true" ou "false" au cas où ! Je préfere utiliser une variable car plus facile à rechercher dans la conf par la suite. Du coup dans ma folle lancée j'ai aussi pondu celui ci Code: -- ETAT EN TEXTE ALARME INTRUSION Qui me rempli une variable interne en texte. Donc je peux avoir l'état de ma centrale en texte "total" "partiel" et "hors service" C'est ma femme qui est heureuse ;-) Petite idée ne serait-il pas interessant de répertorier tous les scripts qui fonctionnent et qui pourrait servir dans le wiki ou dans un post ? @Raoulh merci pour ton lien, c'est le plus compréhensible que j'ai pu lire ... Je recommande ! RE: Script avec condition ou - tom - 12-23-2014 Je me permet d'ajouter un petit bug constaté ce soir les scripts ne sont pas sauvegardés dans la conf si je télécharge la conf depuis calaos direct les scripts sont vides !!! RE: Script avec condition ou - raoulh - 12-27-2014 Bizarre ton bug, j'utilise cette fonction tout le temps chez moi... T'es sur que t'a pas ouvert une vieille config? RE: Script avec condition ou - tom - 12-27-2014 Sur j'ai vérifié 2 fois. Si j'ouvre le projet depuis la centrale Le contenu des scripts qui se trouve dans les actions est conservé et celui des conditions est perdu. Idem pour les conf sauvegardées RE: Script avec condition ou - raoulh - 12-28-2014 Sur la v1 ou v2 du coup? RE: Script avec condition ou - tom - 12-28-2014 La question qui fâche !!! Toujours sur V1 |