Modérateurs: Staff Installations, Staff DIY, Staff Juridique • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

Conseils, Guides et Tutos pour la domotique

Jeedom

Message » 23 Juin 2017 1:17

vacheatuba a écrit:Je n'arrive pas a faire le scenario suivant :
J'envoie une requete HTTP du PI3 (avec Jeddom) vers mon serveur. Si la requete renvoit quelque chose alors j'affiche "c'est up" sinon (timeout/erreur) j'affiche "c'est down"
la requete en question :
Code: Tout sélectionner
http://192.168.1.222:52199/MCWS/v1/Playback/Info?Zone=-1

renvoit :
Code: Tout sélectionner
<Response Status="OK">
<Item Name="ZoneID">10000</Item>
<Item Name="ZoneName">STereo</Item>
<Item Name="State">2</Item>
<Item Name="FileKey">2573</Item>
<Item Name="NextFileKey">2572</Item>
<Item Name="PositionMS">100499</Item>
<Item Name="DurationMS">191240</Item>
<Item Name="ElapsedTimeDisplay">1:40</Item>
<Item Name="RemainingTimeDisplay">-1:31</Item>
<Item Name="TotalTimeDisplay">3:11</Item>
<Item Name="PositionDisplay">1:40 / 3:11</Item>
<Item Name="PlayingNowPosition">1</Item>
<Item Name="PlayingNowTracks">17</Item>
<Item Name="PlayingNowPositionDisplay">2 of 17</Item>
<Item Name="PlayingNowChangeCounter">20</Item>
<Item Name="Bitrate">849</Item>
<Item Name="Bitdepth">16</Item>
<Item Name="SampleRate">44100</Item>
<Item Name="Channels">2</Item>
<Item Name="Chapter">0</Item>
<Item Name="Volume">0.2</Item>
<Item Name="VolumeDisplay">20% (-40,0 dB)</Item>
<Item Name="ImageURL">MCWS/v1/File/GetImage?File=2573</Item>
<Item Name="Artist">An Triskell (Herv_ et Pol Queff_l_ant)</Item>
<Item Name="Album">La Harpe Celtique</Item>
<Item Name="Name">An hader</Item>
<Item Name="Status">En lecture</Item>
</Response>


Merci pour votre aide

Je pense qu'il faut faire un script en sh... Enfin c'est ce que je ferai, je pense pas que les scénarios puissent faire ça.
C'est quoi la finalité ?

Envoyé de mon LG-H815 en utilisant Tapatalk
Enceintes : Pack triangle Antal, JBL 3635 ; Ampli AV : Pioneer LX81, Yamaha P2500S
Lecteurs : OPPO 93, Xbox One S, Pioneer CLD 900, boitier M8SII ; Projecteur : EPSON 9300 - Stockage : Netgear RN316
.... Le tout piloté par Jeedom et un smartphone :-)
Patou100
Membre HCFR
Membre HCFR
 
Messages: 321
Inscription: 16 Juin 2001 2:00
Localisation: Florensac / Beziers
  • offline

Annonce

Message par Google » 23 Juin 2017 1:17

Publicite

 
Encart supprimé pour les membres HCFR

Message » 24 Juin 2017 13:44

J'ai essayé avec un script externe :
Code: Tout sélectionner
curl -u admin:password http://192.168.1.222:52199/MCWS/v1/Playback/Info?Zone=-1 --max-time 2 --silent


sauf que ce con de jeedom me dit toujours :
Error on shell exec, return value : 28. Details : Array ( [0] => )
Alors qu'avec --silent il devrait me renvoyer une chaîne de caractère vide. Mais je me dis que j'ai raté un episode


Du coup mon scénario voit une erreur et n’exécute pas le test. Y'a pas moyen de gérer les erreurs dans jeedom ? Normalement en Java c'est finger in the noose
Avatar de l’utilisateur
vacheatuba
Membre HCFR
Membre HCFR
 
Messages: 381
Inscription: 23 Mai 2011 17:57
Localisation: Thouare, 44

Message » 24 Juin 2017 13:48

vacheatuba a écrit:J'ai essayé avec un script externe :
Code: Tout sélectionner
curl -u admin:password http://192.168.1.222:52199/MCWS/v1/Playback/Info?Zone=-1 --max-time 2 --silent


sauf que ce con de jeedom me dit toujours :
Error on shell exec, return value : 28. Details : Array ( [0] => )
Alors qu'avec --silent il devrait me renvoyer une chaîne de caractère vide. Mais je me dis que j'ai raté un episode


Du coup mon scénario voit une erreur et n’exécute pas le test. Y'a pas moyen de gérer les erreurs dans jeedom ? Normalement en Java c'est finger in the noose

C'est pas le pauvre jeedom à incriminer, il faut essayer la commande à la main avec un telnet sur le serveur pour voir ce qu'elle retourne.

Est-ce que les packages curl sont correctement installés ?



