commandevers ipx800

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 <\>.
romy
Messages : 19
Inscription : 27 nov. 2014, 11:15

commandevers ipx800

Message par romy »

RESOLU

Bonsoir à tous,
Je cherche comment commander un relais de l'IPX800 à partir d'un script lua
l'ipx est bien déclaré comme matériel
une commande telle que http://192.168.1.15/preset.htm?led2=1 fonctionne bien comme action Off/On dans un interrupteur
l'ipx répond bien sur un ping envoyé depuis le script lua
mais impossible d'executer la même commande dans le script suivant :(os.execute('192.168.1.15/preset.htm?led7=1')
elle est ignorée !
Avez-vous une idée ?
Merci d'avance
Dernière modification par romy le 03 déc. 2014, 08:29, modifié 1 fois.
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: commandevers ipx800

Message par patrice »

Bonjour

Dans ton os.execute il faut mettre la commande TELLE QUE tu la taperai dans un terminal avec des (" ")
Donc plutôt qq chose comme cela

os.execute ("curl http:\\................")


Pas testé , pas de raspi sous la main
Cherche sur le net avec os.execute et curl si ca ne marchait pas tout à fait comme cela

Mais au feeling ....
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
romy
Messages : 19
Inscription : 27 nov. 2014, 11:15

Re: commandevers ipx800

Message par romy »

Bonjour Patrice, toujours fidèle au poste ? ;)

En fait, j'ai toujours la solution de déclarer un device virtuel dont l'action ON contient la commande http... et commander à partir du script lua... et ca marche.
Mais bon, je pensais que c'était plus propre de mettre cette commande directement dans lua et j'ai tout essayé dont la syntaxe que tu m'indiques sans résultat !

Pour l'instant, en bon débutant, je pilote tout sur Domoticz en local sur mon PC connecté au rfxcom, c'est plus simple pour tester les scripts.
Donc le raspberry est au repos.

Ce qui m'amène à cette question au passage. Peut-on transférer la base de donnée du Domoticz local sur le raspberry, histoire de n'avoir pas à refaire tous les devices ?

Je dois m'absenter jusqu'à midi mais merci d'avance pour ton aide
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: commandevers ipx800

Message par patrice »

:D oui les journées chez belle maman sont longues sans vous ...

M 'étonne que os.execute ("curl...") ne fonctionne pas mais puisque tu as trouvé une autre solution ca ira
Pour basculer sur une autre machine un backup puis restoration dans les outils de Domoticz fera ton affaire
romy
Messages : 19
Inscription : 27 nov. 2014, 11:15

Re: commandevers ipx800

Message par romy »

Non, j'ai tout essayé et je ne comprend pas pourquoi cette commande est ignorée dans le script (le log ne signale pas d'erreur)
Merci quand même pour ton aide ;)
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: commandevers ipx800

Message par patrice »

Hello

Je viens de récupérer un Lua
et je te confirme que os.execute fonctionne pour ce que tu veux faire
Attention aux " et '
1 simple quote pour os.execute('
et une double en debur et fin pour delimiter "http:// ......."
puis on referme le os.execute ')

un exemple qui m'a value de recevoir 50 SMS de suite pour me dire de la lumiere est eteinte
commandArray = {}

commandArray['Lumiere_Exterieur']='Off'
os.execute ('curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?u ... sg=Lumiere eteinte !!"')

return commandArray
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
romy
Messages : 19
Inscription : 27 nov. 2014, 11:15

Re: commandevers ipx800

Message par romy »

Voilà le script :
-- programme test
commandArray = {}
if (devicechanged['test'] == 'On' and otherdevices['fonction'] == 'Off') then
os.execute('curl "http://192.168.1.15/preset.htm?led8=1"') -- relais8=1
-- commandArray['fonction']='On'
print ('fonction ON')
end
if (devicechanged['test'] == 'Off' and otherdevices['fonction'] == 'On') then
os.execute('curl "http://192.168.1.15/preset.htm?led8=1"') -- relais8=0
-- commandArray['fonction']='Off'
print ('fonction OFF')
end
return commandArray


A quoi servent les caractères entre le curl et http dans ton exemple ?
Je précise que le script http://192.168.1.15/preset.htm?led8=1 fonctionne dans l'action ON d'un interrupteur
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: commandevers ipx800

Message par patrice »

Les options -s -k -i sont -s = silence : pas de message envoyé par curl, -i de travailler sans securité https -k dit d'inclure les header http cela est vraiment spécifique à l'utilisation e la plateforme d'envoi de sms de free


Dans ton scriot un truc m'etonne c'est QUE LES 2 switchs changent d'etat en même temps , quand l'un est ON l'autre est OFF et vie versa


if (devicechanged['test'] == 'On' and otherdevices['fonction'] == 'Off') then
if (devicechanged['test'] == 'Off' and otherdevices['fonction'] == 'On') then

C'est bien cela qui se produit avec ce que tu cherche à piloter ?
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
romy
Messages : 19
Inscription : 27 nov. 2014, 11:15

Re: commandevers ipx800

Message par romy »

Oui, en fait le but c'est de supprimer l'interrupteur FONCTION qui ne sert que pour actionner le relais à travers sa commande action on/off (code http...)
Je voulais vérifier que le déclenchement du script lua par le bouton TEST commandait bien l'action (command Array[fontion]) et c'est OK.
Le script fonctionne bien sauf que la commande directe par os.execute.... est ignorée.

L'objectif est de piloter le chauffage déjà planifié dans l'ipx800 (timer) avec un script qui surveille une sonde et envoie une commande prioritaire a certains relais (fils pilotes).
Même idée pour l'arrosage planifié par l'ipx et qui doit être stoppé si il pleut un peu trop (j'habite dans l'hérault :) )
romy
Messages : 19
Inscription : 27 nov. 2014, 11:15

Re: commandevers ipx800

Message par romy »

Finalement ma commande relais vers l'ipx800 dans le même script lua :
sur Domoticz avec Raspberry est bien exécutée
sur Domoticz avec Windows n'est pas exécutée
Moralité: je laisse tomber mes tests sous Windows mais j'aimerais savoir ce qui cloche !
Répondre