BlueConnect : Sonde piscine

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 !!!

Salut

C est du taf le reverse engenering ble.

Je fais ca avec un pc avec wireskark connecté en usb sur un tablette android qui fait tourner l appli du module et je sniffe les trames.
La derniere fois j y ai passé 10h pour decoder un asys preciseo+ ( boitier control de filtration de la piscine qui fait que du bluetooth) c est comme faire une partie de mastermind xxxl.

Ensuite je fais des script avec gattool pour recuperer les infos et push des data via wget vers le jeedom sur un virtuel.

Ca fini par marcher mais c est bien bien chiant a faire… donc quand j ai une solution plus simple je passe. Surtout que d expérience ca bouffe les batteries des modules si tu pool trop souvent.

Pour le blueconnect c est donc pas plus mal de s en passer.

@+

@titi2097 bonjour, impossible de faire marcher le plugin mail listener, warning NODE_TLS, avec @hotmail.fr. quelqu’un a déjà essayé avec hotmail.fr ? imap : outlook.office365.com

Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
imapConnected

y a un poste a ce sujet :

voir en testant avec
NODE_TLS_REJECT_UNAUTHORIZED à 1

idem chez moi. J’ai tenté la modif unauthorized à 1 et c’est pareil. Le démon repasse à NOK au bout de qq secondes.

internal/validators.js:211
throw new ERR_SOCKET_BAD_PORT(name, port, allowZero);
^

RangeError [ERR_SOCKET_BAD_PORT]: Port should be >= 0 and < 65536. Received false.
at validatePort (internal/validators.js:211:11)
at lookupAndConnect (net.js:1000:5)
at Socket.connect (net.js:976:5)
at Connection.connect (/var/www/html/plugins/maillistener/resources/node_modules/imap/lib/Connection.js:286:10)
at MailListener.start (/var/www/html/plugins/maillistener/resources/node_modules/mail-listener3/index.js:45:15)
at Object. (/var/www/html/plugins/maillistener/resources/maillistener.js:62:14)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
code: ‹ ERR_SOCKET_BAD_PORT ›
}

Sur gmail il faut creer un password specific pour les connection externe sinon la doubld authentifiation fou la merde

oui je viens de voir ça : Quelqu’un vient d’utiliser votre mot de passe pour essayer de se connecter à votre compte à partir d’une application n’appartenant pas à Google. Nous avons bloqué cette personne, mais nous vous conseillons de vérifier ce qui s’est passé. Examinez l’activité de votre compte pour vous assurer que personne d’autre n’y a accès.

Je vais aller voir la sécurité sur le compte

@titi2097 oui j’ai vu mais il ne traite que le gmail en fin de compte. Mais bon, là, ça fonctionne, je ne sais pas pourquoi, avec imap : outlook.office365.com
J’ai déjà reçu 3 mails et tout est OK, je pense.
Je vais ajouter un event pour mettre date et heure sur le virtuel, je verrai si tous les mails sont traités.

Il faut d’abord activer la double authentification sur son acompte google dans sécurité et ensuite seulement on peu générer un mot de passe pour application. Il ne propose pas Jeedom dans sa liste mais on peu ajouter ce qu’on veut. Ensuite on colle le mot de passe dans l’équipement créé dans le plugin et là c’est bon le deamon reste ok.
Bon par contre j’ai plein de rouge dans le traitement du mail, mais je vais vérifier j’ai du me planter qq part …

Pour éliminer mes erreurs j’ai dû supprimer l’équipement mail listener et en recréer un nouveau. Je pense qu’il n’aime pas quand il y a une erreur d’authentification et garde des traces même quand c’est corrigé.

En aparté, pour finaliser ma date dans le virtuel, comment avoir la date en français avec ça :

strftime("%A %d %B %G", strtotime(date('Y-m-d')))

Ca me retourne

 Friday 02 April 2021

et je veux ça :

Mercredi 02 Avril 2021
CollectDate(#[Piscine][BlueConnect_Mail][Salinité]#,l d F Y H:i:s)

donne ça :

 Friday 02 April 2021 14:54:01

ça m’énerve de ne pas pouvoir le mettre en francais…