Bonjour,
Quelqu'un aurait il une idée de script LUA ( dans DOMOTICZ bien sur ) pour faire clignoter une lampe dans un réseau ZWAVE.
Bonne journée
Clignoteur
Clignoteur
Domoticz sur serveur UBUNTU 18.04 - Controleur Zwave+ - 7 detecteurs FGMS 001 - 1 télécommande NODON - 1 sirene SE812 - 3 modules AN157 - 1 detecteur ST814 - 1 vanne danfoss LC13 - 1 detecteur de fumée SF812
Re: Clignoteur
Bonsoir
Un script python comme celui ci fait le job, je ne suis pas assez calé en LUA pour faire facilement un truc qui fonctionne
Ce script nécessite la bibliothèque requests ; sudo pip install requests
Placer ces lignes dans un fichier
Adapter vos ip,ports,idx du périphérique a piloter
Régler le nb de clignotements désirés , le délai entre allumage/extinction
Un chmod 777 sur le fichier
On le lance par un ./mon_nom_de_fichier.py &
le & permet de rendre la main au shell puisque le script va boucler X fois
Ce script est suffisamment documenté pour qu'il soit lisible et compréhensible
Bonne soirée
Un script python comme celui ci fait le job, je ne suis pas assez calé en LUA pour faire facilement un truc qui fonctionne
Ce script nécessite la bibliothèque requests ; sudo pip install requests
Placer ces lignes dans un fichier
Adapter vos ip,ports,idx du périphérique a piloter
Régler le nb de clignotements désirés , le délai entre allumage/extinction
Un chmod 777 sur le fichier
On le lance par un ./mon_nom_de_fichier.py &
le & permet de rendre la main au shell puisque le script va boucler X fois
Ce script est suffisamment documenté pour qu'il soit lisible et compréhensible
J'espère que le coté LUA n'était pas indispensable , sinon ca peut servir de trame pour convertir vers LUA#!/usr/bin/python
# il faut le module requests
# sudo pip install requests
import time
import requests
# le nombre de cligontements que l'on veut
max_iterations=5
# le temps entre un allumage et une extinction en secondes
dodo=1
# les parametres de Domoticz
domoticz_ip='192.168.1.81'
domoticz_port='8080'
# l'idx du peripherique a allumer/eteindre
periph_idx='112'
# fin du parametrage #
# l URL Domoticz est construite dans lumon pour allumer et lumoff pour eteindre
# avec les bouts ci dessous
On='On'
Off='Off'
json_url1='/json.htm?type=command¶m=switchlight&idx='
json_url2='&switchcmd='
json_url3='&level=0'
# la seule difference entre les 2 est le On/Off entre json_url2 et json_url3
# pour basculer l'etat a On/Off
def lumon():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+On+json_url3
r=requests.get (requete)
time.sleep (dodo)
def lumoff():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+Off+json_url3
r=requests.get (requete)
time.sleep (dodo)
# la fontion qui est appelee max_iterations fois
for passage in range (0,max_iterations):
lumon()
lumoff()
Bonne soirée
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
Re: Clignoteur
ce genre de script il ne faut pas le faire en lua. Tout simplement car le moteur lua bloquera tous les autres scripts pendant toute la phase de clignotement.
C'est pour cela que ce genre de script (qui ont des délais,timers ou autres) effectivement comme tu l'as fais , il est recommandé de les faire en script autre que lua
C'est pour cela que ce genre de script (qui ont des délais,timers ou autres) effectivement comme tu l'as fais , il est recommandé de les faire en script autre que lua
Re: Clignoteur
Bonjour,
J'ai bien compris le principe de ce script, néanmoins il se pose plusieurs questions dans l'intégration à Domoticz.
Dans un script LUA de type "script_device_xxxx.lua qui ne peut être lancé que si il est dans ~/domoticz/scripts/lua, un périphérique "test" passe de Off à On (par exemple).
Comment lancer le script "clignotement" pour ce périphérique après le changement de status?
Pendant l’exécution du script "clignotement", qui peut durer assez longtemps, si le script_device_xxxx.lua est relancé, que se passe t-il? Le périphérique "test" reçoit des commandes de 2 scripts différents. C'est d'autan plus vrai qu'à chaque changement de status On/Off ou Off/On de "test" pendant le clignotement, le script_device_xxxx.lua est lancé automatiquement par Domoticz. (pour ce problème, je pourrais interdire toute commande sur le périphérique "test" pendant le temps du clignotement... à voir)
J'ai bien compris le principe de ce script, néanmoins il se pose plusieurs questions dans l'intégration à Domoticz.
Dans un script LUA de type "script_device_xxxx.lua qui ne peut être lancé que si il est dans ~/domoticz/scripts/lua, un périphérique "test" passe de Off à On (par exemple).
Comment lancer le script "clignotement" pour ce périphérique après le changement de status?
Pendant l’exécution du script "clignotement", qui peut durer assez longtemps, si le script_device_xxxx.lua est relancé, que se passe t-il? Le périphérique "test" reçoit des commandes de 2 scripts différents. C'est d'autan plus vrai qu'à chaque changement de status On/Off ou Off/On de "test" pendant le clignotement, le script_device_xxxx.lua est lancé automatiquement par Domoticz. (pour ce problème, je pourrais interdire toute commande sur le périphérique "test" pendant le temps du clignotement... à voir)
Domoticz sur serveur UBUNTU 18.04 - Controleur Zwave+ - 7 detecteurs FGMS 001 - 1 télécommande NODON - 1 sirene SE812 - 3 modules AN157 - 1 detecteur ST814 - 1 vanne danfoss LC13 - 1 detecteur de fumée SF812
Re: Clignoteur
Bonjour
Pour lancer le script en fonction d'un autre interrupteur accroche le dans l'interface au "action on" de cet inter-> script:\\\home\pi\domoticz\scripts\lecriptpython.py
Le script python que j'ai donné ne fait que clignoter durant les x secondes en Y fois, le cahier des charges initial ne précisait pas de cas de sorties du script
Peut être dans ton cas il faut envisager un autre script qui, sur un "action off" de l'interface, arrete le clignotement
Je ne sais pas si ma réponse couvre bien ta demande, mais apèrs 3 ibuprofènes , c'est dur ...
Pour lancer le script en fonction d'un autre interrupteur accroche le dans l'interface au "action on" de cet inter-> script:\\\home\pi\domoticz\scripts\lecriptpython.py
Le script python que j'ai donné ne fait que clignoter durant les x secondes en Y fois, le cahier des charges initial ne précisait pas de cas de sorties du script
Peut être dans ton cas il faut envisager un autre script qui, sur un "action off" de l'interface, arrete le clignotement
Je ne sais pas si ma réponse couvre bien ta demande, mais apèrs 3 ibuprofènes , c'est dur ...
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
Re: Clignoteur
Bonsoir,
Voilà ce que je vais faire après tes conseils. Tout ceci pour faire une alarme anti intrusion.
Avec ma télécommande je fais passer à ON un device fantôme qui déclenche ton script dans 'action on' de ce périphérique. Ce script commence par une pause de 20s puis fais biper ma sirène 5 fois (1/2s ON - 1s OFF) et fais passer à ON un autre device qui lui active l'alarme.
Je ne connais pas PYTHON et je vais essayer une traduction en PHP car je dois ajouter quelques lignes à ton script:
Commencer par une pause de 20s
Après les bip m'assurer que la sirène est bien à OFF, sinon relancer la commande OFF ( par intermédiaire un for, 4 fois par exemple, si toujours ON envoyer un SMS et tout arrêter )
Ajouter le passage à ON du device qui active l'alarme.
Pendant ce temps il me faut inhiber l’exécution du script-device-alarme.lua car à chaque changement de status d'un périphérique il est lancé.
J’espère ne pas avoir aggravé ta santé.
Cordialement
Voilà ce que je vais faire après tes conseils. Tout ceci pour faire une alarme anti intrusion.
Avec ma télécommande je fais passer à ON un device fantôme qui déclenche ton script dans 'action on' de ce périphérique. Ce script commence par une pause de 20s puis fais biper ma sirène 5 fois (1/2s ON - 1s OFF) et fais passer à ON un autre device qui lui active l'alarme.
Je ne connais pas PYTHON et je vais essayer une traduction en PHP car je dois ajouter quelques lignes à ton script:
Commencer par une pause de 20s
Après les bip m'assurer que la sirène est bien à OFF, sinon relancer la commande OFF ( par intermédiaire un for, 4 fois par exemple, si toujours ON envoyer un SMS et tout arrêter )
Ajouter le passage à ON du device qui active l'alarme.
Pendant ce temps il me faut inhiber l’exécution du script-device-alarme.lua car à chaque changement de status d'un périphérique il est lancé.
J’espère ne pas avoir aggravé ta santé.
Cordialement
Domoticz sur serveur UBUNTU 18.04 - Controleur Zwave+ - 7 detecteurs FGMS 001 - 1 télécommande NODON - 1 sirene SE812 - 3 modules AN157 - 1 detecteur ST814 - 1 vanne danfoss LC13 - 1 detecteur de fumée SF812
Re: Clignoteur
Bonsoir
Bon ! Enchanté qu'une solution se dégage
Pour les modifs dont tu parles
pour avoir une pause de 20 sec tu peux caler un dodo(20) avant for passage in range (0,max_iterations):
ensuite tu peux utiliser les
que tu remets à ta sauve pour json_url1,2,3 suivant l'API
le r=requets... lance cl'url en question
Après Ibuprofène j'ai fini par whisky/glaçon et ca va mieux ,
j'aurais du faire ça avant ...
Bonne soirée
Bon ! Enchanté qu'une solution se dégage
Pour les modifs dont tu parles
pour avoir une pause de 20 sec tu peux caler un dodo(20) avant for passage in range (0,max_iterations):
ensuite tu peux utiliser les
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+On+json_url3
r=requests.get (requete)
que tu remets à ta sauve pour json_url1,2,3 suivant l'API
le r=requets... lance cl'url en question
Après Ibuprofène j'ai fini par whisky/glaçon et ca va mieux ,
j'aurais du faire ça avant ...
Bonne soirée
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1