BlueConnect : Sonde piscine

Voilà ce que je leur demande :

Bonjour,
J’utilise l’applet IFTTT et j’ai choisi le blueconnect pour cela. Qu’avez vous à proposer pour récupérer les données ?
Il suffirai d’avoir une adresse de type API Restful comme ci-dessous :
Cela règle le problème.

Ils peuvent faire ça au moins non ?

Perso je suis en train de regarder chez flipr, à l’époque je n’avais pas pris chez eux car pas domotisable. Je vois qu’ils ont bien évolué et c’est écris noir sur blanc que leur produit est connectable à jeedom. Je pense que blueriiot ne veux pas perdre de clients et qu’ ils vont devoir se bouger, cependant si ça ne bouge avant l’été je passe à la concurrence. En plus la sonde est moins cher chez flipr. Je vais leur écrire un mail ce soir dans ce sens.

Bon, je ne suis pas spécialiste, mais je comprends un peut de ce qu’il en est:

GET: si je comprends bien, permet d’envoyer une requête http depuis Jeedom vers un serveur pour obtenir en retour une information, souvent au format XML ou JSON. Il faut ensuite un script pour décortiquer l’info reçue.

POST: c’est le serveur qui, régulièrement, envoie vers Jeedom, sans que ce dernier n’ait fait une demande, des infos, en les transmettant en HTP vers Jeedom. La transmission des infos est incluse dans la requête depuis le serveur vers Jeedom.

Si j’ai bien compris, ce plugin sert surtout à récupérer une requête POST http et sauvegarde les infos reçues dans des commandes info.

En tout cas, si je me trompe, n’hésitez pas à me corriger.

Le type de requête GET ou POST ne défini pas le sens de la requête http. De Jeedom on peut faire une requête GET ou POST vers un serveur et inversement.

La différence est seulement dans la façon d’envoyer les informations. Pour résumer dans la requête GET toutes les informations se trouvent dans l’adresse. On peut envoyer des informations à Jeedom facilement avec ce type de requête en respectant la syntaxe que Jeedom reconnait. C’est cette méthode qui est utilisé depuis IFTTT.

La requête POST envoi les informations en dehors de l’adresse, on va dire pour simplifier qu’un fichier est envoyé mais Jeedom ne sait pas gérer nativement ce genre de requête il faut donc un plugin qui saura récupérer les informations dans le « fichier » reçu pour les envoyer à un équipement.

Contrairement à ce que j’ai pu penser le plugin http remote event ne semble pas pouvoir gérer une requête POST sauf à ce que les informations à récupérer se trouvent dans l’adresse et non dans le « fichier » envoyé par POST.

Je ne vois pas comment faire cela car c’est Jeedom lui même qui est le serveur http et qui reçoit le contenu de la requête. Peut-être que quelqu’un de Jeedom pourrait nous donner une piste ?

Une autre solution consiste à installer un service http en dehors de Jeedom qui servirait de passerelle. Ce service pourrait récupérer les informations de la requête POST et les renvoyer à Jeedom en requête GET mais il devrait être possible de faire plus simple.

Ok, mais là je suis d’accord avec @fleproust, j’ai encore l’emballage ou il est écrit IFTTT, donc s’ils le quittent, ils se débrouillent pour mettre en place une API GET qui correspond à l’utilisation qui est en place pour ceux qui utilise Jeedom. Ce n’est pas à nous de trouver des solutions de dingue ou des bidouilles pour récupérer des données.
Et franchement, c’est quand même pas sorcier.

1 « J'aime »

C’est vrai que c’est à se demander pourquoi Blueriiot ne regarde pas ce que la concurrence a trouvé comme idée pour se passer d’IFTTT. Le document chez flipr est simple. Pourquoi se prendre la tête ?

DevGuide_FIPR_2018-1_2.pdf (138,7 Ko)

Oui mais le principe de Flipr est que c’est Jeedom qui va chercher les informations et fait donc une requete GET sur le serveur Flipr.

Fondamentalement il est plus « propre » que les informations soient envoyées par la sonde. Et la méthode GET c’est facile mais c’est limité. La solution qui consiste à ce que la sonde envoie les informations dans un format JSON via une requete http POST est beaucoup plus professionnel je pense.

Il faudrait un plugin Jeedom (voir dans le core) qui prendrait en charge l’extraction des informations dans le JSON reçu d’une requête POST.

personne a tester si on peut interroger le blueconnect en ble directement ?

si qqun peut installer sur un tel android BLE Scanner (ou autre outil pour intérroger la bestiole ) et donner le résultat ?

sinon je galère a trouver un fit63
il n est plus fabriquer on dirait…

bon je sens que je vais le renvoyer sans même le test…

je l ai branché quand même.
les mesures sont bien fiables ( iso bandelette & iso capteur ph du local technique )

il semble bien compatible ble je vois tous les services et sans problème d’autorisation ( galère pour ceux qui connaissent )

semaine prochaine je ferais le reverse engineering et on pourra récupérer toutes les infos en ble et à la demande donc pas besoin d’IFTT ni de seedfox…

2 « J'aime »

Ce serait une bonne nouvelle :+1:

