lua : un mal nécessaire! [1]

Le logiciel Domoticz s'installe sur un Raspberry Pi ou sur une machine linux. Il supporte déjà plusieurs protocoles de domotique. Ces derniers mois, de nombreuses mises à jour ont fait progressé ce logiciel ...

lua : un mal nécessaire! [1]

Messagede lmet » 19 FĂ©v 2018, 18:08

Bonjour,
Une des forces de Domoticz c'est incontestablement les scripts.
Au risque de faire pleurer dans les chaumières sans les scripts la solution logicielle perd beaucoup de son intérêt.

Même s'il y a pléthore de tutos sur le Net, sans un minimum de connaissance en codage mieux vaut s'orienter vers une box comme l'eedomus+ par exemple.

Pour compléter on peut coder en blocky, DzVents, shell, lua, php, python. Je me suis arrêté au lua (Le plus abordable pour moi), je vous propose de le mettre en œuvre sur un petit exemple concret : "On rentre à la maison".

Pour cela rendez-vous dans "Setup" --> "More Options" --> "Events". Entrez le nom de l'évènement, choisir Lua, Device puis cochez "Event active", vider les exemples chargés à gauche puis faire "Save".

img_002.jpg
img_002.jpg (22.8 Kio) Vu 1089 fois

"Device " car c'est un évènement --> Ouverture de la porte d'entrée qui va lancer le scénario. Les scripts de type "Time" s'exécutant toutes les minutes.
Voici les acteurs du scénario (voir Topic les dummy une mine d'or! viewtopic.php?f=150&t=19327) :

img_001.jpg
img_001.jpg (84.55 Kio) Vu 1089 fois

Visiblement : Nous sommes absents, la porte d'entrée est fermée, il fait nuit, le chauffage est en mode "Eco", nous sommes en période de chauffe et les volets sont fermés.

Et voici le script lua que nous allons analyser :
L'éditeur utilise la coloration syntaxique, l'auto completion et l'erreur de syntaxe vous verrez alors une croix rouge sur la ligne concernée.

img_003.jpg
img_003.jpg (120.13 Kio) Vu 1089 fois

Devicechanged : C'est le déclencheur, la porte s'ouvre.
== : compare l'élément de gauche à celui de droite.
otherdevices : C'est le statut du module, nous sommes absents.
= : affecte la valeur de droite à l'élément de gauche, nous sommes présents.
[2]: Si l'on renvoie plusieurs commandArray , il faut les indexer sinon la dernière efface la précédente.

Nb : Attention Ă  ne pas confondre "=" et "==" ainsi que les "()" et "{}"

A suivre …

Pas vraiment envie de procéder par épisode mais la limitation à trois captures d'écran sur TLD oblige :(
Je débute un peu moins ;), Si vous souhaitez que je développe un point n'hésitez pas ... (J'utilise essentiellement des modules z-Wave).
@+
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: 1086
Inscription: 14 AoĂ» 2011, 18:54
Localisation: Val d'Oise

Retourner vers Logiciel - Domoticz

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