Script sur Action On/Off sous Windows

Vous utilisez Windows © pour votre domotique avec Domoticz, ca ne fait rien on vous aime bien quand même. Ce forum est pour vous.
hobbe
Messages : 111
Inscription : 15 déc. 2014, 15:33

Script sur Action On/Off sous Windows

Message par hobbe »

Bonsoir,

Savez-vous comment renseigner les champs Action On ou Action Off d'un interrupteur (On/Off ou Push On Button).

Sous Linux, c'est :

Code : Tout sélectionner

script:///home/pi/domoticz/script/test.sh
J'ai essayé :

Code : Tout sélectionner

script://c:\domoticz\scripts\test.bat
script:///c:\domoticz\scripts\test.bat
script://c:/domoticz/scripts/test.bat
script://c|/domoticz/scripts/test.bat
script:///c:/domoticz/scripts/test.bat
script:///c|/domoticz/scripts/test.bat
script://scripts/test.bat
script://test.bat
Rien ne passe... :( :?:

Merci!
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Script sur Action On/Off sous Windows

Message par patrice »

Bonsoir

comme ca au feeling
c/Domoticz/scripts
sinon avec des "
script://"c:\....."

ou avec un '
script:\\'c:\.......'
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
hobbe
Messages : 111
Inscription : 15 déc. 2014, 15:33

Re: Script sur Action On/Off sous Windows

Message par hobbe »

Merci patrice, mais ce ne passe pas non plus.
Il faut forcément que ça commence par script:// ou http://.

J'ai ouvert un message sur le forum Domoticz, on verra ce que les utilisateurs anglophones diront...
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Script sur Action On/Off sous Windows

Message par patrice »

Bonjour
oui je voulais écrire

script:// c/Domoticz/scripts....
ou
script://"c:\....."
ou
script:\\'c:\.......'
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
proncola
Messages : 2
Inscription : 16 nov. 2015, 00:58

Re: Script sur Action On/Off sous Windows

Message par proncola »

Pour les scripts Windows, je viens de découvrir que les scripts doivent se trouver sous :
"ProgramData\Domoticz"
et pas
"Program Files\Domoticz"
Ensuite, 'Action On' doit contenir :
script://votreScriptPython.py

Je n'ai pas testé les fichiers Windows batch (.bat).

Pascal
Domotifan
Messages : 49
Inscription : 29 sept. 2015, 08:47

Re: Script sur Action On/Off sous Windows

Message par Domotifan »

Hello, ça m'interesse aussi, mais en dehors du simple chemin pour accéder au batch, il semble qu'il faille une syntaxe particulière pour faire fonctionner ce batch, certaines fonctions ne pouvant pas s'exécuter, comme 'start iexplorer "http://.....
Pyrrhus
Messages : 130
Inscription : 11 juin 2015, 14:57

Re: Script sur Action On/Off sous Windows

Message par Pyrrhus »

Bonjour, je remonte ce vieux topic pour apporter une solution au lancement de scripts sous domoticz windows.
Cette solution fonctionne chez moi, sous windows 7 (le meilleur à jamais :lol: ) ,peut-être que cela sera différent chez vous.
- J'ai installé domoticz comme une application et non comme un service, car aucun script (ni .bat, ni .vbs, ni .exe) ne fonctionnait en tant que service
- avec les .exe et les .bat il y a un problème > pas d'execution, ou freeze temporaire de domoticz, ou message d'erreur du programme (ça a l'air d'être un probleme de droit administrateur que domoticz n'a pas pour lancer le script)
- MAIS avec les .vbs , ça fonctionne super bien !!!
voici le chemin pour une action:

Code : Tout sélectionner

script://C:\votre\chemin\script.vbs
Contrairement à domoticz pour linux, vous n'etes pas obligé de mettre vos scripts dans le répertoire domoticz, pour peu que vous renseigniez correctement le chemin.
- solution alternative: un script_device_xx.lua qui execute le vbs si l'interrupteur passe à On. Par contre j'ai remarqué un délai de plusieurs secondes avec cette méthode. Là il faudra mettre les lua dans le répertoire \scripts\lua de domoticz.

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Mon Switch'] == 'On' ) then
       os.execute ('C:\\chemin\\script.vbs')
end
return commandArray
- si vous voulez lancer un exe 32 bits, votre .vbs doit ressembler à ça:

Code : Tout sélectionner

 
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """C:\chemin\du\programme.exe"""
- si vous voulez lancer un exe 64 bits, votre .vbs doit ressembler à ça:

Code : Tout sélectionner

If InStr(LCase(WScript.FullName),"syswow64") Then
  CreateObject("WScript.Shell").Run """%systemroot%\sysnative\wscript.exe"" """ & WScript.ScriptFullName & """"
  WScript.Quit
End If

Dim objShell

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.run("""C:\chemin\du\programme.exe""")
Set objShell = Nothing
Si vous préférer lancer le raccourci de l'exe (surtout pour les jeux qui ont quelquefois de paramètres dans le raccourci) remplacer le chemin de l'exe par celui du *.lnk, en faisant bien attention si c'est du 32 ou 64 bits également.

Pour les bat, soit ça marche sur le meme principe, soit il suffit simplement de convertir votre bat en exe avec le petit utilitaire bat2exe :D

- si vous voulez lancer une requete http par vbs:

Code : Tout sélectionner

dim xHttp: Set xHttp = createobject("MSXML2.ServerXMLHTTP")

xHttp.Open "GET", "http://votre/URL", False

' 2 stands for SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS
' 13056 means ignore all server side cert error
xHttp.setOption 2, 13056
xHttp.Send

' read response body
' WScript.Echo xHttp.responseBody
Au cas ou, n'oubliez pas d'autoriser C:\Windows\System32\cscript.exe, C:\Windows\System32\wscript.exe et C:\Windows\Syswow64\wscript.exe
dans votre pare-feu
Voilà, j'espère que ça vous aidera !
Dernière modification par Pyrrhus le 12 janv. 2017, 11:12, modifié 1 fois.
Domotifan
Messages : 49
Inscription : 29 sept. 2015, 08:47

Re: Script sur Action On/Off sous Windows

Message par Domotifan »

Salut ! très bon tuto, mais ça fait longtemps que je galère et rien à faire, marche pô !! :roll:
J'ai tout essayé, aucune erreur dans mes logs, mais rien ne se passe sur ma machine Domoticz...
Une idée ? une maj de Domotiz qui enterrerai la fonction script:// sous windows ?
Pyrrhus
Messages : 130
Inscription : 11 juin 2015, 14:57

Re: Script sur Action On/Off sous Windows

Message par Pyrrhus »

Salut,
si tu veux lancer des exe en 64 bits il faut effectivement rajoutter des petits trucs. C'est ça ?
Sinon je vois pas pourquoi ça ne marcherait pas... Fais attention d'éditer tes vbs et/ou tes bat avec le bloc note ou mieux, notepad+...
Vérifie que tu as bien autoriser C:\Windows\System32\cscript.exe, C:\Windows\System32\wscript.exe et C:\Windows\Syswow64\wscript.exe dans le pare feu. Relis bien le tuto, attention au "\" ou "\\", "/", "//"...
Comme indiqué au début du tuto, chez moi en tout cas cela n'a fonctionné que si domoticz est installé comme application et non comme service.
Domotifan
Messages : 49
Inscription : 29 sept. 2015, 08:47

Re: Script sur Action On/Off sous Windows

Message par Domotifan »

Salut ! mon script en vbs marche bien, dès lors que je l'exécute en local, c.a.d sans domoticz. Par contre, effectivement, j'ai installé Domoticz en tant que service...bizarre que ça ne parche pas ainsi (je veux bien essayer de le désactiver ds les services et voir...).
Et ppour finir, je vais aussi contrôler le Firewall (est-ce que je dois aussi définir les règles sur toutes les machines qui accèdent à Domoticz, ou bien est-ce que le paramétrage firewall du serveur suffit ?) :mrgreen:
Répondre