Page 1 sur 1
declencher un script sur
Publié : 20 mai 2016, 08:47
par domoserena
bonjour,
J'ai connecté à domoticz un rflink. J'ai ensuite créé une dizaine de devices pour des sondes oregon et des telecommandes radio.
Je voudrais sur chaque evenement recu du rflink declencher un script. Je peux faire une scene par device declaree dans domoticz qui va declencher à chaque fois le meme script mais c'est franchement pas terrible comme approche.
est il possible de declencher un script sur l'arrivée d'un evenement sur le rflink (declencher sur un materiel et non pas une device de ce materiel en fait) et de declencher un script avec en parametre la chaine recue par le rflink ?
merci d'avance
Re: declencher un script sur
Publié : 20 mai 2016, 10:53
par rimram31
Bonjour,
Peux-tu nous dire plutôt ce que tu cherches a faire ? La finalité ? On pourra t'aider a le faire avec domoticz. Domoticz est là justement pour abstraire le matériel, que ce soit du 433, zwave ou autre ... un événement est un événement.
A un événement rflink correspond un événement device, les devices associés a ce matériel (scripts _device) pour lequel tu pourrais filtrer uniquement les devices qui t'intéressent. Si tu veux aller plus bas dans le matériel, attaque alors l'implémentation hardware (en C) du rflink mais tu fais alors du spécifique.
Re: declencher un script sur
Publié : 20 mai 2016, 12:02
par domoserena
J'ai actuellement un systeme domotique que j'ai developpe moi meme à partir d'arduinos et de raspberry.
Les arduinos font actuellement toutes les parties capteurs (teleinfo, decodage de telecommande et des sondes oregon, alarme, x10 par tw523, ds18b20, etc, etc ...).
Le programme principal est en python sur raspberry via un serveur tornado (websocket). L'interface est en php. L'arduino maitre est connecte au raspberry par usb.
Je voudrais migrer mon systeme sur domoticz mais petit à petit. Dans un premier temps domoticz fera l'interface utlisateur à la place de mon php et la partie capteurs cm15 / rflink. Le reste du programme restera mon programme python actuel avec quelques modifs pour mettre à jour des champs dans domoticz.
Je voudrais donc via domoticz capturer tout ce qui passe sur le cm15 (mochad) et sur le rflink et l'envoyer à mon programme python tornado (par http get, udp ou mqtt). Le programme fera le traitement et renverra les données vers domoticz.
Ensuite si tout ce passe bien, je passerais probablement tout sur domoticz.
Re: declencher un script sur
Publié : 20 mai 2016, 14:24
par rimram31
Ok

plus clair pour moi ...
Première idée, utiliser mqtt, tu devrais pouvoir alors te mettre "a l'ecoute" de l'activité de domoticz, pas un matériel particulier mais tout ce qui se passe sous dz. A vérifier, je n'ai pas joué avec, mais on peut aussi piloter dz par ce biais.
Autre idée, écrire un script device générique (lua), ce type de script est appelé chaque fois qu'un device a son etat qui change, et appeler alors ton programme python via http par ex. un peu sur le modèle de ça:
viewtopic.php?f=17&t=1925 ou on renvoie tout "ce qui se passe" a un site tierce. Ca ne te permet pas de faire un script "par matériel" mais d'imaginer un seul script un peu générique pour traiter un ensemble d'interactions.
Pour l'autre sens => ton outil vers dz, dz a une api
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's qui te permet a partir d'un programme tiers d'interagir avec dz.
Re: declencher un script sur
Publié : 20 mai 2016, 21:52
par papoo
dans un même script_device en lua il me semble que tu peux contrôler le changement de plusieurs devices
comme dans cet exemple (trouvé sur domoticz.com)
Code : Tout sélectionner
commandArray = {}
if devicechanged['Luci Cancellino'] == 'On' then cancellin = 50 else cancellin = 0 end
if devicechanged['Facciata'] == 'On' then facciata = 21 else facciata = 0 end
if devicechanged['Cupola Esterno'] == 'On' then dome = 8 else dome = 0 end
if devicechanged['Corridoio'] == 'On' then hall = 10 else hall = 0 end
if devicechanged['Cupola Xmas'] == 'On' then cupXmas = 500 else cupXmas = 0 end
if devicechanged['Cancellino Xmas'] == 'On' then canXmas = 400 else canXmas = 0 end
if devicechanged['Lampada Sala'] == 'On' then sala = 10 else sala = 0 end
if devicechanged['Faro dietro'] == 'On' then farodie = 35 else farodie = 0 end
if devicechanged['Faro davanti'] == 'On' then farodav = 40 else farodav = 0 end
if devicechanged['Lanterna facciata'] == 'On' then lantfac = 16 else lantfac = 0 end
if devicechanged['Lanterna nonna'] == 'On' then lantnon = 25 else lantnon = 0 end
if devicechanged['Accento ingresso'] == 'On' then accing = 8 else accing = 0 end
if devicechanged['Lampione'] == 'On' then lampion = 23 else lampion = 0 end
if devicechanged['Presa Volante'] == 'On' then presvol = 300 else presvol = 0 end
if devicechanged['Luce Garage'] == 'On' then lucgar = 4 else lucgar = 0 end
return commandArray