Pilotage de l'IPX800 V2 en HTTP par une API GET/SET ?

Bonjour,

Je souhaite afficher sur une page perso hébergée chez un fournisseur d’accès la température acquise par l’IPX800 V2 (que je viens d’acquérir et qui remplace enfin mon vieux système domotique IDT par minitel …).

je souhaiterais aussi en sus pouvoir passer certaines commandes à L’IPX, tout ceci sans utiliser le serveur web intégré de l’IPX car je concatène dans ma page plusieurs infos.

J’ai essayé d’installer le script de LionelF (Faire du M2M en PHP), mais malheureusement ni FREE, ni OVH (avec le type d’hébergement que j’ai) n’autorisent les ouvertures de socket TCP …

Par ailleurs, je dispose d’un thermostat internet qui dispose d’une API qui permet de lui envoyer des requêtes GET et SET.
Depuis un navigateur, on peut faire directement http://IPADDR:stuck_out_tongue:ORT/get?OID4.1.13
et le navigateur renvoi :
OID4.1.13=795&
(OID4.1.13 demande la température, et la réponse est en Farenheit x10 : 79,5 °F)

Dans un script PHP, cela donne :

// RECUPERATION DES INFORMATIONS DU THERMOSTAT
// ----------------------------------------------------

$uurl = « http://maison.dyndns.org:8082/get?OID4.1.13=&OID4.1.5=&OID4.1.2=&OID4.1.9= »;
$context = stream_context_create(array(
‹ http › => array(
‹ header › => « Authorization: Basic " . base64_encode( »$username:$password") ."
Content-Type: application/x-www-form-urlencoded
User-Agent: Jakarta Commons-HttpClient/2.0.2
Host: « .$IPthermostatlocale. »:".$portduthermostat."
Content-Length: 92 "
)
));

$nt20info = file_get_contents($uurl, false, $context);

// RECUPERATION DE LA TEMPERATURE
// ---------------------------------------------------------------------------

// Extraction de la temperature en Farenheit et conversion en Celsius

$nt20tempf = substr(strstr($nt20info, « 4.1.13= »), 7, 3);
$nt20tempc = (($nt20tempf/10) - 32) / 1.8;
$nt20tempc = round($nt20tempc,1);
/echo « Temperature entree: « .$nt20tempc. » °C »;

Bien sur, il n’y a pas de rafraichissement automatique comme le fait l’interface de l’IPX800, mais cela me suffirait. (on peut sans doute faire un peu de php pour faire un rafraichissement …)

Et donc, comme je n’ai pas trouvé de réponse dans le forum, je me demande si quelqu’un a développé quelquechose de la sorte pour un IPX800 V2 ?

Merci de vos réponse.

Bonsoir. Je voudrais dire que OVH marche très bien pour moi…ouverture des socket OK. Je pilote mon IPX V2 en m2M via un site en php hébergé sur OVH.

Bonsoir,
Autant free je peux comprendre qu’il bloque quelques fonctionnalités de php comme les sockets, mais OVH ça me surprend vraiment. D’autant que ciprian dit lui-même que ça fonctionne dans son cas.
Avez-vous bien vérifié que l’adresse de l’IPX déclarée dans le script n’est pas restée son adresse locale ? Si c’est le cas, ça ne fonctionnera pas.

Bonsoir,

Vous avez raison !
J’ai mélangé l’hébergeur de mon site perso et celui de l’association dont je m’occupe.
Mon site perso et chez Online (et le site de l’association chez OVH).
C’est donc Online qui me bloque, cf échange avec l’assistance :

[color=#FF4000]Sébastien FRADE XXXX a écrit:
Bonjour,
La modification des sockets n’est pas possible. Il s’agit simplement d’une fonction nécessaire à l’accès entre les plateformes mysql mutualisées et les plateformes web mutualisées.

m. yyyyy a ecrit:

Je n’arrive pas à ouvrir un socket TCP.

Lorsque je regarde l’état des service PHP par phpinfo(), je trouve :
Sockets Support enabled

Par contre, lorsque je met la commande :
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
Le serveur répond :
Erreur interne - Erreur 500

Pouvez vous me confirmer qu’il est possible d’établir des sockets, et si oui s’il y a une procédure particulière.

Cordialement,[/color]

Mais je ne souhaite pas basculer mon site perso chez ovh … ce serait un peu complexe …(bases SQL et autres …)

Cordialement,