Envoyé de mon LG-H815 en utilisant Tapatalk
Enceintes : Pack triangle Antal, JBL 3635 ; Ampli AV : Pioneer LX81, Yamaha P2500S
Lecteurs : OPPO 93, Xbox One S, Pioneer CLD 900, boitier M8SII ; Projecteur : EPSON 9300 - Stockage : Netgear RN316
.... Le tout piloté par Jeedom et un smartphone :-)
Patou100
Membre HCFR
Membre HCFR
 
Messages: 321
Inscription: 16 Juin 2001 2:00
Localisation: Florensac / Beziers
  • offline

Message » 24 Juin 2017 14:49

Il y a plusieurs façon d'interagir avec des applications extérieures avec Jeedom, voilà quelques techniques que j'ai mis en oeuvre:

* Plugin Script (https://jeedom.com/doc_old/documentatio ... _FR/script)
Jeedom => Extérieur
Exemple, ma commande pour activer le mode nuit sur un système de surveillance vidéo
Création du commande de type
Code: Tout sélectionner
http://ip:port/cgi-bin/CGIProxy.fcgi?usr%3Dusr%26pwd%3Dpasswd%26cmd%3DcloseInfraLed

le retour de cette invocation peut être utilisé et injecté dans Jeedom

* Plugin Virtuel et HTTP API (https://jeedom.com/doc_old/documentatio ... _http.html)
Extérieur => Jeedom
Exemple: Eventghost surveille JRiver est notifie régulièrement Jeedom d'un changement d'état, en fonction de cet état il actionne une commande - les virtuels étant le meilleur moyen de concentrer une partie de la logique.
L'application externe invoque Jeedom avec http://#IP_JEEDOM#/jeedom/core/api/jeeApi.php?apikey=#APIKEY#&type=cmd&id=#ID# où ID est l'identifiant de la commande virtuelle à invoquer. On peut même définir la valeur d'un état dans un virtuel http://#IP_JEEDOM#/jeedom/core/api/jeeApi.php?apikey=#APIKEY#&type=virtual&id=#ID#&value=#VALUE#

Un virtuel stocke les informations:

Capture1.PNG


Eventghost invoque Jeedom http://#IP_JEEDOM#/jeedom/core/api/jeeApi.php?apikey=#APIKEY#&type=virtual&id=562&value=etatJriver
Où état est sous la forme MODE:MEDIA (MODE=PLAY/PAUSE/STOP et MEDIA=MUSIC/VIDEO)
Le virtuel étant modifié le script suivant est déclanché et consomme la donnée.

Capture2.PNG


* Code PHP dans un scénario
Jeedom => Extérieur
Exemple: J'invoque régulièrement mon projecteur pour connaitre son état de fonctionnement.
Un scénario Jeedom programmé toutes les minutes qui appelle le service HTTP du video projecteur. Dans le scénario choisir une action de type code.

Code: Tout sélectionner
// The data to send to the API
$postData = array(
    'req' => array('type' => 'get', 'category' => 'info')
);

// Create the context for the request
$context = stream_context_create(array(
    'http' => array(
        'method' => 'POST',
        'header' => "Authorization: Basic ". base64_encode("user:password"). "\r\n".
            "Content-Type: application/json\r\n",
        'content' => json_encode($postData)
    )
));

// Send the request
$response = file_get_contents('http://monIP/cgi-bin/web.cgi', FALSE, $context);

// Check for errors
if($response === FALSE){
    die('Error');
}

// Decode the response
$responseData = json_decode($response, TRUE);
$status= $responseData['power'];
switch ($status) {
    case 'STANDBY':
       $status='VEILLE';
        break;
    case 'POWER ON':
       $status='ALLUME';
        break;
    case 'COOLING1':
       $status='COOL 1';
        break;
    case 'COOLING2':
       $status='COOL 2';
        break;
    case 'POWER OFF':
       $status='ETEINT';
        break;
}

// Print the date from the response
$scenario->setData('vp_status', $status);
-Mon Coin HC-
Vidéo: Sony VW-300ES - Daylight 0.9 16:9 2.65 Audio: 3 Crown XLS1500 - Focal Chorus 826V - CC800V- Profile IC-908 - Velodyne EQMax12
HTPC: Core i5 3570K (GTX 960, RME Fireface UC) - JRMC - AudioLense
Avatar de l’utilisateur
rlebrette
Membre HCFR
Membre HCFR
 
Messages: 2090
Inscription: 25 Juil 2004 19:41
Localisation: Vraiment tout à côté de Nantes
  • offline

Message » 24 Juin 2017 15:06

Pour des traitements d'activation en dessous de 1 minute il faut privilégier une approche Extérieur => Jeedom parce que le scheduler de JRiver ne sait pas faire en dessous d'une minute.

Dans le cas de JRiver j'ai besoin de savoir dans la seconde qui suit que quelque chose à changé donc c'est la meilleure méthode.
Si on veut vérifier quelque chose de façon plus étalée les deux autres techniques sont suffisantes.
-Mon Coin HC-
Vidéo: Sony VW-300ES - Daylight 0.9 16:9 2.65 Audio: 3 Crown XLS1500 - Focal Chorus 826V - CC800V- Profile IC-908 - Velodyne EQMax12
HTPC: Core i5 3570K (GTX 960, RME Fireface UC) - JRMC - AudioLense
Avatar de l’utilisateur
rlebrette
Membre HCFR
Membre HCFR
 
Messages: 2090
Inscription: 25 Juil 2004 19:41
Localisation: Vraiment tout à côté de Nantes
  • offline

Message » 24 Juin 2017 15:44

EDIT : j'ai une solution :
Code: Tout sélectionner
curl -u admin:password http://192.168.1.222:52199/MCWS/v1/Playback/Info?Zone=-1 --max-time 2 --silent | wc -l

pour un script de type script qui s’exécute toutes les minutes (pour moi cela est suffisant)

Reste plus qu'à faire un scénario provoqué par mon script (mais on aurait pu faire l'inverse) avec un bete IF #[Bus][Etat Jriver][Jriver ON]# == 0 THEN ELSE.

Merci pour le coup de main :thks:
Dernière édition par vacheatuba le 24 Juin 2017 16:36, édité 2 fois.
Avatar de l’utilisateur
vacheatuba
Membre HCFR
Membre HCFR
 
Messages: 381
Inscription: 23 Mai 2011 17:57
Localisation: Thouare, 44

Message » 24 Juin 2017 16:03

vacheatuba a écrit:Les packages sont correctement installés car quand ej passe par ssh, mes commandes curl fonctionnent sans soucis. Il n'y a pas de message d'erreur :
Code: Tout sélectionner
root@jeedom:~# curl -u admin:password http://192.168.1.222:52199/MCWS/v1/Playback/Info?Zone=-1 --max-time 2 --silent
root@jeedom:~#

Par contre quand je fais sauvegarder, j'ai le message :
Error on shell exec, return value : 28. Details : Array ( [0] => )

@rlebrette : le Jriver ne renvoit aucun format supporté par Script (c'est pas du html, xml, json :evil: ) . Au début je me disais osef car j'intercepte l'erreur, mais en fait, non ... Reste tes solutions avec eventghost, cela veut donc dire un enieme logiciel à installer... Mais au moins je te remercie pour ces 2 solutions proposés qui sont très bien documentées. :thks:

=> Jeedom ne sait pas gérer les erreurs dans les scenarii

Je vois que tu executes ton script en root, c'est pas ça qui fonctionnerait pas, car jeedom utilise un user spécifique

Envoyé de mon LG-H815 en utilisant Tapatalk
Enceintes : Pack triangle Antal, JBL 3635 ; Ampli AV : Pioneer LX81, Yamaha P2500S
Lecteurs : OPPO 93, Xbox One S, Pioneer CLD 900, boitier M8SII ; Projecteur : EPSON 9300 - Stockage : Netgear RN316
.... Le tout piloté par Jeedom et un smartphone :-)
Patou100
Membre HCFR
Membre HCFR
 
Messages: 321
Inscription: 16 Juin 2001 2:00
Localisation: Florensac / Beziers
  • offline

Message » 24 Juin 2017 16:37

En fait ce sont les identifiants pour se connecter à Jriver ;) :mdr:
Avatar de l’utilisateur
vacheatuba
Membre HCFR
Membre HCFR
 