Salut à tous, moi j’ai acheté Blue Connect Plus en fin d’année passée pour utilisation IFTT, je suis vert de rage !!!

Salut, t’as trouvé où le bouchon car il n’était pas dans le carton avec le FIT50 ?

Bonjour, Je crois que c’est avec le blueconnect qu’il était. Les sondes sont livrées dans du liquide et le bouchon est celui qui sert ensuite pour le fit50. Sous réserve que ma mémoire soit bonne je m’étais fait la réflexion que c’était bien pensé de mettre le même diamètre et filetage.

Hello

alors vite installé vite mis dans jeedom.
Sans passer par ifft ou ble. the less is more …

simplement avec le plugin Mail Listener !

j ai vu que a chaque mesure réaliser par le blueconnect on a la possibilité de recevoir un mail avec les mesures ( option de réglage des notifs dans l’appli sur le téléphone ) alors pourquoi se prendre la tête ?

le plugin mail listhener a configurer en 3 sec :

le virtuel a créer :

le scenario a créer :

il faut évidement modifier #[Piscine][gmail gsavin][Sujet]# == ‹ Piscine Piscine : nouvelle mesure ›

en fonction du sujet de mail que vous envois Blue Connect et de votre nom d’entrée dans le plugin mail lithener.
Pareil dans la condiction de déclanchement du scénario
#[Piscine]*[gmail gsavin][*Sujet]#

le code :

{
	$message = $scenario->getdata('message');
	$lines = explode(PHP_EOL,$message);
	foreach ($lines as $line)
  	{
    	$debutdata = strpos($line,'table');
    	
    	if ($debutdata !== false)
        {
            $findata = strpos($line,'/table');
            $longeurdata = $findata-$debutdata;
            $data=substr($line,$debutdata,$longeurdata);
            $args=explode("tr",$data);
            foreach ($args as $arg)
            {
                if (strpos($arg,'Température') !== false)
                {
                    $arg2=explode("td",$arg);
                    $str = preg_replace('/[^0-9.]+/', '', $arg2[3]);
                    print "temperature : ".$str;
                    $scenario->setdata('temperature',$str);
                }
                if (strpos($arg,'pH') !== false)
                {
                    $arg2 = explode("td",$arg);
                    $str = preg_replace('/[^0-9.]+/', '', $arg2[3]);
                    $scenario->setdata('PH',$str);
                }
                if (strpos($arg,'ORP') !== false)
                {
                    $arg2 = explode("td",$arg);
                    $str = preg_replace('/[^0-9.]+/', '', $arg2[3]);
                    $scenario->setdata('ORP',$str);
                }
                if (strpos($arg,'Salinité') !== false)
                {
                    $arg2 = explode("td",$arg);
                    $str = preg_replace('/[^0-9.]+/', '', $arg2[3]);
                    $scenario->setdata('Salinité',$str);
                }
            }
         }
  	}
}

bon alors le code fait en 5 minutes donc surement moyen de le rendre plus propre si y a des pro du php. Mais comme ca il marche bien et ça me va.

ca donne :
image

allez bisous

ps :
essayer pas de vous reforwarder un mail déjà envoyer par blue connect car le code traite un message en formatage html ( le mail envoyé par blueconnect) si vous faites un forward le mail sera transmi en pleintext et mon code marchera plus. Donc faut vraiement attendre le mail de Bueconnect.

le code si vous fête un forward pour test :
il faudra aussi copier #[Piscine][gmail gsavin][Texte]# au lieu de [HTML]

{
  $subject = $scenario->getdata('message');
  $lines = explode(PHP_EOL,$subject);
  foreach ($lines as $line)
  	{
        if (strpos($line,'Température') !== false)
        {
          $arg = explode(":",$line);
          $str = preg_replace('/[^0-9.]+/', '', $arg[1]);
          $scenario->setdata('temperature',$str);
          print $str;
        }
         if (strpos($line,'pH') !== false)
         {
          $arg = explode(":",$line);
           $str = preg_replace('/[^0-9.]+/', '', $arg[1]);
          $scenario->setdata('PH',$str);
           print $str;
        }
       if (strpos($line,'ORP') !== false)
       {
          $arg = explode(":",$line);
         $str = preg_replace('/[^0-9.]+/', '', $arg[1]);
          $scenario->setdata('ORP',$str);
         print $str;
        }
        if (strpos($line,'Salinité') !== false)
        {
          $arg = explode(":",$line);
          $str = preg_replace('/[^0-9.]+/', '', $arg[1]);
          $scenario->setdata('Salinité',$str);
          print $str;
        }
   }
}
1 « J'aime »

cool ! en tout cas le résultat semble là ! je vais essayer d’appliquer ta méthode !

1 « J'aime »

Au passage n’hésitez pas exprimer votre mécontentement argumenté sur le play store de l’App, et Facebook plutôt efficace…
Je vais regarder ta solution titi2097 !!!

Hello, du coup tu pourrais nous donner tes pistes que tu avais en BLE ? J’aimerais bien avoir la possibilité de demander au besoin le calcul d’une mesure :slight_smile:

Moi il était monté dans le paquet, sans bouchon !!!