01-03-2014, 12:12 PM
(This post was last modified: 01-03-2014, 12:13 PM by captainigloo.)
(01-03-2014, 11:49 AM)steevedu49 Wrote: exports.action=function(data, callback, config){
var url= "https://www.calaos.fr/calaos_network/api.php"
var json={
"cn_user": "****",
"cn_pass": "****",
"action": "get_ip",
}
var request = require('request');
request({
'uri': url,
'method': 'POST',
'json': json,
'timeout': 3000,
}, function (err, response, body){
if (err || response.statusCode != 200) {
callback({'tts':'error'});
console.dir(response);
return;
}
callback({'tts':'ok'});
console.dir(response);
});
}
Voici le contenu du fichier calaos.js que j'ai créer pour le plugin dans SARAH.
Jusque la ça fonctionne, je recupere bien les informations de la centrale (private_ip, public_ip....).
Par contre quand je remplace action par set_state et que je rajoute "type": "output", "id": "output_0" et "value": "true", la il ne ce passe plus rien, pas de reponse.....
Pour communiquer avec l'API de la centrale faut-il obligatoirement poster un fichier fichier comme dans l'exemple avec Wget dans le wiki de Calaos.
Après plusieurs essais seule l'action get_ip obtient une réponse, l'action get_home ne fonctionne pas.
Une idée ?
Une fois que tu as récupéré l'ip de la centrale, il te faut utiliser cette ip pour la requette get_home.
la ou tu avais var url= "https://www.calaos.fr/calaos_network/api.php"
il faut que tu le changes par l'IP qui est renvoyé dans la réponse de la requete précédente.
c'est a dire var url = "https://IP_CENTRALE/api.php"
Mais peut être que tu peux faire plus simple dans un premier temps, et tester uniquement en internet chez toi, et donc en utilisant directement l'ip de ta centrale.
Pour info le language est du javascript.
Nous utilisons ce language porur la web app et nous faisons exactement les meme requetes pour afficher l'interface.