Messages: 381
Inscription: 23 Mai 2011 17:57
Localisation: Thouare, 44

Message » 24 Juin 2017 17:38

Pour ce qui est d'EventGhost ça reste de loin une des références de l'automatisation d'un PC, il est léger et son moteur python permet d'étendre très facilement le système quand un plugin manque. Dans le cas de JRiver il y a un plugin d'EventGhost qui génère des événements en fonction de l'état de JRiver.
EventGhost étant aussi simple en temps qu'émetteur que récepteur HTTP on peut déclencherà partir de Jeedom des opérations comme arrêter le PC, commuter de configuration, passer une applicagtion en premier plan.
-Mon Coin HC-
Vidéo: Sony VW-300ES - Daylight 0.9 16:9 2.65 Audio: 3 Crown XLS1500 - Focal Chorus 826V - CC800V- Profile IC-908 - Velodyne EQMax12
HTPC: Core i5 3570K (GTX 960, RME Fireface UC) - JRMC - AudioLense
Avatar de l’utilisateur
rlebrette
Membre HCFR
Membre HCFR
 
Messages: 2090
Inscription: 25 Juil 2004 19:41
Localisation: Vraiment tout à côté de Nantes
  • offline

Message » 27 Juin 2017 23:40

Quelqu'un a osé la 3 ?
Avatar de l’utilisateur
vacheatuba
Membre HCFR
Membre HCFR
 
Messages: 381
Inscription: 23 Mai 2011 17:57
Localisation: Thouare, 44

Message » 01 Juil 2017 8:35

J'ai basculé sur la v3 hier soir sans aucun soucis.
J'en ai profité pour acheter le plugin orvibo à 4€.
Tout est fonctionnel pour mon cas simple: Zwave + Orvibo + virtuel etc.

Changelog ICI
Avatar de l’utilisateur
vacheatuba
Membre HCFR
Membre HCFR
 
Messages: 381
Inscription: 23 Mai 2011 17:57
Localisation: Thouare, 44


Retourner vers Domotique

 
  • Articles en relation
    Dernier message