aide pour réalisation script en lua

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message par vr6man »

Bon test depuis safari fait et ça fonctionne en commandant en json directement store terrasse

voici
Ouverture:

Code : Tout sélectionner

http://192.168.0.251:8080/json.htm?type=command&param=switchlight&idx=538&switchcmd=On
Fermeture:

Code : Tout sélectionner

http://192.168.0.251:8080/json.htm?type=command&param=switchlight&idx=538&switchcmd=Off
tu veux que fasse quoi maintenant ?
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: aide pour réalisation script en lua

Message par Keros »

Donc, voici le code à mettre dans ton fichier script_device_fermeture_store.lua

Code : Tout sélectionner

commandArray={}
print ('Lancement du script de fermeture')
-- Fermeture du Store Terrasse
if (devicechanged['Nuit']=='On') then
print ('Le device Nuit est passé à On')
local config = assert(io.popen('/usr/bin/curl "http://192.168.0.251:8080/json.htm?type=command&param=switchlight&idx=538&switchcmd=Off"'))
end
print ('Fin du script de fermeture')
return commandArray
Surtout, tu désactives le script qu'on a mis dans Configuration / Pus d'options / Evènements (il ne faudrait pas les deux scripts tournent en même temps).

L'essai est Nuit à Off + Store terrasse à On > Passage de Nuit à On : ton store devrait se fermer.

On verra après pour mettre à jour les autres variables.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message par vr6man »

eureka

Ça fonctionne le store se ferme bien au passage de nuit à l'état on et la variable se met bien a jour et met bien a jour le device virtuel

y a t'il autre chose a effectuer ?

Sais tu pourquoi nous n'y arrivions pas avant utiliser le json ?

Comment intégrer les conditions pluie, vent, soleil ?

Merci a vous tous
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: aide pour réalisation script en lua

Message par Keros »

Tant mieux :)

Je vais essayer de te donner une image :
  • Utiliser les lignes de commandes LUA, c'est comme si tu prenais un marteau pour enfoncer un clou.
  • Utiliser le Json (pour remplacer une simple commande LUA), c'est comme si tu demandais à ton voisin de prendre le marteau et enfoncer le clou.
La finalité est la même (le clou est enfoncé) par contre il y a une façon de faire qui est moins logique.


Concernant les conditions de puie, etc ... Je laisse ma place : c'est à toi de comprendre et de le faire. Je pourrai te faire le script mais ce n'est pas te rendre service : il faut que tu sois autonome. Ça te permettra d'apprendre et de faire plein d'autres choses par la suite.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message par thier »

Quelle bataille!
L'intérêt de la commande json c'est que tu n'utilises pas le nom du device mais son idx. Peut-être le même problème que moi ce week-end et qu'il n'aime pas l'espace entre Store et Terrasse dans le nom.
Pour les conditions météo Vil1driver t'a mis sur la piste dans un post précédent ou il te met 3 print.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message par vr6man »

oui on peu dire qu'il y a des acharnés sur le forum

Par contre franchement je n'ai pas compris l'histoire de l'adaptation et de la lecture des mesures (pluie, vent, lux)
et ca dépasse mes compétences
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: aide pour réalisation script en lua

Message par Keros »

Voilà une idée :

Je pars du principe que tu as 3 infos pour lesquels tu veux des actions (c'est un exemple avec des valeurs prises au pif) :
  • Pluie : si oui alors fermer le store
  • Vent : si > 50 km/h alors fermer le store
  • Lux : si > 500 alors ouvrir le store
Maintenant, ce programme il faut l'exécuter : à chaque fois que Vent, Pluie ou Lux change ? Ca ferait beaucoup.
Les programme basés sur le temps se lancent toutes les minutes : l’intervalle de temps est pas mal pour ton besoin.

Après c'est à toi de rajouter des conditions, de les imbriquer, etc.

La programmation commence par écrire des choses simple.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message par thier »

D'accord avec Keros. Ne t'emballes pas avec des conditions météo. Choisie une condition. Avec google tu cherches comment extraire le vent de ton device. Ensuite tu fais un script_time qui dit si vent > à une valeur, je ferme le store. On a tous commencé comme ça. Un petit script, avec plein de print pour debugger, puis on l'étoffe.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message par vr6man »

Suite a vos conseils

J'ai fait un script time en lua pour extraire les valeurs suivantes

Code : Tout sélectionner

commandArray = {}

print('otherdevices[\'Pluie\'] '..otherdevices['Pluie'])
print('otherdevices[\'UV\'] '..otherdevices['UV'])
print('otherdevices[\'Vent\'] '..otherdevices['Vent'])

return commandArray
  • 2020-05-19 22:41:01.916 Status: LUA: otherdevices['Pluie'] 0;0.0
    2020-05-19 22:41:01.916 Status: LUA: otherdevices['UV'] 0.0;0.0
    2020-05-19 22:41:01.916 Status: LUA: otherdevices['Vent'] 7.00;N;33;58;17.1;17.1
Pour pluie et uv je referais un test de jour demain par contre pour le vent comment interpréter cette valeur ?

Merci
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message par thier »

Vil1driver t'a mis je pense sur une bonne piste pour extraire la donnée qui t'interesse pour un capteur qui a plusieurs données.

Temp, Hum, Hum_S, Baro = otherdevices_svalues['THB']:match("([^;]+);([^;]+);([^;]+);([^;]+)")
print (Temp)
print (Hum)
print (Baro)

Cet exemple est pour un capteur nommé THB et qui contient 4 informations. A adapter...
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre