Envoi de commande IP

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 <\>.
petergab
Messages : 15
Inscription : 09 janv. 2015, 14:09

Envoi de commande IP

Message par petergab »

Bonjour et bravo pour ce site !! Domoticz en français !

J’utilise domoticz depuis plus 8 mois ... et suis trés sastifait ! domoticz sur mon Raspberry !

Je vous voudrai "poster" des message xml pour faire des commandes IP , j'utilise actuellement l'IR avec un itach wifi
vous savez comment envoyer cela ?
exemple de message XML :

<?xml version="1.0" encoding="utf-8"?>
<YAMAHA_AV cmd="PUT">
<System>
<Input>
<Multi_Ch_Assign>
<BGV>
source
</BGV>
</Multi_Ch_Assign>
</Input>
</System>
</YAMAHA_AV>
Dans laquelle "source" est à remplacer par DVD ; DVR ; CBL/SAT ; BR/HD DVD ; VCR ou Off.

une idée ?
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Envoi de commande IP

Message par patrice »

Bonjour

Merci pour tes remerciements :lol:

Je vois une chose comme cela , d'autres t'apporteront peut êtres 'autre idées.

Je pense que tu souhaites déclencher cela à partir d'un switch Domoticz,

Crée autant de swicth que tu as de sources différentes CD/DVD

Puis il faut faire un script pour chacun des switch avec le bon SOURCE puis l’associer sur le action on ou action off

un script en shell serait qq chose comme cela (pas testé rien sous la main pour le faire)
cat dvd.xml | curl -X POST -H 'Content-type: text/xml' -d @- http://ipdetonhitachi

dans lequel dvd.xml contient tout le xml necessaire à cette source dvd, puis refaire de meme pour CD, etc ....


tu as un sujet ici http://stackoverflow.com/questions/2063 ... -with-curl

Même si ça ne marche pas "Don't give up" et n'utilise pas le "SledgeHammer", petergab :mrgreen:


Voila les premières idées, à suivre ...
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
petergab
Messages : 15
Inscription : 09 janv. 2015, 14:09

Re: Envoi de commande IP

Message par petergab »

Merci pour tes infos .... je viens de passer quelques heures ....sans sucés !

Entre la fonction curl , les problèmes de droit . même avec chmod 777 , et que je n'arrive pas a voir si Curl envoie bien le xml ,

et autre soucis , l'adresse ip peut être incomplète , et la commande exact (je ne trouve pas la doc pour les commandes ip de mon ampli Yamaha RX-A740), cela fait beaucoup de paramètre ! je suis pas loin de prendre le SledgeHammer !! sur la tête !

si vous avez une astuce pour voir si CURL envoie bien le XML ?
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Envoi de commande IP

Message par patrice »

Bonjour

Normalement tu as l'erreur d'affichée si c'est une erreur gérée par curl
par exemple
un script zz.sh contenant
cat dvd.xml | curl -X POST -H 'Content-type: text/xml' -d @- http://ipdetonhitachi
me donne apres un ./zz.sh

curl: (6) Could not resolve host: ipdetonhitachi
qui me dit qu'il ne retouve pas ipdetonhitachi

le site de curl dit
1.5 See the Response

By default curl sends the response to stdout.
You need to redirect it somewhere to avoid that, most often that is done with -o or -O.

Essaye de recuperer la doc de l'hitachi ca devrait donner des pistes de travail
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
petergab
Messages : 15
Inscription : 09 janv. 2015, 14:09

Re: Envoi de commande IP

Message par petergab »

Cool Sa marche ! l'erreur était que le xml doit être sur 1 ligne ! (pas de retour LF unix ou autre)

voici le code qui marche :

Code : Tout sélectionner

#! /bin/bash
curl -H 'Content-Type: application/xml' -X POST -d @/home/pi/domoticz/scripts/dvd.xml http://192.168.1.13/YamahaRemoteControl/ctrl
et le dvd.xml :

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>

<YAMAHA_AV cmd="PUT"><Main_Zone><Scene><Scene_Load>Scene 1</Scene_Load></Scene></Main_Zone></YAMAHA_AV>
si sa peut aider !
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Envoi de commande IP

Message par patrice »

Super,
Felicitaitons :lol:
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
hervesz
Messages : 19
Inscription : 14 janv. 2015, 21:19

Re: Envoi de commande IP

Message par hervesz »

Bonsoir,

Je teste également le fait de pouvoir commander mon ampli par ce biais, mais je galère un peu ...

J'ai créé un fichier yamaha.sh

Code : Tout sélectionner

#! /bin/bash
curl -H 'Content-Type: application/xml' -X POST -d @/home/pi/domoticz/scripts/yamaha_on.xml http://192.168.0.32/YamahaRemoteControl/ctrl
et un fichier yamaha_on.xml

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>
<YAMAHA_AV cmd=ԐUTԾ<Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>
Mais quand je le teste par le biais de la commande ./yamaha.sh , j'ai le message d'erreur suivant :
-bash: ./yamaha.sh: /bin/sh^M: bad interpreter: No such file or directory

C'est peut être tout bête, mais je tourne en rond ... Si quelqu'un à une idée ?? Merci d'avance
Raspberry + Domoticz + RFXTrx433
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Envoi de commande IP

Message par patrice »

Plusieurs réponses possibles
Il faut que la premiere ligne du fichier soit #/..... et pas une ligne blanche
Tu as enregistré le fichier depuis un pc windows il faut que tu l' enregistre en utf8 sans BOM depuis Windows, utilse notepad++
sinon cherche sur le net avec ton message d'erreur tu aura d' autres pistes
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
hervesz
Messages : 19
Inscription : 14 janv. 2015, 21:19

Re: Envoi de commande IP

Message par hervesz »

Merci Patrice, j'ai modifié via vi et je n'ai plus d'erreur.

J'ai modifié également le fichier Yamaha_on.xml pour mettre en standby (Le On ne fonctionnait pas ...)

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>
<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On/Standby</Power></Power_Control></Main_Zone></YAMAHA_AV>
Et maintenant cela fonctionne !!

Par contre, pour chaque action il faut créer 2 fichiers ? Un sh et un xml ?
Existerait-il une autre solution ?
Raspberry + Domoticz + RFXTrx433
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Envoi de commande IP

Message par patrice »

tu peux tout encoder dans le meme .sh
en supprimant @/home/pi/domoticz/scripts/yamaha_on.xml et en mettant ta phrase xml à la place cela peur fonctionner

Je pense que cette structure en 2 fichiers est bien plus lisible/maintenable que 1 seule ligne de curl qio va faire3 Km de long et impossible a lire.

Mais bon , les gouts et les couleurs ....
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
Répondre