Enregistrement sentinelle arduino

Bonjour,

Nous essayons actuellement de connecter notre arduino à notre serveur Constellation. Nous avons réussi à nous connecter à internet, puis à Constellation. Toutefois, nous n’arrivons pas à intéragir avec (exemple :

constellation.writeInfo("toto");

apparaît bien dans les logs de l’arduino mais pas dans ceux du serveur). Nous avons bien ajouté les lignes correspondantes dans “Configuration Editor”:

 

<sentinels>
//...
<sentinel name="ArduinoCard" credential="Standard">
<packages>
<package name="Bombi" />
</packages>
</sentinel>
//...
</sentinels>

Cependant l’arduino n’apparaît pas comme sentinelle. Y a t’il d’autres étapes ?

Merci d’avance.

Bonjour,

Les sentinelles sur arduino / ESP sont un peu différentes de celles sur Linux/Windows.

Sur Linux/Windows tu as un “service” qui tourne constamment et qui communique en temps réel avec Constellation.

Sur arduino / ESP, il s’agit de communiquer les infos à Constellation que quand nécessaire, comme quand on utilise l’api HTTP par exemple. Je présume que cela a été fait car ces cartes n’ont pas la puissance nécessaire pour faire tourner une communication constante en tâche de fond.

C’est pourquoi tu ne trouveras dans la liste des sentinelles que celles sous Windows / Linux dont Constellation connait le statut.

 

Pour ton problème d’envoi de log à Constellation, pourrais-tu nous mettre ton code de connexion à Constellation ?

Bonsoir,

N’ayant toujours pas réussi à résoudre notre problème, voici des infomations complémentaires.
On peut se connecter à un réseau (distant ou local (Connectify)).
Si l’on se connecte à notre serveur Constellation à l’aide de

Constellation constellation(client, server, port, "ArduinoCard", "Bomb", "ACCESS_KEY");

on obtient une requête HTTP (en mode Debug)

GET: //rest/constellation/WriteLog?SentinelName=ArduinoCard&PackageName=Bombi&AccessKey=630547c1fada14c61e876be55ac877e13f5c03d7&message=hello%2c%20world%21%0a&level=Info

Cependant, un code de retour de 0 est renvoyé (Time Out).
Si l’on écrit cette requête dans notre navigateur, Constellation la reçoit (parfois).
Nous avons réussi à faire une requête HTTP à notre serveur Constellation

client.println("GET /WebConsole/login.html HTTP/1.1");
client.println("Host: *SERVER_SSID*");
client.println("User-Agent: ArduinoWiFi/1.1");
client.println("Connection: close");
client.println();

et à recevoir une réponse.
En remplaçant la requête par celle plus haut, soit il ne se passe rien, soit on obtient

connection failed

 

Question annexe:

Il semble qu’il faille se reconnecter après chaque requête HTTP, est-ce bien le cas ? (Supposément, Constellation s’en charge pour nous.)

 

Une équipe au bord du désespoir.

Coucou Pierre,

Avez-vous trouvé une solution ?

Merci d’avance